#安裝 yum install -y vsftpd #設置開機啓動 systemctl enable vsftpd.service #啓動 systemctl start vsftpd.service #中止 systemctl stop vsftpd.service #查看狀態 systemctl status vsftpd.service
二、配置FTPlinux
#打開配置文件 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末尾 use_localtime=YES listen_port=21 idle_session_timeout=300 guest_enable=YES guest_username=vsftpd user_config_dir=/etc/vsftpd/vconf data_connection_timeout=1 virtual_use_local_privs=YES pasv_min_port=40000 pasv_max_port=40010 accept_timeout=5 connect_timeout=1 allow_writeable_chroot=YES
三、創建用戶文件數據庫
#建立編輯用戶文件 vim /etc/vsftpd/virtusers #第一行爲用戶名,第二行爲密碼。不能使用root做爲用戶名 xiaoftp 123456
四、生成用戶數據文件vim
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db #設定PAM驗證文件,並指定對虛擬用戶數據庫文件進行讀取 chmod 600 /etc/vsftpd/virtusers.db
五、修改 /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
六、新建系統用戶vsftpd,用戶目錄爲/home/vsftpdsession
#用戶登陸終端設爲/bin/false(即:使之不能登陸系統) useradd vsftpd -d /home/vsftpd -s /bin/false chown -R vsftpd:vsftpd /home/vsftpd
七、創建虛擬用戶我的配置文件ssh
mkdir /etc/vsftpd/vconf cd /etc/vsftpd/vconf #這裏創建虛擬用戶leo配置文件 touch leo #編輯leo用戶配置文件,內容以下,其餘用戶相似 vi leo # 此處local_root少複製了一個lo致使一個(vsftp的問題500 OOPS: unrecognised variable in config file: cal_root)錯誤,解決了好久 local_root=/home/vsftpd/xiaoftp/ write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES #創建leo用戶根目錄 mkdir -p /home/vsftpd/xoapftp/
八、防火牆設置async
#一、直接關閉防火牆 systemctl stop firewalld.service #中止firewall systemctl disable firewalld.service #禁止firewall開機啓動 #二、設置 iptables service yum -y install iptables-services #若是要修改防火牆配置,如增長防火牆端口3306 vi /etc/sysconfig/iptables #增長規則 -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #保存退出後 systemctl restart iptables.service #重啓防火牆使配置生效 systemctl enable iptables.service #設置防火牆開機啓動 #最後重啓系統使設置生效便可。
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
九、重啓vsftpd服務器tcp
systemctl restart vsftpd.service
十、使用ftp工具鏈接測試
這個時候,使用ftp的工具鏈接時,咱們發現是能夠鏈接的。傳輸文件的時候,會發現文件上傳和下載都會出現500、503 、200等問題。這個時候,能夠進行如下操做:
方式1、關閉SELINUX工具
#打開SELINUX配置文件 vim /etc/selinux/config #修改配置參數 #註釋 SELINUX=enforcing #增長 SELINUX=disabled #修改完成後,須要重啓!
方式2、修改SELINUX測試
setenforce 0 #暫時讓SELinux進入Permissive模式 #列出與ftp相關的設置 getsebool -a|grep ftp #如下是顯示出來的權限,off是關閉權限,on是打開權限。不一樣的機器顯示的可能不同。我看了個人顯示的,和網上其餘教程就不太同樣 ftp_home_dir --> off 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 sftpd_anon_write --> off sftpd_enable_homedirs --> off sftpd_full_access --> off sftpd_write_ssh_home --> off tftp_anon_write --> off tftp_home_dir --> off #將包含有 ftp_home_dir 和 ftpd_full_access 相關的都設置爲 1 setsebool -P ftp_home_dir 1 setsebool -P allow_ftpd_anon_write 1 setsebool -P ftp_home_dir 1 setenforce 1 #進入Enforcing模式
方式3、 SELINUX不對vsftp不作任何限制
setsebool -P ftpd_connect_all_unreserved 1
若是仍是有問題嘗試給咱們用戶的ftp目錄,設置一下操做權限
chmod -R 775 /home/vsftpd/leo