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