2011年1月24日 星期一

vsftpd設定

相關檔案或目錄




/etc/vsftpd.conf  //vsftpd的設定檔
/etc/pam.d/vsftpd   //PAM模組設定檔,身份認證之用
/etc/vsftpd.ftpusers    //pam模組用來指定某user無法登入的設定檔
/etc/vsftpd.user_list    //依vsftpd.conf內的userlist_enable, userlist_deny參數設定而有不同功能
/etc/vsftpd.chroot_list   //將某帳號chroot 在他們的家目錄下,和vsftpd.conf內的chroot_list_enable, chroot_list_file參數相關
/usr/sbin/vsftpd      //主要執行檔
/var/ftp/     //匿名使用者登入的根目錄

常用功能設定做法


不讓某帳號離開家目錄

vi /etc/vsftpd.conf
修改vsftpd.conf  只允許某些人登錄ftp
chroot_list_enable=yes
chroot_list_file=/etc/vsftpd.chroot_list  //列在裡面的使用者可登錄,無法離開家目錄

vi /etc/vsftpd.chroot_list //列入允許帳號 
stu1
stu2

/etc/init.d/vsftpd restart



預設讓所有帳號不能離開家目錄,只有特定的帳號才行
chroot_local_user=yes
chroot_list_enable=yes //啟動chroot_list_file檔案的功能
chroot_list_file=/etc/vsftpd.chroot_list  //列在裡面的使用者,可離開家目錄

vsftpd.conf
#表示預設不啟動
基本設定
#local_enable=yes //本地帳號可登入
#write_enable=yes //可寫入,上傳,修改,但匿名者除外
#idle_session_timeout=600 //逾期時間為600秒
#data_connection_timeout=120 //資料傳輸的timeout為2分鐘
以下需自行加入
listen=no //no為透過xintd執行,yes為獨立執行
download_enable=yes //是否可以下載伺服器檔案
dirlist_enable=yes  //是否能用ls指令列出所有目錄中的檔案
check_shell=yes  //是否檢查登入帳號的shell是否為合法
one_process_mode=no //專門讓2.4版kernel使用
use_sendfile=yes //對大量讀寫動作會有非常好的效能
tcp_wrappers=no //是否要支援此功能,但需在編譯時做設定
匿名登入設定
anonymous_enable=yes //接受匿名登入
#anon_upload_enable=yes //讓匿名帳號可上傳,但需指定一可寫入目錄
#anon_mkdir_write_enable=yes //讓匿名帳號可建立目錄
#chown_uploads=yes  //將匿名登入者上傳的檔案,設定為chown_username
#chown_username=whoever //指定whoever帳號權限為匿名上傳的權限
以下需自行加入
#anon_otherwrite_enable=no  //讓匿名者可以修改檔名,目錄
#anon_world_readable_only=yes   //讓匿名者只可以讀
#no_anon_password=no  //直進進入不需密碼#anon_root=somedir  //讓匿名者登入時自動切換到somedir目錄
#anon_max_rate=30000  //讓匿名者只使用30kb/s的速度
#anon_umask=077 //讓匿名者上傳的檔案權限變成300

ps,提供anonymous帳號前需:
1,在linux上建立名為ftp帳號
2,給予一家目錄,並設權限為755,擁有者為root
資料傳輸
connect_from_port_20=yes //要求資料傳輸都採用標準的port20以下需自行加入
pasv_min_port=5000  //要求被動連線連生的port範圍pasv_max_port=5500  //同上
max_per_ip=0  //listen=on時,限制單獨ip可有幾條連線,0表無限制max_per_client=0  //listen=on時,限制同一時間可以有幾條連線,0為無限制
max_clients=10 //最多同時10人連進ftp
local_max_rate=0 //限制使用者頻寬,單位為bytes/second,0為無限制anon_max_rate=0 //限制匿名者頻寬,其餘同上

虛擬帳號設定,需搭配pam認證

以下需自行加入
guest_username=ftp  //使用虛擬帳號對應到的使用者名稱guest_enable=no
guest_username=/home/virtual/$user
user_sub_token=$user
virtual_use_local_privs=no  //限定虛擬帳號是否使用linux特定帳號權限
記錄檔設定
xferlog_enable=yes //啟用記錄檔記錄所有上載與下載#xferlog_file=/var/log/xferlog //網路上通用記錄格式的記錄檔儲存位置#xferlog_std_format=yes //使用標準記錄格式以下需自行加入
vsftpd_log_file=/var/log/vsftpd.log //vsftpd本身記錄,用vsftpdlog格式
dual_log_enable  //同時記錄vsftpd.log及xferlog
syslog_enable  //不使用這兩種格式記錄,而是送到syslog,會記錄登入者與其任何動作
安全設定
local_umask=022  //使用者將檔案上傳的權限都設成755,預設為700chroot_local_user=no  //是否讓系統上所有帳號都進行chroot,預設為no
#chroot_list_enable=no //是否啟動chroot_list_file檔案的功能,預設為no#chroot_list_file=/etc/vsftpd.chroot_list  //列在裡面的使用者,無法離開家目錄
userlist_enable=yes  //是否啟動vsftpd的扺擋機制,預設為no
userlist_deny=yes  //預設yes表示userlist_file內user不可用ftp,設no則只有檔案內user才可用ftp,(需啟用userlist_enable此參數才作用)
userlist_file=/etc/vstpd.user_list  //userlist_deny的值是yes或no會影響該檔案內的user是否可用ftp#deny_email_enable=yes //拒絕使用banned_email_file指定檔案中,以email為密碼的匿名登入
#banned_email_file=/etc/vsftpd.banned_emails
以下需自行加入
anon_umask=077 //匿名登入上傳檔時的權限hide_file={*.doc,*.pass}  //隱藏.doc和.pass的檔案
deny_file={*.doc}  //拒絕存取.doc的檔案force_dot_file=no  //強制讓開頭的檔案顯示
訊息顯示
dirmessage_enable=yes //啟動個別目錄的個別化訊息功能
#ftpd_banner=string //設定使用者登入的歡迎訊息以下需自行加入
banner_file=file_name //指定file_name的內容做為登入的歡迎訊息
message_file=.message //指定個別目錄的訊息檔案為.message
其他參數
#nopriv_user=ftpsecure //指定vsftp以較不具權限帳號執行
#async_abor_enable=yes //啟動abor指令支援
#ascii_upload_enable=yes //啟動ascii模式的上傳#ascii_download_enable=yes //啟動ascii模式的下載#ls_recurse_enable=yes //可用-R列出目錄下所有檔案名稱,預設為no

文章來源
http://blog.jsdan.com/1979

沒有留言:

張貼留言