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

 

 

 
 
posted @ 2022-10-28 12:22  咿呀哒喏  阅读(38)  评论(0编辑  收藏  举报