首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

tcpwrappers--过滤TCP包头(/usr/sbin/tcpd)

tcpwrappers--过滤TCP包头(/usr/sbin/tcpd)

tcpwrappers--过滤TCP包头(/usr/sbin/tcpd)

控制文件:
规则

匹配顺序: tcp-->tcpwrappers-->hosts.allow--> hosts.deny,默认情况下这两个文件是空的,规则马上写马上生效.
1、如果在hosts.allow能够匹配到相应的规则,则允许,匹配到此结束。
2、如果在hosts.allow匹配不到相应规则,接下来匹配hosts.deny文件,如果匹配到则拒绝,匹配到此结束。
3、如果在hosts.allow和hosts.deny中都无法匹配到相应规则,则允许。

防火墙的规则设计思路:先在host.deny先拒绝所有,然后再hosts.allow逐个放开。

tcpwrappers过滤的依据:服务名字,其实就是服务对应二进制文件的文件名

vsftpd/httpd/postfix/samba/nfs/sshd/squid/xinetd

vsftpd: /usr/sbin/vsftpd
sshd: /usr/sbin/sshd
portmap: /sbin/portmap  --> rpcbind
xinetd: /usr/sbin/xinetd

查看vsftpd是否支持tcpwrappers
client-->vsftpd-(libwrap.so)->tcpwrappers

查看某个服务支持tcpwrappers过滤:
# rpm -ql tcp_wrappers |grep '\<libwrap.so\>'
/usr/lib/libwrap.so

查询xinetd服务是否支持tcpwrappers的过滤:
1.
# ldd `which xinetd `|grep wra
        libwrap.so.0 => /lib/libwrap.so.0 (0x00110000)
# ldd `which vsftpd` |grep wra
        libwrap.so.0 => /lib/libwrap.so.0 (0x003e1000)
2.strings
# strings /sbin/portmap |grep 'hosts.*'
/etc/hosts.allow
/etc/hosts.deny
------------------
实例1:
# service vsftpd start
为 vsftpd 启动 vsftpd:                                    [确定]
# chkconfig krb5-telnet on
# service xinetd restart
停止 xinetd:                                              [确定]
启动 xinetd:                                              [确定]
# netstat -tnlp |grep :21
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      2578/vsftpd         
# netstat -tnlp |grep :23
tcp        0      0 0.0.0.0:23                  0.0.0.0:*                   LISTEN      2635/xinetd         
------------
设置规则:
1.telnet只有192.168.0.254能访问
2.vsftpd192.168.0.0/24都能访问,除192.168.0.254
3.sshd 192.168.0.254,只要有登录则发邮件告知管理员
4.本机能够访问这三个服务.

# vim /etc/hosts.deny
vsftpd: ALL
telnetd: ALL
sshd:   ALL

# vim /etc/hosts.allow
in.telnetd:        192.168.0.254
sshd:           192.168.0.254: spawn echo "login attempt from %c to %s" | mail -s "information about sshd login attempt" root@baidu.com
vsftpd:         192.168.0.0/255.255.255.0 EXCEPT 192.168.0.254
ALL:            LOCAL .baidu.com

spwan 执行命令
%c 客户端地址
%s 服务器的地址
LOCAL 本地主机

hosts.allow和hosts.deny格式:
服务名字1, 服务名字2, ...: 客户机地址
[:动作]

1、如何找出名字
2、客户机地址:
ALL
network/mask  192.168.0.0/255.255.255.0 或 192.168.0.
127.
?
.uplooking.com
*.uplooking.com
EXCEPT
3、动作:
ALLOW
DENY

*************************************************
[root@mail ]# vim /etc/hosts.deny

vsftpd: ALL
in.telnetd: ALL
sshd:   ALL

[root@mail ]# vim /etc/hosts.allow

in.telnetd: 192.168.0.254
vsftpd: 192.168.0.0/255.255.255.0 EXCEPT 192.168.0.254
sshd:   192.168.0.254: spawn echo "login attempt from %c to %s" | mail -s "information about sshd login attempt" root@baidu.com
ALL:    LOCAL, .baidu.com
继承事业,薪火相传
返回列表