CentOS7 搭建FTP伺服器
阿新 • • 發佈:2018-11-05
本文來記錄一下自己的虛擬機器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]$