CentOS7.5 FTP安裝與配置
阿新 • • 發佈:2018-12-22
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