实战vsftp针对用户和IP访问控制
本文将介绍如何通过vsftp针对用户和IP访问控制。
vsftp 可以单独对IP段进行访问限制。
也可以结合pam,对用户和IP段进行访问限制。
当然这里的用户,有2种,一种是os上的用户,一种是vsftp建立的虚拟用户。
如果需要虚拟用户访问控制的,可以参考这个博主的帖子,非常详细
https://www.cnblogs.com/yizhipanghu/p/14101219.html
pam_access认证模块介绍
http://bbs.chinaunix.net/thread-472046-1-1.html
1.安装vsftp服务
yum install -y vsftpd
创建一个测试用户
useradd -m -d /home/test test
设置密码
echo "test"| passwd --stdin test
启动vsftp
systemctl start vsftpd
2.vsftp基于IP段的访问控制
优点: 配置简单
缺点: 不够灵活,只能对IP段限制
修改/etc/vsftpd/vsftpd.conf 需要有下面这条配置
tcp_wrappers=YES
vsftpd 所有的ip都不可以访问
# echo "vsftpd:all:Deny" >> /etc/hosts.deny
只允许192.168.5.1访问
# echo "vsftpd:192.168.5.1:Allow" >> /etc/hosts.allow
允许策略,可以用*号,也可以写多行
vsftpd:196.168.0.*:allow
重启vsftpd
# systemctl restart vsftpd
然后ftp测试即可。
3.vsftp基于OS本地用户和IP段的访问控制
优点: 用户和密码由OS自己维护。
这里我们需要用到pam模块,开始下面的配置
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bk
cat > /etc/pam.d/vsftpd <<EOF
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
account required pam_access.so
EOF
pam_access.so是模块,会调用到配置文件/etc/security/access.conf ,然后我们在access.conf里面配置访问控制信息,按照自己的需求添加下面的信息。
vi /etc/security/access.conf
# test用户所有IP都不让访问,vagrant用户都可以访问
-:test:ALL
+:vagrant:ALL
# test用户只有192.168.5.1 192.168.5.101可以访问,vagrant用户只有192.168.5.1可以访问
-:test:ALL EXCEPT 192.168.5.1 192.168.5.101
-:vagrant:ALL EXCEPT 192.168.5.1
重启vsftpd服务
systemctl restart vsftpd
ftp 192.168.5.101 用不同的用户测试
希望可以帮助到各位,觉得对你有帮助的,可以支持博主!帮忙点赞转发关注!