我想在 Ubuntu 中阻止一些主机,那么我该如何编辑hosts.deny
文件来阻止一些主机(如 example.com)。
我在 Ubuntu 中安装了另一个东西dnsmasq
,那么我可以检查 dns 缓存的条目吗dnsmasq
?如果可以,那么怎么做?
提前致谢。
答案1
hosts.deny
例子:
ALL: 192.168.1.2
ALL: example.org
这将拒绝对 192.168.1.2 和 example.org 的所有服务。有关更多信息,请参阅此处:http://linux.about.com/od/commands/l/blcmdl5_hostsde.htm
dnsmasq -d
应该会给你缓存的条目,但我不太确定。
- -更新 - -
要使用 iptables 阻止 IP 地址:
iptables -A INPUT -s 11.22.33.44 -j DROP
解除封锁:
iptables -D INPUT -s 11.22.33.44 -j DROP
答案2
hosts.allow
已hosts.deny
弃用。它们由 TCP Wrappers、基于主机的访问控制、http://en.wikipedia.org/wiki/TCP_Wrapper
如果要阻止对服务的访问,您需要查找该服务是否已使用 TCP Wrappers 进行编译。我非常怀疑 Ubuntu 服务仍在使用 TCP Wrappers。
TCP Wrappers 库位于:/lib/libwrap.so.0
如果您想检查lighttpd
(Web 服务器)是否支持 TCP Wrappers,请运行
> ldd /usr/sbin/lighttpd
linux-vdso.so.1 => (0x00007fff2a5ff000)
libpcre.so.3 => /lib/libpcre.so.3 (0x00007f69af837000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f69af633000)
libattr.so.1 => /lib/libattr.so.1 (0x00007f69af42d000)
libssl.so.0.9.8 => /lib/libssl.so.0.9.8 (0x00007f69af1db000)
libcrypto.so.0.9.8 => /lib/libcrypto.so.0.9.8 (0x00007f69aee4b000)
libfam.so.0 => /usr/lib/libfam.so.0 (0x00007f69aec42000)
libc.so.6 => /lib/libc.so.6 (0x00007f69ae8bf000)
/lib64/ld-linux-x86-64.so.2 (0x00007f69afa90000)
libz.so.1 => /lib/libz.so.1 (0x00007f69ae6a8000)
> _
它没有提到libwrap
,所以至少这个服务不支持TCP Wrappers,并且会忽略/etc/hosts.{allow, deny}
。
答案3
您想使用防火墙来阻止对其他网站的访问。我相信 ufw 是默认安装的。该命令man ufw
应提供有关如何使用它的信息。将 192.0.2.15 替换为您要阻止的地址。
命令
sudo ufw 启用 sudo ufw 拒绝 192.0.2.15