TCP Wrappers

原文参见 http://www.cyberciti.biz/faq/tcp-wrappers-hosts-allow-deny-tutorial/

讲了这么几件事:
1:什么是tcp wrappers?
基于主机的网络访问控制系统。上世纪90年代,用来保护unix主机的。

2:哪些程序、服务是用 tcp wrappers 编译的?
先用 whereis 找到sshd

# whereis sshd
sshd: /usr/sbin/sshd /usr/share/man/man8/sshd.8.gz

再用ldd 查看共享库的依赖关系。

# ldd  /usr/sbin/sshd|grep libwrap
        libwrap.so.0 => /usr/lib/libwrap.so.0 (0x00f4d000)

可以看出这个sshd 是把libwrap.so.0 链接进去的。
3:优缺点?
缺点:所有的程序必须用libwrap库编译。不支持RFC?
它工作在应用程序层。即使是加密,也能过滤掉这些请求。pop3, ftp, sshd, telnet, r-services 这些服务都可以用tcp wrappers。
优点:会做相应的日志。访问控制。主机名的认证。防止欺骗。
4:怎么用tcp wrappers 保护我们的系统。
几个重要的文件:
tcpd:访问控制的主要程序。
/etc/hosts.allow 允许的主机
/etc/hosts.deny 禁止的主机。
tcpdchk and tcpdmatch 这两个在 cetos的tcp-wrappers中没有找到。
hosts.allow和hosts.deny中的格式:

daemon_list : client_list [ : shell_command ]
    daemon_list – 后台守护进程名称的列表
    client_list – 主机名、ip地址或者是他们的通配符

例子:
DenyHosts 就是利用的tcp wrappers来禁止哪些试图暴力破解sshd密码的ip。它通过寻找 tail /var/log/secure ssh认证失败的ip地址,然后加在 /etc/hosts.deny

#
# hosts.deny    This file describes the names of the hosts which are
#               *not* allowed to use the local INET services, as decided
#               by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow.  In particular
# you should know that NFS uses portmap!

sshd: 189.152.44.226
sshd: 219.90.93.42
sshd: 202.144.60.186
sshd: 61.184.101.46
sshd: 219.76.75.6
sshd: 221.130.197.204
sshd: 203.161.231.33
sshd: 202.116.98.50
sshd: 189.152.72.197
sshd: 218.1.71.184

ps:自己的英语水平是在太差了,有些地方虽然能看明白,就是翻译不出来。

随机文章:

发表评论