linux把ip加入黑名单,Linux防火墙(iptables)之黑名单

b221b790cb1e

防火墙

再来说说今天的主题,黑名单。

第一阶段:发现

有一天发现 服务器的 /var/log/btmp文件有点大,所以搜索了一下

/var/log/btmp这个文件记录错误的登录尝试,执行lastb命令就可以查看到最后一个不成功的登录尝试.

如果文件太大可删除了再重新生成一个新的空文件。

得到了一个lastb命令,发现大量的ssh登录信息,多的令人发指。好吧,让我来分析一下哪些IP次数最多

#存文件便于以下的操作

lastb >> lastb.log

#过滤其它字段,只保留ip数据

cat lastb.log|awk -F " " '{print $3}' >> ips.log

#记录ip的出现次数

cat ips.log | sort | uniq -c >> ip_uniq.log

#最终形成列表

cat ip_uniq.log|sort -k1,1nr >> output.log

有些同学说分段的命令完全可以合成一个嘛,使用高大上的管道符号。是的,形成一条命令即:

lastb | awk -F " " '{print $3}' | sort | uniq -c | sort -k1,1nr >> output.log

现在output.log的内容如下图

b221b790cb1e

暴光它

到此第一阶段完成,我知道了哪些IP曾对我的服务器进行过疯狂的访问。下一部就是写到iptables的黑名单中。

第二阶段:处理

挑选请求次数超过5次的,大概有1000来条。

问题来了,我需要一条一条加到iptables吗? 答案是肯定的,肯定不是了。 今天我所遇到的问题,所能想到的方案,几乎前辈们已经都已经实践过了。

神器登场: ipset,非自带,请用yum install ipset安装

简单讲一下 ipset 的使用

#创建一个名称为 blacklist 的IP集合,最大容量为10000

ipset create blacklist hash:ip maxelem 100000

#查看你的IP集

ipset list

#增加ip

ipset add blacklist 1.1.1.1

#再次查看IP集

ipset list

b221b790cb1e

ipset list结果

好的, ipset基本使用已经初见。现在将刚才的恶意IP导入到ipset中

#方法有点蹩脚

grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' output.log | awk '{print "ipset add blacklist",$0}'|sh

最后呢,将ipset与iptables关联即可

iptables -I INPUT -m set --match-set banthis src -p tcp --destination-port 80 -j DROP

/etc/init.d/iptables save

屏蔽后再尝试ssh连接服务器,结果就如下图,嗯 ,是的,结束。

b221b790cb1e

ssh尝试登录

第三阶段:扩展

比本文针对性强,同时给出了iblocklist,这个网站已搜集了大量的恶意IP,可以拿使用来,这才是生产生。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值