Linux 中TCP Wrappers访问控制

TCP_Wrappers是一个工作在第四层(传输层)的的安全工具,对有状态连接的特定服务进行安全检测并实现访问控制,凡是包含有libwrap.so库文件的的程序就可以受TCP_Wrappers的安全控制。它的主要功能就是控制谁可以访问,常见的程序有rpcbind、vsftpd、sshd,telnet。

一、TCP Wrappers概述

TCP Wrappers将TCP服务程序“包裹”起来,代为监听TCP服务程序的端口,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序,如下图所示,TCP Wrappers还可以记录所有企图访问被保护服务的行为,为管理员提供丰富的安全分析资料。

二、TCP Wrappers的访问策略

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

1、策略的配置格式

两个策略文件的作用相反,但配置记录的格式相同,如下所示: :

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

1)服务程序列表

  • ALL:代表所有的服务;
  • 单个服务程序:如“vsftpd”;
  • 多个服务程序组成的列表:如“vsftpd.sshd”;

2)客户端地址列表

  • ALL:代表任何客户端地址;
  • LOCAL:代表本机地址;
  • 单个IP地址:如“192.1668.10.1”;
  • 网段地址:如“192.168.10.0/255.255.255.0”;
  • 以“.”开始的域名:如“benet.com”匹配benet.com域中的所有主机;
  • 以“.”结束的网络地址:如“192.168.10.”匹配整个192.168.10.0/24网段;
  • 嵌入通配符“
    ”“?”:前者代表任意长度字符,后者仅代表一个字符,如“192.168.10.1”匹配以192.168.10.1开头的所有IP地址。不可与以“.”开始或结束的模式混用;
  • 多个客户端地址组成的列表:如“192.168.1. ,172.16.16. ,.benet.com”;

2、访问控制的基本原则

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

3、TCP Wrappers配置实例

实际使用TCP Wrappers机制时,较宽松的策略可以是“允许所有,拒绝个别”,较严格的策略是“允许个别,拒绝所有”。前者只需要在hosts.deny文件中添加相应的拒绝策略就可以了;后者则除了在host.allow中添加允许策略之外,还需要在hosts.deny文件中设置“ALL:ALL”的拒绝策略。

示例如下: 现在只希望从IP地址为192.168.10.1的主机或者位于172.16.16网段的主机访问sshd服务,其他地址被拒绝,可以执行以下操作:

[root@CentOS01 ~]# vim /etc/hosts.allow
sshd:192.168.10.1 172.16.16.*
[root@centos01 ~]# vim /etc/hosts.deny
sshd:ALL

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/10669.html

(0)
晴川运维晴川运维
上一篇 2025年6月27日
下一篇 2025年6月27日

相关推荐

  • MYSQL5.7与MariaDB10.3区别

    大家都知道MariaDB是MySQL源代码的一个分支,但是他们两个之间有什么不能呢?本篇文章重点为大家分享一下MYSQL5.7与MariaDB10.3区别。 二者基础架构是一样的,…

    Linux系统 2025年10月4日
  • 分享一下Linux运维小技巧

    Linux运维人员主要是对Linux下各种网络服务、应用系统、监控系统等进行自动化脚本开发的工作,并根据项目对系统进行性能优化,下面为大家分享一下Linux运维常用小技巧。 1、查…

    Linux系统 2025年6月12日
  • 详解Python虚拟环境virtualenv

    VirtualEnv用于在一台机器上创建多个独立的python运行环境,VirtualEnvWrapper为前者提供了一些便利的命令行上的封装。 了解虚拟环境 如果在一台机器上,想…

    Linux系统 2025年6月19日
  • 通过命令行的方式将Fedora 31升级到Fedora 32

    Fedora是一个知名的Linux发行版,是一款由全球社区爱好者构建的面向日常应用的快速、稳定、强大的操作系统。它允许任何人自由地使用、修改和重发布,无论现在还是将来。它由一个强大…

    Linux系统 2025年9月20日
  • 讲解一下C 语言布尔类型

    C语言就没有真正的布尔类型,布尔类型实际上是用数值型(int,float,char等)表示的,不能自动打印为true或者false,只能自己写代码实现。 C 语言标准(C89) 没…

    Linux系统 2025年6月8日
  • Ubuntu 18.04 LTS部署Rsyslog日志服务

    Rsyslog 是一个 syslogd 的多线程增强版。它提供高性能、极好的安全功能和模块化设计。虽然它基于常规的 syslogd,但 rsyslog 已经演变成了一个强大的工具,…

    Linux系统 2025年6月8日
  • Linux下快速部署DHCP服务器具体方法

    DHCP是一个应用层协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网,下面为大家讲解一下Lin…

    Linux系统 2025年10月10日
  • CentOS中使用RPM包安装redis具体方法

    Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作…

    Linux系统 2025年6月8日
  • Linux下查看系统架构具体方法

    计算机的体系结构从指令集的复杂度上可以分两类,一是复杂指令集CISC,主要是X86架构。另一类是精简指令集RISC,这个比较多,主要是ARM、MIPS、PowerPC等,本篇文章为…

    Linux系统 2025年6月8日
  • 配置ssh-agent免密码认证具体步骤

    ssh-agent是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来…

    Linux系统 2025年6月4日

发表回复

登录后才能评论