分页: 1 / 1

《NetBSD指南-24.7.允许和拒绝主机-/etc/hosts.{allow,deny}》

发表于 : 2010-03-08 1:01
leo
就像上面提到的, NetBSD的 inetd(8) 通过libwrap库内建了tcpwrapper程序包. 因此, inetd(8) 能以一种更精确的方式控制对每一个服务访问(允许或拒绝),而不是允许/禁止所有人访问这个服务. 访问控制在文件 /etc/hosts.allow 和 /etc/hosts.deny里定义, 请参阅 hosts_access(5) 的用户手册.。

上面两个文件通常可以包含对某一个特定服务的访问限制. 如果在 /etc/hosts.allow里获得了许可则允许访问. 如果服务未列在 /etc/hosts.allow 里,而在 /etc/hosts.deny, 它被禁止. 如果两个文件里全没有这个服务, 它被允许访问, 和标准的 inetd(8) 操作一样。

/etc/hosts.allow 和 /etc/hosts.deny中的每一行包含了一个服务,这个服务或者用名称表示 (就像/etc/inetd.conf中提供的argv[0]字段, 例如:"ftpd" 替代了"ftp"), 或者特定的服务用"ALL"表示,很显然它应用于所有的服务。接下来是服务名,服务名用冒号与后面的一系列限制访问地址分开, 限制访问地址可以用主机名、域名、单个IP地址、整个IP子网或一些其它限制表示, 请查阅 hosts_access(5) 以获取细节。

一个例子是几乎全部允许,但拒绝来自某一个特定的主机和某个域中所有的主机对服务的访问,那规则像这样:

代码: 全选

# /etc/hostname.deny: 
ALL: some.host.name, .some.domain
另一个例子是全部拒绝,但允许很少的主机访问, /etc/hosts.allow 和 /etc/hosts.deny这两个文件都要设置. /etc/hosts.deny 的选项是:

代码: 全选

# /etc/hosts.deny ALL: ALL
被允许的主机项要设置在 /etc/hosts.allow 里:

代码: 全选

# /etc/hosts.allowALL: friend.host.domain otherfriend.otherhost.otherdomain