|NO.Z.00007|——————————|LinuxNetwork|——|Linux&SshTcpRoot.V04|——|TCPWrappers|

一、TCP Wrappers(简单防火墙)
### --- TCP Wrappers简介:

~~~     TCP_Wrappers是一个工作在#第四层(传输层)的安全工具,
~~~     对#有状态连接(TCP)的特定服务进行检测并实现访问控制,
~~~     界定方式是凡是#调用libwrap.so库文件的程序就#可以收TCP_Wrappers的安全控制,
~~~     它的主要功能就是控制谁可以访问,常见的程序有#rpcbind/vsftpd/sshd/telent。
### --- 判断方式:

~~~     查看对应服务命令所在位置:which sshd
~~~     查看指定命令执行时是否调用livwrap.so文件:ldd /usr/sbin/sshd |grep libwrap.so
### --- 判断某一服务是否被TCP Wrappers所限制的方式依据

[root@server15 ~]# which sshd                               // 查询服务程序服务命令所在位置
/usr/sbin/sshd
[root@server15 ~]# which ssh
/usr/bin/ssh
[root@server15 ~]# ldd /usr/sbin/sshd |grep libwrap.so      // 调用livwrap.so文件,说明sshd这个服务被TCP Wrappers所控制
    libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f256e7b2000)
### --- 查看Apache是否被TCP Wrappers限制

[root@server15 ~]# yum install -y httpd
[root@server15 ~]# which httpd
/usr/sbin/httpd
[root@server15 ~]# ldd /usr/sbin/httpd |grep libwrap.so     // 没有,说明Apache并不受TCP Wrappers所控制和关闭
二、TCP Wrappers工作原理
### --- TCP Wrappers工作原理

~~~     以ssh为例,每当有ssh的连接请求时,先读取系统管理员所设置的访问控制文件,
~~~     符合要求,则会把这次连接原封不动的转给ssh进程,由ssh完成后续工作,
~~~     如果这次连接发起的ip不符合访问控制文件中的设置,则会中断连接请求。拒绝ssh服务
### --- 优先查看hosts.allow,匹配即停止。

~~~     允许个别,拒绝所有,hots.allow文件添加允许的策略,hosts,deny文件添加all
~~~     拒绝个别,允许所有,hosts.allow文件为空,hosts.deny文件添加单个拒绝的策略
~~~     hosts.allow的优先级要高于hosts.deny的。
三、TCP Wrappers使用:允许哪一个服务被那些客户端连接
### --- 拒绝单个IP使用ssh远程连接

hosts.allow:空着就可以
[root@server15 ~]# vim /etc/hosts.deny 
sshd:10.10.10.240                                               // 10.10.10.240是本机vmbox的虚拟网卡绑定的地址
Xshell:\> ssh root@10.10.10.15                                  // 通过windows本地连接被拒绝
[root@server14 ~]# ssh root@10.10.10.15                         // 通过一台主机可以直接连接
### --- 拒绝某一网段使用ssh远程连接

[root@server15 ~]# vim /etc/hosts.deny
sshd:10.10.10.
Xshell:\> ssh root@10.10.10.15                                  // windows连接被拒绝 
[root@server14 ~]# ssh root@10.10.10.15                         // 通过一台主机可以直接连接
### --- 仅允许某一IP使用ssh远程登录

[root@server15 ~]# vim /etc/hosts.deny
sshd:all
[root@server15 ~]# vim /etc/hosts.allow     
sshd:10.10.10.14                                                // 仅允许10.10.10.14连接,其它的都不允许
[root@server14 ~]# ssh root@10.10.10.15
Last login: Tue Feb  2 03:54:12 2021 from 10.10.10.14           // 10.10.10.14可以直接连接
[root@server15 ~]# ssh root@10.10.10.15
ssh_exchange_identification: read: Connection reset by peer     // 10.10.10.15本机都不可以连接

附录一:
### --- TCP_Wrappers的使用主要是依靠两个配置文件/etc/hosts.allow, 
~~~     /etc/hosts.deny以此实现访问控制,默认情况下/etc/hosts.allow, 
~~~     /etc/hosts.deny什么都没有添加,此时没有限制

### --- 配置文件编写规则:
service_list@host:client_list
service_list:是程序(服务)的列表,可以是多个,多个时,使用,隔开
~~~     @host:设置允许或禁止他人从自己的那个网卡进入,这一项不写,就代表全部。
~~~     client_list:使访问者的地址,如果需要控制的用户较多,客户以使用空格或,隔开
### --- 格式如下:

~~~     基于IP地址:192.168.88.1 192.168.88.
~~~     基于主机名:www.atyanqi.com .atyanqi.com较少用
~~~     基于网络/掩码:192.168.0.0/255.255.255.0
~~~     内置ACL:ALL(所有主机)、LOCAL(本地主机)
### --- 实验案例:
~~~     拒绝单个IP使用ssh远程连接:
~~~     配置文件:
hosts.allow:空着
hosts.deny: sshd:192.168.88.20

~~~     拒绝某一网段使用ssh远程连接
hosts.allow:空着
hosts.deny:sshd:192.168.88.
~~~     仅允许某一IP使用ssh远程登录
hosts.allow:sshd:192.168.88.20
hosts.deny:sshd:ALL

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(26)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示