RHEL 5.2下vsftp配置全教程分享第1/2頁(yè)
FTP文件傳送協(xié)議(File Transfer Protocol,簡(jiǎn)稱FTP),是一個(gè)用于從一臺(tái)主機(jī)到另送文件的協(xié)議。該協(xié)議的歷史可追溯到1971年(當(dāng)時(shí)因特網(wǎng)尚處于實(shí)驗(yàn)之中),不過(guò)至今仍然極為流行。
FTP在RFC 959中具體說(shuō)明。HTTP和FTP都是文件傳送協(xié)議,它們有許多共同的特征,比如都運(yùn)行在TCP之上等。不過(guò)這兩個(gè)應(yīng)用層協(xié)議之間存在重要的差別。最重要的差別是FTP使用兩個(gè)并行的TCP連接,一個(gè)是控制連接,一個(gè)是數(shù)據(jù)連接??刂七B接用于在客戶主機(jī)和服務(wù)器主機(jī)之間發(fā)送控制信息,例如用戶名和口令、改變遠(yuǎn)程目錄的命令、取來(lái)或放回文件的命令。數(shù)據(jù)連接用于真正發(fā)送文件。在整個(gè)會(huì)話期間,F(xiàn)TP服務(wù)器必須維護(hù)關(guān)于用戶的狀態(tài)。具體地說(shuō),服務(wù)器必須把控制連接與特定的用戶關(guān)聯(lián)起來(lái),必須隨用戶在遠(yuǎn)程目錄樹中的游動(dòng)跟蹤其當(dāng)前目錄。為每個(gè)活躍的用戶會(huì)話保持這些狀態(tài)信息極大地限制了FTP能夠同時(shí)維護(hù)的會(huì)話數(shù)。無(wú)狀態(tài)的HTTP卻不必維護(hù)任何用戶狀態(tài)信息。FTP服務(wù)可以工作在主動(dòng)模式(active)和被動(dòng)模式(passive)二種模式下:
主動(dòng)模式(一般FTP服務(wù)器默認(rèn)模式):FTP客戶端開啟一個(gè)隨機(jī)選擇的TCP端口連接FTP服務(wù)器的21端口請(qǐng)求建立連接。當(dāng)完成Three-Way Handshake后,連接就成功建立,但這僅是控制連接的建立。當(dāng)兩端需要傳送數(shù)據(jù)的時(shí)候,客戶端通過(guò)命令通道用一個(gè)port command告訴服務(wù)器,客戶端可以用另一個(gè)TCP端口做數(shù)據(jù)通道。然后服務(wù)器用20端口和剛才客戶端所通知的TCP端口建立數(shù)據(jù)連接。注意:連接方向是從服務(wù)器到客戶端的,TCP分組中會(huì)有一個(gè)SYN flag。 然后客戶端會(huì)返回一個(gè)帶ACK flag的確認(rèn)分組,并完成另一次的Three-Way Handshake 過(guò)程。這時(shí)候,數(shù)據(jù)連接才能成功建立。開始數(shù)據(jù)傳送。
被動(dòng)模式:FTP客戶端開啟一個(gè)隨機(jī)選擇的TCP端口連接FTP服務(wù)器的21端口請(qǐng)求建立連接,完成控制連接的建立。當(dāng)兩端需要傳送數(shù)據(jù)的時(shí)候,客戶端 通過(guò)命令通道發(fā)送一個(gè)PASV command給服務(wù)器,要求進(jìn)入被動(dòng)傳輸模式。然后 服務(wù)器像上述的主動(dòng)模式第 2 步驟那樣,挑一個(gè)TCP端口,并用控制連接告訴 客戶端。 然后客戶端用另一個(gè)TCP端口連接剛才服務(wù)器告知的TCP端口來(lái)建立數(shù)據(jù)通道。此時(shí)分組中帶有SYN flag。服務(wù)器確認(rèn)后回送一個(gè)ACK分組。并完成所有握手過(guò)程、成功建立數(shù)據(jù)通道,開始數(shù)據(jù)傳送。
目前可以實(shí)現(xiàn)FTP服務(wù)的軟件非常多,比如Windows平臺(tái)下的IIS、Serv-U,Linux平臺(tái)下的wuFTP、vsftp等。vsftp(Very Secure FTP)是一種在Unix/Linux中非常安全且快速穩(wěn)定的FTP服務(wù)器,目前已經(jīng)被許多大型站點(diǎn)所采用,vsftpd也是RHEL默認(rèn)的ftp服務(wù),本文主要講述vsftp相關(guān)配置方法。
一、安裝vsftp。
rpm -ivh vsftpd-2.0.5-12.el5.rpm |
安裝完成后,vsftpd配置文件為/etc/vsftpd/vsftpd.conf,通過(guò)以下命令可啟動(dòng)vsftpd并將其設(shè)置為自動(dòng)啟動(dòng)。
service vsftpd restart |
二、第一個(gè)FTP站點(diǎn)。
vsftp在安裝完成并啟動(dòng)后,即可使用。默認(rèn)情況下可以使用匿名用戶,下圖中使用ftp命令進(jìn)行。
1:使用ftp命令連接到ftp服務(wù)器。
2:因?yàn)槟壳笆褂媚涿脩暨B接到ftp服務(wù)器,所有輸入匿名用戶(一般ftp服務(wù)器匿名為anonymous,這里的ftp用戶是在安裝vsftp時(shí)自動(dòng)創(chuàng)建的,該用戶也是vsftp的匿名用戶)。
在連接到vsftp后,其默認(rèn)目錄為該用戶的家目錄,而ftp用戶的家目錄位于/var/ftp,所有。下圖是用系統(tǒng)其它用戶連接ftp服務(wù)器(如果在RHEL中開啟SELinux,需要運(yùn)行以下命令set sebool -P ftp_home_dir=1)。
參數(shù) |
說(shuō)明 |
listen_address=ip address |
指定偵聽IP |
listen_port=port_value |
指定偵聽端口,默認(rèn)21 |
anonymous_enable=YES |
是否允許使用匿名帳戶 |
local_enable=YES |
是否允許本地用戶登錄 |
nopriv_user=ftp |
指定vsftpd服務(wù)的運(yùn)行帳戶,不指定時(shí)使用ftp |
write_enable=YES |
是否允許寫入 |
anon_upload_enable=YES |
匿名用戶是否可上傳文件 |
anon_mkdir_write_enable=YES |
匿名用戶是否建立目錄 |
dirmessage_enable=YES |
進(jìn)入每個(gè)目錄是顯示歡迎信息,在每個(gè)目錄下建立.message文件在里面寫歡迎信息 |
xferlog_enable=YES |
上傳/下載文件時(shí)記錄日志 |
connect_from_port_20=YES |
是否使用20端口傳輸數(shù)據(jù)(是否使用主動(dòng)模式) |
chown_uploads=YES、chown_username=whoever |
修改匿名用戶上傳文件的擁有者 |
xferlog_file=/var/log/vsftpd.log |
日志文件 |
xferlog_std_format=YES |
使用標(biāo)準(zhǔn)文件日志 |
idle_session_timeout=600 |
會(huì)話超時(shí),客戶端連接到ftp但未操作 |
data_connection_timeout=120 |
數(shù)據(jù)傳輸超時(shí) |
async_abor_enable=YES |
是否允許客戶端使用sync等命令 |
ascii_upload_enable=YES、ascii_download_enable=YES |
是否允許上傳/下載二進(jìn)制文件 |
chroot_local_user=YES |
限制所有的本地用戶在自家目錄 |
chroot_list_enable=YES、chroot_list_file=/etc/vsftpd/chroot_list |
指定不能離開家目錄的用戶,將用戶名一個(gè)一行寫在/etc/vsftpd/chroot_list文件里,使用此方法時(shí)必須chroot_local_user=NO |
ls_recurse_enable=YES |
是否允許使用ls -R等命令 |
listen=YES |
開啟ipv4監(jiān)聽 |
listen_ipv6=YES |
開啟ipv6監(jiān)聽 |
pam_service_name=vsftpd |
使用pam模塊控制,vsftpd文件在/etc/pam.d目錄下 |
userlist_enable=YES |
此選項(xiàng)被激活后,vsftpd將讀取userlist_file參數(shù)所指定的文件中的用戶列表。當(dāng)列表中的用戶登錄FTP服務(wù)器時(shí),該用戶在提示輸入密碼之前就被禁止了。即該用戶名輸入后,vsftpd查到該用戶名在列表中,vsftpd就直接禁止掉該用戶,不會(huì)再進(jìn)行詢問(wèn)密碼等后續(xù)步聚 |
userlist_deny=YES |
決定禁止還是只允許由userlist_file指定文件中的用戶登錄FTP服務(wù)器。此選項(xiàng)在userlist_enable 選項(xiàng)啟動(dòng)后才生效。YES,默認(rèn)值,禁止文件中的用戶登錄,同時(shí)也不向這些用戶發(fā)出輸入密碼的提示。NO,只允許在文件中的用戶登錄FTP服務(wù)器 |
tcp_wrappers=YES |
是否允許tcp_wrappers管理 |
local_root=/home/ftp |
所有用戶的根目錄,,對(duì)匿名用戶無(wú)效 |
anon_max_rate |
匿名用戶的最大傳輸速度,單位是Byts/s |
local_max_rate |
本地用戶的最大傳輸速度,單位是Byts/s |
download_enable= YES |
是否允許下載 |
在上面所有參數(shù)中,只要涉及到上傳的參數(shù)在啟用后還需要對(duì)應(yīng)本地目錄有寫入權(quán)限。
四、身份認(rèn)證。
在上面的參數(shù)中,可以通過(guò)將anonymous_enable設(shè)置為NO禁止匿名用戶訪問(wèn)。在禁止匿名用戶后,可通過(guò)以下方式的授權(quán)用戶:
本地用戶:以/etc/passwd中的用戶名為認(rèn)證方式
虛擬用戶:支持將用戶名和口令保存在數(shù)據(jù)庫(kù)文件或數(shù)據(jù)庫(kù)服務(wù)器中。相對(duì)于FTP的本地用戶形式來(lái)說(shuō),虛擬用戶只是FTP服務(wù)器的專有用戶,虛擬用戶只能訪問(wèn)FTP服務(wù)器所提供的資源,這大大增強(qiáng)系統(tǒng)本身的安全性。相對(duì)于匿名用戶而言,虛擬用戶需要用戶名和密碼才能獲取FTP服務(wù)器中的文件,增加了對(duì)用戶和下載的可管理性。對(duì)于需要提供下載服務(wù),但又不希望所有人都可以匿名下載;既需要對(duì)下載用戶進(jìn)行管理,又考慮到主機(jī)安全和管理方便的FTP站點(diǎn)來(lái)說(shuō),虛擬用戶是一種極好的解決方案
本地用戶在這里就不多介紹了,主要介紹實(shí)現(xiàn)虛擬用戶的二種方法:
1、使用本地?cái)?shù)據(jù)文件:
生成虛擬用戶文件,建立/etc/vsftpd/vuser.txt文件,內(nèi)容如下:
tonyzhang #虛擬用戶1 |
安裝生成數(shù)據(jù)庫(kù)rpm包:db4-utils。
rpm -ivh db4-utils-4.3.29-9.fc6.i386.rpm |
生成虛擬用戶數(shù)據(jù)庫(kù)。
db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.txt |
創(chuàng)建本地映射用戶,修改本地映射用戶家目錄權(quán)限。
useradd -d /var/ftp/vuserdir -s /sbin/nologin vuser |
修改pam認(rèn)證文件/etc/pam.d/vsftpd,將原有內(nèi)容注釋。
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vusers |
修改/etc/vsfptd/vsftp.conf,增加以下內(nèi)容。
guest_enable=YES |
相關(guān)文章
Win10搭建FTP服務(wù)器實(shí)現(xiàn)局域網(wǎng)內(nèi)訪問(wèn)
這篇文章主要為大家詳細(xì)介紹了Win10搭建FTP服務(wù)器實(shí)現(xiàn)在局域網(wǎng)內(nèi)訪問(wèn),文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08Windows?Server?2012下FTP服務(wù)器站點(diǎn)搭建程序
這篇文章主要為大家詳細(xì)介紹了Windows?Server?2012下FTP服務(wù)器站點(diǎn)搭建程序,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08