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