CentOS7下搭建vsftpd服务器(本地用户模式)_sed

CentOS7下搭建vsftpd服务器(本地用户模式)1、首先yum方式安装vsftpd
yum install vsftpdCentOS7下搭建vsftpd服务器(本地用户模式)_sed_02CentOS7下搭建vsftpd服务器(本地用户模式)_用户名_032、修改vsftpd.conf配置文件cd /etc/vsftpd/cp vsftpd.conf vsftpd.conf_default#修改下列参数的值anonymous_enable=NO          #禁止匿名登录FTP服务器local_enable=YES             #允许本地用户登录FTP服务器listen=YES                   #监听IPv4 sockets#listen_ipv6=YES             #关闭监听IPv6 sockets或者改为NOchroot_local_user=YES        #全部用户被限制在主目录chroot_list_enable=YES       #启用例外用户名单chroot_list_file=/etc/vsftpd/chroot_list  #指定例外用户列表文件,列表中用户不被锁定在主目录allow_writeable_chroot=YES以上配置可以直接用下面命令进行替换修改sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.confsed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.confsed -i 's/listen_ipv6=YES/listen_ipv6=NO/' /etc/vsftpd/vsftpd.confsed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.confsed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.confsed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.confecho "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.confCentOS7下搭建vsftpd服务器(本地用户模式)_用户名_043、创建ftp用户 例如yuanfan
useradd -d /data/FTP -s /sbin/nologin yuanfanpasswd yuanfan并设置密码CentOS7下搭建vsftpd服务器(本地用户模式)_ftp服务器_054、启动vsftpd服务,并设置开机自启动
systemctl enable vsftpdsystemctl start vsftpdCentOS7下搭建vsftpd服务器(本地用户模式)_ftp服务器_06若有防火墙,需要防火墙添加ftp服务5、客户端登录测试
ftp 172.16.30.200CentOS7下搭建vsftpd服务器(本地用户模式)_ftp服务器_07输入正确的用户名密码提示530错误解决办法vi /etc/pam.d/vsftpd 注释掉这一行#auth       required    pam_shells.so然后重启vsftpd服务CentOS7下搭建vsftpd服务器(本地用户模式)_用户名_08CentOS7下搭建vsftpd服务器(本地用户模式)_sed_09

这时再进行登录提示

CentOS7下搭建vsftpd服务器(本地用户模式)_用户名_10

再手动在/etc/vsftpd/目录下创建下chroot_list文件即可touch /etc/vsftpd/chroot_list后重新登录,可以正常登录了CentOS7下搭建vsftpd服务器(本地用户模式)_sed_11CentOS7下搭建vsftpd服务器(本地用户模式)_sed_12

在FTP服务器上可以查看到客户端上传上来的文件

CentOS7下搭建vsftpd服务器(本地用户模式)_sed_136、要实现用户能够切换用户家目录在FTP服务器这边将用户加到/etc/vsftpd/chroot_list文件中可以man vsftpd.conf查看chroot_list帮助说明CentOS7下搭建vsftpd服务器(本地用户模式)_用户名_14echo yuanfan > /etc/vsftpd/chroot_list然后重启vsftpd服务如下图所示,就可以切换家目录了(可以看出用户切换家目录风险较高)CentOS7下搭建vsftpd服务器(本地用户模式)_sed_157、被动模式限定端口echo "pasv_enable=YES">> /etc/vsftpd/vsftpd.confecho "pasv_min_port=30001">> /etc/vsftpd/vsftpd.confecho "pasv_max_port=30010">> /etc/vsftpd/vsftpd.confCentOS7下搭建vsftpd服务器(本地用户模式)_ftp服务器_16抓包分析可以看到传输端口已经被限制在30001-30010端口范围内CentOS7下搭建vsftpd服务器(本地用户模式)_用户名_17另外ftp登录过程是明文传输的,抓包可以看到用户名与密码8、设置成主动模式删除上一步中被动模式添加的配置,改成主动模式的配置pasv_enable=NOport_enable=YESconnect_from_port_20=YES(默认有一行)CentOS7下搭建vsftpd服务器(本地用户模式)_sed_18服务端要开放20端口firewall-cmd --add-port=20/tcp --permanentfirewall-cmd --reload如下图所示Linux客户端使用主动模式需要关闭防火墙passive命令切换成主动模式CentOS7下搭建vsftpd服务器(本地用户模式)_用户名_19CentOS7下搭建vsftpd服务器(本地用户模式)_sed_20抓包可以看到传输端口为209、安全加固1)禁止显示 banner 信息#ftpd_banner=Welcome to blah FTP service.取消注释,进行修改即可

2)限制 FTP 登录用户

在 ftpusers 和 user_list 文件中列举的用户都是不允许访问 FTP 服务的用户(例如 root、bin、daemon 等用户)。除了需要登录 FTP 的用户外,其余用户都应该添加至此拒绝列表中

3)修改监听地址和默认端口

修改 VSFTP 配置文件 vsftpd.conf,设置监听 1.1.1.1 地址的2121 端口

listen_address=1.1.1.1

isten_port=2121

CentOS7下搭建vsftpd服务器(本地用户模式)_ftp服务器_21