Meu servidor (linux) tem algumas regras de iptables bastante simples.
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
O ICMP não é filtrado, mas nenhuma outra conexão desnecessária é permitida. A regra NFLOG apenas armazena pacotes em um fule de captura de pacotes (pcap). Como o syslog ficou com bastante spam, examinei os detalhes dos pacotes.
tshark -V -a filesize:1 -r /scooby/doo.pcap
(IPs e portas [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
Os pacotes não solicitados são principalmente pacotes ip:gre:ip:udp. O volume de pacotes GRE - geralmente múltiplos por minuto - supera em muito outros pacotes não solicitados (scanners de vulnerabilidade / spammers / scanners de porta). Nenhum dos IPs dentro do encapsulamento GRE tem qualquer significado especial para mim, apenas vários IPs regulares pertencentes a (exclusivamente) empresas com sede nos EUA (portanto, endereços não totalmente aleatórios).
Por que alguém enviaria esses pacotes GRE?
Existem vulnerabilidades DoS conhecidas relacionadas a pacotes GRE? Isso é uma tentativa de enganar roteadores/servidores mal configurados para encaminhar os pacotes encapsulados para seu destino aparente? O remetente tenta coletar informações sobre a natureza dos possíveis túneis GRE que eu possa ter configurado?
Bônus: a reação mais razoável é realmente "-j DROP"?
De acordo com Rick Wanner (ISC), esse tráfego provavelmente estava conectado ao botnet Mirai. Ele comentou sobre isso aqui e aqui (obrigado, @Aaron) Como @Michal Hampton suspeitava, os endereços contidos na carga útil são uma pista: eles parecem corresponder ao gerador de números pseudoaleatórios contido no Mirai - embora eu não tenha conseguido confirmar isso .
Brain Krebs diz que seu site foi derrubado pelo menos até certo ponto por meio de spam GRE. O raciocínio por trás do envio de GRE (ip/47) em oposição aos métodos DDoS mais tradicionais não é óbvio. Especulações sobre por que o GRE é usado em DDoS: