在CentOS Stream或其他现代的Linux发行版中,你可能会发现传统的hosts.deny和 hosts.allow文件已经不存在或不被使用。这是因为随着时间的推移,系统的安全策略和网络管理工具已经发生了演变,许多系统管理员和发行版维护者选择使用更现代、更灵活的工具来管理访问控制。
请注意,移除或禁用hosts.deny和hosts.allow文件不会影响大多数现代系统的安全性,因为这些文件通常不被广泛使用。然而,如果你依赖这些文件来控制对网络服务的访问,你需要考虑实施替代的安全策略。hosts.deny和 hosts.allow文件是TCP Wrapper的一部分,这是一个用于控制对网络服务的访问的工具。然而,TCP Wrapper在许多现代系统上被认为过于简单和有限,因此可能不再默认安装或配置。
最后,如果你确实需要使用TCP Wrapper,你可以手动创建hosts.deny和hosts.allow文件,并安装和配置TCP Wrapper工具。但是,请注意这样做可能会引入潜在的安全风险,并且可能不是现代系统的最佳实践。如果你需要控制对网络服务的访问,你可以考虑使用以下替代方案:
- 防火墙规则:使用系统的防火墙工具(如 firewalld、iptables 或 nftables)来定义允许或拒绝的访问规则。这些工具提供了更强大和灵活的方式来控制网络流量。
- SELinux:如果你的系统启用了 SELinux(Security-Enhanced Linux),你可以利用它来实施更细粒度的访问控制策略。SELinux 提供了强大的安全功能,可以帮助你限制对网络服务的访问。
- 通过配置sshd_config中AllowUsers实现SSH访问控制
1、查看linux是否支持hosts.deny
# ll /etc/hosts.allow
# ldd /usr/sbin/sshd |grep libwrap.so.0
没有显示libwrap.so.0库文件,表示此服务器上安装的SSH没有应用libwrapped库文件,也就不能用tcp_Wrappers防火墙控制访问策略。以下为支持tcp_Wrappers查看结果:
2、通过配置sshd_config限制用户登录
CentOS Linux 8以后就不再支持/etc/hosts.allow和/etc/hosts.deny
- CentOS Linux 8
- CentOS Stream 9
- CentOS Stream 8
以上3种系统均可以按以下方法来实现SSH访问控制
2.1查看sshd_config中AllowUsers参数说明
man sshd_config
2.2 限制来192.168.3.28所有用户连接
vim /etc/ssh/sshd_config
DenyUsers *@192.168.3.28
AllowUsers root@192.168.3.10 #只充许来192.168.3.10的root用户连接,其均不能连接
systemctl restart sshd
2.3 只充许来192.168.3.10的root用户连接,其均不能连接
vim /etc/ssh/sshd_config
AllowUsers root@192.168.3.10 #只充许来192.168.3.10的root用户连接,其均不能连接
systemctl restart sshd
注:以上两种情况,请根实际需求进行相关配置,以防配置相互冲突。