一、安装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地址来代替”改为“回到主动模式”即可。
|