在CentOS上通過vsftpd搭建基礎的FTP服務,滿足匿名用戶只讀、本地用戶可讀寫的常見需求。
yum install vsftpd -y)。/data(本地用戶主目錄)和匿名用戶目錄/data/all;創建管理員用戶admin(無家目錄,用于管理匿名目錄)和普通用戶test(家目錄/data/test)。/etc/vsftpd/vsftpd.conf,關鍵參數包括:anonymous_enable=YES(開啟匿名)、local_enable=YES(允許本地用戶)、chroot_local_user=YES(鎖定用戶至家目錄)、anon_root=/data/all(匿名用戶根目錄)、local_root=/data(本地用戶根目錄)。admin(chown -R admin:admin /data/all);啟動vsftpd并設置開機自啟(systemctl restart vsftpd && systemctl enable vsftpd)。ftp://服務器IP,分別用匿名用戶(僅能查看/data/all)和test用戶(可上傳/下載/data/test下的文件)驗證功能。將vsftpd與Apache集成,實現通過Web界面管理FTP文件(如上傳、下載、刪除),提升文件管理的便捷性。
yum install httpd -y);啟動并啟用兩者服務。firewall-cmd --permanent --add-service=ftp && firewall-cmd --reload)。http://服務器IP:8080)管理vsftpd用戶及文件。通過vsftpd結合PAM和MySQL實現虛擬用戶認證,解決公共賬號密碼泄露問題,支持不同用戶差異化權限。
yum install vsftpd mariadb-server -y);啟動MySQL服務。CREATE DATABASE vsftpd; CREATE TABLE users (name VARCHAR(50) PRIMARY KEY, password VARCHAR(50)););插入測試用戶(INSERT INTO users VALUES ('tom', '123456'), ('jerry', '123456'););授權用戶訪問(GRANT ALL ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'centos'; FLUSH PRIVILEGES;)。/etc/pam.d/vsftpd.mysql,添加MySQL認證語句(auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=centos host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2)。/etc/vsftpd/vsftpd.conf,關鍵參數包括:pam_service_name=vsftpd.mysql(指定PAM服務)、guest_enable=YES(啟用虛擬用戶)、guest_username=vuser(虛擬用戶映射的系統用戶,需創建vuser并設置家目錄/ftproot)。/etc/vsftpd/vusers_conf/tom允許上傳、jerry禁止上傳);設置上傳目錄權限(setfacl -m u:vuser:rwx /ftproot/upload)。tom(可上傳)和jerry(不可上傳)驗證權限差異。將vsftpd與企業內部LDAP(域控)集成,實現域賬號登錄FTP,統一身份認證,避免重復創建賬號。
yum install vsftpd nscd nss-pam-ldapd -y);配置LDAP客戶端(/etc/nslcd.conf)指向域控服務器。/etc/vsftpd/vsftpd.conf,關鍵參數包括:anonymous_enable=NO(禁用匿名)、local_enable=YES(允許本地用戶)、guest_enable=YES(啟用虛擬用戶)、guest_username=compiler(虛擬用戶映射的系統用戶,需創建compiler并設置家目錄/opt)、pam_service_name=vsftpd(使用LDAP認證的PAM配置)。/etc/pam.d/vsftpd,添加LDAP認證語句(auth required /usr/lib64/security/pam_ldap.so、account required /usr/lib64/security/pam_ldap.so)。pcan1250)連接FTP服務器,驗證是否能登錄至映射目錄(/opt),并執行上傳、下載操作。在企業網絡環境中,主動模式(PORT)常因防火墻攔截或NAT轉換導致連接失敗,需配置vsftpd使用被動模式(PASV)。
/etc/vsftpd/vsftpd.conf,關鍵參數包括:pasv_enable=YES(開啟被動模式)、pasv_min_port=50000(被動模式最小端口)、pasv_max_port=50100(被動模式最大端口)、pasv_address=服務器公網IP(若服務器在NAT后,需指定公網IP)。firewall-cmd --permanent --add-port=50000-50100/tcp && firewall-cmd --reload)。