LINUX上FTP服务安装、连接问题解决

一、查看是否装了ftp

rpm -qa | grep vsftpd

二、关闭selinux

setenforce 0

三、安装vsftp软件包

yum install -y vsftpd

四、备份vsftpd的默认配置文件

cd /etc/vsftpd/
cp vsftpd.conf vsftpd.conf.bak

五、修改配置

vim vsftpd.conf

# 添加配置

local_enable=YES 
write_enable=YES 
chroot_local_user=YES # 所有用户都被限制在自己的用户目录内。
allow_writeable_chroot=YES 
pasv_enable=Yes  # 允许被动模式
pasv_min_port=10000 # 被动模式最小端口
pasv_max_port=10100 # 被动模式最大端口

六、添加FTP账号

useradd -d /data/ -g ftp -s /sbin/nologin user1

# 其格式为 useradd -d [路径] -g ftp -s /sbin/nologin [用户]
# 写错了可以使用 usermod -d /data2/ 进行修改

# 目录修改权限
chown -R user1 /data
chmod -R 755 /data

七、设置密码

passwd user1

八、重启服务

service vsftpd restart

九、防火墙修改

vim /etc/sysconfig/iptables

# 增加 21 端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

# 如果是云服务器还需要在管理端设置开放端口

十、重启防火墙

service iptables restart

十一、使用 ftp 进行测试

# 如果提示 ftp commond not found 则使用 yum install ftp 安装

十一、vsftpd 530 Login incorrect 根本原因和解决方案

网络上有好多解决方案,例如修改/etc/vsftpd.conf文件 将pam_service_name=vsftpd 修改为 pam_service_name=ftp ,虽然能够解决这个问题,但是这种方法其实是错误的。这样由于/etc/pam.d/ftp文件不存在,等于是绕过了PAM。

cat /etc/pam.d/vsftpd

auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
该配置项的含义是 /etc/ftpusers 中的用户禁止登陆,如果文件不存在在默认所有用户均允许登录. 所以确保用户没在这个文件内。

auth required pam_shells.so 配置项的含义为仅允许用户的shell为 /etc/shells
文件内的shell命令时,才能够成功

# 查看不允许登录ftp的用户列表,确保用户没在这个文件内
cat /etc/vsftpd/ftpusers

修改 /etc/pam.d/vsftpd 文件,将auth required pam_shells.so修改为auth required pam_nologin.so

vim /etc/pam.d/vsftpd

重启 vsftpd

service vsftpd restart

测试 FTP

评论已关闭。