Linux-host.allow和host.deny

hosts.allowhosts.deny 的使用方式

hosts.allowhosts.deny 是Linux系统中用于控制远程访问的两个文件,位于 /etc/ 目录下。它们通过TCP Wrappers机制来实现对特定服务的访问控制。以下是它们的具体使用方式和规则:

基本原理

  • TCP Wrappershosts.allowhosts.deny 依赖于TCP Wrappers机制,只支持使用了libwrap库的服务。TCP Wrappers通过限制某些服务的访问权限来保护系统安全。
  • 优先级:当有远程请求到达时,系统首先检查 hosts.allow 文件。如果匹配,则允许访问并跳过 hosts.deny 文件的检查。如果 hosts.allow 中没有匹配项,则检查 hosts.deny 文件。如果匹配,则拒绝访问。如果两个文件中都没有匹配项,则默认允许访问。

文件格式

  • 基本格式:每行规则的格式为:
    1
    daemon_list : client_list : option
    其中:
    • daemon_list:要监控的服务列表,如 sshdtelnetd 等。
    • client_list:主机名、IP地址/IP范围,或域名。
    • option:具体选项,如 allow(允许访问)、deny(拒绝访问)、except(排除特定项)。

示例配置

  • 允许特定IP段访问SSH服务

    1
    2
    sshd:192.168.18.*:allow
    sshd:192.168.224.*:allow

    这表示允许来自 192.168.18.*192.168.224.* IP段的主机访问SSH服务。

  • 允许和拒绝规则结合使用

    1
    2
    3
    4
    telnetd,sshd:.myweb.com :allow
    ftpd:.myweb.com except user1.myweb.com, user2.myweb.com : allow
    telnetd,sshd:192.168.6. , 192.168.7.: allow
    telnetd :192.168.8., 192.168.9.: deny

    这表示:

    • 允许 myweb.com 域的主机访问 telnetssh 服务。
    • 允许 myweb.com 域的所有主机访问 ftp 服务,除了 user1.myweb.comuser2.myweb.com
    • 允许 192.168.6.*192.168.7.* IP段的主机访问 telnetssh 服务。
    • 拒绝 192.168.8.*192.168.9.* IP段的主机访问 telnet 服务。

注意事项

  • 规则灵活性:可以只使用一个文件(通常是 hosts.allow)来包含所有规则,在需要拒绝的IP后面跟上 deny 选项即可。如果暂时不需要这些规则,可以将文件名临时改掉,之后再改回来。
  • 宏定义:支持一些宏定义,如 ALL(指代所有主机)、LOCAL(指代本地主机)、KNOWN(能够解析的主机)、UNKNOWN(不能解析的主机)。

通过合理配置 hosts.allowhosts.deny 文件,可以有效地控制和管理系统的远程访问权限,提升系统的安全性。


Linux-host.allow和host.deny
https://dnacore.github.io/post/7502578f-c07e-4d42-af36-ae4e14b7ad0a.html
作者
DNACore
发布于
2023年2月16日
更新于
2024年12月25日
许可协议