gpt4 book ai didi

awk - centos firewall-cmd 使用脚本阻止awk ips

转载 作者:行者123 更新时间:2023-12-04 19:39:23 34 4
gpt4 key购买 nike

我的服务器有很多 awk 攻击。我曾试图阻止他们,但他们太多了。
有没有办法阻止他们一次?
我使用这个命令:

netstat -an|awk -F: '{print $2}'|sort|uniq -c|sort -nr|head
显示结果
[root@local ~]# netstat -an|awk -F: '{print $2}'|sort|uniq -c|sort -nr|head
1080 80 107.189.8.33
864 80 185.129.61.5
485 80 23.154.177.11
386 80 183.245.24.27
318 80 185.243.218.32
309 80 185.220.101.2
276 80 61.153.251.150
259 80 59.148.106.164
235 80 185.175.119.113
在列出一个 ip 后,我会发现到 80 端口的连接 ips 超过 100 个。并阻止他们。
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address="107.189.8.0/24" drop'
无论如何制作一个.sh文件,找出超过200个连接的awk ips,并将它们添加到防火墙的下拉列表中?
在这种情况下,需要排除 127.0.0.1 和我们自己的 ips 。
希望任何人都可以帮助谢谢。
我尝试使用此代码输出有问题的 ips。
netstat -an|awk -F: '{print $2}'|sort|uniq -c|sort -nr|head > ccips.txt
在此之后,我使用:
awk '{sub("IP:", "", $3); print $3}' /root/ccips.txt | xargs -n1 -I{} firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address={} drop'
这可以阻止所有带有攻击的ip。
我只是不知道如何将它导入到 .sh 中,这可以在一个命令中完成。

最佳答案

我认为您要做的是创建一个您不想阻止的 IP 的文件:

$ cat allowedIPs
127.0.0.1
whatever...
然后有一个像这样的脚本来阻止所有不在该文件中的 IP 连接到端口 80(未经测试并通过阅读您的代码猜测 netstat -an 输出的样子):
$ cat blockIPs
#!/usr/bin/env bash

netstat -an |
awk -F: '
NR == FNR {
allowedIPs[$1]
next
}
{
split($2,portIP," ")
port = portIP[1]
ip = portIP[2]
}
(port == 80) && !(ip in allowedIPs) && !seen[ip]++ {
print ip
}
' allowedIPs - |
xargs -n1 -I{} firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address={} drop'

关于awk - centos firewall-cmd 使用脚本阻止awk ips,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72158364/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com