FTP 主要用于文件傳輸,在 Linux 上一般用 vsftpd 來實現,通過搭設 FTP 服務器,可以實現文件的共享,至少比坑爹的某度網盤強多了。
搭設 FTP 服務器有三種可選的認證方式:匿名認證、本地用戶認證、虛擬用戶認證,安全性:匿名認證<本地用戶認證<虛擬用戶認證,配置復雜度:匿名認證<本地<虛擬用戶認證。
Linux 中文件都有對應的所有者,虛擬用戶認證指的是,創建一個或多個 FTP 用戶,并將這些 FTP 用戶與 Linux 本地的某個用戶(如 vftpuser )進行映射,這樣完成映射的用戶在對 FTP 目錄進行操作時等同于用戶 vftpuser 進行操作。此外,虛擬用戶認證模式可以允許對多個 FTP 分別進行配置,非常靈活方便。從靈活性與安全性兩個方面考慮,本文選擇使用虛擬用戶認證模式。
OK,準備開工!
一、基本環境
服務器:CentOS7.5
客戶機:Ubuntu Mate18.10
FTP服務端:vsftpd
FTP客戶端:FileZilla(可選)
二、基本流程
為了看起來更簡潔,僅列出搭設基本流程及相關命令。
1、安裝 vsftpd
2、創建虛擬用戶
用你喜歡的任何編輯器創建并編輯 /etc/vsftpd/vuser.list 文件,內容如下:
lilei
lileipasswd
hanmeimei
hmmpasswd
口令認證文件奇數行為用戶名,偶數行為對應的密碼
3、創建口令認證數據庫
db_load -T -t hash -f /etc/vsftpd/vuser.list /etc/vsftpd/vuser.db
chmod 600 /etc/vsftpd/vuser.db
-T:轉換
-t:指定hash算法
-f:指定用戶名
4、編輯 PAM
認證文件
創建并編輯 /etc/pam.d/vsftpd.vu
,內容如下:
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
db指定口令認證數據庫,不含后綴名
5、建立本地用戶
useradd -d /home/vftpuser -s /sbin/nologin vftpuser
chmod 755 /home/vftpuser
-d:指定用戶主目錄
-s:指定用戶登錄shell,/sbin/nologin表示禁止用戶通過shell登錄,提高安全性
6、映射 FTP
用戶到 vftpuser
編輯 /etc/vsftpd/vsftpd.conf
,修改下列行:
pam_service_name=vsftpd.vu # 指定pam認證文件
guest_enable=YES # 啟用映射
guest_username=vftpuser # 指定映射的本地用戶
user_config_dir=/etc/vsftpd/vusers_dir # 指定FTP用戶配置文件位置,如果不需要對每個用戶進行分別配置,可將此行注釋掉
7、為每個用戶進行單獨配置
創建 /etc/vsftpd/vuser_dir
,針對每個 FTP
用戶創建同名配置文件,此處以 lilei
為例。創建并編輯 /etc/vsftpd/vuser_dir/lilei
,內容如下:
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/var/www/html
默認根目錄為映射用戶的家目錄,可通過 local_root 指定某個用戶的根目錄,注意需要將此目錄所有者改為 vftpuser 。
8、重啟 vsftpd
三、注意事項
- 將 vsftpd 加入開機啟動,防止服務器重啟后無法訪問;
- 如果 FTP 服務器無法訪問,注意檢查防火墻與 SElinux 設置;
- 生成口令認證數據庫后,及時將 list 文件刪除,防止密碼泄露。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。