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