Linux學(xué)習(xí)筆記 文件服務(wù)Vsftp詳細(xì)介紹
掃描二維碼
隨時(shí)隨地手機(jī)看文章
知識(shí)點(diǎn):
1、FTP使用TCP連接和TCP端口
2、在進(jìn)行通信時(shí),F(xiàn)TP需要建立兩個(gè)TCP連接:
一個(gè)用于控制信息,TCP端口號(hào)缺省為21
一個(gè)用于數(shù)據(jù)傳輸,TCP端口號(hào)缺省為20
3、Vsftp是一個(gè)基于GPL發(fā)布的類(lèi)Unix系統(tǒng)上的FTP服務(wù)器
4、其名稱(chēng)中的VS即“Verysecure”的意思,可見(jiàn)安全性高。
配置:
1、查看是否安裝了Vsftp
#rpm –qa vsftpd
2、安裝
放入第三張光盤(pán)
#mount /mnt/cdrom
#cd /mnt/cdrom/RedHat/RPMS
#rpm –ivh vsftpd-1.1.3-8.i386.rpm
#cd;eject
3、Vsftp服務(wù)啟動(dòng)與停止
#service vsftpd start 啟動(dòng)
#service vsftpd stop 停止
#service vsftpd restart 重啟
永久啟動(dòng):#setup
#ps –ax | grep vsftpd 查看進(jìn)程是否啟動(dòng)。
#chkconfig –level 2345 vsftpd on 設(shè)置在系統(tǒng)啟動(dòng)時(shí),自動(dòng)啟動(dòng)進(jìn)程。
4、訪問(wèn)Vsftp
進(jìn)入 ftp 192.168.0.1
輸入密碼進(jìn)入后:ls 查看 put 上傳 get下載
離開(kāi)bye
5、配置文件
主配置文件 /etc/vsftpd/vsftpd.conf
用戶控制文件 /etc/vsftpd.ftpusers 作用:指定哪些用戶不能訪問(wèn)FTP,相當(dāng)于一個(gè)黑名單
主配置文件:
option=value
要注意的是,等號(hào)兩邊不能加空白,不然是不正確的設(shè)定。
===ascii 設(shè)定=====================
ascii_download_enable
管控是否可用ASCII模式下載。默認(rèn)值為NO.
ascii_upload_enable
管控是否可用ASCII模式上傳。默認(rèn)值為NO.
===個(gè)別使用者設(shè)定===================
chroot_list_enable
如果啟動(dòng)這項(xiàng)功能,則所有的本機(jī)使用者登入均可進(jìn)到根目錄之外的數(shù)據(jù)夾,除了列在/etc/vsftpd.chroot_list之中的使用者之外。默認(rèn)值為NO.
userlist_enable
用法:YES/NO
若是啟動(dòng)此功能,則會(huì)讀取/etc/vsftpd.user_list 當(dāng)中的使用者名稱(chēng)。此項(xiàng)功能可以在詢問(wèn)密碼前就出現(xiàn)失敗訊息,而不需要檢驗(yàn)密碼的程序。默認(rèn)值為關(guān)閉。
userlist_deny
用法:YES/NO
這個(gè)選項(xiàng)只有在userlist_enable啟動(dòng)時(shí)才會(huì)被檢驗(yàn)。
如果將這個(gè)選項(xiàng)設(shè)為YES,則在/etc/vsftpd.user_list 中的使用者將無(wú)法登入,
若設(shè)為NO,則只有在/etc/vsftpd.user_list中的使用者才能登入。
而且此項(xiàng)功能可以在詢問(wèn)密碼前就出現(xiàn)錯(cuò)誤訊息,而不需要檢驗(yàn)密碼的程序。
user_config_dir
定義個(gè)別使用者設(shè)定文件所在的目錄,
例如定義user_config_dir=/etc/vsftpd/userconf,且主機(jī)上有使用者test1,test2,那我們可以在user_config_dir 的目錄新增文件名為test1以及test2.若是test1登入,則會(huì)讀取user_config_dir下的test1 這個(gè)檔案內(nèi)的設(shè)定。
默認(rèn)值為無(wú)。
==歡迎語(yǔ)設(shè)定=====================
dirmessage_enable
如果啟動(dòng)這個(gè)選項(xiàng),使用者第一次進(jìn)入一個(gè)目錄時(shí),會(huì)檢查該目錄下是否有。message這個(gè)檔案,若是有,則會(huì)出現(xiàn)此檔案的內(nèi)容,通常這個(gè)檔案會(huì)放置歡迎話語(yǔ),或是對(duì)該目錄的說(shuō)明。默認(rèn)值為開(kāi)啟。
banner_file
當(dāng)使用者登入時(shí),會(huì)顯示此設(shè)定所在的檔案內(nèi)容,通常為歡迎話語(yǔ)或是說(shuō)明。默認(rèn)值為無(wú)。
ftpd_banner
這邊可定義歡迎話語(yǔ)的字符串,相較于banner_file是檔案的形式,而ftpd_banner是字串的格式。默認(rèn)值為無(wú)。
===特殊安全設(shè)定====================
chroot_local_user
如果設(shè)定為YES,那么所有的本機(jī)的使用者都可以切換到根目錄以外的數(shù)據(jù)夾。默認(rèn)值值為NO.
hide_ids
如果啟動(dòng)這項(xiàng)功能,所有檔案的擁有者與群組都為ftp,也就是使用者登入使用ls -al之類(lèi)的指令,所看到的檔案擁有者跟群組均為ftp.默認(rèn)值為關(guān)閉。
ls_recurse_enable
若是啟動(dòng)此功能,則允許登入者使用ls -R 這個(gè)指令。默認(rèn)值為NO.
write_enable
用法:YES/NO
這個(gè)選項(xiàng)可以控制FTP的指令是否允許更改file system,譬如STOR、DELE、RNFR、RNTO、MKD、RMD、APPE以及SITE.默認(rèn)值為關(guān)閉。
setproctitle_enable
用法:YES/NO
啟動(dòng)這項(xiàng)功能,vsftpd 會(huì)將所有聯(lián)機(jī)的狀況已不同的process 呈現(xiàn)出來(lái),換句話說(shuō),使用ps -ef這類(lèi)的指令就可以看到聯(lián)機(jī)的狀態(tài)。默認(rèn)值為關(guān)閉。
tcp_wrappers
用法:YES/NO
如果啟動(dòng),則會(huì)將vsftpd與tcp_wrapper結(jié)合,也就是可以在/etc/hosts.allow與/etc/hosts.deny中定義允許或拒絕的來(lái)源地址。
pam_service_name
這邊定義PAM所使用的名稱(chēng),默認(rèn)值為vsftpd.
secure_chroot_dir
這個(gè)選項(xiàng)必須指定一個(gè)空的數(shù)據(jù)夾且任何登入者都不能有寫(xiě)入的權(quán)限,當(dāng)vsftpd不需要file system的權(quán)限時(shí),就會(huì)將使用者限制在此數(shù)據(jù)夾中。默認(rèn)值為/usr/share/empty.
===紀(jì)錄文件設(shè)定=====================
xferlog_enable
用法:YES/NO
如果啟動(dòng),上傳與下載的信息將被完整紀(jì)錄在底下xferlog_file 所定義的檔案中。默認(rèn)值為開(kāi)啟。
xferlog_file
這個(gè)選項(xiàng)可設(shè)定紀(jì)錄文件所在的位置,默認(rèn)值為/var/log/vsftpd.log.
xferlog_std_format
如果啟動(dòng),則紀(jì)錄文件將會(huì)寫(xiě)為xferlog 的標(biāo)準(zhǔn)格式,如同wu-ftpd一般。默認(rèn)值為關(guān)閉。
===逾時(shí)設(shè)定======================
accept_timeout
接受建立聯(lián)機(jī)的逾時(shí)設(shè)定,單位為秒。默認(rèn)值為60.
connect_timeout
響應(yīng)PORT 方式的數(shù)據(jù)聯(lián)機(jī)的逾時(shí)設(shè)定,單位為秒。默認(rèn)值為60.
data_connection_timeout
建立數(shù)據(jù)聯(lián)機(jī)的逾時(shí)設(shè)定。默認(rèn)值為300秒。
idle_session_timeout
發(fā)呆的逾時(shí)設(shè)定,若是超出這時(shí)間沒(méi)有數(shù)據(jù)的傳送或是指令的輸入,則會(huì)強(qiáng)迫斷線,單位為秒。默認(rèn)值為300秒。[!--empirenews.page--]
===速率限制======================
anon_max_rate
匿名登入所能使用的最大傳輸速度,單位為每秒多少bytes,0表示不限速度。默認(rèn)值為0.
local_max_rate
本機(jī)使用者所能使用的最大傳輸速度,單位為每秒多少bytes,0表示不限速度。默認(rèn)值為0.
===新增檔案權(quán)限設(shè)定==================
anon_umask
匿名登入者新增檔案時(shí)的umask 數(shù)值。默認(rèn)值為077.
file_open_mode
上傳檔案的權(quán)限,與chmod 所使用的數(shù)值相同。默認(rèn)值為0666.
local_umask
本機(jī)登入者新增檔案時(shí)的umask 數(shù)值。默認(rèn)值為077.
===port 設(shè)定======================
connect_from_port_20
用法:YES/NO
若設(shè)為YES,則強(qiáng)迫f(wàn)tp-data 的數(shù)據(jù)傳送使用port 20.默認(rèn)值為YES.
ftp_data_port
設(shè)定ftp 數(shù)據(jù)聯(lián)機(jī)所使用的port.默認(rèn)值為20.
listen_port
FTP server 所使用的port.默認(rèn)值為21.
pasv_max_port
建立資料聯(lián)機(jī)所可以使用port范圍的上界,0表示任意。默認(rèn)值為0.
pasv_min_port
建立資料聯(lián)機(jī)所可以使用port范圍的下界,0表示任意。默認(rèn)值為0.
===其它========================
anon_root
使用匿名登入時(shí),所登入的目錄。默認(rèn)值為無(wú)。
local_enable
用法:YES/NO
啟動(dòng)此功能則允許本機(jī)使用者登入。默認(rèn)值為YES.
local_root
本機(jī)使用者登入時(shí),將被更換到定義的目錄下。默認(rèn)值為無(wú)。
text_userdb_names
用法:YES/NO
當(dāng)使用者登入后使用ls -al 之類(lèi)的指令查詢?cè)摍n案的管理權(quán)時(shí),默認(rèn)值會(huì)出現(xiàn)擁有者的UID,而不是該檔案擁有者的名稱(chēng)。若是希望出現(xiàn)擁有者的名稱(chēng),則將此功能開(kāi)啟。默認(rèn)值為NO.
pasv_enable
若是設(shè)為NO,則不允許使用PASV 的模式建立數(shù)據(jù)的聯(lián)機(jī)。默認(rèn)值為開(kāi)啟。
===更換檔案所有權(quán)===================
chown_uploads
用法:YES/NO
若是啟動(dòng),所有匿名上傳數(shù)據(jù)的擁有者將被更換為chown_username 當(dāng)中所設(shè)定的使用者。這樣的選項(xiàng)對(duì)于安全及管理,是很有用的。默認(rèn)值為NO.
chown_username
這里可以定義當(dāng)匿名登入者上傳檔案時(shí),該檔案的擁有者將被置換的使用者名稱(chēng)。默認(rèn)值為root.
===guest 設(shè)定======================
guest_enable
用法:YES/NO
若是啟動(dòng)這項(xiàng)功能,所有的非匿名登入者都視為guest.默認(rèn)值為關(guān)閉。
guest_username
這里將定義guest 的使用者名稱(chēng)。默認(rèn)值為ftp.
===anonymous 設(shè)定====================
anonymous_enable
用法:YES/NO
管控使否允許匿名登入,YES 為允許匿名登入,NO 為不允許。默認(rèn)值為YES.
no_anon_password
若是啟動(dòng)這項(xiàng)功能,則使用匿名登入時(shí),不會(huì)詢問(wèn)密碼。默認(rèn)值為NO.
anon_mkdir_write_enable
用法:YES/NO
如果設(shè)為YES,匿名登入者會(huì)被允許新增目錄,當(dāng)然,匿名使用者必須要有對(duì)上層目錄的寫(xiě)入權(quán)。默認(rèn)值為NO.
anon_other_write_enable
用法:YES/NO
如果設(shè)為YES,匿名登入者會(huì)被允許更多于上傳與建立目錄之外的權(quán)限,譬如刪除或是更名。默認(rèn)值為NO.
anon_upload_enable
用法:YES/NO
如果設(shè)為YES,匿名登入者會(huì)被允許上傳目錄的權(quán)限,當(dāng)然,匿名使用者必須要有對(duì)上層目錄的寫(xiě)入權(quán)。默認(rèn)值為NO.
anon_world_readable_only
用法:YES/NO
如果設(shè)為YES,匿名登入者會(huì)被允許下載可閱讀的檔案。默認(rèn)值為YES.
ftp_username
定義匿名登入的使用者名稱(chēng)。默認(rèn)值為ftp.
deny_email_enable
若是啟動(dòng)這項(xiàng)功能,則必須提供一個(gè)檔案/etc/vsftpd.banner_emails,內(nèi)容為email address.若是使用匿名登入,則會(huì)要求輸入email address,若輸入的email address在此檔案內(nèi),則不允許聯(lián)機(jī)。默認(rèn)值為NO.
===Standalone 選項(xiàng)====================
listen
用法:YES/NO
若是啟動(dòng),則vsftpd將會(huì)以獨(dú)立運(yùn)作的方式執(zhí)行,若是vsftpd獨(dú)立執(zhí)行,如RedHat Linux 9的默認(rèn)值,則必須啟動(dòng);若是vsftpd包含在xinetd之中,則必須關(guān)閉此功能,如RedHat Linux 8.在RedHat Linux 9中默認(rèn)值為YES.
listen_address
若是vsftpd 使用standalone 的模式,可使用這個(gè)參數(shù)定義使用哪個(gè)IP address提供這項(xiàng)服務(wù),若是主機(jī)上只有定義一個(gè)IP address,則此選項(xiàng)不需使用,若是有多個(gè)IP address,可定義在哪個(gè)IP address上提供ftp服務(wù)。若是不設(shè)定,則所有的IP address均會(huì)提供此服務(wù)。默認(rèn)值為無(wú)。
max_clients
若是vsftpd使用standalone的模式,可使用這個(gè)參數(shù)定義最大的總聯(lián)機(jī)數(shù)。超過(guò)這個(gè)數(shù)目將會(huì)拒絕聯(lián)機(jī),0表示不限。默認(rèn)值為0.
max_per_ip
若是vsftpd使用standalone的模式,可使用這個(gè)參數(shù)定義每個(gè)ip address所可以聯(lián)機(jī)的數(shù)目。超過(guò)這個(gè)數(shù)目將會(huì)拒絕聯(lián)機(jī),0表示不限。默認(rèn)值為0.
實(shí)驗(yàn)一、設(shè)置Chroot——用戶不能切換目錄
因?yàn)槟J(rèn)情況下是可以切換目錄的,所以是很不安全的……
1、限制所有用戶不能切換目錄
chroot_local_user=YES
2、設(shè)置指定的用戶不能切換目錄
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
實(shí)驗(yàn)二、用Vsftp.user_list訪問(wèn)控制
利用/etc/vsftpd.user_list
A、設(shè)置在/etc/vsftpd.user_list文件中用戶不能訪問(wèn),其它用戶可以訪問(wèn)
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list
B、設(shè)置在/etc/vsftpd.user_list文件中的用戶能訪問(wèn)國(guó),其它用戶不可以訪問(wèn)。
userlist_enable=YES[!--empirenews.page--]
userlist_deny=NO
userlist_file=/etc/vsftpd.user_list
實(shí)驗(yàn)三、簡(jiǎn)單虛擬用戶
讓abc用戶不能登錄系統(tǒng),只能登入FTP
#adduser –g ftp –s /sbin/nologin abc
#passwd abc