1、TCPWrappers  原理
Telnet、SSH、FTP、POP和SMTP等很多网络服务都会用到TCPWrapper,它被设计为一个介于外来服务请求和系统服务回应的中间处理软件。
 
 
基本处理过程
当系统接收到一个外来服务请求的时候,先由TCP Wrapper处理这个请求,TCP Wrapper根据这个请求所请求的服务和针对这个服务所定制的存取控制规则来判断对方是否有使用这个服务的权限,
如果有,TCPWrapper将该请求按照配置文件定义的规则转交给相应的守护进程去处理同时记录这个请求动作,然后自己就等待下一个请求的处理。
 
查看一个服务是否支持tcp_wrapper
在Linux系统中有许多服务,包括基于System V服务、基于Xinetd服务。其中 基于Xinetd的服务都是支持tcp_wrapper,因为xinetd服务本身就支持tcp_wrapper。而只有一部分的System  V服务支持tcp_wrapper,如:sshd、vsftpd等。
用户可以通过下面的两种方式得知某服务是否支持tcp_wrapper。
  • strings  可执行工具路径| grep [tcp_wrappers|hosts_access]
  • ldd   可执行工具路径|grep libwrap
 
[root@natsha ~]# ldd /usr/sbin/sshd |grep libwrap
        libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f97ecca5000)
 
2、TCPWrappers规则定义
在TCPWrappers中通过/etc/hosts.allow和/etc/hosts.deny配置规则允许或阻止指定客户端对指定服务的访问,修改保存此文件后配置无需重启服务立即生效。
 
在/etc/hosts.allow和/etc/hosts.deny文件定义规则的方法采用以下格式:
 
Daemon_list@Host: Client_list [ :Options :Option… ]
 服务:客户端   [:选项]
(1)服务:指定TCPWrappers需要控制的服务名称。如果是SystemV服务直接指定服务名称。如果是超级服务必须指定超级服务的启动脚本名称。【也就是后台】
 
后台进程应该是服务的可执行工具名
例如:telnet-server服务的可执行工具是in.telnetd,因此在/etc/hosts.allow及/etc/hosts.deny中应该写in.telnetd,而不是telnet或telnetd。
   
(2)客户端:指定TCPWrappers需要控制哪些客户端对指定服务的访问。指定客户端方法如下:
单一主机:IP
指定网段:IP/24
指定DNS后缀:example.com
指定FQDN:client.example.com
指定所有客户端:ALL
                    
 (3)选项:包括allow、deny以及一些其他参数。推荐不使用/etc/hosts.deny文件配置。
 需要阻止操作时,直接在/etc/hosts.allow中使用deny动作。        
 
 
选项中其他参数
A、执行外部命令
可以使用spawn参数让TCPWrappers执行一些外部命令。日志文件:/var/log/example.log
 
sshd,in.telnetd:192.168.111.:spawn echo "`date +'%%F %%T'` login from client\: %c to %d">>/var/log/tcpwrap.log
 
            TCPWrappers变量
             %c                访问的客户端信息(user@host)
             %s             访问的服务器端信息(server@host)
             %h                访问的客户端的FQDN(如果可以DNS反向解析)
             %p                服务器PID
      
B、  排除
  在/etc/hosts.allow和/etc/hosts.deny中指定客户端时,可使用EXCEPT参数在一个范围内排除指定客户端。
 
#禁止172.16.0.0/16网络访问我,排除172.16.100.0/24和172.16.100.1之外
            vsftpd: 172.16. EXCEPT 172.16.100.0/24 EXCEPT 172.16.100.1
 
3、tcp_wrapper访问控制判断顺序
如果同时在“hosts.allow”与“hosts.deny”配置了某个相反的限制,那么最终以哪一个文件为准呢?
tcp_wrapper中有访问控制判断顺序明确规定:
  • 访问是否被明确许可,如果是则直接通过。
  • 否则才会判断访问是否被明确禁止,如果是则禁止通过。
  • 如果都没有,默认许可。
 
 
 
4、配置实例
 
 
#仅仅仅仅允许192.168.1.0/24的主机访问sshd
 vim /etc/hosts.allow
    sshd: 192.168.1.0
 vim /etc/hosts.deny
    sshd: ALL
 
 
只允许192.168.1.0/24的主机访问telnet和vsftpd服务  
/etc/hosts.allow
vsftpd,in.telnetd: 192.168.1.
/etc/host.deny
vsftpd,in.telnetd: ALL
 
 
另外:
deny 主要用在/etc/hosts.allow定义“拒绝”规则
    如:vsftpd: 172.16. :deny
 
allow 主要用在/etc/hosts.deny定义“允许”规则
    如:vsftpd:172.16. :allow

Linux 防火墙之TCP Wrappers的更多相关文章

  1. Linux网络安全篇,认识防火墙(三),TCP Wrappers

    1.防火墙设置文件 任何以xinetd管理的服务都可以通过 /etc/hosts.allow /etc/hosts.deny 这两个文件来设置防火墙(针对源IP或域进行允许或操作的设置). 其实/et ...

  2. firewall-cmd 防火墙命令详解 及 TCP Wrappers

    firewall-cmd 常用参数及作用 参数 作用 --get-default-zone 查询默认的区域名称 --set-default-zone=<区域名称> 设置默认的区域,使其永久 ...

  3. linux TCP Wrappers

    1. TCP Wrapper简介 (出处:http://www.softpanorama.org/Net/Network_security/TCP_wrappers/) (维基百科)TCP Wrapp ...

  4. TCP Wrappers(简单防火墙)---限制IP登录ssh

    1.TCP Wrappers 简介 TCP_ Wrappers是- 一个工作在第四层(传输层)的的安全工具,对有状态连接(TCP)的特定服务进行安全检测并实现访问控制,界定方式是凡是调用libwrap ...

  5. Linux防火墙

    9.1 认识防火墙   只要能够分析与过滤进出我们管理之网域的封包数据, 就可以称为防火墙. 硬件防火墙 由厂商设计好的主机硬件, 这部硬件防火墙内的操作系统主要以提供封包数据的过滤机制为主,并将其他 ...

  6. TCP Wrappers

    TCP Wrappers 是 RHEL 7 系统中默认启用的一款流量监控程序,它能够根据来访主机的地址与本机的目标服务程序作出允许或拒绝的操作.换句话说,Linux 系统中其实有两个层面的防火墙,第一 ...

  7. Linux防火墙:iptables禁IP与解封IP常用命令

    在Linux服务器被攻击的时候,有的时候会有几个主力IP.如果能拒绝掉这几个IP的攻击的话,会大大减轻服务器的压力,说不定服务器就能恢复正常了. 在Linux下封停IP,有封杀网段和封杀单个IP两种形 ...

  8. Linux防火墙(Iptables)的开启与关闭

    Linux防火墙(iptables)的开启与关闭 Linux中的防火墙主要是对iptables的设置和管理. 1. Linux防火墙(Iptables)重启系统生效 开启: chkconfig ipt ...

  9. linux 防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

随机推荐

  1. VC中MessageBox与AfxMessageBox用法与区别

    一.MessageBox()用法 1.函数原型 Messagebox函数在Win32 API和MFC里的定义有区别. Win32 API的定义如下: int WINAPI MessageBox(    ...

  2. 操作MySQL出错提示“BLOB/TEXT column request_data in key specification without a key length”解决办法

    错误原因: 查阅资料后才知道,原来Mysql数据库对于BLOB/TEXT这样类型的数据结构只能索引前N个字符.所以这样的数据类型不能作为主键,也不能是UNIQUE的.所以要换成VARCHAR,但是VA ...

  3. 阶段3 2.Spring_06.Spring的新注解_2 spring的新注解-Bean

    下面要解决第二部分的配置问题 这两行一出场,就表示可以通过调用构造函数实例化.因为这都是newInstance 上面的需要加上参数,下面的没有任何参数 下面这俩实现的效果不一样. 下面这个除了会创建对 ...

  4. 阶段3 2.Spring_02.程序间耦合_3 程序的耦合和解耦的思路分析1

    编译时没有对应需要的jar包就报错.这特性就理解为程序的耦合 这种方式,它不是个错误而是个异常.编译的时候没有问题.运行时才会报错. 把注释的代码放开 程序可以正常运行 解决类之前依赖的思路 一个依赖 ...

  5. eigenvalues problem

    由于在看paper中经常会看到generalized eigenvalues.eigenvalues problem等字眼,今晚终于开始认真地重新看了一下线性代数中这部分内容.下面是在学习过程中找出来 ...

  6. nginx配置thinkphp项目(nginx下去掉index.php)

    server { listen 80; server_name xxxxx; root "/www/public"; location / { index index.html i ...

  7. SpringBoot常用注解有哪些?

    @Service: 注解在类上,表示这是一个业务层bean@Controller: 注解在类上,表示这是一个控制层bean@Repository: 注解在类上,表示这是一个数据访问层bean@Comp ...

  8. 最大公约数与最小公倍数C++实现

    最大公约数为辗转相除法求得, 最小公倍数为两数之积与最大公约数的比值 #include<iostream> using namespace std; int gcd(int, int); ...

  9. USACO1.6 回文质数 Prime Palindromes

    题目传送门 题目的提示已经非常明显了,可以先生成回文数再判断质数,因为生成回文数的复杂度较小.判断质数用了之前学到的那种做法. 其实可以用一些比较优秀的筛质数的方法,再判断回文数. /* ID: St ...

  10. [ASP.NET] 解决因为使用 updatepanel 导致 fileupload 始终无法获取文件的方法

    接手了一个新项目,需要在老项目中增添几个新页面 由于在母版页中的updatepanel包住了子版页 同时updatepanel并不支持文件上传,因此要额外增加一些设置 具体的情况可以参考这篇博客 ht ...