Centos7搭建FTP服務


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)首先,將傳輸模式設置為主動模式:

(2)然后測試匿名登錄:

使用匿名用戶登錄成功后,默認的主目錄為 /var/ftp ,可以看到在該目錄中有一個pub目錄。

​[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 進行測試

如上所示,用戶 ftpuser 已登錄成功,默認的用戶主目錄為 /home/ftpuser。

11、將 vsftpd 服務設置為開機啟動

​[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 ~]# 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM