我的(linux)服务器有一些相当简单的 iptables 规则。
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -m tcp -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -m tcp -p tcp --dport https -j ACCEPT
iptables -A INPUT -j LOG
iptables -A INPUT -j NFLOG
iptables -A INPUT -j DROP
ICMP 未过滤,但不允许其他不必要的连接。NFLOG 规则只是将数据包存储到数据包捕获文件 (pcap) 中。因为系统日志非常垃圾,我查看了数据包的详细信息。
tshark -V -a filesize:1 -r /scooby/doo.pcap
(IP 和端口[replaced]
)
Frame 1: 52 bytes on wire (416 bits), 52 bytes captured (416 bits)
Encapsulation type: Raw IP (7)
[Protocols in frame: raw:ip:gre:ip:udp:data]
Internet Protocol Version 4, Src: [incoming IP] ([incoming IP]), Dst: [my server IP] ([my server IP])
Version: 4
Header length: 20 bytes
Total Length: 52
Identification: 0x0000 (0)
Flags: 0x02 (Don't Fragment)
Time to live: 52
Protocol: GRE (47)
Generic Routing Encapsulation (IP)
Flags and Version: 0x0000
Protocol Type: IP (0x0800)
Internet Protocol Version 4, Src: [not my IP1] ([not my IP1]), Dst: [not my IP2] ([not my IP2])
Version: 4
Header length: 20 bytes
Total Length: 28
Time to live: 64
Protocol: UDP (17)
User Datagram Protocol, Src Port: [random port1] ([random port1]), Dst Port: [random port2] ([random port2])
Length: 8
主动提供的数据包主要是 ip:gre:ip:udp 数据包。GRE 数据包的数量(通常每分钟多个)大大超过了其他未经请求的数据包(漏洞扫描器/垃圾邮件发送者/端口扫描器)。GRE 封装内的所有 IP 对我来说都没有任何特殊意义,只是属于(专门)美国公司的各种常规 IP(因此,不是完全随机的地址)。
为什么有人会发送那些 GRE 数据包?
是否存在与 GRE 数据包相关的已知 DoS 漏洞?这是试图欺骗配置错误的路由器/服务器将封装的数据包转发到它们明显的目的地吗?发件人是否尝试收集有关我可能已设置的潜在 GRE 隧道性质的信息?
奖励:最合理的反应真的是“-j DROP”吗?
根据 Rick Wanner (ISC) 的说法,此类流量很可能与 Mirai 僵尸网络有关。他在此处和此处对此进行了评论(感谢@Aaron)正如@Michal Hampton 所怀疑的那样,有效载荷中包含的地址是一个线索:它们似乎与Mirai 中包含的伪随机数生成器相匹配-尽管我无法确认这一点.
Brain Krebs 说,他的网站至少在某种程度上因 GRE 垃圾邮件而被关闭。与更传统的 DDoS 方法相比,发送 GRE (ip/47) 背后的原因并不明显。关于为什么在 DDoS 中使用 GRE 的推测: