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访问控制的主要内容,如果未能解决你的问题,请参考以下文章