zoukankan      html  css  js  c++  java
  • TCP_Wrappers访问控制

    一、TCP_Wrappers简介

    对有状态连接的特定服务进行安全检测并实现访问控制,它以库文件形式实现,某进程是否接受libwrap的控制取决于发起此进程的程序在编译时是否针对libwrap进行编译的,判断服务程序是否能够由tcp_wrapper进行访问控制的方法:

    ldd /PATH/TO/PROGRAM|grep libwrap.so
    strings PATH/TO/PROGRAM|grep libwrap.so
    例sshd:

    1. [root@newhostname 1372]# which sshd
    2. /usr/sbin/sshd
    3. [root@newhostname 1372]# ldd /usr/sbin/sshd | grep libwrap
    4. libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f5659d39000)
    5. [root@newhostname 1372]# strings /usr/sbin/sshd | grep libwrap
    6. libwrap.so.0
    7. libwrap refuse returns

    它通过/etc/hosts.allow, /etc/hosts.deny这两个配置文件来对来访支持tcp_warppers模块的服务的ip进行访问限制。

    这两个配置文件的读取顺序优先allow,如果allow文件加载,将不再读取deny。

    二、配置文件内的基本语法:

    1、语法:服务组:host

    2、客户端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
    内置ACL:ALL,LOCAL,KNOWN,UNKNOWN,PARANOID

    例:

    1. 编辑/etc/host.allow下编辑
    2. in.telnetd,sshd:172.18.10.10 表示in.telnet和sshd两个服务允许172.18.10.10
    3. 编辑/etc/host.deny下编辑
    4. in.telentd:ALL 表示拒绝所有主机对in.telnetd的连接
    5. 如果上述文件同时存在,则表达的是只允许172.18.10.10访问intelnetd,其它主机不可访问,所有网段都可以访问sshd(如果没有在白名单的,默认为允许;白名单和黑名单同时有的,权限取白名单的)

    3、特殊用法 spawn、EXCEPT、twist

    expect 除非的意思:
    例:

    1. vsftpd: 172.16. EXCEPT 172.16.100.0/24 EXCEPT 172.16.100.1
    2. 如果这个配置在allow内,则表示允许所有主机访问,但抛出172.16.100.1在内的172.16.100.0网段的主机除外
    3. 如果这个配置在deny内, 则表示拒允许172.16.100.0网段内除了172.16.100.1 这个地址以外的地址访问,其他地址都拒绝访问

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

    1. sshd: ALL :spawn echo "$(date +%%F) login attempt from %c to %s,%d" >>/var/log/sshd.log
    2. 每当有主机来访就会有一条记录输出到/var/log/sshd.log文件内,注意spawn前面的:经常丢了
    3. %c 客户端信息
    4. %s 服务器端信息
    5. %d 服务名
    6. %p 守护进程的PID
    7. %% 表示%

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

    1. 在host.allow内添加如下:
    2. vsftpd: 172.16. :twist /bin/echo "connectionprohibited" 该项目会将成功访问的动作替换成 /bin/echo "connectionprohibited" ,twist 就是替换的意思。

    测试工具:
    tcpdmatch [-d] daemon[@host] client
    -d 测试当前目录下的hosts.allow和hosts.deny
    例:

    1. tcpdmatch -d (测试当前目录下的配置文件,不一定是etc) sshd 192.168.27.5

    0000000000000000000

  • 相关阅读:
    hdu 2222 Keywords Search
    Meet and Greet
    hdu 4673
    hdu 4768
    hdu 4747 Mex
    uva 1513 Movie collection
    uva 12299 RMQ with Shifts
    uva 11732 strcmp() Anyone?
    uva 1401
    hdu 1251 统计难题
  • 原文地址:https://www.cnblogs.com/momenglin/p/8486076.html
Copyright © 2011-2022 走看看