vsftpd服務的搭建
環境:
- 系統centos7
- ip:10.0.0.5
1.匿名開放模式
yum install vsftpd -y #安裝vsftpd服務
systemctl start vsftpd #啓動服務
參數 | 作用 |
---|---|
anonymous_enable=YES | 允許匿名訪問 |
anon_umask=022 | 匿名用戶上傳文件的umask值 |
anon_upload_enable=YES | 允許匿名用戶上傳文件 |
anon_mkdir_write_enable=YES | 允許匿名用戶創建目錄 |
anon_other_write_enable=YES | 允許匿名用戶修改目錄名稱或刪除目錄 |
local_root=/var/ftp | 設置root目錄 |
chroot_local_user=YES | 是否將所有用戶限制在主目錄 |
anon_root=/var/www | 匿名用戶登錄目錄 |
通常默認安裝的vsftpd就是匿名模式,當我們啓動服務後,需要放行相應服務端口,要注意的是,你要是修改了匿名用戶目錄,目錄權限不可以是777,最好是755,登錄的主目錄匿名用戶是無法上傳的,在主目錄創建目錄,修改其權限可寫即可上傳至該目錄
2.本地用戶模式
本地用戶模式可以和匿名模式一起使用,通常環境可以創建一位具有寫權限的用戶來上傳文件,而匿名用戶方便大家下載相關資料。
編輯/etc/vsftpd/vsftpd.conf
local_enable=YES
write_enable=YES
local_umask=022
將以上三項寫入配置文件,然後重啓vsftpd服務,默認情況本地用戶登錄是在自己的家目錄,root用戶被禁止登錄,若有需求可以修改user_list和ftpusers文件將登錄權限放開。
3.虛擬用戶模式
虛擬用戶模式是三個模式中最安全的一種驗證方式,配置過程也會稍微複雜一些,虛擬用戶模式也可以和匿名模式混用。
1.創建用戶數據庫文件
cd /etc/vsftpdd
vim vuser.list
奇數行爲用戶名,偶數行爲密碼.
創建文件後需要對用戶文件進行加密,並修改權限,然後將明文文件刪除,之後創建一個用來虛擬用戶登錄後映射本地用戶的用戶。
db_load -T -t hash -f vuser.list vuser.db
chmod 600 vuser.db
rm -f vuser.list
useradd -d /test -s /sbin/nologin
2.創建支持虛擬用戶的PAM文件
新建並編輯/etc/pam.d/vsftpd.vu文件,寫下創建的數據庫文件的路徑
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
3.修改vsftpd.conf配置文件
參數 | 作用 |
---|---|
anonymous_enable=NO | 禁止匿名開放模式 |
local_enable=YES | 允許本地用戶模式 |
guest_enable=YES | 開啓虛擬用戶模式 |
guest_username=test | 指定虛擬用戶賬戶 |
pam_service_name=vsftpd.vu | 指定PAM文件 |
allow_writeable_chroot=YES | 允許對禁錮的FTP根目錄執行寫入操作,而且不拒絕用戶的登錄請求 |
4.創建虛擬用戶權限文件
如需要爲每個虛擬用戶匹配不同的權限,則需要爲每個虛擬用戶創建權限文件
mkdir user_dir #創建放置權限的文件夾
cd user_dir
touch lemon
在以虛擬用戶名創建的文件中,寫入如下參數
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
然後在vsftpd.conf配置文件中追加虛擬用戶權限文件夾的路徑
user_config_dir=/etc/vsftpd/user_dir
之後重啓vsftpd服務,至此配置過程完成,如發現服務未啓動,無法打開,登錄等問題,請檢查相關配置文件,查看防火牆配置(ftp服務主動和被動模式防火牆配置不同需注意),SElinux的配置是否正常。