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)
晴川运维晴川运维
上一篇 11小时前
下一篇 11小时前

相关推荐

  • 非常神器的Linux技术:BPF

    近两年BPF技术跃然成为了一项热门技术,在KubeCon 2020 Europe会议上有7个关于BPF的技术分享, 而在KubeCon 2020 China会议上也已有了3个关于B…

    Linux系统 2025年6月12日
  • 详解Redis主从技术

    Redis复制 在生产环境中,Redis通过持久化功能(RDB和AOF技术)保证了即使在服务器重启的情况下也不会损失(或少量损失)数据。但是由于数据是存储在一台服务器上的,如果这台…

    Linux系统 6天前
  • Linux 中自定义 Cinnamon 桌面具体方法

    Cinnamon由Clement Lefebvre,Linux Mint创始的一个桌面交互环境,试图提供一个布局类似于GNOME 2,含有一个底部面板和启动器器,GNOME2-li…

    Linux系统 2025年6月11日
  • Linux下crontab使用方法

    Linux crontab是用来定期执行程序的命令,当安装完成操作系统之后,默认便会启动此任务调度命令,crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自…

    Linux系统 2025年6月8日
  • 使用GitHub搭建专属的服务器

    现在固定公网IP资源稀缺,虽然说IPv6已经开始使用,但是用的人并不多,大部分用的都是IPv4,想要搞一个自己网站,首先就是需要一个固定的公网IP,但是每年却需要缴纳不少的mone…

    Linux系统 2025年6月8日
  • Linux下使用 Docker托管 .NET Core

    .NET Core是适用于 Windows、Linux 和 macOS 的免费、开源托管的计算机软件框架,是微软开发的第一个官方版本,具有跨平台能力的应用程序开发框架 (Appli…

    Linux系统 2025年6月13日
  • 学生党如何保护自己的网络安全

    互联网的兴起给人们的教育带来了巨大的好处。但是,这也使人们成为黑客和敏感信息盗窃的目标,这就是为什么每个学生都必须在某个时候了解在线网络安全的原因。 如今,几乎每个学生都拥有一台智…

    Linux系统 2天前
  • Linux下使用JMeter进行压力测试

    JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现,本篇文章重点为大家讲解一下Linux下运行JMeter具体方法。 准备工作 1.…

    Linux系统 2025年6月8日
  • Linux下快速挂载U盘

    Linux下如何挂载U盘?在Linux系统中挂载U盘的方法非常简单,下面为大家分享一下Linux下快速挂载U盘具体方法。 1、 插入U盘 2、 #sudo fdisk –l 查看所…

    Linux系统 2025年6月19日
  • 详解golang ssh包使用

    在使用gexpect包发现很多问题之外,这里又尝试使用ssh [email protected]的思路进行用户切换。这里记录下具体的使用方法,遇到的ssh: must s…

    Linux系统 5天前

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注