【访问控制】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库的服务,可通过以下两种方式查看
注:目前已知支持的常见服务有:sshd
、vsftpd
、rpcbind
、rpc.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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人