码迷,mamicode.com
首页 > 移动开发 > 详细

tcp_wrapper应用简介

时间:2015-08-08 06:48:39      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:linux、tcp_wrapper

一、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




本文出自 “粗茶淡饭” 博客,请务必保留此出处http://cuchadanfan.blog.51cto.com/9940284/1682813

tcp_wrapper应用简介

标签:linux、tcp_wrapper

原文地址:http://cuchadanfan.blog.51cto.com/9940284/1682813

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!