网络防火墙是阻挡非授权主机访问网络的第一道防护,但是它们不应该仅有一道屏障。Linux使用了两个文件/etc/host.allow和/etc/hosts.deny,根据网络请求的来源限制对服务的访问。host.allow文件列出了允许连接到一个特定服务的主机,而hosts.deny文件则负责限制访问。不过,这两个文件只控制对有hosts_access功能的服务(如xinetd所管理的那些服务、sshd和某些配置的sendmail)的访问。
在大多数情况下,明智的做法是先做限制,然后只允许从指定主机访问关键服务。我们建议,默认在hosts.deny文件中加上下面这一行配置,拒绝所有的访问:
ALL:ALL
接下来,您可以在hosts.allow文件中逐个开放访问许可。下面的配置允许从网络192.168/16访问SSH,而从任何地方访问sendmail。
sshd: 192.168.0.0/255.255.0.0
sendmail: ALL
两个文件每行配置的格式都是service: host或者service: network。失败的连接企图被记录到syslog中。从没有得到允许访问该服务的主机来的连接会被立即关闭。
大多数Linux发行版本默认都带host.allow和hosts.deny,但是它们通常为空。
-----
对于能过xinetd程序启动的网络服务,比如ftp telnet,我们就可以修改/etc/hosts.allow和/etc/hosts.deny的配制,来许可或者拒绝哪些IP、主机、用户可以访问。
比如我们在 /etc/hosts.allow中加入
all:218.24.129.
这样就会允许来自218.24.129.*域的所有的客户来访问。这只是举个例子,实际上,系统默认状态 下,都是能用这些网络服的
如果我们在 /etc/hosts.deny中加入,就限制了来自218.24.129.*域的所有的所有的IP。
all:218.24.129.
如果我们在 /etc/hosts.deny中加入
all:218.24.129.134,这样就限制了所有在218.24.129.134中的所有的用户的访问。
当hosts.allow和 host.deny相冲突时,以hosts.allow设置优化。
设置好后,要重新启动
# /etc/rc.d/init.d/xinetd restart
# /etc/rc.d/init.d/network restart
不是任何服务程序都能使用TCP_wrappers的,例如使用命令ldd /usr/sbin/sshd,如果输出中有libwrap,则说明可以使用TCP_wrappers, 即该服务可以使用/etc/hosts.allow和/etc/hosts.deny,如果输出没有libwrap则不可使用
阅读(672) | 评论(0) | 转发(0) |