vsftpd服务器不显示文件,CentOS7下搭建vsftpd服务器(本地用户模式)

本文介绍了如何在CentOS7下搭建vsftpd服务器,包括安装、配置、创建用户、启动服务、解决登录问题、切换用户家目录、设定被动和主动模式,以及安全加固措施。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文转载自【微信公众号:WalkingCloud,ID:WalkingCloud2018】,经微信公众号授权转载,如需转载与原文作者联系

73599cdf7fca61ad755470056fe56cef.png

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

1、首先yum方式安装vsftpd

yum install vsftpd

bb2ffff5072d0e1eebd7bd3b4b553ba6.png

13434ce5cbc00233e4d93e2b75257838.png

2、修改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或者改为NO

chroot_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.conf

sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf

sed -i 's/listen_ipv6=YES/listen_ipv6=NO/' /etc/vsftpd/vsftpd.conf

sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf

sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf

sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf

echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf

68d06376ac6026d1eb5d3dcc18a7d7d8.png

3、创建ftp用户 例如yuanfan

useradd -d /data/FTP -s /sbin/nologin yuanfan

passwd yuanfan

并设置密码

916dc7c5f59a420fd528073089b338ce.png

4、启动vsftpd服务,并设置开机自启动

systemctl enable vsftpd

systemctl start vsftpd

d587a871da0ddd11a947ffd0d89989f1.png

若有防火墙,需要防火墙添加ftp服务

5、客户端登录测试

ftp 172.16.30.200

68ecbf9fca3c698f206f06a432e22473.png

输入正确的用户名密码提示530错误

解决办法vi /etc/pam.d/vsftpd

注释掉这一行

#auth required pam_shells.so

然后重启vsftpd服务

f1fa1d7b31fbde80e3db537070e7bd6a.png

842853a8651ba7a84bd283e505384b89.png

这时再进行登录提示

c6c7c1524b59bcb57adc5ef7c73ff47d.png

再手动在/etc/vsftpd/目录下创建一下chroot_list文件即可

touch /etc/vsftpd/chroot_list后重新登录,可以正常登录了

ed1bb37980aa37085d6883d3c1f54dc9.png

505f048b3424e6eeedec1de591ba141a.png

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

1274018db441f9bbf5525124ccc3c15b.png

6、要实现用户能够切换用户家目录

在FTP服务器这边将用户加到/etc/vsftpd/chroot_list文件中

可以man vsftpd.conf查看chroot_list帮助说明

9b472245a58c7486f1c5328e25b34871.png

echo yuanfan > /etc/vsftpd/chroot_list然后重启vsftpd服务

如下图所示,就可以切换家目录了(可以看出用户切换家目录风险较高)

e6cf52705ef14051f73ab18268e57d6d.png

7、被动模式限定端口

echo "pasv_enable=YES">> /etc/vsftpd/vsftpd.conf

echo "pasv_min_port=30001">> /etc/vsftpd/vsftpd.conf

echo "pasv_max_port=30010">> /etc/vsftpd/vsftpd.conf

966d867c4303128d697c5ccca57d6b73.png

抓包分析可以看到传输端口已经被限制在30001-30010端口范围内

f678d9ef7887408f22509ed54cee919e.png

另外ftp登录过程是明文传输的,抓包可以看到用户名与密码

8、设置成主动模式

删除上一步中被动模式添加的配置,改成主动模式的配置

pasv_enable=NO

port_enable=YES

connect_from_port_20=YES(默认有一行)

932bb57021157ee2a944c941915bd45b.png

服务端要开放20端口

firewall-cmd --add-port=20/tcp --permanent

firewall-cmd --reload

如下图所示Linux客户端使用主动模式需要关闭防火墙

passive命令切换成主动模式

9f4ee13fba4ba1f1425b841533658e58.png

2830a8467371bb2c3e7875e708fdb36d.png

抓包可以看到传输端口为20

9、安全加固

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

e8c692f45e3f30b5f8a93ff18b7876e2.png

本文转载自【微信公众号:WalkingCloud,ID:WalkingCloud2018】,经微信公众号授权转载,如需转载与原文作者联系

举报/反馈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值