FTP服務(wù)的配置與應(yīng)用課件_第1頁
FTP服務(wù)的配置與應(yīng)用課件_第2頁
FTP服務(wù)的配置與應(yīng)用課件_第3頁
FTP服務(wù)的配置與應(yīng)用課件_第4頁
FTP服務(wù)的配置與應(yīng)用課件_第5頁
已閱讀5頁,還剩91頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第08章FTP服務(wù)的配置與應(yīng)用本章導(dǎo)讀FTP服務(wù)的概述FTP服務(wù)的安裝與配置虛擬用戶管理程序UsermanagerforPureFTPd的安裝使用UsermanagerforPureFTPd管理虛擬用戶FTP服務(wù)的配置啟動和停止FTP服務(wù)測試FTP服務(wù)使用pure-ftpd實現(xiàn)虛擬主機注冊服務(wù)第08章FTP服務(wù)的配置與應(yīng)用本章導(dǎo)讀18.1FTP服務(wù)的概述FTP服務(wù)的簡介FTP的工作原理匿名用戶主動模式和被動模式8.1FTP服務(wù)的概述FTP服務(wù)的簡介2FTP服務(wù)的簡介 FTP協(xié)議就是文件傳輸控制協(xié)議。它可以使文件通過網(wǎng)絡(luò)從一臺主機傳送到同一網(wǎng)絡(luò)的另一臺主機上,而不受計算機類型和操作系統(tǒng)類型的限制。無論是PC機、服務(wù)器、大型機,還是DOS操作系統(tǒng)、Windows操作系統(tǒng)、Linux操作系統(tǒng),只要雙方都支持FTP協(xié)議,就可以方便地傳送文件。FTP服務(wù)的簡介 FTP協(xié)議就是文件傳輸控制協(xié)議。它可以3FTP的工作原理FTP服務(wù)的具體工作過程如下。①當(dāng)FTP客戶端發(fā)出請求時,系統(tǒng)將動態(tài)分配一個端口(如1032)。②若FTP服務(wù)器在端口21偵聽到該請求,則在FTP客戶端的端口1032和FTP服務(wù)器的端口21之間建立起一個FTP會話連接。③當(dāng)需要傳輸數(shù)據(jù)時,F(xiàn)TP客戶端再動態(tài)打開一個連接到FTP服務(wù)器的端口20的第2個端口(如1033),這樣就可在這兩個端口之間進行數(shù)據(jù)的傳輸。當(dāng)數(shù)據(jù)傳輸完畢后,這兩個端口會自動關(guān)閉。④當(dāng)FTP客戶端斷開與FTP服務(wù)器的連接時,客戶端上動態(tài)分配的端口將自動釋放掉。FTP的工作原理FTP服務(wù)的具體工作過程如下。4匿名用戶 多數(shù)的FTP站點都提供了匿名訪問,它使所有的用戶都能通過一個通用的賬戶來訪問站點指定的公共區(qū)域。這個賬戶就是“anonymous”,它通常以E-mail地址作為口令。匿名用戶 多數(shù)的FTP站點都提供了匿名訪問,它使5主動模式和被動模式

在主動模式中,F(xiàn)TP客戶端隨機開啟一個大于1024的端口X向服務(wù)器的21號端口發(fā)起控制連接請求,然后開放X+1號端口進行監(jiān)聽;FTP服務(wù)器接受請求并建立控制連接會話。如果客戶端在控制會話中發(fā)送數(shù)據(jù)連接請求,那么服務(wù)器在接收到命令后,會用其本地的FTP數(shù)據(jù)端口(通常是20)來連接客戶端指定的端口X+1進行數(shù)據(jù)傳輸。主動模式和被動模式 在主動模式中,F(xiàn)TP客戶端隨機開啟一個6主動模式和被動模式 被動模式的控制連接和數(shù)據(jù)連接都是由FTP客戶端發(fā)起的。首先FTP客戶端隨機開啟一個大于1024的端口X向服務(wù)器的21端口發(fā)起連接,同時會開啟X+1端口。然后向服務(wù)器發(fā)送PASV命令,通知服務(wù)器自己處于被動模式。服務(wù)器收到命令后,會開放一個大于1024的端口Y進行監(jiān)聽,然后用PORTY命令通知客戶端,自己的數(shù)據(jù)端口是Y??蛻舳耸盏矫詈螅瑫ㄟ^X+1號端口連接服務(wù)器的端口Y,然后在兩個端口之間進行數(shù)據(jù)傳輸。這樣就能使防火墻知道用于數(shù)據(jù)連接的端口號,而使數(shù)據(jù)連接得以建立。主動模式和被動模式 被動模式的控制連接和數(shù)據(jù)連接78.2FTP服務(wù)的安裝與配置安裝Apache服務(wù)安裝MySQL數(shù)據(jù)庫和相關(guān)程序安裝pure-ftpd生成pure-ftpd服務(wù)管理腳本配置匿名用戶登錄環(huán)境8.2FTP服務(wù)的安裝與配置安裝Apache服務(wù)8安裝Apache服務(wù) 由于基于Web界面的pure-ftpd虛擬用戶管理軟件UsermanagerforPureFTPd使用PHP編寫而成,因此在使用前應(yīng)安裝Apache服務(wù)器并建立好PHP的運行環(huán)境。安裝Apache的具體方法參見第7章的相關(guān)內(nèi)容。安裝Apache服務(wù) 由于基于Web界面的pure-ftp9安裝MySQL數(shù)據(jù)庫和相關(guān)程序1.安裝MySQL服務(wù)及相關(guān)程序2.安裝php-mysql支持包3.啟動MySQL服務(wù)4.設(shè)置自動運行MySQL服務(wù)5.修改MySQL用戶root的口令安裝MySQL數(shù)據(jù)庫和相關(guān)程序1.安裝MySQL服務(wù)及相10安裝pure-ftpd到/pub/pure-ftpd/releases/pure-ftpd-1.0.21.tar.gz處下載pure-ftpd最新的版。(1)解壓安裝包tarzxvfpure-ftpd-1.0.21.tar.gz(2)進入解壓目錄cdpure-ftpd-1.0.21安裝pure-ftpd到http://download.p11安裝pure-ftpd(3)配置pure-ftpd并指定各種安裝選項./configure\--prefix=/usr/local/pureftpd\--with-mysql\--with-virtualchroot\--with-virtualhosts\--with-virtualroot\--with-diraliases\--with-uploadscript\--with-cookie\--with-quotas\--with-sysquotas\--with-ratios\--with-throttling\--with-largefile\--with-peruserlimits\--with-paranoidmsg\--with-welcomemsg\--with-language=simplified-chinese安裝pure-ftpd(3)配置pure-ftpd并指定各種12安裝pure-ftpd(4)編譯make(5)安裝makeinstall(6)生成配置腳本cpconfiguration-file/pure-config.pl/usr/local/pureftpd/sbin/(7)修改配置腳本權(quán)限chmod+x/usr/local/pureftpd/sbin/pure-config.pl(8)建立FTP主目錄mkdir/ftproot安裝pure-ftpd(4)編譯13生成pure-ftpd服務(wù)管理腳本

①進入pure-ftpd解壓目錄,編輯contrib子目錄里的redhat.init文件。找到語句“fullpath=/usr/local/sbin/$prog”,將其改為“fullpath=/usr/local/pureftpd/sbin/$prog”;找到語句“pureftpwho=/usr/local/sbin/pure-ftpwho”,將其改為“pureftpwho=/usr/local/pureftpd/sbin/pure-ftpwho”。生成pure-ftpd服務(wù)管理腳本 ①進入pure-ft14生成pure-ftpd服務(wù)管理腳本②執(zhí)行以下命令將文件redhat.init復(fù)制到/etc目錄中并重命名為pure-ftpd。cpcontrib/redhat.init/etc/init.d/pure-ftpd③執(zhí)行以下命令設(shè)置文件為可執(zhí)行。chmod+x/etc/init.d/pure-ftpd④執(zhí)行命令chkconfig--addpure-ftpd添加pure-ftpd服務(wù)到系統(tǒng)中,使pure-ftpd可以隨系統(tǒng)啟動而自動運行。生成pure-ftpd服務(wù)管理腳本②執(zhí)行以下命令將文件re15配置匿名用戶登錄環(huán)境使用以下命令為其建立目錄/var/ftp。mkdir/var/ftp 如果希望FTP匿名用戶能夠上傳文件到FTP服務(wù)器,還要保證ftp系統(tǒng)賬戶對主目錄有寫入權(quán)限??梢酝ㄟ^以下命令設(shè)置/var/ftp主目錄的所有者和所有組為ftp,使得ftp系統(tǒng)賬戶對主目錄有寫入權(quán)限。chownftp:ftp/var/ftp配置匿名用戶登錄環(huán)境使用以下命令為其建立目錄/var/ft168.3虛擬用戶管理程序UsermanagerforPureFTPd的安裝安裝UsermanagerforPureFTPd配置UsermanagerforPureFTPd8.3虛擬用戶管理程序UsermanagerforPu17安裝UsermanagerforPureFTPd到/files/pureftpd/ftp_v2.1.tar.gz處下載UsermanagerforPureFTPd。①執(zhí)行以下命令解壓安裝包。tarzxvfftp_v2.1.tar.gz②執(zhí)行下面的命令將UsermanagerforPureFTPd目錄放置在Apache的主目錄中。cp-aftp/var/www/html/pureftp安裝UsermanagerforPureFTPd到ht18配置UsermanagerforPureFTPd①確保httpd服務(wù)器和MySQL服務(wù)啟動后,使用Web瀏覽器訪問“http://Linux服務(wù)器的IP”或“域名/pureftp/install.php”會出現(xiàn)UsermanagerforPureFTPd安裝向?qū)Ы缑媾渲肬sermanagerforPureFTPd①19配置UsermanagerforPureFTPd配置UsermanagerforPureFTPd20配置UsermanagerforPureFTPd配置UsermanagerforPureFTPd21配置UsermanagerforPureFTPd配置UsermanagerforPureFTPd22配置UsermanagerforPureFTPd配置UsermanagerforPureFTPd23配置UsermanagerforPureFTPd配置UsermanagerforPureFTPd24配置UsermanagerforPureFTPd配置UsermanagerforPureFTPd25配置UsermanagerforPureFTPd配置UsermanagerforPureFTPd26配置UsermanagerforPureFTPd配置UsermanagerforPureFTPd27配置UsermanagerforPureFTPd在/etc目錄中創(chuàng)建pureftpd-mysql.conf文件,并將圖8-21中的灰色底紋的所有配置語句復(fù)制到文件中。重新啟動PureFTPd服務(wù)器。單擊“Step7”按鈕,完成設(shè)置。配置UsermanagerforPureFTPd在/288.4使用UsermanagerforPureFTPd管理虛擬用戶 確保在httpd服務(wù)器啟動后,使用Web瀏覽器訪問“http://Linux服務(wù)器的IP”或“域名/pureftp/index.php”會出現(xiàn)認證頁面8.4使用UsermanagerforPureFTPd298.4使用UsermanagerforPureFTPd管理虛擬用戶登錄后就會進入UsermanagerforPureFTPd管理主頁面8.4使用UsermanagerforPureFTPd308.4使用UsermanagerforPureFTPd管理虛擬用戶 單擊“按此新增賬號”超鏈接添加FTP賬戶,在增加用戶頁面中可以設(shè)置用戶的文件配額、磁盤配額、上傳/下載比和帶寬等信息。8.4使用UsermanagerforPureFTPd318.4使用UsermanagerforPureFTPd管理虛擬用戶 pure-ftpd對FTP賬戶有著較合理且嚴密的管理體系,可以控制FTP賬戶以下功能。(1)文件配額(2)磁盤配額(3)上傳/下載比率(4)上傳/下載帶寬(5)IP訪問地址8.4使用UsermanagerforPureFTPd328.5FTP服務(wù)的配置1.設(shè)置是否將用戶鎖定在主目錄中ChrootEveryoneyes2.設(shè)置同時登錄到FTP服務(wù)器的最大鏈接數(shù)MaxClientsNumber503.設(shè)置每個IP最大鏈接數(shù)MaxClientsPerIP84.設(shè)置是否只允許匿名用戶連接AnonymousOnlyno8.5FTP服務(wù)的配置1.設(shè)置是否將用戶鎖定在主目錄中338.5FTP服務(wù)的配置5.設(shè)置是否允許匿名用戶登錄NoAnonymousno6.設(shè)置登錄歡迎信息文件的位置FortunesFile/usr/share/fortune/zippy7.設(shè)置用戶空閑時間超過限值MaxIdleTime158.設(shè)置是否允許匿名用戶建立目錄AnonymousCanCreateDirsno8.5FTP服務(wù)的配置5.設(shè)置是否允許匿名用戶登錄348.5FTP服務(wù)的配置9.設(shè)置是否允許下載由匿名用戶上傳的文件AntiWarezyes10.設(shè)置FTP服務(wù)器綁定的IP地址和端口Bind77,2111.設(shè)置匿名用戶的帶寬AnonymousBandwidth812.設(shè)置是否允許匿名用戶上傳文件AnonymousCantUploadno13.設(shè)置是否自動建立用戶主目錄CreateHomeDiryes14.設(shè)置每個用戶最大的并發(fā)連接數(shù)。PerUserLimits3:208.5FTP服務(wù)的配置9.設(shè)置是否允許下載由匿名用戶上傳的文358.6啟動和停止FTP服務(wù)1.啟動FTP服務(wù)/etc/init.d/pure-ftpdstart2.停止FTP服務(wù)/etc/init.d/pure-ftpdstop3.重新啟動FTP服務(wù)/etc/init.d/pure-ftpdrestart8.6啟動和停止FTP服務(wù)1.啟動FTP服務(wù)368.6啟動和停止FTP服務(wù)4.自動啟動FTP服務(wù)如果需要讓FTP服務(wù)隨系統(tǒng)啟動而自動加載,可以執(zhí)行“ntsysv”命令啟動服務(wù)配置程序,找到“pure-ftpd”服務(wù),在其前面加上星號(*),然后選擇“確定”即可。8.6啟動和停止FTP服務(wù)4.自動啟動FTP服務(wù)378.7測試FTP服務(wù) 確認pure-ftpd服務(wù)已經(jīng)啟動后,可在FTP客戶端訪問pure-ftpd服務(wù)器。如果能用匿名用戶anonymous和UsermanagerforPureFTPd建立的賬戶登錄,則表示pure-ftpd工作正常。 在服務(wù)器上運行以下命令可以查看當(dāng)前登錄到FTP的用戶信息/usr/local/pureftpd/sbin/pure-ftpwho8.7測試FTP服務(wù) 確認pure-ftpd服務(wù)已經(jīng)啟388.8使用pure-ftpd實現(xiàn)虛擬主機注冊服務(wù)設(shè)置pure-ftpd生成MySQL數(shù)據(jù)庫編寫用戶注冊程序設(shè)置Apache服務(wù)器并編寫實現(xiàn)用戶訪問轉(zhuǎn)向PHP程序8.8使用pure-ftpd實現(xiàn)虛擬主機注冊服務(wù)設(shè)置pure39設(shè)置pure-ftpd①將pureftpd安裝目錄下的pureftpd-mysql.conf文件復(fù)制到/etc目錄中,使用命令“vi/etc/pureftpd-mysql.conf”編輯pureftpd-mysql.conf文件,并修改如下配置選項,使Pure-FTPd能使用MySQL數(shù)據(jù)庫管理用戶。修改語句“#MYSQLServer”,將其改為“MYSQLServerlocalhost”,該語句用來設(shè)置MySQL服務(wù)器的地址。修改語句“MYSQLPasswordrootpw”,將其改為“MYSQLPasswordygjalarm”,該語句用來設(shè)置訪問MySQL用戶的口令。修改語句“MYSQLCryptcleartext”,將其改為“MYSQLCryptmd5”,該語句用來設(shè)置FTP用戶密碼的驗證方式為md5。找到如圖8-34所示的語句,將語句前的“?!比コ?,以實現(xiàn)磁盤配額和對帶寬的限制。②使用命令“chmod0777/var/www/html”修改目錄的權(quán)限,使程序能夠在該目錄下創(chuàng)建用戶子目錄。設(shè)置pure-ftpd①將pureftpd安裝目錄下的p40生成MySQL數(shù)據(jù)庫①在Linux中創(chuàng)建MySQL腳本文件pure-ftpd.sql,并在文件中添加如下語句。CREATEDATABASEpureftpd;usepureftpd;CREATETABLEusers(`User`varchar(16)NOTNULLdefault'',/*用戶名*/`Password`varchar(64)NOTNULLdefault'',/*密碼*/`Uid`varchar(11)NOTNULLdefault'-1',/*用戶ID*/`Gid`varchar(11)NOTNULLdefault'-1',/*用戶在組ID*/`Dir`varchar(128)NOTNULLdefault'',/*用戶主目錄*/`QuotaSize`smallint(5)NOTNULLdefault'0',/*磁盤配額*/`QuotaFiles`int(11)NOTNULLdefault'0',/*文件數(shù)限制*/`ULBandwidth`smallint(5)NOTNULLdefault'0',/*上傳帶寬*/`DLBandwidth`smallint(5)NOTNULLdefault'0',/*下載帶寬*/`user_url`varchar(128)NOTNULLdefault'',/*用戶Web站點的域名*/PRIMARYKEY(`User`),/*設(shè)置User字段為主鍵,避免出現(xiàn)用戶名重復(fù)*/UNIQUEKEY`User`(`User`))TYPE=MyISAM;②執(zhí)行以下命令生成MySQL數(shù)據(jù)庫。mysql-uroot-p<pure-ftpd.sql生成MySQL數(shù)據(jù)庫①在Linux中創(chuàng)建MySQL腳本文41編寫用戶注冊程序index.html的代碼如下:<html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>FTP用戶注冊</title></head><body><formname="form1"method="post"action="mk.php"><divalign="center"><palign="left">用戶名:<inputtype="text"name="textfield"></p><palign="left">密碼:<inputtype="text"name="textfield2"></p><palign="left"><inputtype="submit"name="Submit"value="提交"><inputtype="reset"name="Submit2"value="重置"></p></div></form></body></html>編寫用戶注冊程序index.html的代碼如下:42編寫用戶注冊程序mk.php程序的主要代碼如下:<?php$link=mysql_connect('localhost','root','ygjalarm');//mysql_connect(服務(wù)器名,mysql用戶名,mysql密碼)if(!$link){ die('Couldnotconnect:'.mysql_error()); exit;}//判斷是否正常打開一個到MySQL服務(wù)器的連接mysql_select_db("pureftpd",$link);$username=$_POST['textfield'];$password=$_POST['textfield2'];//將來自表單的數(shù)據(jù)賦予相應(yīng)的變量//可加入判斷語句用于判斷是否要注冊的用戶已存在$query="INSERTINTO`users`VALUES('$username',md5('$password'),'505','505','/var/www/html/$username',200,30000,0,0,'$')";$result=mysql_query($query);//將用戶信息和相應(yīng)的pure-ftp參數(shù)添加到數(shù)據(jù)庫中 $mkdir_sta=mkdir("/var/www/html/$username");chmod("/var/www/html/$username",0777);//為用戶創(chuàng)建目錄并修改目錄的訪問權(quán)限//在此可加入判斷語句用于判斷是否存在相同名稱的目錄mysql_close($link);?>編寫用戶注冊程序mk.php程序的主要代碼如下:43設(shè)置Apache服務(wù)器并編寫實現(xiàn)用戶訪問轉(zhuǎn)向PHP程序

當(dāng)用戶使用注冊的域名訪問Apache服務(wù)器時,如果服務(wù)器上不存在用戶所要訪問的目錄,就會返回一個404錯誤信息頁面給用戶。依照這一原理,我們可以設(shè)置或申請一個二級域名(如),然后利用泛域名解析的辦法,使所有的訪問請求都先指向Apache服務(wù)器的主目錄,最后編寫一個404錯誤處理的PHP程序(如404.php),將這些請求轉(zhuǎn)發(fā)到相應(yīng)用戶主目錄下。1.設(shè)置Apache服務(wù)器 使用命令“vi/etc/httpd/conf/httpd.conf”修改httpd.conf配置文件,將語句“#ErrorDocument404/error/HTTP_NOT_FOUND.html.var”,改為“ErrorDocument404/error/404.php”。設(shè)置Apache服務(wù)器并編寫實現(xiàn)用戶訪問轉(zhuǎn)向PHP程序 當(dāng)44設(shè)置Apache服務(wù)器并編寫實現(xiàn)用戶訪問轉(zhuǎn)向PHP程序2.安裝設(shè)置DNS服務(wù)器設(shè)置DNS服務(wù)器實現(xiàn)泛域名解析,設(shè)置步驟如下。①安裝DNS服務(wù),具體步驟參見第6章。②使用命令“vi/var/named/chroot/etc/named.conf”打開DNS配置文件。③在named.conf配置文件末尾添加如下語句,建立主區(qū)域。zone""{typemaster;file".zone";allow-transfer{;};};設(shè)置Apache服務(wù)器并編寫實現(xiàn)用戶訪問轉(zhuǎn)向PHP程序2.45設(shè)置Apache服務(wù)器并編寫實現(xiàn)用戶訪問轉(zhuǎn)向PHP程序④使用命令“vi/var/named/chroot/var/named/.zone”創(chuàng)建并打開.zone區(qū)域文件,在區(qū)域文件中添加如下語句。$ttl38400. IN SOA dns..admin..( 2005090503 10800 3600 604800 38400). IN NS dns..www. IN A*. IN A設(shè)置Apache服務(wù)器并編寫實現(xiàn)用戶訪問轉(zhuǎn)向PHP程序④使46設(shè)置Apache服務(wù)器并編寫實現(xiàn)用戶訪問轉(zhuǎn)向PHP程序⑤404.php程序主要代碼如下:<?php$headers=apache_request_headers();//獲取用戶的訪問域名$link=mysql_connect("localhost","root","ygjalarm");mysql_select_db("pureftpd",$link);$query="selectuserfromuserswhereuser_url='$headers'";//在數(shù)據(jù)庫中查找用戶所訪問域名相對應(yīng)的用戶名if($result=mysql_query($query)){ $row=mysql_fetch_row($result); $a=$row[0].'.'.'/'.$row[0].'/'; header("Location:http://$a"); //發(fā)送一個HTTP標(biāo)頭用于訪問域名相對應(yīng)的目錄,實現(xiàn)用戶訪問轉(zhuǎn)向}mysql_close($link);?> 404.php程序編寫完成后將它拷貝到/var/www/error目錄中。重新啟動Web服務(wù)、DNS服務(wù)和FTP服務(wù),虛擬主機注冊服務(wù)站就可以開始運行了。設(shè)置Apache服務(wù)器并編寫實現(xiàn)用戶訪問轉(zhuǎn)向PHP程序⑤4478.9練習(xí)題【練習(xí)1】建立基于虛擬用戶的FTP服務(wù)器,并根據(jù)以下要求配置FTP服務(wù)器。(1)配置FTP匿名用戶的主目錄為/var/ftp。(2)建立一個名為abc,口令為xyz的FTP賬戶。設(shè)置該賬戶的文件配額為1000個;磁盤配額為250MB;下載帶寬限制為500kB/s。(3)設(shè)置FTP服務(wù)器同時登錄到FTP服務(wù)器的最大鏈接數(shù)為100;每個IP最大鏈接數(shù)為3;用戶空閑時間超過限值為5分鐘。【練習(xí)2】在FTP客戶端連接并測試FTP服務(wù)器。8.9練習(xí)題【練習(xí)1】建立基于虛擬用戶的FTP服務(wù)器,并根據(jù)48第08章FTP服務(wù)的配置與應(yīng)用本章導(dǎo)讀FTP服務(wù)的概述FTP服務(wù)的安裝與配置虛擬用戶管理程序UsermanagerforPureFTPd的安裝使用UsermanagerforPureFTPd管理虛擬用戶FTP服務(wù)的配置啟動和停止FTP服務(wù)測試FTP服務(wù)使用pure-ftpd實現(xiàn)虛擬主機注冊服務(wù)第08章FTP服務(wù)的配置與應(yīng)用本章導(dǎo)讀498.1FTP服務(wù)的概述FTP服務(wù)的簡介FTP的工作原理匿名用戶主動模式和被動模式8.1FTP服務(wù)的概述FTP服務(wù)的簡介50FTP服務(wù)的簡介 FTP協(xié)議就是文件傳輸控制協(xié)議。它可以使文件通過網(wǎng)絡(luò)從一臺主機傳送到同一網(wǎng)絡(luò)的另一臺主機上,而不受計算機類型和操作系統(tǒng)類型的限制。無論是PC機、服務(wù)器、大型機,還是DOS操作系統(tǒng)、Windows操作系統(tǒng)、Linux操作系統(tǒng),只要雙方都支持FTP協(xié)議,就可以方便地傳送文件。FTP服務(wù)的簡介 FTP協(xié)議就是文件傳輸控制協(xié)議。它可以51FTP的工作原理FTP服務(wù)的具體工作過程如下。①當(dāng)FTP客戶端發(fā)出請求時,系統(tǒng)將動態(tài)分配一個端口(如1032)。②若FTP服務(wù)器在端口21偵聽到該請求,則在FTP客戶端的端口1032和FTP服務(wù)器的端口21之間建立起一個FTP會話連接。③當(dāng)需要傳輸數(shù)據(jù)時,F(xiàn)TP客戶端再動態(tài)打開一個連接到FTP服務(wù)器的端口20的第2個端口(如1033),這樣就可在這兩個端口之間進行數(shù)據(jù)的傳輸。當(dāng)數(shù)據(jù)傳輸完畢后,這兩個端口會自動關(guān)閉。④當(dāng)FTP客戶端斷開與FTP服務(wù)器的連接時,客戶端上動態(tài)分配的端口將自動釋放掉。FTP的工作原理FTP服務(wù)的具體工作過程如下。52匿名用戶 多數(shù)的FTP站點都提供了匿名訪問,它使所有的用戶都能通過一個通用的賬戶來訪問站點指定的公共區(qū)域。這個賬戶就是“anonymous”,它通常以E-mail地址作為口令。匿名用戶 多數(shù)的FTP站點都提供了匿名訪問,它使53主動模式和被動模式

在主動模式中,F(xiàn)TP客戶端隨機開啟一個大于1024的端口X向服務(wù)器的21號端口發(fā)起控制連接請求,然后開放X+1號端口進行監(jiān)聽;FTP服務(wù)器接受請求并建立控制連接會話。如果客戶端在控制會話中發(fā)送數(shù)據(jù)連接請求,那么服務(wù)器在接收到命令后,會用其本地的FTP數(shù)據(jù)端口(通常是20)來連接客戶端指定的端口X+1進行數(shù)據(jù)傳輸。主動模式和被動模式 在主動模式中,F(xiàn)TP客戶端隨機開啟一個54主動模式和被動模式 被動模式的控制連接和數(shù)據(jù)連接都是由FTP客戶端發(fā)起的。首先FTP客戶端隨機開啟一個大于1024的端口X向服務(wù)器的21端口發(fā)起連接,同時會開啟X+1端口。然后向服務(wù)器發(fā)送PASV命令,通知服務(wù)器自己處于被動模式。服務(wù)器收到命令后,會開放一個大于1024的端口Y進行監(jiān)聽,然后用PORTY命令通知客戶端,自己的數(shù)據(jù)端口是Y??蛻舳耸盏矫詈?,會通過X+1號端口連接服務(wù)器的端口Y,然后在兩個端口之間進行數(shù)據(jù)傳輸。這樣就能使防火墻知道用于數(shù)據(jù)連接的端口號,而使數(shù)據(jù)連接得以建立。主動模式和被動模式 被動模式的控制連接和數(shù)據(jù)連接558.2FTP服務(wù)的安裝與配置安裝Apache服務(wù)安裝MySQL數(shù)據(jù)庫和相關(guān)程序安裝pure-ftpd生成pure-ftpd服務(wù)管理腳本配置匿名用戶登錄環(huán)境8.2FTP服務(wù)的安裝與配置安裝Apache服務(wù)56安裝Apache服務(wù) 由于基于Web界面的pure-ftpd虛擬用戶管理軟件UsermanagerforPureFTPd使用PHP編寫而成,因此在使用前應(yīng)安裝Apache服務(wù)器并建立好PHP的運行環(huán)境。安裝Apache的具體方法參見第7章的相關(guān)內(nèi)容。安裝Apache服務(wù) 由于基于Web界面的pure-ftp57安裝MySQL數(shù)據(jù)庫和相關(guān)程序1.安裝MySQL服務(wù)及相關(guān)程序2.安裝php-mysql支持包3.啟動MySQL服務(wù)4.設(shè)置自動運行MySQL服務(wù)5.修改MySQL用戶root的口令安裝MySQL數(shù)據(jù)庫和相關(guān)程序1.安裝MySQL服務(wù)及相58安裝pure-ftpd到/pub/pure-ftpd/releases/pure-ftpd-1.0.21.tar.gz處下載pure-ftpd最新的版。(1)解壓安裝包tarzxvfpure-ftpd-1.0.21.tar.gz(2)進入解壓目錄cdpure-ftpd-1.0.21安裝pure-ftpd到http://download.p59安裝pure-ftpd(3)配置pure-ftpd并指定各種安裝選項./configure\--prefix=/usr/local/pureftpd\--with-mysql\--with-virtualchroot\--with-virtualhosts\--with-virtualroot\--with-diraliases\--with-uploadscript\--with-cookie\--with-quotas\--with-sysquotas\--with-ratios\--with-throttling\--with-largefile\--with-peruserlimits\--with-paranoidmsg\--with-welcomemsg\--with-language=simplified-chinese安裝pure-ftpd(3)配置pure-ftpd并指定各種60安裝pure-ftpd(4)編譯make(5)安裝makeinstall(6)生成配置腳本cpconfiguration-file/pure-config.pl/usr/local/pureftpd/sbin/(7)修改配置腳本權(quán)限chmod+x/usr/local/pureftpd/sbin/pure-config.pl(8)建立FTP主目錄mkdir/ftproot安裝pure-ftpd(4)編譯61生成pure-ftpd服務(wù)管理腳本

①進入pure-ftpd解壓目錄,編輯contrib子目錄里的redhat.init文件。找到語句“fullpath=/usr/local/sbin/$prog”,將其改為“fullpath=/usr/local/pureftpd/sbin/$prog”;找到語句“pureftpwho=/usr/local/sbin/pure-ftpwho”,將其改為“pureftpwho=/usr/local/pureftpd/sbin/pure-ftpwho”。生成pure-ftpd服務(wù)管理腳本 ①進入pure-ft62生成pure-ftpd服務(wù)管理腳本②執(zhí)行以下命令將文件redhat.init復(fù)制到/etc目錄中并重命名為pure-ftpd。cpcontrib/redhat.init/etc/init.d/pure-ftpd③執(zhí)行以下命令設(shè)置文件為可執(zhí)行。chmod+x/etc/init.d/pure-ftpd④執(zhí)行命令chkconfig--addpure-ftpd添加pure-ftpd服務(wù)到系統(tǒng)中,使pure-ftpd可以隨系統(tǒng)啟動而自動運行。生成pure-ftpd服務(wù)管理腳本②執(zhí)行以下命令將文件re63配置匿名用戶登錄環(huán)境使用以下命令為其建立目錄/var/ftp。mkdir/var/ftp 如果希望FTP匿名用戶能夠上傳文件到FTP服務(wù)器,還要保證ftp系統(tǒng)賬戶對主目錄有寫入權(quán)限??梢酝ㄟ^以下命令設(shè)置/var/ftp主目錄的所有者和所有組為ftp,使得ftp系統(tǒng)賬戶對主目錄有寫入權(quán)限。chownftp:ftp/var/ftp配置匿名用戶登錄環(huán)境使用以下命令為其建立目錄/var/ft648.3虛擬用戶管理程序UsermanagerforPureFTPd的安裝安裝UsermanagerforPureFTPd配置UsermanagerforPureFTPd8.3虛擬用戶管理程序UsermanagerforPu65安裝UsermanagerforPureFTPd到/files/pureftpd/ftp_v2.1.tar.gz處下載UsermanagerforPureFTPd。①執(zhí)行以下命令解壓安裝包。tarzxvfftp_v2.1.tar.gz②執(zhí)行下面的命令將UsermanagerforPureFTPd目錄放置在Apache的主目錄中。cp-aftp/var/www/html/pureftp安裝UsermanagerforPureFTPd到ht66配置UsermanagerforPureFTPd①確保httpd服務(wù)器和MySQL服務(wù)啟動后,使用Web瀏覽器訪問“http://Linux服務(wù)器的IP”或“域名/pureftp/install.php”會出現(xiàn)UsermanagerforPureFTPd安裝向?qū)Ы缑媾渲肬sermanagerforPureFTPd①67配置UsermanagerforPureFTPd配置UsermanagerforPureFTPd68配置UsermanagerforPureFTPd配置UsermanagerforPureFTPd69配置UsermanagerforPureFTPd配置UsermanagerforPureFTPd70配置UsermanagerforPureFTPd配置UsermanagerforPureFTPd71配置UsermanagerforPureFTPd配置UsermanagerforPureFTPd72配置UsermanagerforPureFTPd配置UsermanagerforPureFTPd73配置UsermanagerforPureFTPd配置UsermanagerforPureFTPd74配置UsermanagerforPureFTPd配置UsermanagerforPureFTPd75配置UsermanagerforPureFTPd在/etc目錄中創(chuàng)建pureftpd-mysql.conf文件,并將圖8-21中的灰色底紋的所有配置語句復(fù)制到文件中。重新啟動PureFTPd服務(wù)器。單擊“Step7”按鈕,完成設(shè)置。配置UsermanagerforPureFTPd在/768.4使用UsermanagerforPureFTPd管理虛擬用戶 確保在httpd服務(wù)器啟動后,使用Web瀏覽器訪問“http://Linux服務(wù)器的IP”或“域名/pureftp/index.php”會出現(xiàn)認證頁面8.4使用UsermanagerforPureFTPd778.4使用UsermanagerforPureFTPd管理虛擬用戶登錄后就會進入UsermanagerforPureFTPd管理主頁面8.4使用UsermanagerforPureFTPd788.4使用UsermanagerforPureFTPd管理虛擬用戶 單擊“按此新增賬號”超鏈接添加FTP賬戶,在增加用戶頁面中可以設(shè)置用戶的文件配額、磁盤配額、上傳/下載比和帶寬等信息。8.4使用UsermanagerforPureFTPd798.4使用UsermanagerforPureFTPd管理虛擬用戶 pure-ftpd對FTP賬戶有著較合理且嚴密的管理體系,可以控制FTP賬戶以下功能。(1)文件配額(2)磁盤配額(3)上傳/下載比率(4)上傳/下載帶寬(5)IP訪問地址8.4使用UsermanagerforPureFTPd808.5FTP服務(wù)的配置1.設(shè)置是否將用戶鎖定在主目錄中ChrootEveryoneyes2.設(shè)置同時登錄到FTP服務(wù)器的最大鏈接數(shù)MaxClientsNumber503.設(shè)置每個IP最大鏈接數(shù)MaxClientsPerIP84.設(shè)置是否只允許匿名用戶連接AnonymousOnlyno8.5FTP服務(wù)的配置1.設(shè)置是否將用戶鎖定在主目錄中818.5FTP服務(wù)的配置5.設(shè)置是否允許匿名用戶登錄NoAnonymousno6.設(shè)置登錄歡迎信息文件的位置FortunesFile/usr/share/fortune/zippy7.設(shè)置用戶空閑時間超過限值MaxIdleTime158.設(shè)置是否允許匿名用戶建立目錄AnonymousCanCreateDirsno8.5FTP服務(wù)的配置5.設(shè)置是否允許匿名用戶登錄828.5FTP服務(wù)的配置9.設(shè)置是否允許下載由匿名用戶上傳的文件AntiWarezyes10.設(shè)置FTP服務(wù)器綁定的IP地址和端口Bind77,2111.設(shè)置匿名用戶的帶寬AnonymousBandwidth812.設(shè)置是否允許匿名用戶上傳文件AnonymousCantUploadno13.設(shè)置是否自動建立用戶主目錄CreateHomeDiryes14.設(shè)置每個用戶最大的并發(fā)連接數(shù)。PerUserLimits3:208.5FTP服務(wù)的配置9.設(shè)置是否允許下載由匿名用戶上傳的文838.6啟動和停止FTP服務(wù)1.啟動FTP服務(wù)/etc/init.d/pure-ftpdstart2.停止FTP服務(wù)/etc/init.d/pure-ftpdstop3.重新啟動FTP服務(wù)/etc/init.d/pure-ftpdrestart8.6啟動和停止FTP服務(wù)1.啟動FTP服務(wù)848.6啟動和停止FTP服務(wù)4.自動啟動FTP服務(wù)如果需要讓FTP服務(wù)隨系統(tǒng)啟動而自動加載,可以執(zhí)行“ntsysv”命令啟動服務(wù)配置程序,找到“pure-ftpd”服務(wù),在其前面加上星號(*),然后選擇“確定”即可。8.6啟動和停止FTP服務(wù)4.自動啟動FTP服務(wù)858.7測試FTP服務(wù) 確認pure-ftpd服務(wù)已經(jīng)啟動后,可在FTP客戶端訪問pure-ftpd服務(wù)器。如果能用匿名用戶anonymous和UsermanagerforPureFTPd建立的賬戶登錄,則表示pure-ftpd工作正常。 在服務(wù)器上運行以下命令可以查看當(dāng)前登錄到FTP的用戶信息/usr/local/pureftpd/sbin/pure-ftpwho8.7測試FTP服務(wù) 確認pure-ftpd服務(wù)已經(jīng)啟868.8使用pure-ftpd實現(xiàn)虛擬主機注冊服務(wù)設(shè)置pure-ftpd生成MySQL數(shù)據(jù)庫編寫用戶注冊程序設(shè)置Apache服務(wù)器并編寫實現(xiàn)用戶訪問轉(zhuǎn)向PHP程序8.8使用pure-ftpd實現(xiàn)虛擬主機注冊服務(wù)設(shè)置pure87設(shè)置pure-ftpd①將pureftpd安裝目錄下的pureftpd-mysql.conf文件復(fù)制到/etc目錄中,使用命令“vi/etc/pureftpd-mysql.conf”編輯pureftpd-mysql.conf文件,并修改如下配置選項,使Pure-FTPd能使用MySQL數(shù)據(jù)庫管理用戶。修改語句“#MYSQLServer”,將其改為“MYSQLServerlocalhost”,該語句用來設(shè)置MySQL服務(wù)器的地址。修改語句“MYSQLPasswordrootpw”,將其改為“MYSQLPasswordygjalarm”,該語句用來設(shè)置訪問MySQL用戶的口令。修改語句“MYSQLCryptcleartext”,將其改為“MYSQLCryptmd5”,該語句用來設(shè)置FTP用戶密碼的驗證方式為md5。找到如圖8-34所示的語句,將語句前的“?!比コ?,以實現(xiàn)磁盤配額和對帶寬的限制。②使用命令“chmod0777/var/www/html”修改目錄的權(quán)限,使程序能夠在該目錄下創(chuàng)建用戶子目錄。設(shè)置pure-ftpd①將pureftpd安裝目錄下的p88生成MySQL數(shù)據(jù)庫①在Linux中創(chuàng)建MySQL腳本文件pure-ftpd.sql,并在文件中添加如下語句。CREATEDATABASEpureftpd;usepureftpd;CREATETABLEusers(`User`varchar(16)NOTNULLdefault'',/*用戶名*/`Password`varchar(64)NOTNULLdefault'',/*密碼*/`Uid`varchar(11)NOTNULLdefault'-1',/*用戶ID*/`Gid`varchar(11)NOTNULLdefault'-1',/*用戶在組ID*/`Dir`varchar(128)NOTNULLdefault'',/*用戶主目錄*/`QuotaSize`smallint(5)NOTNULLdefault'0',/*磁盤配額*/`QuotaFiles`int(11)NOTNULLdefault'0',/*文件數(shù)限制*/`ULBandwidth`smallint(5)NOTNULLdefault'0',/*上傳帶寬*/`DLBandwidth`smallint(5)NOTNULLdefault'0',/*下載帶寬*/`user_url`varchar(128)NOTNULLdefault'',/*用戶Web站點的域名*/PRIMARYKEY(`User`),/*設(shè)置User字段為主鍵,避免出現(xiàn)用戶名重復(fù)*/UNIQUEKEY`User`(`User`))TYPE=MyISAM;②執(zhí)行以下命令生成MySQL數(shù)據(jù)庫。mysql-uroot-p<pure-ftpd.sql生成MySQL數(shù)據(jù)庫①在Linux中創(chuàng)建MySQL腳本文89編寫用戶注冊程序index.html的代碼如下:<html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>FTP用戶注冊</title></head><body><formname="form1"method="post"action="mk.php"><divalign="center"><palign="left">用戶名:<inputtype="text"name="textfield"></p><palign="left">密碼:<inputtype="text"name="textfield2"></p><palign="left"><inputtype="submit"name="Submit"value="提交"><inputtype="reset"name="Submit2"value="重置"></p></div></form></body></html>編寫用戶注冊程序index.html的代碼如下:90編寫用戶注冊程序mk.php程序的主要代碼如下:<?php$link=mysql_connect('localhost','root','ygjalarm');//mysql_connect(服務(wù)器名,mysql用戶名,mysql密碼)if(!$link){ die('Couldnotconnect:'.mysql_error()); exit;}//判斷是否正常打開一個到MySQL服務(wù)器的連接mysql_select_db("pureftpd",$link);$username=$_POST['textfield'];$password=$_POST['textfield2'];//將來自表單的數(shù)據(jù)賦予相應(yīng)的變量//可加入判斷語句用于判

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論