Centos7 搭建ftp服務器
安裝了幾次 遇到了N多坑 終於是安裝好了 ,下文爲我的正確安裝步驟…
1.先查詢本機是否安裝ftp服務器
rpm -qa |grep vsftpd
如果安裝過會出現版本信息
[root@localhost etc]# rpm -qa |grep vsftp
vsftpd-3.0.2-25.el7.x86_64
卸載命令:
rpm -e vsftpd-3.0.2-25.el7.x86_64
2.yum 安裝
yum -y install vsftpd
2.1查看安裝位置 whereis vsftpd
配置文件所在位置: /etc/vsftpd/
-rw------- 1 root root 126 Jan 20 14:08 ftpusers
-rw------- 1 root root 361 Oct 31 2018 user_list
-rw-r--r-- 1 root root 667 Jan 20 14:35 vsftpd.conf
-rwxr--r-- 1 root root 338 Oct 31 2018 vsftpd_conf_migrate.sh
2.2文件解釋
#ftp服務器黑名單 用於指定哪些用戶不能訪問FTP 服務器
ftpusers
#指定允許使用vsftpd 的用戶列表文件。 白名單
user_list
#vsftpd 的核心配置文件
vsftpd.conf
# 腳本文件 不用管,也別動...
vsftpd_conf_migrate.sh
3.啓動 ftp 服務:
systemctl start vsftpd
3.1查看監聽的端口號: 默認爲21
netstat -antup | grep vsftpd
3.2查看防火牆的狀態:
firewall-cmd --state
內網可以直接關閉防火牆 外網只要開放對應端口號以及在安全組中配置對應端口即可
3.3關閉防火牆命令
sytemctl disable firewalld
exmaple:防火牆常見命令
安裝Firewall命令:
yum install firewalld firewalld-config
Firewall開啓常見端口命令:
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=53/udp --permanent
Firewall關閉常見端口命令:
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --zone=public --remove-port=443/tcp --permanent
firewall-cmd --zone=public --remove-port=22/tcp --permanent
firewall-cmd --zone=public --remove-port=21/tcp --permanent
firewall-cmd --zone=public --remove-port=53/udp --permanent
批量添加區間端口
firewall-cmd --zone=public --add-port=4400-4600/udp --permanent
firewall-cmd --zone=public --add-port=4400-4600/tcp --permanent
開啓防火牆命令:
systemctl start firewalld.service
重啓防火牆命令:
firewall-cmd --reload 或者 service firewalld restart
查看端口列表:
firewall-cmd --permanent --list-port
禁用防火牆
systemctl stop firewalld
設置開機啓動
systemctl enable firewalld
停止並禁用開機啓動
sytemctl disable firewalld
查看狀態
systemctl status firewalld或者 firewall-cmd --state
3.4檢查關閉Selinux
根據需求選擇臨時或者永久關閉
臨時關閉:
[root@localhost ~]# getenforce
Enforcing
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
Permissive
永久關閉:
[root@localhost ~]# vim /etc/sysconfig/selinux
SELINUX=enforcing 改爲 SELINUX=disabled
重啓服務reboot
4.修改Vsftpd.conf 配置文件
4.1配置本地用戶訪問 vsftpd 服務 以及用戶家目錄(可直接copy我的)
如果覺得不放心可備份之前的配置文件
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpbak.conf
我的配置文件如下:
阿里雲中安裝FTP
# Example config file /etc/vsftpd/vsftpd.conf
#關閉遠程連接
anonymous_enable=NO
#本地用戶登錄開啓
local_enable=YES
#讀寫權限開啓
write_enable=YES
local_umask=022
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
#日誌開啓
xferlog_enable=YES
connect_from_port_20=YES
#YES,允許數據傳輸時使用PASV模式
#設定在PASV模式下,建立數據傳輸所可以使用port範圍的下界和上界,0 表示任意。默認值爲0。
#把端口範圍設在比較高的一段範圍內,6000-7000,將有助於安全性的提高
pasv_enable=YES
pasv_min_port=6000
pasv_max_port=7000
#chown_uploads=YES
#chown_username=whoever
#日誌路徑
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
#客戶端連接時間
idle_session_timeout=6000
#數據連接時間 針對上傳下載
data_connection_timeout=1200
#這四個爲權限模塊 這樣配置當chroot_list中的用戶可以離開ftp家目錄
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
#白名單開啓
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
local_root=/var/ftp/pub
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
注意的是防火牆以及安全組需要開啓pasv所需要的端口
公司中內網安裝FTP
# Example config file /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
idle_session_timeout=6000
data_connection_timeout=1200
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
local_root=/ftp
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
4.2詳細解釋以及對應操作
chroot_list 在安裝時是沒有的,這個需要自己創建
配置文件COPY我的則在 /etc/vsftpd/下使用以下命令
touch chroot_list
並編輯chroot_list 文件 將 root添加到其中
:wq保存退出
當搭配我上邊配置文件時標識着 此文件中的用戶 例如 我在chroot_list中添加了root 那麼root用戶則可離開家目錄在系統中任何地方可使用ftp進行上傳下載
編輯黑名單ftpusers 註釋掉root用戶
重啓vsftp
systemctl restart vsftpd
用FileZilla Client 鏈接測試
發現** 登錄不了…
5.最後一步
那是因爲還少一個命令
yum install ftp
安裝好後 重啓ftp ,本地測試一波 ftp localhost
[root@localhost vsftpd]# ftp localhost
Trying ::1...
ftp: connect to address ::1Connection refused
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
220 (vsFTPd 3.0.2)
Name (localhost:root):
根據提示輸入賬戶和密碼
Name (localhost:root): root
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
能夠進來則說明成功了!!!!!!!!!!
現在用FileZilla Client 鏈接測試
普通用戶使用ftp
#創建目錄
mkdir -p /var/ftp/html
#添加系統用戶
useradd -g root -M -d /var/ftp/html -s /sbin/nologin ftptest
#配置權限
chown -R ftptest:root /var/ftp/html
#設置密碼
passwd ftptest
#添加測試文件
cd /var/ftp/html && echo "this is ftptest" >ftptest.txt
#使用FileZilla Client 測試
#此用戶則只能操作 /var/ftp/html如果需要設置其離開根目錄 則在chroot_list中添加用戶名
user_list中添加用戶名
exmaple:ftp 操作命令
#開機啓動
systemctl enable vsftpd
#啓動服務
systemctl start vsftpd
#重啓服務
systemctl restart vsftpd
#停止服務
systemctl stop vsftpd
#查看服務器狀態
systemctl status vsftpd