воскресенье, 16 сентября 2018 г.

Ping Filtered с помощью IPTABLES



Ping — утилита для проверки целостности и качества соединений в сетях на основе TCP/IP, а также обиходное наименование самого запроса.
Первоначально словом «ping» (по созвучию) именовали направленный акустический сигнал противолодочных гидролокаторов.

Утилита отправляет запросы (ICMP Echo-Request) протокола ICMP указанному узлу сети и фиксирует поступающие ответы (ICMP Echo-Reply). Время между отправкой запроса и получением ответа позволяет определять двусторонние задержки по маршруту и частоту потери пакетов, то есть косвенно определять загруженность на каналах передачи данных и промежуточных устройствах. - это у нас из WIKI

Сегодня будем не про это, сегодня про то как ещё можно блочить их, что бывает полезно и нужно.
Тема эта избита и всем довно известа и про это многое написано, самое лучшее по моему мнению, это статья/учебник на OpenNet: www.opennet.ru/docs/RUS/iptables/

Вкратце, можно блочить пинг, да и вообще двумя способами:

DROP - Данное действие просто "сбрасывает" пакет и iptables "забывает" о его существовании. "Сброшенные" пакеты прекращают свое движение полностью, т.е. они не передаются в другие таблицы, как это происходит в случае с действием ACCEPT. Следует помнить, что данное действие может иметь негативные последствия, поскольку может оставлять незакрытые "мертвые" сокеты как на стороне сервера, так и на стороне клиента, наилучшим способом защиты будет использование действия REJECT особенно при защите от сканирования портов.

Пример правила для пинг:

iptables -A OUTPUT -p icmp --icmp-type echo-request -j DROP
 
 
REJECT - спользуется, как правило, в тех же самых ситуациях, что и DROP, но в отличие от DROP, команда REJECT выдает сообщение об ошибке на хост, передавший пакет.

Пример:

iptables -A INPUT -p icmp --icmp-type echo-request -j REJECT


 Сподвигло к написанию вот такой результат пинга клиента, который жаловался на связь:


VoIP:~$ ping 83.220.45.3
PING 83.220.45.3 (83.220.45.3) 56(84) bytes of data.
From 83.220.45.3 icmp_seq=1 Packet filtered
From 83.220.45.3 icmp_seq=2 Packet filtered
From 83.220.45.3 icmp_seq=3 Packet filtered
From 83.220.45.3 icmp_seq=5 Packet filtered
From 83.220.45.3 icmp_seq=6 Packet filtered
From 83.220.45.3 icmp_seq=7 Packet filtered
From 83.220.45.3 icmp_seq=8 Packet filtered
From 83.220.45.3 icmp_seq=9 Packet filtered
From 83.220.45.3 icmp_seq=11 Packet filtered
^C
--- 83.220.45.3 ping statistics ---
11 packets transmitted, 0 received, +9 errors, 100% packet loss, time 10028ms

При реджеккте обычно выдает unreachable, а как так сказать, клиент был не в курсе и вбил из шаблона, который не мог/не хотел/не знал как достать/рссказать/передать, все классически, я не я и корова не моя, помогите я ничего не знаю.
Порыл докусентацию и действилтельно можно задать правило так говорить:


Оказалось просто, после reject пишем --reject-with и один из вариантов, в нашем случае это будет icmp-admin-prohibited и получим как раз то что летело от клиента.



Комментариев нет:

Отправить комментарий

Debian 12 sources.list редактирование и уход от cdrom

     Если после установки постоянно просит диск и ничего с этим не сделать, то идем в сорс-листы и комментим вот такую строчку  cat /etc/apt...