介绍
1.tcp wrapper是一种访问控制工具是操作系统自带的,类似于iptables可以作访问控制。
2.工作在传输层,针对系统进程来做限制的
3.tcp wrapper只能对基于tcp协议的服务作访问控制,但并不是所有基于tcp协议的服务都能实现用tcp wraper作访问控制。
======================================
#TCPwrapper配置
TCPwrapper有两个配置文件。
1./etc/hosts.allow --允许
2./etc/hosts.deny --拒绝
TCPwrappers先查找/etc/hosts.allow,再查找/etc/hosts.deny,如果两个配置中有冲突,先匹配中的优先,也就是hosts.allow中的配置优先,如果两个配置都没命中,默认放行。
TCPwrapper作用范围
tcpwarpper只对TCP有效,但不是所有TCP应用都有效,关键要看该应用是否依赖libwrap.so这个库文件。
例如tcpper可以控制ssh服务,因为实现ssh协议的sshd程序依赖了libwarp.so库文件,
一、实战环境
延用上面的三台机器,为了区分修改一台机器的主机名
wrap-server----192.168.201.128
web-1----192.168.201.129
web-2----192.168.201.130
#所有机器关闭防火墙和selinux
1.查看某一个程序是否支持tcpwrapper
[root@wrap-server ~]# ldd `which sshd` | grep wrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f9ec5c26000)
[root@wrap-server ~]# ldd `which httpd` | grep wrap #httpd就不用
[root@wrap-server ~]#
测试ssh
192.168.201.129这台机器访问我的服务器,其他禁止掉
[root@wrap-server ~]# vim /etc/hosts.allow #在文件后面新增一行
sshd:192.168.201.129
[root@wrap-server ~]# vim /etc/hosts.deny #在文件后面新增一行
sshd:ALL #拒绝所有
===========================
sshd:192.168.201.130 #拒绝某个IP
测试:
1.首先我们用192.168.201.129的机器去ssh连接
[root@web-1 ~]# ssh 192.168.201.128
[root@wrap-server ~]#
2.在用其它机器ssh连接
[root@web-2 ~]# ssh 192.168.201.128
ssh_exchange_identification: read: Connection reset by peer #拒绝连接
测试ftp
1.安装vsftpd
[root@wrap-server ~]# yum install -y vsftpd
[root@wrap-server ~]# systemctl start vsftpd
过滤ftp是否支持tcpwrapper
[root@wrap-server ~]# ldd `which vsftpd` | grep wrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007fe66183f000)
2.允许192.168.201.129这台机器访问我的ftp服务器,192.168.201.130禁止掉
1.配置允许
[root@wrap-server ~]# vim /etc/hosts.allow
vsftpd:192.168.201.129
2.配置拒绝
[root@wrap-server ~]# vim /etc/hosts.deny
vsftpd:192.168.201.130
3.两台测试机安装lftp客户端
# yum install -y lftp
#测试
1.先在192.168.201.158机器操作
[root@web-1 ~]# lftp 192.168.201.128
lftp 192.168.201.128:~> ls
drwxr-xr-x 2 0 0 6 Oct 30 2018 pub
lftp 192.168.201.128:/> cd pub/
lftp 192.168.201.128:/pub> ls
2.在192.168.201.130机器测试
[root@web-2 ~]# lftp 192.168.201.128
lftp 192.168.201.128:~> ls
`ls' at 0 [Delaying before reconnect: 24]