当我的服务器速度很慢时,我被告知运行此命令并检查是否有人发出 SYN_RECV 请求以减慢我的服务器速度:
netstat -npt | grep SYN_RECV | awk '{print $5}' | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | cut -d: -f1 | sort | uniq -c | sort -nr | head | tee -a $REPORT_FILE
输出示例:
Single attack IP - DOS:
262 187.7.214.146
1 95.90.250.96
1 83.215.15.150
1 203.160.112.239
1 124.197.39.213
Multiple attack IPs - DDOS:
316 187.7.214.146
94 187.7.214.96
44 187.7.214.150
90 203.160.112.239
22 203.160.112.222
我在某处读到,如果一个IP的SYN_RECV请求数超过4个,则考虑进行SYN洪水攻击(DOS)。我有几个问题:
1) 当使用这个 netstat 命令时,我们可以声明一个 IP(DOS) 或 IPs (DDOS) 进行攻击的确切数字是多少?如果 IP 是 SYN_RECV 状态的连接,这是否意味着他正在进行 SYN 洪水攻击?可以是假旗吗?
2) SYN_RECV 是 DDOS 攻击者使用的唯一监听状态吗?那么 ESTABLISHED 状态呢?我很困惑,因为其他文章说如果某些外国IP以ESTABLISHED状态连接,那么我的服务器正在受到攻击。什么样的攻击
3) 我问这个问题是因为我想制作一个简单的 bash 脚本,它可以手动报告 IP 是否是攻击者,并且我被告知使用 SYN_RECV 状态来评估攻击者。这是我们唯一可以使用的状态吗?可以认为是安全的 SYN_RECV 值的最小值是多少(不是 DOS 攻击者)?
希望我的问题很清楚。请问我是否有不清楚的地方。
谢谢你,我希望有人能回答这个噩梦。