/etc/host.deny 是否会阻止 http 请求?

h22*_*h22 0 unix firewall

如果我将条目放入 /etc/hosts.deny 中,它会阻止从该 IP 地址到我的计算机的所有请求(如iptables所做的那样),还是仅阻止某些应用程序(如 SSH)的访问?

use*_*517 5

伊恩的阅读手册作为您的急诊服务的服务......

这取决于

如果你把

ALL: 192.0.2.1, example.com
Run Code Online (Sandbox Code Playgroud)

它将阻止对列出的主机的所有适当编译的服务的访问。

如果你把

sshd: 192.0.2.1, example.com
Run Code Online (Sandbox Code Playgroud)

然后,如果sshd已正确编译,则将阻止列出的主机对 sshd 的访问。

对于要利用hosts.deny|hosts.allow 的服务,它必须能够感知tcpwrapper,但并非所有服务都能感知。

一般来说,您可以通过在二进制文件的 ldd 输出中查找 libwrap 来检查服务是否支持 tcpwrapper,例如

ldd /usr/sbin/sshd | grep libwrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007fae25ae7000)
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下 sshd 是 tcpwrapper 感知的。