el5上架設
vsftp是在各Linux分發版中較為流行的ftp伺服器
基本軟體需求:
tcp_wrappers-7.6-40.4.el5.i386.rpm
vsftpd-2.0.5-12.e15.i386.rpm
安裝配置,分為在xinet.d下的服務託管模式 和 獨立模式,此次討論獨立模式
- 修改設定檔適合需求:/etc/vsftpd/vsftpd.conf
- 修改iptables防火牆設定:“stop” it 不好,最好允許存取telnet的連接埠
- 修改selinux:“stop” it 不好;setenfoce 0 不好;最好允許存取ftp策略 setsebool ftpd_disable_trans on|1
最基本的相關設定
- listen=yes --開啟ftp服務,開啟匿名服務(只允許匿名使用者列表ftp根目錄,可以下載;根ftp目錄在:/var/ftp/)
- pam_service_name=vsftpd --太噁心了。即使你不用seliunx,也得加上這句話,這讓vsftpd的身份認證方式!!!
- listen_port=21 --監聽ftp連接埠
- listen_address=x.x.x.x --監聽某個ip或地址
- idle_session_timeout=600 --空閑會話斷開前的經過的秒數
- connect_timeout=60 --網路連接逾時秒數
- accept_timeout=60 --使用者串連到伺服器後排隊等候逾時
- max_client=400 --最大用戶端串連數
- max_per_ip=1 --每ip最大串連數
- local_max_rate=100000 --本機使用者的最大串連速率bit
- anno_max_rate=1000 --匿名使用者的最大串連速率
輔助基本設定
- ftpd_banner=歡迎資訊
- banner_file=/var/vsftpd_banner_files --使用該檔案中的歡迎資訊,注意該設定會override ftpd_banner的設定
- banner_fail=/var/vsftpd_banner_fail --使用該檔案中的顯示串連失敗資訊,
- dirmessage_enable=yes --切換目錄時使用該目錄下的.message顯示訊息
匿名使用者管理 本質上:vsftp進程將匿名使用者類比Linux上的nobody使用者,所有必須保證適當的Linux系統許可權
- anonymous_enable=yes --允許匿名使用者存取ftp,是預設設定,訪問根ftp目錄 注意必須保證匿名使用者所訪問的目錄在Linux下有寫r許可權
- anon_root=/var/ftp/anon --修改匿名使用者的ftp根目錄
- anon_upload_enable=yes --允許匿名使用者在根ftp目錄的上傳檔案許可權 注意必須保證匿名使用者所訪問的目錄在Linux下有寫w許可權
- anon_mkdir_write_enable=yes --允許匿名使用者建立目錄並上傳檔案許可權 注意必須保證匿名使用者所訪問的目錄在Linux下有寫w許可權
- anon_world_readable_only=no --允許匿名使用者的讀許可權,可瀏覽所有檔案、目錄、子目錄 注意必須保證匿名使用者所訪問的目錄在Linux下有寫r許可權
本機使用者管理 本質上:vsftp進程將本機使用者類比Linux上的對應本機使用者,所有必須保證適當的Linux系統許可權
- pam_service_name=vsftpd --太噁心了。即使你不用seliunx,也得加上這句話,這讓vsftpd的身份認證方式!!!
- anonymous_enable=no --關閉匿名登陸
- local_root=/var/ftp --本機使用者的根目錄,可以通過設定chroot_local_user=yes來限制本機使用者只能在其home下
- local_enable=yes --允許本機使用者登陸vsftp伺服器
- write_enable=yes --允許本機使用者的寫入權限
- chroot_local_user=yes --本機使用者只能處於自家home下,如果沒有這個設定,登陸使用者可以訪問任何具有Linux許可權的os系統目錄
- chroot_list_enable=yes --只允許清單中的使用者更改根目錄,必須同時設定了chroot_local_user=yes、chroot_list_file=/var/vsftpd/chroot_list;否則該設定不起作用
- chroot_list_file=/var/vsftpd/chroot_list --允許使用者列表,如果chroot_list_enable=yes,必須設定該參數
- userlist_enable=yes --禁止userlist_file檔案中列出的本機使用者登陸vsftp伺服器,配合userlist_deny原則設定
- userlist_deny=yes --限制策略:限制userlist_file檔案中列出的本機使用者登陸vsftp伺服器——預設設定;否則只允許userlist_file檔案中的使用者訪問
- userlist_file=/etc/vsftpd/userlist --使用者列表
虛擬使用者管理
關鍵是理解vsftpd對虛擬使用者採取pam使用者認證方式。所有必須設定相應的設定檔。而且在pam認證裡必須進行審核 和 帳戶 模組的設定!該ftp虛擬使用者不是系統中真實存在的為了訪問Linux的相應目錄,必須在vsftpd.conf配置裡設定真實的本機使用者!相關設定如下:
- 虛擬使用者對應的內部使用者設定同本機使用者設定。關鍵是local_enable=yes write_enable=yes
- 設定虛擬使用者:db42_load -T -t hash -f 虛擬使用者列表檔案(使用者名稱A\n使用者A密碼..........) pam虛擬使用者資料庫.db
- 在/etc/pam.d/下建立一個vsftpd應用的設定檔如“vsftpd”——該檔案名稱需要在——vsftpd.conf的pam_service_name=?——相應配置
- guest_enable=yes --允許使用虛擬使用者,即純vsftp使用者
- guest_username=root --虛擬使用者映射的本機使用者,此處是root超級管理使用者
- user_config_dir=dir_spece --虛擬使用者的具體配置目錄,該目錄下有以各個虛擬使用者名稱定義的設定檔:虛擬使用者可以像本機使用者一樣進行根目錄home限制,參考本機使用者的設定
進階管理
- 建立虛擬目錄:#mount --bind olddir newdir
- 以xinet服務啟動:
1.在/etc/xinetd.d/目錄中建立一個檔案vsftpd
/etc/xinetd.d/vsftpd內容如下:
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
# server_args =
# log_on_success += DURATION USERID
# log_on_failure += USERID
nice = 10
disable = no
}
2.在/etc/下配置vsftpd.conf設定檔:即 /etc/vsftpd.conf。注意刪除 listen=YES
未知其作用的參數
data_connection_timeout