vsftpd搭建 - 基于系统用户

安装部署

1.使用yum在线安装

yum install vsftpd -y

2.允许用户登陆

使user_list​为NO,只允许列表内用户访问

sed -i 's/userlist_enable=YES/userlist_deny=NO/g' /etc/vsftpd/vsftpd.conf
echo user1  >> /etc/vsftpd/user_list
echo user2  >> /etc/vsftpd/user_list
echo user3  >> /etc/vsftpd/user_list
#添加允许的登录ftp的系统账号

3.安全设置

黑名单 (user_list优先匹配,ftpusers 后匹配) cat /etc/vsftpd/ftpusers root bin daemon adm ...... 限制匿名账号

sed -i  s/anonymous_enable=YES/anonymous_enable=NO/ /etc/vsftpd/vsftpd.conf
echo ftp >>  /etc/vsftpd/ftpusers
#禁用匿名用户登录,不再跳出pub目录

方法1.将登录后的用户限制在自己的家目录

vi /etc/vsftpd/vsftpd.conf

 chroot_local_user=YES

方法2.登录用户默认限制在家目录,但是chroot_list内的用户不受限制

vi /etc/vsftpd/vsftpd.conf

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
echo administrator  >> /etc/vsftpd.chroot_list

4.ftp主目录

1.安全性考虑

chmod -w /ftp站点目录
#取消写入权限

2.允许root有写入权限

allow_writeable_chroot=YES

5.启动服务 如centos7

systemctl restart vsftpd
systemctl enable vsftpd  #加入开机启动

我用www用户作为web服务的运行身份 ,ftp站点也是www家目录。

useradd  -u 500  -M -s /sbin/nologin -g www  -d /var/www   www
passwd www
#设置www用户登录密码

站点目录权限

连接报错:

vsftpd: refusing to run with writable root inside chroot() 错误的解决办法 避免一个安全漏洞,从 vsftpd 2.3.5 开始,chroot 目录必须不可写

根目录不可写

chmod a-w /var/www
# 根目录不可写

根目录可写

chmod 775 /var/www
# 用户可写
allow_writeable_chroot=YES
# 标准的vsftpd build写法
# allow_writable_chroot=YES
# 扩展的vsftpd build (vsftpd-ext)写法

被动端口

/etc/vsftpd/vsftpd.conf

pasv_enable=YES
#Default: YES 设置是否允许pasv模式
#pasv_promiscuous=no
#Default: NO 是否屏蔽对pasv进行安全检查,(当有安全隧道时可禁用)
pasv_min_port=65000
pasv_max_port=65500
#(Default: 0 (use any port)) pasv使用的最大端口
#(Default: 0 (use any port)) pasv使用的最小端口

查看接口

netstat -pntla|grep 115.196.140.238 |awk '/vsftp/  {print $4,$6}'
# 大文件传输测速

服务端口: 192.168.64.14:21 ESTABLISHED 数据端口: 192.168.64.14:65401 ESTABLISHED

一键安装脚本

http://d.attacker.club/scripts/shell/ServicesDeployment/vsftpd/vsftpd_install.sh

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券