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. ubuntu下mysql数据库存储路径修改

    一.安装mysql ubuntu系统安装配置APT源,apt install mysql-server mysql-client 二.查看安装端口情况 sudo netstat -tap | grep ...

  2. Kotlin 1 新运算符

    新运算符: “..” ,"in ","!in" ,"downto","step"注意: 1. 关系运算符的优先级低于算术 ...

  3. [论文理解] Learning Efficient Convolutional Networks through Network Slimming

    Learning Efficient Convolutional Networks through Network Slimming 简介 这是我看的第一篇模型压缩方面的论文,应该也算比较出名的一篇吧 ...

  4. 慕课网_文件传输基础——Java IO流

    第1章 文件的编码 1-1 文件的编码 (15:07) 第2章 File 类的使用 2-1 File 类常用 API 介绍 (10:50) import java.io.File; import ja ...

  5. delphi TDbGrid 右键 PopupMenu 菜单只在有数据的地方弹出

    最近用delphi做开发,用到了DbGrid控件,想在控件上点击鼠标右键弹出菜单 关联DbGrid的 Popupmenu 倒是可以实现,但是这样的效果是不管你在哪里单击鼠标右键 只要在DBGrid里面 ...

  6. ntp同步报错解决

    服务端:192.168.1.204 主机名: www.test.com 客户端:192.168.1.206 主机名: www.test3.com 客户端同步服务端报错如下: [root@www etc ...

  7. HashMap根据value值排序

    )))); Set<Map.Entry<String, Integer>> entrySet = map.entrySet(); for (Map.Entry s : entr ...

  8. this引用逸出

    1.定义 public class UnsafeClass { public UnsafeClass(Button button) { button.addActionListener(new Act ...

  9. Nginx配置反向代理与负载均衡

    Nginx的upstream目前支持的分配算法: 1.round-robin 轮询1:1轮流处理请求(默认) 每个请求按时间顺序逐一分配到不同的应用服务器,如果应用服务器down掉,自动剔除,剩下的继 ...

  10. CF1142B Lynyrd Skynyrd

    题目 有两种做法: 第一种是\(O(nlog\ n)\)的. 我们预处理两个数组: \(pre_i\)表示\(p\)中\(i\)前面的那个数是\(pre_i\). \(lst_i\)表示\(a\)中\ ...