Linux-host.allow和host.deny
hosts.allow
和 hosts.deny
的使用方式
hosts.allow
和 hosts.deny
是Linux系统中用于控制远程访问的两个文件,位于 /etc/
目录下。它们通过TCP Wrappers机制来实现对特定服务的访问控制。以下是它们的具体使用方式和规则:
基本原理
- TCP Wrappers:
hosts.allow
和hosts.deny
依赖于TCP Wrappers机制,只支持使用了libwrap库的服务。TCP Wrappers通过限制某些服务的访问权限来保护系统安全。 - 优先级:当有远程请求到达时,系统首先检查
hosts.allow
文件。如果匹配,则允许访问并跳过hosts.deny
文件的检查。如果hosts.allow
中没有匹配项,则检查hosts.deny
文件。如果匹配,则拒绝访问。如果两个文件中都没有匹配项,则默认允许访问。
文件格式
- 基本格式:每行规则的格式为:其中:
1
daemon_list : client_list : option
daemon_list
:要监控的服务列表,如sshd
、telnetd
等。client_list
:主机名、IP地址/IP范围,或域名。option
:具体选项,如allow
(允许访问)、deny
(拒绝访问)、except
(排除特定项)。
示例配置
允许特定IP段访问SSH服务:
1
2sshd:192.168.18.*:allow
sshd:192.168.224.*:allow这表示允许来自
192.168.18.*
和192.168.224.*
IP段的主机访问SSH服务。允许和拒绝规则结合使用:
1
2
3
4telnetd,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
域的主机访问telnet
和ssh
服务。 - 允许
myweb.com
域的所有主机访问ftp
服务,除了user1.myweb.com
和user2.myweb.com
。 - 允许
192.168.6.*
和192.168.7.*
IP段的主机访问telnet
和ssh
服务。 - 拒绝
192.168.8.*
和192.168.9.*
IP段的主机访问telnet
服务。
- 允许
注意事项
- 规则灵活性:可以只使用一个文件(通常是
hosts.allow
)来包含所有规则,在需要拒绝的IP后面跟上deny
选项即可。如果暂时不需要这些规则,可以将文件名临时改掉,之后再改回来。 - 宏定义:支持一些宏定义,如
ALL
(指代所有主机)、LOCAL
(指代本地主机)、KNOWN
(能够解析的主机)、UNKNOWN
(不能解析的主机)。
通过合理配置 hosts.allow
和 hosts.deny
文件,可以有效地控制和管理系统的远程访问权限,提升系统的安全性。
Linux-host.allow和host.deny
https://dnacore.github.io/post/7502578f-c07e-4d42-af36-ae4e14b7ad0a.html