tcp-wapper

本文详细介绍了Tcp_wrappers的工作原理及其在系统安全中的应用。通过配置/etc/hosts.allow和/etc/hosts.deny文件,可以实现对主机服务的黑白名单控制,有效抵御非法连接。文章还提供了具体的配置示例,并展示了如何利用连接shell命令记录非法连接信息,甚至发送警告邮件。

当主机被非法连接的时候,我们可以做到收到一封邮件。

当系统收到服务请求时,启动tcpd进程,由tcpd进程检查客户机IP地址是否与/etc/hosts.allow文件和/etc/hosts.deny文件中的IP地址匹配,从而判断对服务请求是否拒绝。同时还记录到syslog文件中。

说起Tcp_wrapper的诞生,到有个小小的故事,大约在1990年,作者所在大学的服务器屡屡受到一个外来黑客侵入,因为受害主机的硬盘数据屡次被rm -rf /命令整个抹掉,所以找寻线索极为困难,直到有一天晚上Venema在工作的过程中无意中发现这个黑客在不断的finger受害主机,偷窥受害者的工作,在那个时候一个想法诞生了:设计一个软件,使它可以截获发起finger请求IP,用户名等资料,Venema 很快投入了工作,而Tcp_wrapper也由此出现。

黑名单:
    在/etc/hosts.deny写

白名单:
    在/etc/hosts.allow写允许局部
    在/etc/hosts.deny 写拒绝所有

使用条件:
首先要确认服务可用tcp-wapper

[root@localhost ~]# ldd `which vsftpd` | grep libwrap.so
	libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f6d10fb4000)

[root@localhost ~]# ldd `which sshd` | grep libwrap.so
	libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f6f38608000)

[root@localhost ~]# ldd `which httpd` | grep libwrap.so
	不支持
[root@pam ~]# man 5 hosts.deny

例子:
(1)黑名单

[root@localhost ~]# vim /etc/hosts.deny
sshd:172.16.12.99
sshd:172.16.0.0/16
sshd:ALL
3种写法
[root@localhost ~]# ssh 172.16.12.102
ssh_exchange_identification: read: Connection reset by peer

(2)白名单

[root@localhost ~]# vim /etc/hosts.deny
sshd:ALL
[root@localhost ~]# vim /etc/hosts.allow
sshd:172.16.12.99

连接shell命令,将非法连接的信息写入到日志文件:
不过对rm -fr /没用

sshd:ALL:spawn /bin/echo "`date` from %c to %s,%d" >> /tmp/ssh.log
	spawn	连接shell命令的
	%c 	客户端的IP
	%s	被连接端的IP
	%d	进程
[root@localhost ~]# ssh 172.16.12.99
ssh_exchange_identification: read: Connection reset by peer
[root@localhost network-scripts]# vim /tmp/ssh.log

Wed Dec 18 03:40:44 CST 2019 from 172.16.12.102 to sshd@172.16.12.99,sshd

但是其实不用记录,因为ssh中已经有了。

连接shell命令,将非法连接的信息发送到邮箱:

[root@localhost ~]# yum install mailx -y 

[root@localhost ~]# vim + /etc/mail.rc
	结尾添加
set from=XXXX@163.com			//发件人
set smtp=smtp.163.com				//smtp服务器的域名
set smtp-auth-user=XXXX@163.com			//用户名
set smtp-auth-password=XXXX	//密码或者是授权码
set smtp-auth=login     //验证方式,登录

这个写真实的邮箱地址,我的是163的。

邮件测试下:

[root@localhost ~]# echo "ssh test" | mail -s "mail test" XXXXXXXX@163.com

在这里插入图片描述

邮件已经看到了。

[root@localhost ~]# vim /etc/hosts.deny
sshd:ALL:spawn /bin/echo "`date` from %c to %s,%d" | mail -s "ssh非法连接" xxxxxxxxx@163.com

然后非法访问测试下:

在这里插入图片描述
就能收到邮件了

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值