1、安裝 vsftpd
[root@CentOS ftp]# yum -y install vsftpd
2、啟動 vsftpd 服務
[root@CentOS ~]# systemctl start vsftpd.service # 啟動 vsftpd 服務 [root@CentOS ~]# ps -ef | grep vsftpd # 查看 vsftpd 進程是否存在 root 3753 1 0 18:51 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf root 3758 3494 0 18:51 pts/0 00:00:00 grep --color=auto vsftpd [root@CentOS ~]#
3、開放 21 端口
[root@CentOS ~]# firewall-cmd --zone=public --add-port=21/tcp --permanent # 添加 21 端口 success [root@CentOS ~]# firewall-cmd --reload # 重新載入 success [root@CentOS ~]# firewall-cmd --zone=public --list-ports # 查看所有已開放的端口 21/tcp 3690/tcp 3306/tcp # 可以看到 21 端口已開放 [root@CentOS ~]#
4、使用FileZilla進行客戶端測試
(1)首先,將傳輸模式設置為主動模式:
[root@CentOS ~]# ls -l /var/ftp 總用量 0 drwxr-xr-x. 2 root root 6 8月 3 2017 pub # 確認pub目錄已存在 [root@CentOS ~]#
5、配置 selinux
默認情況下,CentOS 的FTP 是不允許實體賬號登錄取得用戶主目錄數據的,這是因為 SELinux 的問題。
[root@CentOS ~]# getsebool -a | grep ftp # 查看有關 ftp 的 selinux 策略規則 ftpd_anon_write --> off ftpd_connect_all_unreserved --> off ftpd_connect_db --> off ftpd_full_access --> off ftpd_use_cifs --> off ftpd_use_fusefs --> off ftpd_use_nfs --> off ftpd_use_passive_mode --> off httpd_can_connect_ftp --> off httpd_enable_ftp_server --> off tftp_anon_write --> off tftp_home_dir --> off [root@CentOS ~]# setsebool -P tftp_home_dir=1 # 將 tftp_home_dir 規則設置為 1
6、建立 ftp 賬戶
新建一個不能登錄系統,而只能登錄 ftp 服務的用戶。
[root@CentOS ~]# useradd ftpuser -s /sbin/nologin # 添加用戶 ftpuser [root@CentOS ~]# passwd ftpuser # 設置密碼
7、配置 vsftpd.conf
# 禁止匿名用戶登錄
anonymous_enable=NO
# 配置與實體用戶相關的信息,可寫入
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
之所以配置以上信息項,是因為我想只讓某些人可以使用 FTP,而直接添加的用戶默認不可使用 FTP 這個服務。如果我們想查看更多有關這個文件的配置說明,可以通過 man 5 vsftpd.conf 命令進行查看。
8、將 ftpuser 用戶添加到 /etc/vsftpd/user_list 文件中,編輯后的內容如下:
[root@CentOS ~]# cat /etc/vsftpd/user_list # vsftpd userlist # If userlist_deny=NO, only allow users in this file # If userlist_deny=YES (default), never allow users in this file, and # do not even prompt for a password. # Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers # for users that are denied. #root #bin #daemon #adm #lp #sync #shutdown #halt #mail #news #uucp #operator #games #nobody ftpuser # 指定只有 ftpuser 用戶可以使用 FTP 服務,其他用戶不能使用(已注釋的用戶) [root@CentOS ~]#
此時寫入 /etc/vsftpd/user_list 的用戶就是可以使用 FTP 的賬號了。所以未來添加的用戶如果想使用 FTP 的話,也必須要寫入這個文件。
9、重啟 vsftpd 服務
[root@CentOS ~]# systemctl restart vsftpd.service [root@CentOS ~]# ps -ef | grep vsftpd root 4568 1 0 19:51 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf root 4573 3494 0 19:51 pts/0 00:00:00 grep --color=auto vsftpd [root@CentOS ~]#
10、再次使用 FileZilla 進行測試
[root@CentOS ~]# systemctl enable vsftpd.service Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service. [root@CentOS ~]#



