惜风不起、唯有努力!
Linux部署ftp服务器

Linux部署ftp服务器

1、安装vsftpd

yum -y install vsftpd

//创建ftp登陆用户
useradd -d /data/ftpdata -s /sbin/nologin ftps

2、备份原有vsftpd配置文件,修改配置文件

cp -rf /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

//修改如下
#禁止匿名登陆
anonymous_enable=NO

#自己创建的ftp根目录
local_root=/data/ftpdata
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=NO
tcp_wrappers=YES

#下面配置是权限相关
allow_writeable_chroot=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

#关闭PASV模式的安全检查。该检查确保数据连接和控制连接是来自同一个IP地址
pasv_promiscuous=YES
#开放数据传输端口
#pasv_min_port=30000
#pasv_max_port=30002
#连接超时时间,客户端连服务端600s不操作,自动断开
idle_session_timeout=600

#下面是日志相关配置
vsftpd_log_file=/var/log/vsftpd.log
dual_log_enable=YES
xferlog_file=/var/log/ftp_pull_push.log


//创建白名单并写入可登陆ftp服务器的用户
touch /etc/vsftpd/chroot_list && echo "ftps" > /etc/vsftpd/chroot_list

3、启动ftp服务器

systemctl start vsftpd && systemctl status vsftpd

PS:客户端软件登陆ftp服务器要把客户端软件被动模式去掉

4、部署小坑

部署完死活登录不了,报错如下

客户端报错:
Error EElFTPSUnacceptedReplyError: Unaccepted server reply code 530

服务器报错:
Dec  1 23:45:33 asi-m-128 vsftpd[1401]: pam_unix(vsftpd:auth): check pass; user unknown
Dec  1 23:45:33 asi-m-128 vsftpd[1401]: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=anonymous rhost=::ffff:192.168.87.1

解决方案如下,也是水了好几篇文章,因为之前没有遇到过这样的问题。服务器日志也只是输出登录失败字样。

原因:
这个是因为你创建的用户是不需要登陆的你设置了nologin,然后登陆的时候会去/etc/passwd下面检查这个用户,必须为/etc/shells类型才能登陆。所以就报错了。

解决如下:
[root@asi-m-128 pam.d]# cat /etc/pam.d/vsftpd
#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required	pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required     pam_nologin.so   #这一行修改成pam_nologin.so模块
auth       include	password-auth
account    include	password-auth
session    required     pam_loginuid.so
session    include	password-auth

发表回复

您的电子邮箱地址不会被公开。