|
TCP_wrapper 可说是所有连接上网络的主机都必须安装的基本软件。它具备了了管制进入者的功能,例如可限制那些机器可以使用本系统。另一方面,TCP_wrapper 也具有颇不错的记录功能,可以记录那时候甚么人进来了。因此,在今天蓬勃发达网络世界中不得不留意的系统安全领域,TCP_wrapper占有极重要的一席之地。
目前的大部分Linux中都默认安装了TCP_Wrappers支持,所以我们这里直接介绍其配置方法。TCP_wrapper 的控制文件有二:/etc/hosts.allow与/etc/hosts.deny。前者是处理允许连接的主机、后者当然是拒绝的主机了。不过,一般只要用一个文件就可以了。笔者只打算介绍在/etc/hosts.allow中作设定的设法。
文件格式是:服务列表 : 主机列表 : 选项1[ : 选项2 : 选项3 : …]
1.服务列表说明
服务列表是要支持的服务的名,例如:telnet、vsftpd等等。这里可以把所有要作相同设定的服务列举出来,用空格符或“,”号作分隔。例如:
telnetd vsftpd或telnetd,vsftpd
不过,如果是表示全部,可以用ALL 与EXCEPT。ALL就是全部的服务,EXCEPT表示要排除的服务,格式是:list_1 EXCEPT list_2。
当我们用ALL 时,如果有些例外不要的服务,那用EXCEPT是很方便的,例如:
ALL EXCEPT telnetd
ALL EXCEPT telnetd vsftpd
EXCEPT会把其后的全都当成例外处理,而且EXCEPT可以包含EXCEPT。
2.主机列表
设定受控制的机器。这可以是机器名、主机IP,也可以使用通配符(*或?)或ALL及EXCEPT。主机名的写法有多种,可以是IP地址、主机名或NIS主机名表示。
1) 单个主机的表示
a) 域名表示:如www.syd168.com
b) IP地址表示:172.16.0.3
2) 一批主机的表示
a) IP地址表示:
172.16. 表示所有开始为172.16的主机,如172.16.0.8
b) 域名表示
.syd168.com表示所有域syd168.com的主机,如www.syd168.com
c) 网络表示
172.18.0.0/255.255,表示172.18子网的所有机器。
3) NIS组的表示
@syd168.com
这里做以下说明:
 对于主机名,只比较.第一个“.”之后的部分,只要“.”之后的字符相同,那就算是符合的。所以,如果有.nccu.edu.cn的设定,xxx.nccu.edu.cn 这机器是可以通过的,但xxx.nccu.edu机器没办法通过。
 如果表示为主机的全名了,即开始没有“.”,那部能受理的就只是该机器。这种方式只能在用主机名
 对于IP地址如,140.119.,则只比较”.” 之前的数字。所以如果有“140.119.”的设定,当看到140.119.1.2 时,是可以通过的。如果写全IP地址,即IP地址的最后不是“.”,则通过的的只有指定的IP而已。
 通配符只能使用在非“.”开始的主机名和非.结束的IP地址结构中,而且在子网结构中不能使用通配符。
下面,我们通过几个实例说明:
vsftpd : 140.113.23.3 140.119. .nccu.edu.tw bbs.ntu.edu.tw:
再配合“@”,可以控制连接的用户“@”之前是用户名,之后是机器名或机器IP。例如:
hup@cc.nccu.edu.cn
如果有“@”且之前有设定任何东西,那么系统将会尝试去检测要求连接的用户账号。
3.选项说明
选项是我们所要控制的动作。在服务与client都符合之后,那么真正所要进行的动作,就是选项在作。这里只介绍常用的选项,详细请参考man手册。
1)ALLOW 接受连接请求。
2)DENY 拒绝连接请求。
注意:这两个选项只能摆在所有的选项的最后。例:
ALL : .bad.domain : DENY
fingerd : unknown@all : DENY
没有装ident 的机器 都不让它finger我们。
ALL : ALL@ALL : ALLOW
3)keepalive 这是非常好用的一个选项。如果有使用者没有正常离线就关机,那么可能会留一些进程在内存中,造成系统的负担。这个选项的设定,系统将定期检查客户是否还在线,如果不在线就断开连接,收复内存。
4)banners /some/directory 可以在连接之后先出现一些消息。例如:说明这部机器的作用、用户名等等。这个选项就可以满足这个须求。/some/directory 是要包含要显示消息的文件目录,而消息文件必须与服务同名,如telnet服务的服务叫telnetd,则消息文件也得叫telnetd。
5) rfc [seconds] 这个选项表示用户要用多久的时间重试登陆,缺省值是10秒。
4.控制文件的举例:
vsftpd : 172.16. : banners /usr/vsftpd/mesg : deny
telnetd : all@all : banners /usr/telnetd/mesg : allow
vsftpd : all : rfc 931 : keepalive : allow
all : 140.119. : keepalive : allow
all except fingerd : all : deny
上面的设定:finger只能给有装identd之类软件的机器使用,拒绝时 会有所表示;
telnetd 允许全部人使用,且会先秀段讯息,其它的不 给140.119.之外的人使用。
安装了本软件之后,在控制上很明显的就可以轻易的作到,另一方面,也能 够记录连接时的重要记录。 |
|