Tcp_Wrapper_简单的基于主机的访问控制工具

目录

简介

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

特性

  • 工作在第四层(传输层)的TCP协议
  • 对有状态连接的特定服务进行安全检测并实现访问控制
  • 以库文件形式实现
  • 某进程是否接受libwrap的控制取决于发起此进程的程序在编译时是否针对libwrap进行编译的
  • 判断sshd服务是否支持tcp_wrapper
方法1:
[root@centos6 ~]# ldd `which sshd` | grep libwrap.so   # sshd服务支持tcp_wrapper
    libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f01bb457000)
方法2:
[root@centos6 ~]# strings `which sshd` | grep libwrap.so # 通过strings命令也可以查看,sshd服务程序是否调用libwrap.so库。strings命令列出sshd程序中所有的ASCII文本。
libwrap.so.0
Tcp_Wrapper的实现

如果要使用Tcp_Wrapper的功能,只需两个配置文件:/etc/hosts.allow/etc/hosts.deny。检查顺序为: /etc/hosts.allow –>/etc/hosts.deny(默认允许)。注:一旦前面规则匹配,直接生效 ,将不再继续检查。下图为/etc/hosts.allow/etc/hosts.deny工作示意图:

基本语法

daemon_list@host: [except client_list1]client_list2 [ :options :option… ]

daemon_list@host格式

  • 单个应用程序的二进制文件名,而非服务名, 例如vsftpd
  • 以逗号或空格分隔的应用程序文件名列表,如:sshd,vsftpd
  • ALL表示所有接受tcp_wrapper控制的服务程序

@host格式

  • 主机有多个IP,可用@hostIP来实现控制,如:in.telnetd@192.168.0.254

client_list格式

  • 以逗号或空格分隔的客户端列表
  • 基于IP地址: 192.168.10.1 192.168.1.
  • 基于主机名: www.magedu.com .magedu.com 较少用
  • 基于网络/掩码: 192.168.0.0/255.255.255.0
  • 基于net/prefixlen: 192.168.1.0/24(CentOS7支持)
  • 基于网络组(NIS 域): @mynetwork
  • 内置ACLALL(所有来源主机), LOCAL(主机名中不带.的), KNOWN(所有能解析到的主机), UNKNOWN(所有未能解析到的主机),PARANOID (正反解析不匹配的地址)

[:options]选项:

  • deny 主要用在/etc/hosts.allow定义“拒绝”规则,如: vsftpd: 172.16. :deny

  • allow 主要用在/etc/hosts.deny定义“允许” 规则,如: vsftpd:172.16. :allow

  • spawn 启动一个外部程序完成执行的操作

  • twist 实际动作是拒绝访问,使用指定的操作替换当前服务,标准I/OERROR发送到客户端,默认至/dev/null

EXCEPT: 排除某个主机或某个网络

except client_list1:代表除了client_list1剩余的都匹配

范例:

范例1

拒绝192.168.8.129访问192.168.8.128的sshd服务

[root@centos6 ~]# vim /etc/hosts.deny  #编辑/etc/hosts.deny文件,拒绝192.168.8.129访问sshd
sshd@192.168.8.128: 192.168.8.129
[root@centos7 ~]# ssh 192.168.8.128        #在192.168.8.129访问192.168.8.128已经被拒绝,注此文家修改完,立刻生效
ssh_exchange_identification: read: Connection reset by peer
[root@centos6 ~]# tail -2 /var/log/secure  #在192.168.8.128上查看日志,已经把192.168.8.129拒绝
Sep 15 09:39:37 centos6 sshd[3197]: pam_unix(sshd:session): session closed for user root
Sep 15 09:40:51 centos6 sshd[3222]: refused connect from 192.168.8.129 (192.168.8.129)
范例2

拒绝192.168.8.0/24网段访问192.168.8.128的ftp服务,但允许192.168.8.129访问

[root@A ~]# vi  /etc/hosts.deny            #编辑/etc/hosts.deny文件,拒绝192.168.8.0/24网段访问192.168.8.128的ftp服务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值