您的位置:首页 > 理论基础 > 计算机网络

tcp_wrapper应用简介

2015-08-07 23:16 751 查看
一、tcp_wrapper简介
1、什么是tcp_wrapper
tcp wrapper是Wietse Venema开发的一个开源软件。它是一个用来分析TCP/IP封包的软件,类似的IP封包软件还有iptables。Linux默认安装了tcp_wrapper。作为一个安全的系统,Linux本身有两层安全防火墙,通过IP过滤机制的iptables实现第一层防护。iptables防火墙通过直观的监视系统的运行状况,阻挡网络中的一些恶意攻击,保护整个系统正常运行免遭攻击和破坏。如果通过了第一层防护,那么下一层防护就是tcp_wrapper了。通过tcp_wrapper可以实现对系统中提供的某些服务的开放和关闭、允许及禁止,从而更有效的保证系统安全运行。使用tcp_wrapper的功能仅需要两个配置文件:/etc/hosts.allow 和/etc/hosts.deny 。
2、tcp_wrapper系统工作概述




注意 : Netfilter(iptable) 是工作在网络层的 而 tcp wrapper 是工作在应用层

3、/etc/hosts.allow 和/etc/hosts.deny工作示意图



二、tcp_wrapper规则使用
1、规则语法说明
hosts.allow 和 hosts.deny 文件中语法格式如下:
daemon : client [:option1:option2:...]
daemon 可以是各种服务程序,比如 sshd,服务程序在编译的时候将libwrap.so.0动态库进来就可以使用tcp_wrapper。

client 是来源用户列表以逗号分隔,可以是主机名,或者ip地址等。
options 附加选项是在规则匹配后,可以选择发邮件给管理员或者记录日志等,每个动作之间使用冒号分隔。

可以使用ldd命令查看程序是否支持libwrap,例如:
[root@hpf-linux ~]# ldd `which sshd` |grep wrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f1dab1bf000)
2、语法格式举例
daemon_list有以下几种格式:
vsftpd:192.168.0.
vsftpd,sshd,telnetd: 192.168.0.
All: 192.168.0.
daemon@host           #只在某个特定的地址上进行控制比如:vsftpd@192.168.0.1,在有多块网卡的情况下使用
client_list有以下几种格式:
IP
network address/mask         #网络地址(只能使用类似1.0.0.0/255.0.0.0完全ip地址格式,不能使用位长度表示)
hostname                     #主机名称
.abc.org                     #表示.abc.org域内的所有主机
常用的宏定义:
ALL #代表所有主机,或者所有服务
LOCAL #表示本地主机,非FQDN主机
KNOWN #主机名能正常解析的
UNKNOWN #主机名不能正常解析
PARANOID #主机名正反项解析不匹配的
EXCEPT #排除某个主机或某个网络
使用举例:
echo “sshd :ALL EXCEPT 192.168.1.2”>>  /etc/hosts.allow
表示除去192.168.1.2 这台机器,任何机器执行sshd服务到这台机器均能正常连接。
注意:在使用/etc/hosts.allow 和/etc/hosts.deny两个文件配合使用时,为安全起见一般会把/etc/hosts.deny定义为所有机器及服务。
3、定义所有的拒绝访问均写入日志中
使用前提前讲下在配置该服务时需要的命令spawn:
%c:user@host
%s:server@host
%h:客户端主机名
%p:服务器上的进程PID
[root@hpf-linux ~]# vim /etc/hosts.allow
sshd :  192.168.1.0/8  EXPECT 192.168.1.20
[root@hpf-linux ~]# vim /etc/hosts.deny
sshd : ALL: spawn echo `date` form %c to %s >> /var/log/tcp_wrapper.log
[root@webserver ~]# ssh 192.168.1.8   //192.168.1.20这台机器无法通过ssh登录192.168.1.8
ssh_exchange_identification: Connection closed by remote host
[root@hpf-linux ~]# cat /var/log/tcp_wrapper.log
Fri Aug 7 23:01:41 CST 2015 form 192.168.1.20 to sshd@192.168.1.8
Fri Aug 7 23:01:54 CST 2015 form 192.168.1.20 to sshd@192.168.1.8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux tcp_wrapper