【访问控制】hosts.allow/deny配置说明

一、前言

一个IP请求连入,linux的检查策略是先看/etc/hosts.allow中是否允许,如果允许直接放行;如果没有,则再看/etc/hosts.deny中是否禁止,如果禁止那么就禁止连入。
两个配置文件的关系为:/etc/hosts.allow 的设定优先于/etc/hosts.deny

二、支持服务

hosts.allow和hosts.deny规则的执行者为TCP wrappers,对应守护进程为tcpd;而tcpd执行依赖于程序使用了libwrap库

hosts.alllow和hosts.deny只支持libwrap库的服务,可通过以下两种方式查看

注:目前已知支持的常见服务有:sshdvsftpdrpcbindrpc.mountd

1、方式一

通过命令strings /usr/sbin/<services-name> | grep hosts_access查看,若返回结果为hosts_access,则代表支持

root@node61:~# strings /usr/sbin/sshd | grep hosts_access
hosts_access

2、方式二

通过命令ldd /usr/sbin/<services-name> | grep libwrap查看,若返回结果为hosts_access,则代表支持

root@node61:~# ldd /usr/sbin/vsftpd | grep libwrap
    libwrap.so.0 => /lib/aarch64-linux-gnu/libwrap.so.0 (0x0000ffffabec0000)

三、配置方式

1、修改/etc/hosts.deny配置文件,设置默认不允许所有客户端访问对应服务

注:service_name 必须与/etc/rc.d/init.d/* 里面的程序名称要相同

示例不允许所有客户端访问rpcbind服务,此时所有客户端都无法对主机进行showmount -e <nfs-server-ip>操作

echo "rpcbind:ALL:deny" >> /etc/hosts.deny

2、修改/etc/hosts.allow配置文件,添加对应服务的客户端IP地址

示例允许172.16.21.62/172.16.21.86两台客户端访问rpcbind服务,此时这两台客户端可以对主机进行showmount -e <nfs-server-ip>操作

echo "rpcbind:172.16.21.62,172.16.21.86:allow" >> /etc/hosts.allow
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值