TCP Wrappers访问控制

Posted 还行少年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP Wrappers访问控制相关的知识,希望对你有一定的参考价值。

1.概述

TCP Wrappers的访问控制是基于TCP协议的应用服务,相对于防火墙的访问控制规则,TCP,Wrappers的配置更加简单。
TCP Wrappers只能控制TCP协议的应用服务,并不是所有基于TCP协议的应用服务都能接受TCP Wrappers的控制
我们可以通过查看服务有无调用libwrap共享库,来判断是否支持TCP Wrappers

[root@localhost ~]# ldd /usr/sbin/sshd | grep "libwrap"   //使用 ldd 命令可以查看程序的共享库
	libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f5e871cb000)   //表示支持
[root@localhost ~]# 

2.访问策略

TCP Wrappers机制的保护对象为各种网络服务程序,针对访问服务的客户机地址,进行访问控制,对应的两个策略文件/etc/hosts.allow和/etc/hosts.deny,分别用来设置允许和拒绝的策略

2.1 策略的配置格式

<服务程序列表>:<客户机地址列表>

服务程序列表、客户机地址列表之间以冒号分隔,在每个列表内的多个项之间以逗号分隔

(1)服务程序列表 服务程序列表可分为以下几类
ALL:代表所有的服务
单个服务程序:如“sshd”
多个服务程序组成的列表:如“vsftpd,sshd”

(2)客户端地址列表 客户端地址列表可分为以下几类
ALL:代表任何客户端地址
LOCAL:代表本机地址
单个 IP 地址:如“192.168.4.4”
网络段地址:如“192.168.4.0/255.255.255.0”
以“.”开始的域名:如“.test.com”匹配 test.com 域中的所有主机
以“.”结束的网络地址:如“192.168.4.”匹配整个 192.168.4.0/24 网段
嵌入通配符“*”“?”:前者代表任意长度字符,后者仅代表一个字符,如“10.0.8.2*” 匹配以 10.0.8.2 开头的所有 IP 地址。不可与以“.”开始或结束的模式混用
多个客户端地址组成的列表:如“192.168.1.,172.16.16.,.test.com”

2.2 访问控制的基本原则

关于TCP Wrappers机制的访问策略,应用时遵循以下顺序和原则
首先检查 /etc/hosts.allow 文件,如果找到相匹配的策略,则允许访问;
否则继续检查/etc/hosts.deny 文件,如果找到相匹配的策略,则拒绝访问;
如果检查上述两个文件都找不到相匹配的策略, 则允许访问

3.配置实例

只允许192.168.30.5的主机访问192.168.30.30.4的sshd服务

[root@localhost ~]# vi /etc/hosts.allow     //允许策略文件

#
# hosts.allow   This file contains access rules which are used to
#               allow or deny connections to network services that
#               either use the tcp_wrappers library or that have been
#               started through a tcp_wrappers-enabled xinetd.
#
#               See 'man 5 hosts_options' and 'man 5 hosts_access'
#               for information on rule syntax.
#               See 'man tcpd' for information on tcp_wrappers
sshd:192.168.30.5    //允许ip为192.168.30.5的主机访问本机sshd服务

[root@localhost ~]# vi /etc/hosts.deny    //拒绝策略文件

#
# hosts.deny    This file contains access rules which are used to
#               deny connections to network services that either use
#               the tcp_wrappers library or that have been
#               started through a tcp_wrappers-enabled xinetd.
#
#               The rules in this file can also be set up in
#               /etc/hosts.allow with a 'deny' option instead.
#
#               See 'man 5 hosts_options' and 'man 5 hosts_access'
#               for information on rule syntax.
#               See 'man tcpd' for information on tcp_wrappers
sshd:ALL    //拒绝所有主机访问本机sshd服务

测试
在这里插入图片描述

以上是关于TCP Wrappers访问控制的主要内容,如果未能解决你的问题,请参考以下文章

TCP_Wrappers访问控制

TCP-Wrappers访问控制

远程访问以及控制(2/2)+实验:TCP Wrappers的控制策略

CentOS 访问控制列表(tcp wrappers)

Linux 中 TCP Wrappers 访问控制

ssh远程访问控制,scp,sftp,TCP Wrappers策略应用案例