centos7 ftp服务搭建记录
1. 装包与卸载
yum -y install vsftpd yum -y autoremove vsftpd&&rm -rf /etc/vsftpd /etc/pam.d/vsftpd.rpmsave
2. 设置用户清单策略
/etc/vsftpd/ftpusers #黑名单:拒绝用户清单
/etc/vsftpd/user_list #白名单:允许用户清单
[root@localhost ~]# echo userlist_deny=NO >> /etc/vsftpd/vsftpd.conf [root@localhost ~]# grep userlist /etc/vsftpd/vsftpd.conf userlist_enable=YES userlist_deny=NO [root@localhost vsftpd]# grep deny user_list # If userlist_deny=NO, only allow users in this file # If userlist_deny=YES (default), never allow users in this file [root@localhost ~]# echo myftp >> /etc/vsftpd/user_list
3. 设置ftp访问目录
[root@localhost vsftpd]# echo local_root=/home/ftpdir/pub >> /etc/vsftpd/vsftpd.conf [root@localhost vsftpd]# grep 'local_root' /etc/vsftpd/vsftpd.conf local_root=/home/ftpdir/pub
4. 创建ftp用户
禁用匿名用户
sed -i 's/^anon/#anon/g' /etc/vsftpd/vsftpd.conf
创建ftp访问用户
对于单用户来说,700的权限就完成足够了
如果创建多用户的话,可根据情况修改权限,一般来说没有这个必要
注:切换目录后,只有设置了用户的家目录,用户才有登陆权限;此时ftp登陆目录需要设为该用户家目录,除非开放目录切换(见下一步)
useradd myftp -d /home/ftpdir -s /sbin/nologin
echo myftp:ftppasswd|chpasswd
mkdir -p /home/ftpdir/pub
chown -R myftp:myftp /home/ftpdir/
chmod -R 700 /home/ftpdir
5. 开放目录切换(一般没必要,可以不做)
对以下三行内容解注释,若权限不足,可添加一句:
echo allow_writeable_chroot=YES >> /etc/vsftpd/vsftpd.conf
然后手动将用户加入chroot名单(看注释是黑名单,但实际上似乎是白名单,亲测只有名单里的用户才能登陆):/etc/vsftpd/chroot_list
[root@localhost vsftpd]# egrep -n "^\#chroot_|^chroot_" /etc/vsftpd/vsftpd.conf 101:#chroot_local_user=YES 102:#chroot_list_enable=YES 104:#chroot_list_file=/etc/vsftpd/chroot_list [root@localhost vsftpd]# sed -i 's/#chroot_/chroot_/' /etc/vsftpd/vsftpd.conf
[root@localhost vsftpd]# echo myftp >> /etc/vsftpd/chroot_list
6. nologin用户配置
如果创建的是nologin的用户,需要修改pam文件
[root@localhost vsftpd]# sed -i 's/pam_shells/pam_nologin/' /etc/pam.d/vsftpd [root@localhost vsftpd]# 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 auth include password-auth account include password-auth session required pam_loginuid.so session include password-auth [root@localhost vsftpd]#
7. 启服务
[root@localhost ~]# systemctl restart vsftpd