当前位置: 首页 > news >正文

Linux系统访问控制

概述

在 Linux 系统中,hosts.allow 和 hosts.deny 都属于 TCP Wrappers 的一部分,用于控制服务的访问权限。不过它们的应用方式有所不同:

默认情况下,这两个文件都不会主动限制任何访问。也就是说,如果 hosts.allow 和 hosts.deny 文件中都没有任何规则配置,系统会默认允许所有连接。

优先级顺序:系统会优先检查 hosts.allow,再检查 hosts.deny。

如果某个访问请求匹配了 hosts.allow 中的允许规则,则立即允许访问,忽略 hosts.deny 中的配置。
如果访问请求不符合 hosts.allow 中的任何规则,系统再检查 hosts.deny,若匹配到拒绝规则,则会拒绝访问。
如果两者中都没有匹配的规则,则系统默认允许访问。
因此,可以总结为:

hosts.allow 优先,定义允许的例外规则。
hosts.deny 用于补充,定义拒绝的例外规则。

语法规则

两者的基本语法格式如下:

<服务名>: <客户端地址> [ : <选项> ] 
  • 服务名:指定服务名称,通常与 /etc/services 中的名称一致。可以使用 ALL 表示所有服务。
  • 客户端地址:指定被允许或拒绝的客户端,可以是 IP 地址、主机名、域名或网段,也可以用 ALL 表示所有地址。
  • 选项(可选):可以添加自定义命令或日志记录。通常以 spawn 或 twist 等关键字开头。

详细说明

  1. 服务名
    可以是一个具体服务(如 sshd),或使用 ALL 代表所有服务。
  2. 客户端地址
    指定允许或拒绝的客户端,可以包括:
    1. IP 地址:如 192.168.1.100
    2. 网段:如 192.168.1.,表示以 192.168.1. 开头的所有地址
    3. 主机名:如 example.com
    4. 域名:以 . 开头表示域,如 .example.com,代表来自该域的所有主机
    5. 关键字 ALL:表示所有客户端
  3. 选项(可选)
    在规则后面可以添加选项,比如记录日志、发送自定义消息、执行特定命令等。
    1. spawn:可以在访问控制生效时执行命令。
    2. twist:将客户端请求重定向到其他服务或显示自定义消息。

示例:

1、在 /etc/hosts.allow 中允许特定的客户端访问服务

sshd: 192.168.1.100 # 允许 IP 192.168.1.100 访问 sshd 服务 
httpd: .example.com # 允许来自 example.com 域的所有主机访问 httpd 服务 
ALL: LOCAL # 允许本地网络的所有服务 

2、在 /etc/hosts.deny 中拒绝特定的客户端访问服务

sshd: ALL # 拒绝所有客户端访问 sshd 服务 
telnet: 192.168.1.200 # 拒绝 IP 192.168.1.200 访问 telnet 服务 
ALL: .malicious.com # 拒绝 malicious.com 域中的所有客户端访问所有服务 

3、添加日志或自定义命令

sshd: 192.168.1.100 : spawn (/bin/echo "Access granted to %c" >> /var/log/ssh_access.log) 

这条规则允许 192.168.1.100 访问 sshd,并将 "Access granted to %c" 写入日志文件。

4、重定向拒绝请求

sshd: 192.168.1.200 : twist /bin/echo "Access denied" 

这条规则在拒绝 192.168.1.200 访问 sshd 时,返回 "Access denied" 消息。

注意事项

  • 优先级:hosts.allow 中的规则优先级高于 hosts.deny。如果在 hosts.allow 中找到匹配规则,则直接允许访问,不会检查 hosts.deny。
  • 测试生效情况:可以通过 /var/log/auth.log(或系统日志)查看访问控制规则的生效情况。

这种语法和规则机制提供了灵活的访问控制方式,在配置多个服务的权限时尤其有效。

TCP Wrappers概述

libwrap 库是一个独立的库文件,通常以共享库的形式存在,一般命名为 libwrap.so。在 CentOS 或其他 Linux 系统上,这个文件的路径通常是 /lib64/libwrap.so 或 /usr/lib64/libwrap.so,取决于系统架构和库的安装位置。

libwrap 提供了 tcp_wrappers 的核心功能,使服务程序可以调用其函数(如 hosts_access() 和 hosts_ctl())来解析 /etc/hosts.allow 和 /etc/hosts.deny 中的规则。因此,只要应用程序在编译时链接了 libwrap 库,就可以直接使用 tcp_wrappers 进行访问控制,而不需要额外的配置。

[root@ct7_node01 pam.d]# ldd /usr/sbin/sshd | grep libwraplibwrap.so.0 => /lib64/libwrap.so.0 (0x00007fd835824000)

TCP Wrappers VS PAM

 tcp_wrappers 并不是 PAM(Pluggable Authentication Module)中的一个模块。它是一种独立的访问控制机制,主要通过 libwrap 库提供对 TCP 服务的访问限制。tcp_wrappers 通过 libwrap 函数实现对 /etc/hosts.allow 和 /etc/hosts.deny 的解析,并根据规则决定是否允许客户端连接特定服务。

PAM 模块,如 pam_access.so 或 pam_hosts.so,可以提供类似的基于主机的访问控制功能,但它们与 tcp_wrappers 是独立的。事实上,某些服务(如 sshd)本身直接集成了对 tcp_wrappers 的支持,而不依赖 PAM,因此可以在没有 PAM 模块的情况下直接使用 /etc/hosts.allow 和 /etc/hosts.deny 文件来控制访问。

————————————————
原文链接:https://blog.csdn.net/zyqash/article/details/143337333

http://www.rkmt.cn/news/48656.html

相关文章:

  • 2025年市面上比较好的河道护坡石笼网直销厂家有哪些,抗冲击抗腐蚀石笼网/镀锌低碳钢丝石笼网/六角石笼网源头厂家哪个好
  • c++初学者的随笔记录_3(断点调试)
  • 魂斗罗单机经典版下载安装教程(2025新版)——完整安装与配置指南
  • 2025年主轴电机外壳质量大比拼:专业评测报告,国内主轴电机外壳供应商优质企业盘点及核心优势详细解读
  • 2025展厅/展馆/博物馆/VR虚拟展厅设计厂家推荐成都方和科技,专业打造多媒体数字展示空间!
  • 成都火锅2025年度榜单出炉,太古里这8家店值得N刷!美食/火锅/特色美食/烧菜火锅/社区火锅品牌口碑推荐榜
  • 2025年四川小母线槽厂家综合实力排行榜TOP10 - 专业评测与选购指南
  • P8110 [Cnoi2021] 矩阵 题解
  • 2025年陶瓷管制造企业权威推荐榜单:陶瓷辊/陶瓷阀/陶瓷片源头厂家精选
  • [电调]AM32电调调参系列 —— 如何设置Minimum duty cycle, Percent
  • 2025年山西博物馆展示柜厂家综合实力排行榜TOP10
  • 嘉兴高亮广告机价格行情安装报价
  • 专业测评:2025年主轴电机外壳性能对比分析,江浙沪可靠的主轴电机外壳推荐优选实力品牌
  • 2025年冷库建造实力厂家权威推荐榜单:冷库工程/冷库/果蔬保鲜冷库源头厂家精选
  • 找到子表中超过500条记录的数据
  • 2025京津冀园林绿化选哪家?北京缘晟源:民宿景观绿化/园区景观绿化/厂区景区绿化/屋顶花园绿化全搞定
  • 2025年口碑好的美术馆展示柜批发厂家排行榜
  • 2025年潮敏器件仓生产厂家权威推荐榜单:电子料仓/智能箱体库/SMT智能仓源头厂家精选
  • 2025年市场上永磁工业风扇厂家推荐榜单:十大品牌综合评测
  • [电调]AM32电调调参系列 —— Throttle Rate of change, per ms在实际应用中的表现与分析
  • 详细介绍:Python基础_01
  • 为什么需要学习Numpy
  • 2025年阳台式太阳能热水系统制造企业权威推荐榜单:壁挂式太阳能/阳台壁挂式太阳能/阳台壁挂式太阳能热水器源头厂家精选
  • 2025年稀土合金直销厂家权威推荐榜单:钢水净化剂/碳钢精炼剂/铸钢精炼剂源头厂家精选
  • C++构造和折构函数详解,超详细! - 指南
  • 2025年海南景区标识标牌设计公司权威推荐榜单:海口标识标牌制作/标识标牌制作/安全标识标牌设计源头公司精选
  • 251112D. 谜题(poem)
  • 【CSS】background-size 属性详解
  • 2025年惠州高端中医馆品牌权威推荐榜单:老中医问诊/代煎中药/老中医调理身体品牌精选
  • 题解:P9052 [PA 2021] Areny