iptables

Как использовать IP-таблицы для блокировки ICMP

Как использовать IP-таблицы для блокировки ICMP

Протокол управляющих сообщений Интернета, также известный как ICMP, - это протокол, используемый для проверки возможности подключения хостов в сети. Мы также можем использовать этот протокол для диагностики проблем в сети. Но с точки зрения безопасности он также может быть использован кем-то для выполнения DDoS-атаки. Пинг-флуд или распределенная атака типа отказ в обслуживании (DDoS) - это форма атаки, при которой кто-то отправляет на хост множество ping-запросов, и этот хост становится почти недоступным для обычного трафика. Чтобы избежать такой ситуации, сетевые администраторы обычно блокируют ICMP в своей сети. В этой статье мы узнаем, как можно использовать таблицы IP для блокировки ICMP на нашем сервере.

Что такое таблицы IP?

IP Tables - это служебная программа межсетевого экрана для операционных систем Linux. Его можно использовать для приема, отклонения или возврата сетевого трафика к источнику или от источника. Он наблюдает за входящим сетевым трафиком, используя различные наборы правил, определенные в таблице. Эти наборы правил называются цепочками. Таблицы IP наблюдают за пакетами данных, и какой пакет соответствует правилам, направляется в другую цепочку или ему присваивается одно из следующих значений.

Установка IP-таблиц

Для большинства дистрибутивов Linux IP-таблицы предустановлены. Вы можете проверить, установлены ли IP-таблицы или нет, набрав следующую команду в терминале.

[электронная почта защищена]: ~ $ iptables --version

Если IP-таблицы не установлены, вы можете установить их, выполнив следующую команду в терминале.

[электронная почта защищена]: ~ $ sudo apt-get update
[электронная почта защищена]: ~ $ sudo apt-get install iptables

Мы можем проверить состояние IP-таблиц по умолчанию, выполнив следующую команду в терминале.

[электронная почта защищена]: ~ $ sudo iptables -L -v

Флаг '-L' перечисляет все правила, а флаг '-v' показывает подробную информацию.

В качестве альтернативы мы также можем перечислить все правила, добавленные в таблицы IP, выполнив следующую команду в терминале.

[электронная почта защищена]: ~ $ sudo iptables -S

По умолчанию все цепочки принимают пакеты, и этим цепочкам не назначено правило.

Назначение правил цепочкам

Изначально ни одной цепочке не назначено никакое правило, и все они принимают сетевой трафик. Теперь в этом разделе мы увидим, как мы можем определить пользовательские правила для блокировки или разрешения сетевого трафика. Чтобы определить новое правило, мы используем флаг 'A' (добавить), который сообщает IP-таблицам, что будет определено новое правило. Следующие параметры также используются вместе с флагом A для описания правила.

(интерфейс): этот параметр указывает, через какой интерфейс вы хотите разрешить или заблокировать сетевой трафик. Вы можете получить список всех интерфейсов в вашей системе, выполнив следующую команду в терминале.

[электронная почта защищена]: ~ $ ifconfig

-п (протокол): этот параметр определяет, какой протокол вы хотите фильтровать с помощью IP-таблиц. Это может быть TCP, UDP, ICMP, ICMPV6 и т. Д. Вы можете применять правила ко всем протоколам, используя все параметры.

-s (источник): эта опция показывает источник сетевого трафика, такой как IP-адрес или доменное имя.

-порт (порт назначения): этот параметр используется для указания порта назначения для сетевого трафика.

-j (цель): этот параметр используется для отображения цели. Это может быть ACCEPT, DROP, REJECT или RETURN. Эта опция обязательна для каждого правила.

В общем, основной синтаксис для добавления правила будет следующим:

[электронная почта защищена]: ~ $ sudo iptables -A -j
-п -порт -s

Блокировка ICMP с использованием IP-таблиц

Пока что у нас есть базовое представление об IP-таблицах и их использовании для разрешения или блокировки трафика на определенных портах через определенные интерфейсы. Теперь мы будем использовать IP-таблицы для блокировки ICMP на нашем сервере.

Следующая команда добавит правило для блокировки ICMP на вашем компьютере:

[электронная почта защищена]: ~ $ sudo iptables -A INPUT -j REJECT -p icmp --icmp-type echo-request

После выполнения указанной выше команды проверьте статус IP-таблиц.

[электронная почта защищена]: ~ $ sudo iptables -L -v

Мы видим, что в цепочку INPUT добавлено правило, которое показывает, что весь трафик ICMP будет отклонен. Теперь, если мы пингуем нашу систему из любой другой системы из той же сети, она отклонит запрос. Мы можем увидеть результат, сделав запрос ping с локального хоста

[электронная почта защищена]: ~ $ ping 127.0.0.1

Мы видим, что мы получаем сообщения об отказе от системы, если пытаемся отправить ей ping-запрос.

В качестве альтернативы, следующие две команды можно использовать для добавления правил для блокировки ICMP на нашем сервере.

[электронная почта защищена]: ~ $ sudo iptables -A INPUT -p icmp -j DROP --icmp-type echo-request
[электронная почта защищена]: ~ $ sudo iptables -A OUTPUT -p icmp -j DROP --icmp-type echo-reply

После добавления этих двух правил теперь проверьте статус таблиц IP.

[электронная почта защищена]: ~ $ sudo iptables -L -v

Мы видим, что приведенная выше команда добавила два правила: одно в цепочку INPUT, а другое - в цепочку OUTPUT.

Разница между DROP и REJECT заключается в том, что когда мы используем REJECT, он показывает нам предупреждение (Destination port Unreachable), когда мы пингуем, потому что запрос отклонен и не достигает порта. С другой стороны, когда мы используем DROP, он просто отбрасывает вывод. Ввод не отклоняется, он обрабатывается, но вывод не отображается, как показано ниже

Заключение

Хакеры применяют различные методы для выполнения распределенных атак типа «отказ в обслуживании» (DDoS) на серверы. Ping flood также является формой DDoS-атаки. Хакеры отправляют на сервер столько запросов ping, что сервер использует всю свою вычислительную мощность для обработки запросов ping и не выполняет свою фактическую обработку. В этом сценарии или нескольких других сценариях вам может потребоваться заблокировать ICMP на вашем сервере.

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

Полезные инструменты для геймеров Linux
Если вам нравится играть в игры на Linux, скорее всего, вы использовали приложения и утилиты, такие как Wine, Lutris и OBS Studio, для улучшения игров...
Игры HD Remastered для Linux, ранее не выпускавшиеся для Linux
Многие разработчики и издатели игр придумывают HD-ремастеры старых игр, чтобы продлить жизнь франшизы, порадовать фанатов, требующих совместимости с с...
Как использовать AutoKey для автоматизации игр под Linux
AutoKey - это утилита автоматизации рабочего стола для Linux и X11, запрограммированная на Python 3, GTK и Qt. Используя его функции сценариев и MACRO...