Centos中TCPWrappers访问控制实现
一、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
以上就是本文的全部内容,希望对大家的学习有所帮助。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 错误捕获
- 常用功能加载宏——单元格合并
- 【Rust日报】2020-07-25 RustScan:一个Rust实现的更快的Nmap
- 常用功能加载宏——单元格字符处理
- 【翻译】Rust生命周期常见误区
- 代码管理
- 【翻译】200行代码讲透RUST FUTURES (3)
- ECCV2020 | FReLU:旷视提出一种新的激活函数,实现像素级空间信息建模
- 字符处理——大小写转换编码知识扩展
- 【Rust日报】2020-07-26 - Easy Rust 让Rust文档更容易理解
- VBA使用API_04:标准控件
- OpenCV与图像处理(五)
- 常用功能加载宏——工作表目录
- VBA操作VBA——VBA工程对象
- 前端|3D立体视频翻转动画