1. 程式人生 > >CentOS7.5 FTP安裝與配置

CentOS7.5 FTP安裝與配置

1、FTP的安裝

#安裝
yum install -y vsftpd

#設定開機啟動
systemctl enable vsftpd

#啟動
systemctl start vsftpd

#停止
systemctl stop vsftpd

#檢視狀態
systemctl status vsftpd

2、配置FTP 

#開啟配置檔案
vim /etc/vsftpd/vsftpd.conf

#顯示行號
:set number

#修改配置 12 行
anonymous_enable=NO

#修改配置 33 行
anon_mkdir_write_enable=YES

#修改配置48行
chown_uploads=YES

#修改配置72行
async_abor_enable=YES

#修改配置82行
ascii_upload_enable=YES

#修改配置83行
ascii_download_enable=YES

#修改配置86行
ftpd_banner=Welcome to blah FTP service.

#修改配置100行
chroot_local_user=YES

#新增下列內容到vsftpd.conf末尾

#ftp時間和系統同步,如果啟動有錯誤,請註釋掉
use_localtime=YES
#ftp埠
listen_port=21
#超時設定
idle_session_timeout=300
#空閒1秒後伺服器斷開
#data_connection_timeout=1
#設定本地使用者可以訪問。注意:主要是為虛擬宿主使用者,如果該專案設定為NO那麼所有虛擬使用者將無法訪問
local_enable=YES

#########################################################
#以下這些是關於Vsftpd虛擬使用者支援的重要配置專案。
#預設Vsftpd.conf中不包含這些設定專案,需要自己手動新增配置
#########################################################

#設定啟用虛擬使用者功能。
guest_enable=YES
#指定虛擬使用者的宿主使用者(這個是我們後面要新建的使用者
) guest_username=vsftpd #設定虛擬使用者個人Vsftp的配置檔案存放路徑。 user_config_dir=/etc/vsftpd/vconf #當該引數啟用(YES)時,虛擬使用者使用與本地使用者相同的許可權 virtual_use_local_privs=YES #設定被動模式的埠範圍 pasv_min_port=50270 #設定被動模式的埠範圍 pasv_max_port=50274 #保持5秒 accept_timeout=5 #1秒後重新連線 connect_timeout=1 allow_writeable_chroot=YES

3、新建系統使用者vsftpd(虛擬使用者的宿主使用者),使用者目錄為/home/vsftpd

useradd vsftpd -d /home/vsftpd -s /bin/false
chown -R vsftpd:vsftpd /home/vsftpd

4、建立使用者(虛擬使用者,登入ftp用的)檔案

#建立編輯使用者檔案
vim /etc/vsftpd/virtusers
#第一行為使用者名稱,第二行為密碼。不能使用root作為使用者名稱 
ftpuser
123456

5、建立虛擬使用者個人配置檔案

mkdir /etc/vsftpd/vconf
cd /etc/vsftpd/vconf

#這裡建立虛擬使用者ftpuser配置檔案
touch ftpuser

#編輯ftpuser使用者配置檔案,內容如下,其他使用者類似
vim ftpuser

local_root=/home/wwwroot/ #該使用者登入ftp所展現的目錄(可隨便指定web根目錄下的資料夾,我這裡指定的就是web根目錄)
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

6、生成使用者資料檔案

db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db

#設定PAM驗證檔案,並指定對虛擬使用者資料庫檔案進行讀取
chmod 600 /etc/vsftpd/virtusers.db 

注:如果你新增虛擬使用者或者修改虛擬使用者配置檔案(即4、5兩步),都要重新執行6,重新生成一下使用者資料檔案,並重啟vsftpd

7、修改 /etc/pam.d/vsftpd 檔案

# 修改前先備份 
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak

vi /etc/pam.d/vsftpd

#先將配置檔案中原有的 auth 及 account 的所有配置行均註釋掉
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers 
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers 

# 如果系統為32位,上面改為lib

8、防火牆設定

IPtables 的設定方式:
vi /etc/sysconfig/iptables
#編輯iptables檔案,新增如下內容,開啟21埠
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 40000:40010 -j ACCEPT

firewall 的設定方式:
firewall-cmd --zone=public --add-service=ftp --permanent
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=40000-40010/tcp --permanent 

注:兩種方式用其一,看你的系統有哪個就用哪個,40000-40010是ftp被動連結的埠返回,如果你的伺服器是是第三方提供的,比如阿里雲,美橙,如果他們有指定的埠範圍,就用他們指定的

9、重啟vsftpd伺服器

systemctl restart vsftpd.service

10、使用ftp工具連線測試

這個時候,使用ftp的工具連線時,我們發現是可以連線的。傳輸檔案的時候,會發現檔案上傳和下載都會出現

500、503 、200等問題。這個時候,可以進行以下操作:

方式一、關閉SELINUX

#開啟SELINUX配置檔案
vim /etc/selinux/config

#修改配置引數
#註釋  
SELINUX=enforcing

#增加  
SELINUX=disabled

#修改完成後,需要重啟系統!

方式三、 SELINUX不對vsftp不做任何限制

setsebool -P ftpd_connect_all_unreserved 1