Linux 用 netstat 侦测 DDOS 攻击


当主机回应很慢时,除了可能是因为系统的负荷过大,或者系统设定错误外,另一个可能性是遭受 DDOS 攻击。

对于小规模 DDOS 攻击, 使用 Linux 内建的工具侦测来源 IP 及阻挡可以达到一定的效果, 以下会示范用 netstat 及其他 Linux 内建指令,检测系统是否遭受 DDOS 攻击。

用 netstat 列出所有连线, 可以用以下指令:

以上指令列出相当多的连线, 我们先用 grep 过滤出我们想要的资讯, 然后用 sort 将 ip 排序, 例如我想查看 port 80 的连线, 并将 ip 排序:

配合 awk, cut, sort, uniq 指令, 可以印出每个 ip 的连线数量, 并用连线数量排序, 以下会针对 ESTABLISHED 连线检查:

针对 port 80 的连线, 将每个 ip 的连线数量印出并进行排序:

另一个有用的侦测方法, 是过滤出 SYN_REC 连线, 一般上 SYN_REC 的连线数量很低, 如果过高可能遭受攻击, 以下指令可以列出当前 SYN_REC 连线数量:

当发现 SYN_REC 连线数量高时, 可以改用 “sort” 将 ip 排序, 而不是列出连线数:

如果连线数量很大, 可以这样将每个 ip 只印出一次:

透过以上方法找到来源 ip 后, 例如 ip 是 x.x.x.x, 可以用 route 或 iptables 阻挡攻击:

route:

iptables:

Leave a Reply