搜索
查看: 1127|回复: 2

Linux 服务器被 DDoS / CC 时应急的封 IP 方法

[复制链接]

432

主题

573

帖子

2543

积分

核心成员

Rank: 8Rank: 8

积分
2543
发表于 2015-9-4 15:05:09 | 显示全部楼层 |阅读模式
当我们的 Linux 服务器受到少量攻击时,这时候我们可以使用 iptables 来手动封禁这些攻击者的IP。

如果攻击比较大时,有时我们根本无法响应过来,iptables 基本也就无能为力了,那我们就只能与机房联系让他们想想办法了。

对于少量攻击处理的步骤应该是:获取IP --> 封IP

获取攻击者 IP

通过 netstat 获取

如果攻击者攻击的是你的 Web 服务的话,默认是80端口,我们就可以使用下面的代码!

如果攻击的不是80端口的话,将下面的两个数字80改为你被攻击的端口即可!

如果你需要显示多条记录,请自己手动将head -n20调大即可

  1. netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20 | netstat -ant |awk '/:80/{split($5,ip,":");++A[ip[1]]}END{for(i in A) print A[i],i}' |sort -rn|head -n20
复制代码


通过 tcpdump 获取

在使用之前,请确保您的系统已经安装了 tcpdump 。

Debian / Ubuntu 系列快速安装如下
  1. apt-get install -y tcpdump
复制代码


安装后,使用下面的代码即可。

需要注意的是,-i eth0指的是你主网卡,如果你是 OpenVZ 的虚拟机的话,就改成您的网卡名venet0

同样你需要设置的是,port 80设置你被攻击的端口,-c 1000指 tcpdump 需要统计的记录数,他会在达到这个数之后显示结果。head -20设置你要显示的记录条数
  1. tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -20
复制代码


封禁 IP

通过上面的步骤,我们已经知道是谁在攻击我们了,现在我们就可以将他们拉入iptables禁止他们连接到服务器了。

封禁单个 IP
  1. iptables -I INPUT -s 211.1.2.1 -j DROP
复制代码


封禁一个 IP 段
  1. iptables -I INPUT -s 211.1.2.0/16 -j DROP
复制代码
您可以更新记录, 让好友们知道您在做什么...

0

主题

7

帖子

15

积分

我是新手

Rank: 1

积分
15
发表于 2017-1-24 09:38:51 | 显示全部楼层
谢谢分享,很好的技术贴!
您需要登录后才可以回帖 登录 | Join BUC

本版积分规则

Powered by Discuz!

© 2012-2015 Baiker Union of China.

快速回复 返回顶部 返回列表