Centos7 搭建FTP服務器本地用戶上傳下載

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章