一、安裝ftp服務器
1.通過yum命令安裝
yum install vsftpd
2.安裝成功之後就是配置ftp用戶比如zhangsan
useradd -g root -d /home/wwwroot -s /sbin/nologin zhangsan
如果提示目錄已存在,不需要理會,繼續往下
3.爲zhangsan設置密碼
passwd zhangsan
4.設置權限
chown -R zhangsan:root /home/wwwroot
5.修改vsftp配置文件,禁止匿名登錄
vi /etc/vsftpd/vsftpd.conf
把:anonymous_enable=YES 改爲: anonymous_enable=NO
按ESC 輸入 :wq 保存退出
二、配置ftp服務器
1.開啓防火牆,添加放行端口21
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
2.開啓SELinux並設置
vi /etc/selinux/config
更改爲:SELINUX=1
必須重啓linux,不重啓是沒辦法立刻開啓selinux的。
3.重啓ftp,遠程ftp服務器測試是否成功
systemctl restart vsftpd.service
如果這個時候遠程提示
-----------------------------------331 Please specify the password------------------------------------
ftp遠程提示530錯誤
root
響應:331 Please specify the password.
命令:PASS ********************
響應:530 Login incorrect
錯誤:嚴重錯誤,無法連接到服務器
-----------------------------------331 Please specify the password------------------------------------
3.1執行如下命令
getsebool -a | grep ftp
3.2找到 tftp_home_dir –> off 這一行,需要把後面的off改成1,通過下面的代碼修改
setsebool -P tftp_home_dir=1
3.3.檢查/etc/vsftpd/vsftpd.conf配置
vim /etc/vsftpd/vsftpd.conf
看下面配置
local_enable=YES
pam_service_name=vsftpd
userlist_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
沒有chroot_list就新建一個,在裏面輸入用戶名,一行爲一個用戶,也可以不要這個東西測試
3.4.檢查/etc/pam.d/vsftp
vim /etc/pam.d/vsftpd
註釋掉
#auth required pam_shells.so 這個很重要
3.5重啓ftp服務器再測試ftp遠程登錄
如果提示vsftpd連接報錯:500 OOPS: vsftpd
-----------------------------------500 OOPS: vsftpd------------------------------------
root
響應:331 Please specify the password.
命令:PASS ********************
響應:500 OOPS: vsftpd:refusing to run with writable root inside chroot()
錯誤:嚴重錯誤,無法連接到服務器
-----------------------------------500 OOPS: vsftpd------------------------------------
在服務器上修改Vsftpd的配置文件vsftpd.conf
vim /etc/vsftpd/vsftpd.conf
# 添加一行配置 allow_writeable_chroot=YES
4.測試如果Filezilla 提示—–服務器發回了不可路由的地址,使用服務器地址代替
解決方法:更改Filezilla設置,編輯 - 設置 - 連接-FTP-被動模式,將“使用服務器的外部IP地址來代替”改爲“回到主動模式”即可。