1. 程式人生 > >CentOS7 搭建FTP伺服器

CentOS7 搭建FTP伺服器

本文來記錄一下自己的虛擬機器CentOS7搭建FTP伺服器的過程

用到了vsftpd,如果沒有需要安裝
在開始搭建FTP伺服器之前,首先要確保本地和伺服器網路是通的,我測試的
本地IP:192.168.1.5 (Windows系統IP)
遠端IP:192.168.1.7 (虛擬機器IP)

1、本機虛擬機器系統

[[email protected] pub]# uname -a
Linux centos7.5 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

2、查詢本機是否安裝了vsftpd

[[email protected] pub]# rpm -qa | grep vsftpd
vsftpd-3.0.2-22.el7.x86_64

我這裡開始是沒有安裝的,現在已經安裝了,如果沒有安裝使用yum 安裝

[[email protected] pub]# yum install -y vsftpd

3、安裝完成後可以進到vsftp目錄下進行配置

[[email protected] pub]# cd /etc/vsftpd/
[[email protected] vsftpd]# ll
總用量 28
-rw-------. 1 root root  125 8月   3 2017 ftpusers
-rw-------. 1 root root  361 8月   3 2017 user_list
-rw-------. 1 root root 5029 10月 25 13:56 vsftpd.conf
-rwxr--r--. 1 root root  338 8月   3 2017 vsftpd_conf_migrate.sh
[
[email protected]
vsftpd]#

簡單介紹一下目錄中的幾個重要檔案
ftpuser 記錄不允許訪問FTP 伺服器的使用者列表
user_list 記錄允許訪問FTP伺服器的使用者列表
vsftpd.conf 配置檔案,主要配置都在這個檔案裡面
其實這幾個檔案我也沒有修改什麼內容,還是不太懂不知道怎麼修改,這算是留個後面的一個疑問吧。
4、建立ftp使用者

[[email protected] vsftpd]# useradd ftp -d /var/ftp/pub/ -s /sbin/nologin 
useradd:使用者“ftp”已存在
[[email protected]
vsftpd]# passwd ftp 更改使用者 ftp 的密碼 。 新的 密碼: 無效的密碼: 密碼是一個迴文 重新輸入新的 密碼: 抱歉,密碼不匹配。 新的 密碼: 無效的密碼: 密碼少於 8 個字元 重新輸入新的 密碼: passwd:所有的身份驗證令牌已經成功更新。 [[email protected] vsftpd]# useradd test -d /var/ftp/pub/ -s /sbin/nologin useradd:警告:此主目錄已經存在。 不從 skel 目錄裡向其中複製任何檔案。 [[email protected] vsftpd]# passwd test 更改使用者 test 的密碼 。 新的 密碼: 無效的密碼: 密碼少於 8 個字元 重新輸入新的 密碼: passwd:所有的身份驗證令牌已經成功更新。 [[email protected] vsftpd]#

我這裡建立了2個測試用的使用者。
5、關閉防火牆(可選)

[[email protected] vsftpd]# systemctl stop firewalld.service
[[email protected] vsftpd]# 

不關閉防火牆,有可能FTP不能使用。
6、啟動FTP服務

[[email protected] vsftpd]# systemctl restart vsftpd.service
[[email protected] vsftpd]# systemctl status vsftpd.service
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 四 2018-11-01 11:32:27 CST; 3s ago
  Process: 43165 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
 Main PID: 43166 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           └─43166 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

11月 01 11:32:27 centos7.5 systemd[1]: Starting Vsftpd ftp daemon...
11月 01 11:32:27 centos7.5 systemd[1]: Started Vsftpd ftp daemon.
[[email protected] vsftpd]# 

systemctl restart vsftpd.service
因為我已經啟動了,這裡使用了restart
systemctl status vsftpd.service
查詢ftp狀態
7、指定FTP根目錄的許可權

[[email protected] vsftpd]# chmod 777 /var/ftp/pub/
[[email protected] vsftpd]# 

我是以/var/ftp/pub/目錄作為FTP的根目錄,可以把所以需要FTP共享的檔案拷貝至該目錄
8、查詢開關是否開啟

[[email protected] vsftpd]#  getsebool -a|grep ftp
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

開始的時候我是這些開關都沒有開啟,FTP連線失敗了,
開啟這些開關,可以直接修改vsftpd.conf檔案,也可以直接這樣修改

[[email protected] vsftpd]# setsebool ftpd_anon_write 1
[[email protected] vsftpd]# setsebool ftpd_connect_all_unreserved 1
[[email protected] vsftpd]# setsebool ftpd_connect_db 1
[[email protected] vsftpd]# setsebool ftpd_full_access 1
[[email protected] vsftpd]# setsebool ftpd_use_cifs 1
[[email protected] vsftpd]# setsebool ftpd_use_fusefs 1
[[email protected] vsftpd]# setsebool ftpd_use_nfs 1
[[email protected] vsftpd]# setsebool ftpd_use_passive_mode 1
[[email protected] vsftpd]# setsebool httpd_can_connect_ftp 1
[[email protected] vsftpd]# setsebool httpd_enable_ftp_server 1
[[email protected] vsftpd]# setsebool tftp_anon_write 1
[[email protected] vsftpd]# setsebool tftp_home_dir 1

也可以參照下面改法

[[email protected] vsftpd]# vi vsftpd.conf     //參照下面內容修改引數
anonymous_enable=YES    //開啟匿名登入
local_enable=YES    //開啟本地使用者登入
write_enable=YES    //本地使用者寫許可權
local_umask=022    //上傳檔案後預設許可權
dirmessage_enable=YES
xferlog_enable=YES    //開啟下載日誌
connect_from_port_20=YES    //連結埠
xferlog_std_format=YES    //標準日誌格式
chroot_local_user=YES    //限制使用者不能切換目錄
chroot_list_enable=YES    //被限制的使用者列表
chroot_list_file=/etc/vsftpd/chroot_list    //列表存放位置
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd    //服務名稱
userlist_enable=YES    //啟用登入使用者限制
tcp_wrappers=YES
anon_root=/ftp    //匿名使用者登入目錄
use_localtime=YES    //使用本地時間

至此已經可以說搭建成功
9、設定FTP服務開機啟動

[[email protected] vsftpd]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[[email protected] vsftpd]# 
[[email protected] vsftpd]# ln -s '/usr/lib/systemd/system/vsftpd.service''/etc/systemd/system/multi-user.target.wants/vsftpd.service'
[[email protected] vsftpd]# 

10、檢視一下效果
查詢伺服器目錄檔案

[[email protected] ~]$ cd /var/ftp/pub/
[[email protected] pub]$ ll
總用量 0
-rw-r--r--. 1 root root 0 11月  1 12:02 1.txt
[[email protected] pub]$ 

在這裡插入圖片描述