简介:

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

1、说明

Tcp_wrappers是红帽RHEL7系统中默认已经启用的一款流量监控程序、它能够根据来访主机地址与本机目标服务程序做允许或拒绝操作。换句话说,Linux系统中其实有两个层面的防火墙,第一种是前面讲到的基于TCP/IP协议的流量过滤防护工具,而Tcp_wrappers服务则是能够对系统服务进行允许和禁止的防火墙,从而在更高层面保护了Linux系统的安全运行。

2、工作原理

TCP_Wrappers有TCP的守护进程为tcpd,以ssh为例,当有ssh请求连接时,tcpd会截获请求,先读取系统管理员所设置的访问控制文件,符合要求,则会把这次连接请求转给真正的ssh进程,ssh进程完成后续工作,如果这次连接发起的ip不符合访问控制文件中的设置,则会中断连接请求,并拒绝提供ssh服务。

3、控制列表文件(/etc/hosts.allow、/etc/hosts.deny)修改后会立即生效,系统将会先检查允许策略规则文件(/etc/hosts.allow),如果匹配到相应的允许策略则直接放行请求,如果没有匹配则会去进一步匹配拒绝策略规则文件(/etc/hosts.deny)的内容,有匹配到相应的拒绝策略就会直接拒绝该请求流量,如果两个文件全都没有匹配到的话也会默认放行这次的请求流量。

示例系统服务 客户端类型 示例 满足示例的客户端列表
sshd 单一主机 192.168.8.1 ip地址为192.168.8.1的主机
sshd 指定网段 192.169.8. ip段为192.168.8.0/24的主机
sshd 指定网段 192.168.8.0/255.255.255.0 ip段为192.168.8.0/24的主机
指定DNS后缀 .baidu.com 所有DNS后缀为.baidu.com的主机
指定主机名称 www.baidu.com 主机名称为www.baidu.com的主机
sshd 指定所有客户端 ALL 所有主机全部包括在内

注意!!!

在配置Tcp_wrappers服务前需要注意:

1.在写禁止项目时候一定要写上服务名称,而不是某种协议名称

2.建议先写拒绝规则(/etc/hosts.deny),再编写允许规则(/etc/hosts.allow)

4.TCP_Wrappers使用

TCP_Wrappers使用主要是两个配置文件/etc/hosts.allow、/etc/hosts.deny用于接收和拒绝TCP_Wrapers控制全的程序,可使用man帮助查看(man 5 hosts_access, man 5 hosts_options)

配置/etc/hosts.allow、/etc/hosts.deny两个文件

语法为:daemon_list@host: client_list  [:options :options....]

deamon_list:是程序的列表,可以是多个,是多个时,用,隔开

@host:可以没有,是我们的限制的网卡访问接口(自己的),设置允许或禁止别人从自己那个网口进入。这项不写,代表全部。

clients_list:访问者地址,如果需要控制用户很多,可以私用空格或,隔开

基于IP地址:192.168.8.1 192.168.8.

基于主机名:www.hedge.com .hedge.com较少用

基于网络/掩码:192.168.0.0/255.255.255.0

基于net/prefixlen:192.168.8.0/24(CentOS7)

基于网络组(NIS域):@mynetwork

内置ACL:ALL,LOCAL,KNOWN,UNKNOWN、PARANOID

ALL:所有主机

LOCAL:本地主机

KNOWN:主机名可解析为IP的

UNKNOWN:主机名无法解析为IP的

PARANOID:正向解析与反向解析不对应的主机

如:三台虚拟机示例:

CentOS7:192.168.1.1

CentOS6:192.168.1.2

CentOS5:192.168.1.3

示例1:

CentOS6拒绝CentOS7的ssh访问:

在centos6中可在/etc/hosts.deny中配置:

sshd@192.168.1.2:192.168.1.1

这样配置后,CnetOS7就无法ssh连接CentOS6了

示例2:

或者可以在centos6这样写(hosts.deny),即使用ssh,或者telnetd访问这个机器都是无法访问的,然后,我们就可以在hosts.allow中添加如下一行:

/etc/hosts.deny配置

in.telnetd,sshd:ALL

/etc/hosts.allow配置

sshd:192.168.1.2

这样配置后,CnetOS7就可以ssh连接CentOS6了

连接过程中,对方机器会按照顺序先检查/etc/hosts.allow,再检查/etc/hosts.deny。如果在allow中允许连接,就可以连接,即便是又在deny中添加了也可以连接,但是在allow中没有添加你的机器,在deny中设置了你的主机无法连接,那是无法连接上对方主机的。

示例3:

可以禁止后允许某个网段进行连接,以禁止为例:在centos6中的hosts.deny配置

即192.168.36.网段所有机器无法通过sshd这个连接程序访问到我的机器

in.telnetd,sshd@192.168.1.2:192.168.36.

示例4:

使用一个关键连词,EXCEPT,hosts.deny文件配置:

in.telnetd,sshd:ALL

hosts.allow文件配置如下:

sshd:192.168.1. EXCEPT 192.168.1.1

此时,cnetos7是不能访问centos6的,因为虽然在hosts.allow文件中设置了整个192.168.1.这个网段可以访问,但是使用了EXCEPT关键字将192.168.1.1排除了,所以centos7是不能访问centos6的

重写写一下hosts.allow文件:

sshd:192.168.1. EXCEPT 192.168.1.

再使用CentOS5和CentOS7连接CentOS6,是无法连接的,因为允许里面虽然允许了192.168.1.但是也排除了192.168.1.所以无法连接。

一些选项:

man 5 hosts_options查看更多使用方法

deny用在/etc/hosts/allow定义'拒绝'规则

如:vsftpd:192.168.:deny

allow用在/etc/hosts/deny定义'允许规则'

如:vsftpd:192.168.:allow

spawn启动一个外部程序完成执行的操作

twist实际动作是拒绝访问,使用指定的操作替换当前服务,标准I/O和ERROR发送到客户端默认至/dev/null

示例1:

在hosts.allow拒绝连接:

sshd:192.168.1.2:deny

虽然在hosts.allow文件中添加可用规则,但是使用了:deny,即将该地址拒绝掉。CentOS7访问不了CentOS6

示例2:

在hosts.deny拒绝连接:

sshd:192.168.1.2:allow

虽然在hosts.deny文件中添加可用规则,但是使用了:allow,即允许该地址访问ssh服务。CentOS7可以访问CentOS6

示例3:

使用spawn启用外部命令,就可以使用外部命令写日志文件

在hosts.allow中:

sshd,in.telnetd:192.168.111.:spawn echo "`date +'%%F %%T'` login from client\: %c to %d">>/var/log/tcpwrap.log

使用CentOS7访问CentOS6后,查看日志

tail /var/log/tcpwrap.log

在/etc/hosts.allow中添加,允许登录,并记录日志
在/etc/hosts.deny中添加,拒绝登录, 并记录日志

%c 客户端信息
%s 服务器端信息
%d 服务名
%p 守护进程的PID
%% 代表%
: 符号转译

示例4:

使用twist拒绝用户访问,并返回一个信息

sshd,in.telnetd:192.168.111.:twist echo "Hello I am T_T !"

输入命令ssh -V 192.168.1.1可以查看

调试工具:

tcpdmatch  [-d]  daemon[@host]  client -d 测试当前目录下的 hosts.allow和hosts.deny,在别人没连接时候,可以知道我们设置的那些IP是否可以连接我们的主机

如:tcpdmatch -d ssh 192.168.1.2

CentOS7服务访问控制列表(TCP Wrappers)相关推荐

  1. Linux远程访问及控制(SSH、TCP Wrappers 访问控制)

    Linux远程访问及控制 一.SSH远程管理 1.SSH定义 2.SSH数据传输优点 3.SSH客户端和服务端 二.OpenSSH 1.配置OpenSSH 服务端配置 2.scp远程复制 3.sftp ...

  2. SSH远程访问与TCP Wrappers 访问控制(基础概述及配置操作)

    SSH远程访问及控制 OpenSSH服务器 基础概述 Windows远程桌面连接 配置OpenSSH 服务端 sshd_config配置文件的常用选项设置 使用SSH客户端程序进行黑白名单登录测试 使 ...

  3. iptables tcp wrappers

    1.TCP Wrappers 1.1 tcp wrappers概述 tcp wrappers为由xinetd这支superdaemon管理的服务提供了安全性.由xinetd super daemon管 ...

  4. 远程访问及控制(详解)——SSH远程管理及TCP Wrappers 访问控制

    远程访问及控制(详解)--SSH远程管理及TCP Wrappers 访问控制 一.SSH远程管理 1.定义 2.优点 3.客户端与服务端 4.SSH服务的开启.端口号和配置文件 二.配置 OpenSS ...

  5. TCP Wrappers访问控制

    1.概述 TCP Wrappers的访问控制是基于TCP协议的应用服务,相对于防火墙的访问控制规则,TCP,Wrappers的配置更加简单. TCP Wrappers只能控制TCP协议的应用服务,并不 ...

  6. LinuxSSH和TCP Wrappers 访问控制

    文章标题 SSH远程管理 SSH定义 SSH优点 SSH配置文件 SSH客户端和服务端 OpenSSH 配置OpenSSH 服务端配置 Allowusers-- #仅允许某某用户登陆 scp远程复制 ...

  7. 王高利:TCP Wrappers访问控制(hosts.allow,hosts.deny)

    TCP Wrappers访问控制 在Linux系统中,许多网络服务针对客户机提供了某种访问控制机制,如Samba.BIND.HTTPD.OpenSSH等,而TCP Wrappers(TCP封套),以作 ...

  8. 一周肝出Linux之远程服务详解(ssh远程登录、scp远程复制、sftp安全下载、TCP Wrappers访问控制)

    目录 一:理论 1:ssh概要 2:ssh协议与端口号 二:实验 实验环境 ssh用户登录控制 1:不允许对方远程root账户登录 2:禁止跳板登录 测试最大密码重试次数 设置黑白名单 远程配对密钥验 ...

  9. 思科模拟器完成计算机网络综合组网(虚拟局域网,交换机,路由器,路由器协议,WWW/DNS/FTP服务,访问控制列表)

    思科模拟器完成计算机网络综合组网(虚拟局域网,交换机,路由器,路由器协议,WWW/DNS/FTP服务,访问控制列表)   这是笔者在学习计算机网络这门课程中,最后的一次综合大实验.这次实验考察的知识点 ...

最新文章

  1. hdu-5778 abs(暴力枚举)
  2. Oracle单机版开机自启动
  3. Eclipse导出可执行Jar文件(包含第三方Jar包)
  4. 定制ListView的界面(使用自定义的列表项布局,一边显示水果图片,一边显示水果文字)以及ListView的点击事件
  5. [存储引擎基础知识]InnoDB与MyISAM的六大区别(非原创)
  6. 前端如何设置背景颜色的透明度 css中的 rgba() 函数详解 :background-color: rgba(255,192,203,0.3)
  7. 情人节福利,撩妹神器恋爱话术库它来了~
  8. (七)准备在云中训练深度伪造模型
  9. Linux下部署Spring Boot项目
  10. python api接口调用_python 调用有道api接口的方法
  11. python 并发编程 多线程 守护线程
  12. 驗證類javascript
  13. C++中的模板(template)
  14. 涛思数据加入龙蜥社区,携手共建时序数据库生态
  15. 建设数据中心机房主要看这几点,否则被定为劣质机房!!!
  16. Chrome浏览器设置黑色模式
  17. 关于Visual Studio 2017安装时共享组件、工具和 SDK安装位置不能更改的问题
  18. webgis技术在智慧城市综合治理网格化社会管理平台(综治平台)的应用
  19. 《把时间当做朋友-李笑来》
  20. 对无迹卡尔曼滤波(UKF)和粒子滤波(PF)的理解

热门文章

  1. 蓝桥—回文日期(c语言)
  2. 不断在表中插入数据时,物理存储是如何进行页分裂的?
  3. 100+有趣的统计数据集
  4. java迷宫队列实现_老鼠走迷宫(队列实现)
  5. 危旧房及房屋结构知识普及
  6. 电脑键盘各个按键作用讲解
  7. gulp-uglify的使用
  8. CocosCreator之KUOKUO带你做个电玩叠乌龟游戏
  9. 一加是oppo旗下的品牌吗?看完你就知道了
  10. 如何生成N-M的随机数公式