Назад | Перейти на главную страницу

Время ICMP превышено при передаче

В последние несколько дней мой сервер подвергся атаке такого рода: (пропускная способность> 60 Мбит / с, XXX.XXX.XXX.XXX - несколько IP-адресов)

    tcpdump -n proto ICMP    
    17:15:19.267464 IP XXX.XXX.XXX.XXX > my_ip: ICMP time exceeded in-transit, length 36
    17:15:19.325217 IP XXX.XXX.XXX.XXX > my_ip: ICMP time exceeded in-transit, length 36
    17:15:19.345561 IP XXX.XXX.XXX.XXX > my_ip: ICMP time exceeded in-transit, length 56
    17:15:19.484865 IP XXX.XXX.XXX.XXX > my_ip: ICMP time exceeded in-transit, length 36
    17:15:19.529616 IP XXX.XXX.XXX.XXX > my_ip: ICMP time exceeded in-transit, length 36
    17:15:19.957058 IP XXX.XXX.XXX.XXX > my_ip: ICMP YYY.YYY.YYY.YYY tcp port 39692 unreachable, length 36
    17:15:19.968957 IP XXX.XXX.XXX.XXX > my_ip: ICMP host YYY.YYY.YYY.YYY unreachable, length 56
    17:15:20.112520 IP XXX.XXX.XXX.XXX > my_ip: ICMP host YYY.YYY.YYY.YYY unreachable, length 56
    17:15:20.203199 IP XXX.XXX.XXX.XXX > my_ip: ICMP host YYY.YYY.YYY.YYY unreachable, length 36
    17:15:20.204803 IP XXX.XXX.XXX.XXX > my_ip: ICMP host YYY.YYY.YYY.YYY unreachable, length 36

У меня FreeBSD 9.1, и мой pf.conf

ext_if="em0"
table <blockedips> persist file "/etc/pf-blocked-ips.conf"

set skip on lo0

block drop in log (all) quick on $ext_if from <blockedips> to any

block in
pass out flags S/SA keep state

pass in on $ext_if proto tcp to port 80 flags S/SA keep state
pass in on $ext_if proto tcp to port ssh flags S/SA synproxy state

Что я могу сделать?

Поразительно маловероятно, что вы на самом деле видите на скорости более 60 Мбит / с ничего, кроме ответов ICMP, указывающих на отброшенные пакеты. Если да, скорее всего, вы либо находитесь под DoS, либо есть какой-то неконтролируемый процесс, отправляющий ложный трафик с вашего хоста.

Хороший первый шаг - захватить образец трафика (используйте pcap, wirehark, tcpdump или что-то еще) и проанализировать его; посмотрите, действительно ли вы отправляете пакеты, соответствующие ответам ICMP. Вам нужно захватить больше, чем просто трафик ICMP. Если вы отправляете материалы, связанные с этим, нужно сделать две вещи:

  • Определите, почему вы отправляете трафик с такой высокой скоростью или с чрезмерным количеством повторных попыток
  • Определите, должен ли вообще выполняться процесс, отправляющий трафик (netstat иногда может помочь с этим, используя -p вариант)
  • Используйте служебную программу traceroute, чтобы выявить возможные причины проблем с маршрутизацией и исправить их (или попросите своего интернет-провайдера исправить их)

Если вы не отправляете трафик, который генерирует эти ответы, а трафик ICMP перегружает вашу ссылку, вам необходимо связаться с вашим интернет-провайдером и попросить его помочь вам смягчить его.