一、操作系統環境
本例中將在CentOS 7.6中安裝FTP服務,具體安裝的版本為vsftpd x86_64 3.0.2-29.el7_9,並進行配置。
# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core)
二、通過yum安裝vsftpd
# yum install vsftpd
三、設置vsftpd配置文件(基本配置)
vsftpd的配置文件位於/etc/vsftpd/vsftpd.conf。如果對配置文件進行了更改,需要重啟vsftpd服務后配置才會生效。
//禁止匿名用戶登陸 Anonymous_enable=NO //是否將所有用戶限制在主目錄 //當設置為YES表示限制FTP用戶跳出自己的家(根)目錄(該項默認值是NO,即在安裝vsftpd后不做配置的話,FTP用戶是可以向上切換到要目錄之外的) Chroot_local_user=YES //是否啟用chroot_list_file配置項指定的用戶列表文件來限制用戶 //YES為啟用,NO禁用(包括注釋掉也為禁用) //如果啟用此項配置,需同時新建一個chroot_list,內容為空即可 chroot_list_enable=YES //用於指定用戶列表文件 chroot_list_file=/etc/vsftpd/chroot_list //允許用戶有寫的權限 allow_writeable_chroot=YES
四、常用的操作命令
1. 查看vsftpd服務運行狀態
# systemctl status vsftpd
2. 啟動vsftpd服務
# systemctl start vsftpd
3. 停止vsftpd服務
# systemctl stop vsftpd
4. 重啟vsftpd服務
# systemctl restart vsftpd
5. 查看vsftpd的安裝位置
# whereis vsftpd vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz
6. 查看vsftpd的監聽端口
# netstat -npal|grep vsftpd
7. 開機自動啟動(作為服務運行)
chkconfig vsftpd on
五、創建FTP用戶
//創建用戶(沒有登錄權限) //-d 新賬戶的主目錄 //-g 新賬戶主組的名稱或ID //-s 新賬戶的登陸shell //執行此命令會同步對應的創建文件夾(如果不存在) # useradd ftpusername -d /ftp_upload -g ftp -s /sbin/nologin //設置密碼 # passwd ftpusername
六、修改FTP服務的端口號
1. 對配置文件/etc/vsftpd/vsftpd.conf進行調整。
//修改vsftpd監聽端口 listen_port=9021 //啟用PASV被動模式 pasv_enable=YES //修改vsftpd傳遞數據的最小端口 pasv_min_port=9001 //修改vsftpd傳遞數據的最大端口 pasv_max_port=9020 //用於檢測PASV的安全檢查,YES為關閉安全檢查 pasv_promiscuous=YES
2. 修改linux services
# vim /etc/services
//找到下面的行改成9021端口 ftp 9021/tcp ftp 9021/udp
3. 修改防火牆配置,開放所需的端口
# firewall-cmd --permanent --add-port=9001-9021/tcp
七、可能遇到的問題
1. 使用FTP客戶端連接時提示錯誤530,原因為SELINUX對FTP的限制,解決方法如下:
(1) 設置關閉SELINUX對FTP的限制
# getsebool -a |grep ftp
需要將其中的tftp_home_dir和ftpd_full_access 設置為on,回車以后,要等很久才會有反應。
#setsebool -P ftp_home_dir 1 #setsebool -P allow_ftpd_full_access 1
(2) 暫時關閉SELINUX
set enforce 0
(3) 永久關閉SELINUX(不推薦,且需要重新啟動服務器)
vim /etc/selinux/config,修改為 SELINUX = disabled,保存退出。
如果碰到550拒絕訪問,請執行sudo setsebool -P ftp_home_dir 1,然后重啟服務器,執行reboot命令
(4) pam認證文件配置錯誤
修改/etc/pam.d/vsftpd
將auth required pam_shells.so 改為 auth required pam_nologin.so
八、參考資料
https://www.jianshu.com/p/225b291bc4a9
https://www.cnblogs.com/ismallboy/p/6785270.html
https://www.jianshu.com/p/9b6389a26336
https://blog.csdn.net/sinat_30802291/article/details/81706152
https://blog.csdn.net/jiecy/article/details/109450397
https://blog.csdn.net/qq_40606798/article/details/82286273