更多內容請看:http://www.bdtool.net/ linux
研究了兩天vsftpd,從網上找了不少資料,不是出這問題就是那問題,幸虧終於解決了,下面貼出個人配置過程。不喜勿噴。。。 shell
1、安裝vsftpd 數據庫
sudo apt-get install vsftpd
安裝完之後大體的目錄介紹 安全
/etc/vsftpd/vsftpd.conf 服務器 |
主配置文件 測試 |
/usr/sbin/vsftpd ui |
Vsftpd的主程序 spa |
/etc/rc.d/init.d/vsftpd .net |
啓動腳本 日誌 |
/etc/pam.d/vsftpd |
PAM認證文件(此文件中file=/etc/vsftpd/ftpusers字段,指明阻止訪問的用戶來自/etc/vsftpd/ftpusers文件中的用戶) |
/etc/vsftpd/ftpusers |
禁止使用vsftpd的用戶列表文件。記錄不容許訪問FTP服務器的用戶名單,管理員能夠把一些對系統安全有威脅的用戶帳號記錄在此文件中,以避免用戶從FTP登陸後得到大於上傳下載操做的權利,而對系統形成損壞。(注意:linux-4中此文件在/etc/目錄下) |
/etc/vsftpd/user_list |
禁止或容許使用vsftpd的用戶列表文件。這個文件中指定的用戶缺省狀況(即在/etc/vsftpd/vsftpd.conf中設置userlist_deny=YES)下也不能訪問FTP服務器,在設置了userlist_deny=NO時,僅容許user_list中指定的用戶訪問FTP服務器。(注意:linux-4中此文件在/etc/目錄下) |
/var/ftp |
匿名用戶主目錄;本地用戶主目錄爲:/home/用戶主目錄,即登陸後進入本身家目錄 |
/var/ftp/pub |
匿名用戶的下載目錄,此目錄需賦權根chmod 1777 pub(1爲特殊權限,使上載後沒法刪除) |
/etc/logrotate.d/vsftpd.log |
Vsftpd的日誌文件 |
2、配置用戶
在/etc下建立目錄vsftpd
mkdir vsftpd cd vsftpd vi user.txt
user.txt中加入用戶名、密碼,奇數行爲用戶名,偶數行爲密碼
ftp1 ftp1 ftp2 ftp2
使用db_load命令將用戶生成數據庫
若是沒有db_load命令先安裝
apt-get install db-util
而後生成數據庫
db_load -T -t hash -f user.txt user.db sudo chmod 600 user.db
3、建立不一樣用戶的配置
mkdir user_conf cd user_conf sudo touch ftp1 ftp2 //對應user.txt中的用戶
在ftp1中寫入:主要是測試,先簡單的寫
anon_world_readable_only=NO local_root=/opt/vsftpd/ftp1
在ftp2中寫入:
anon_world_readable_only=NO local_root=/home/ftp //與ftp1徹底不一樣的兩個目錄
4、修改pam.d下的vsftpd,我就是在這走了不少彎路,把vsftpd所有貼出,供你們看與網上的有什麼區別
cd /etc/pam.d vi vsftpd
auth required pam_userdb.so db=/etc/vsftpd/user account required pam_userdb.so db=/etc/vsftpd/user
其中db=....指向咱們以前創建的user.db
5、建立虛擬賬號:
sudo useradd virtual -d /opt/vsftpd -s /sbin/nologin //不容許登陸 chmod a-w /opt/vsftpd //修改目錄的權限 chown virtual:virtual /opt/vsftpd //修改目錄屬於的用戶組,由於咱們建立了兩個ftp位置,因此都要修改權限、用戶組 chmod a-w /home/ftp chown virtual:virtual /home/ftp
6、修改/etc/vsftpd.conf
#配置 listen=YES #匿名用戶配置 #是否開啓匿名用戶登陸 anonymous_enable=NO xferlog_std_format=YES #使用上傳下載日誌,日誌文件默認爲/var/log/vsftpd.log,能夠經過xferlog_file選項修改 xferlog_enable=YES xferlog_file=/var/log/vsftpd.log #日誌使用標準xferlog格式 xferlog_std_format=YES local_enable=YES use_localtime=YES write_enable=YES guest_enable=YES guest_username=virtual //對應前面添加的用戶virtual user_config_dir=/etc/vsftpd/user_conf //對應前面添加的每一個用戶不一樣配置的目錄 dirmessage_enable=YES connect_from_port_20=YES chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd //對應/etc/pam.d/vsftpd rsa_cert_file=/etc/ssl/private/vsftpd userlist_enable=YES