CentOS7安裝vsftpd、使用者權限配置
vsftpd(very secure ftp daemon)是一款運作在Linux作業系統上的FTP服務程式,不僅完全開源而且免費,還具有很高的安全性、傳輸速度,以及支援虛拟使用者驗證。
vsftpd 允許使用者以三種認證模式登入FTP伺服器。
- 匿名開放模式:是一種最不安全的認證模式,任何人都可以無需密碼驗證而直接登入。
- 本地使用者模式:是通過Linux系統本地的賬戶密碼資訊進行認證的模式,相較于匿名開放模式更安全,而且配置起來也很簡單。
- 虛拟使用者模式:是這三種模式中最安全的一種認證模式,它需要為FTP服務單獨建立使用者資料庫檔案,虛拟出用來進行密碼驗證的賬戶資訊,而這些賬戶資訊在伺服器系統中實際上是不存在的,僅供FTP服務程式進行認證使用。這樣,即使黑客破解了賬戶資訊也無法登入伺服器,進而有效降低了破壞範圍和影響。
1、yum 安裝
yum install -y vsftpd
2、建立一個不能登入系統的使用者ftpuser用于映射虛拟使用者,ftp根目錄
useradd -d /home/ftpsite -s /sbin/nologin ftpuser
chmod 550 /home/ftpsite/
修改配置檔案 /etc/vsftpd/vsftpd.conf, 先備份一份
cd /etc/vsftpd
cp -a vsftpd.conf vsftpd.conf.bak
vim vsftpd.conf
anonymous_enable=NO #關閉匿名開放模式
local_enable=YES #允許本地使用者模式 虛拟使用者模式也要開啟
guest_enable=YES #開啟虛拟使用者模式
guest_username=ftpuser #指定用于映射虛拟使用者的系統賬戶
#啟用ASCII模式的傳輸ascii_upload_enable=YES
ascii_download_enable=YES
#将所有使用者限定在其主目錄内chroot_local_user=YES
chroot_list_enable=NO#如果有使用者不需要限定在主目錄以下設定chroot_local_user=YESchroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list #這個檔案需要自己建立
chroot_local_user=YES #所有使用者限定在其主目錄内
chroot_list_enable=YES #啟用例外
/etc/vsftpd/chroot_list #這裡的使用者名都不受限制,可以切換出主目錄,使用者名一行填寫一個
chroot_local_user=NO #所有使用者都不受限制,可以切換出主目錄
chroot_list_enable=YES #啟用例外
/etc/vsftpd/chroot_list #這裡的使用者名都受到限制,限定在其主目錄内,使用者名一行填寫一個
3、建立虛拟使用者
vim virtual_user
test1
test111
test2
test222
建立了2個賬戶,test1、test2。第一行使用者名,第二行密碼,依此類推:
使用 db_load 指令生成 vsftpd 的認證檔案,将使用者資訊檔案轉換為資料庫并使用hash加密:
db_load -T -t hash -f virtual_user virtual_user.db
chmod 600 virtual_user.db
rm -f virtual_user
4、建立虛拟使用者所需的PAM配置檔案,對虛拟使用者的安全和賬戶權限進行驗證
vim /etc/pam.d/vsftpd.virtual
auth required pam_userdb.so db=/etc/vsftpd/virtual_user #不需要填字尾
account required pam_userdb.so db=/etc/vsftpd/virtual_user
修改 /etc/vsftpd/vsftpd.conf,指定剛建立的PAM檔案
pam_service_name=vsftpd.virtual
5、給不同虛拟使用者設定不同權限,及主目錄
前面已近建立了test1、test2兩個虛拟使用者,分别建立主目錄
mkdir /home/ftpsite/test1
mkdir /home/ftpsite/test2
chown ftpuser:ftpuser /home/ftpsite/test1
chown ftpuser:ftpuser /home/ftpsite/test2
建立虛拟使用者配置檔案,及存放目錄,配置檔案的名稱要跟之前 virtual_user.db 裡使用者名一緻
mkdir /etc/vsftpd/virtual_user_conf
vim /etc/vsftpd/virtual_user_conf/test1
local_root=/home/ftpsite/test1 #設定使用者主目錄
allow_writeable_chroot=YES #2.3.5之後,如果使用者被限定在了其主目錄下,則該使用者的主目錄不能再具有寫權限了,可以去掉寫權限或加上這項
anon_world_readable_only=NO #隻要檔案所有者對檔案有讀權限即可下載下傳
write_enable=YES #寫入開關,是下面幾個權限的前提
anon_upload_enable=YES #上傳
anon_mkdir_write_enable=YES #建立檔案夾
anon_other_write_enable=YES #删除、覆寫、重命名
使用者test2
vim /etc/vsftpd/virtual_user_conf/test2
local_root=/home/ftpsite/test2
allow_writeable_chroot=YES
anon_upload_enable=YES
修改 /etc/vsftpd/vsftpd.conf,加上虛拟使用者配置目錄
user_config_dir=/etc/vsftpd/virtual_user_conf
6、啟動vsftp,添加防火牆端口
systemctl start vsftpd
systemctl enable vsftpd
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
7、連結測試 test1 test2 兩個權限是不一樣的