Как запретить icmp трафик ubuntu

Обновлено: 07.07.2024

Одним из компонентов ядра операционной системы Linux является сетевой экран.Он позволяет выполнять множество видов фильтрации трафика. Кроме этого в ядре имеется возможность трансляции сетевых адресов.
Например, на базе Linux строятся сетевые шлюзы для подключения локальных сетей к интернету.Пользовательским интерфейсом к сетевому экрану Linux является программа Iptables.Это программа командной строки, она взаимодействует с пользователем посредством текстового терминала.

В ubuntu для разрешения работы транзитного трафика NAT надо раскомментировать в файле /etc/sysctl.conf строчку

Принцип работы

Итак, пребывающий пакет проходит по цепочке правил. Каждое правило содержит условие и цель (действие). Если пакет удовлетворяет условию то он передается на цель, в противном случае к пакету применяется следующее правило в цепочке. Если пакет не удовлетворил ни одному из условий в цепочке, то к нему применяется действие по умолчанию.

Ключевыми понятиями iptables являются:

  • фильтрация трафика на основе адресов отправителя и получателя пакетов, номеров портов;
  • перенаправление пакетов по определенным параметрам;
  • организация доступа в сеть (SNAT);
  • проброс портов из глобальной сети в локальную (DNAT);
  • ограничение числа подключений;
  • установление квот трафика;
  • выполнение правил по расписанию;

Основное назначение таблицы mangle - внесение изменений в заголовок пакета. В этой таблице могут производиться следующие действия:

  • установка бита Type Of Service;
  • установка поля Time To Live;
  • установка метки на пакет, которая может быть проверена в других правилах;

Таблица используется для преобразования сетевых адресов (Network Address Translation) и когда встречается пакет, устанавливающий новое соединение. В этой таблице могут производиться следующие действия:

Прибывший пакет проходит по цепочке правил. Каждое правило содержит условие и цель (действие). Если пакет удовлетворяет условию то он передается на цель, в противном случае к пакету применяется следующее правило в цепочке. Если пакет не удовлетворил ни одному из условий в цепочке, то к нему применяется действие по умолчанию.

Команды iptables:
-A - добавление правила в цепочку, правило будет добавлено в конец цепочки;
-D - удаление правила из цепочки;
-R - заменить одно правило другим;
-I - вставить новое правило в цепочку;
-L - вывод списка правил в заданной цепочке;
-F - сброс всех правил в заданной цепочке;
-Z - обнуление всех счетчиков в заданной цепочке;
-N - создание новой цепочки с заданным именем;
-X - удаление цепочки;
-P - задает политику по умолчанию для цепочки;
-E - переименование пользовательской цепочки;

Действия над пакетами

Для указания действия (цели) с пакетом служит опция -j. Основные действия:

Разница между DROP и REJECT

Опции отбора пакетов

Для ubuntu можно использовать пакет iptables-persistent, который будет сам переподнимать его при каждой загрузке системы:

sudo apt-get install iptables-persistent


1)Показать статус.
iptables -L -n -v

4)Удалить правила файрвола.

5)Добавить правило в файрвол.

Примерный вывод:

Chain INPUT (policy DROP)
num target prot opt source destination
1 DROP all -- 202.54.1.1 0.0.0.0/0
2 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state NEW,ESTABLISHED

Chain INPUT (policy DROP)
num target prot opt source destination
1 DROP all -- 202.54.1.1 0.0.0.0/0
2 DROP all -- 202.54.1.2 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state NEW,ESTABLISHED

Помощь по iptables.

6)Для фильтрации по источнику используется опция -s. Например запретим все входящие пакеты с узла 192.168.1.95:

iptables -A INPUT -s 192.168.1.95 -j DROP

Можно использовать доменное имя для указания адреса хоста:

Также можно указать целую под сеть:

iptables -A INPUT -s 192.168.1.0/24 -j DROP

Также вы можете использовать отрицание (знак !). Например, все пакеты с хостов отличных от 192.168.1.96 будут уничтожаться:

iptables -A INPUT ! -s 192.168.1.96 -j DROP

Для этого нужно использовать опцию -d. Например запретим все исходящие пакеты на хост 192.168.1.95:

iptables -A OUTPUT -d 192.168.156.156 -j DROP

Запретить доступ к ресурсу

8)Опция -p указывает на протокол. Можно использовать all, icmp, tcp, udp или номер протокола (из /etc/protocols).

Разрешаем входящие эхо-запросы

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

Разрешаем все исходящие пакеты с порта 80:

iptables -A INPUT -p tcp --sport 80 -j ACCEPT

Заблокировать все входящие запросы порта 80:

iptables -A INPUT -p tcp --dport 80 -j DROP

Для указания порта необходимо указать протокол (tcp или udp). Можно использовать отрицание.

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Разрешить подключения по SSH

iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT

Разрешаем получать данные от DHCP-сервера

iptables -A INPUT -p UDP --dport 68 --sport 67 -j ACCEPT


Разрешить CUPS (сервер печати, порт 631) для пользователей внутри локальной сети

iptables -A INPUT -s 192.168.1.0/24 -p udp -m udp --dport 631 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 631 -j ACCEPT

Разрешить синхронизацию времени NTP для пользователей внутри локальной сети

iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 123 -j ACCEPT

Для примера направим трафик с порта 442 на 22, это значит что входящие ssh-соединения могут быть принятыми с порта 422 и 22.

iptables -t nat -A PREROUTING -p tcp -d 192.168.1.15 --dport 422 -j DNAT --to 192.168.1.15:22

Также надо разрешить входящие соединения с порта 422

iptables -A INPUT -i eth0 -p tcp --dport 422 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 422 -m state --state ESTABLISHED -j ACCEPT

Как и в случае с портом источника нужно указать протокол. Можно использовать отрицание.

13). Блокировать только входящие соединения.

14) Сбрасывать или разрешить трафик с определенных MAC адресов.

16). Открыть диапазон портов.

18) Закрыть или открыть стандартные порты.

Заменить ACCEPT на DROP, чтобы заблокировать порт.


Пример минимальной конфигурации своего шлюза:

Iptables утилита брандмауэра командной строки, которая позволяет или трафик блоков на основе использования цепочки политики. Iptables следует за основанным на пакете подходом для транспортного контроля. Когда программа пытается установить соединение с Вашей системой, iptables ищет правило соответствовать из предопределенного списка. Если этому не удается соответствовать правилу, это восстанавливает к действию по умолчанию и предотвращает доступ к новому соединению.

iptables фильтр пакета был сначала записан Продавцом Ржавчины и является продуктом Рабочей группы Netfilter. Это записано на языке C и было сначала выпущено в 1998. Компания продолжает выпускать стабильные версии время от времени, которые могут быть загружены со следующего репозитория:

Для получения дополнительной информации о iptables и как использовать его следуйте официальной документации в:

Кто такой Ping?

В этой статье мы объясним, что iptables управляет, чтобы можно было использовать чтобы для:

  • Добавьте правило, которое говорит iptables брандмауэру блокировать ping в и из сервера путем управления запросами ICMP.
  • Удалите правило, которое говорит iptables брандмауэру позволять ping войти и из сервера путем управления запросами ICMP.

Мы выполнили команды и процедуры, упомянутые в этой статье о системе Ubuntu 18.04 LTS.

Как Блокировать/Позволять ping от iptables?

Можно установить iptables через командную строку Linux путем выполнения следующей команды в Терминале:

Можно открыть Терминальное приложение или посредством поиска средства запуска системного приложения или при помощи ярлыка Ctrl+Alt+T.

Чтобы проверить установку и проверить номер версии, можно использовать следующую команду:

Ping блока



Опция команды-A команды iptables обозначает, 'Добавляют', таким образом, любое правило, которое должно быть добавлено, запустится с ‘sudo iptables-A …‘..

Позвольте Ping

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


Если какое-либо из правил блокируется, ping (в нашем ICMP случая отклоняется), можно просто удалить то правило следующим образом:


-D командный коммутатор используется для удаления правила.

Можно удалить все пользовательские правила, добавленные к iptables Брандмауэру со следующей командой:

Вы видели, как добавление и удаление правил в iptables утилите позволяют Вам управлять, как брандмауэр работает.


Блокировка PING на сервер является полезным, если сервер постоянно сталкивается с какой-то DoS атакой с помощью функции PING. При использовании IPTables мы можем просто остановить запретить прохождение ICMP пакетов (собственно, запретить PING) на сервер. Перед началом этого необходимо иметь представление о том, что такое Iptables в Linux. Iptables это система межсетевого экрана с набором правил, которые контролирует входящие и исходящие пакеты. По-умолчанию в Iptables работает без каких-либо правил, вы можете создавать, добавлять, редактировать правила.

Отключения Ping используя iptables

Обьяснение некоторых параметров в iptables, которые необходимы для создания правил управления ICMP пакетами:

Ниже, я приведу наглядные примеры.

Заблокирует все входящие и исходящие ICMP пакеты на сервере.

Разрешить Ping используя iptables

Если заблокировали ping на сервере и не знаете как вернуть назад. То я сейчас расскажу как это сделать. А делается это, добавлением следующего правила в IPtables:

Данные правила разрешат прохождения ICMP пакетов с сервера и на него.

Мы также можем блокировать пинг ответы непосредственно параметрами ядра. Можно заблокировать ответы на пинг временно или постоянно и внизу показано как это сделать.

Временная блокировка Ping
Вы можете заблокировать временно ответы на пинг используя следующую команду

Чтобы разблокировать эту команду, выполните следующую:

Запретить Ping вообще
Вы можете заблокировать пинг ответы добавляя следующий параметр в конфигурационный файл:

-w флаг используется, если вы хотите изменить некоторые настройки.

Теперь выполните следующую команду, чтобы немедленно применить настройки без перезагрузки системы:

Вот мой полный конфиг:

и потом можно выполнить:

Но так же, можно его просто прочитать тут:
sysctl.conf

Favorite

Добавить в избранное

Главное меню » Linux » Как заблокировать или разблокировать запросы ping на Ubuntu Server 20.04 LTS

Как заблокировать или разблокировать запросы ping на Ubuntu Server 20.04 LTS

Эта статья о том, как заблокировать ping-запросы к Linux Server. Мы также расскажем, как разблокировать запросы ping, если вам нужно использовать ping для системного администрирования и устранения неполадок.

Предпосылки

Примечание. Обсуждаемые здесь команды были протестированы на Ubuntu 20.04 LTS.

Блокировать/разблокировать запросы ping к Linux Server

Ping работает, отправляя пакет ICMP (эхо-запрос) в систему назначения, а затем получает ответный пакет ICMP (эхо-ответ). В Linux команда ping продолжает отправлять пакеты ICMP, пока вы не остановите ее с помощью Ctrl + C.

Чтобы заблокировать запросы ping, вам нужно будет блокировать/разблокировать эхо-запросы ICMP, отправляемые на ваш сервер. Есть два способа блокировать/разблокировать эхо-запросы ICMP к серверу Linux.

  • Через параметры ядра
  • Через iptables

Блокировать/разблокировать запросы ping через параметры ядра

С помощью параметров ядра вы можете временно или постоянно блокировать ping-запросы. Параметры ядра можно изменить с помощью команды sysctl, каталога /sys /proc и файла /etc/sysctl.conf.

Временные запросы блокировки/разблокировки ping

Блокировать запрос Ping

Чтобы заблокировать запрос ping, введите в Терминале следующую команду:

Эта команда устанавливает для параметра ядра значение «1», что означает игнорирование всех запросов ICMP.

Читать Поиск самых больших файлов и папок в командной строке Linux

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

Разблокировать запрос Ping

Чтобы разблокировать запросы ping, снова запустите ту же команду, изменив значение параметра на «0» по умолчанию.

Кроме того, вы можете заблокировать запросы ping, изменив значение параметра ядра в каталоге /proc/sys с помощью команды echo. Однако, чтобы использовать этот метод, вам нужно будет запустить команду от имени пользователя root.

Чтобы заблокировать запрос ping, сначала переключитесь на учетную запись root, используя следующую команду в терминале:

Когда будет предложено ввести пароль, введите пароль для root.

Затем введите следующую команду в Терминале:

Чтобы разблокировать запросы ping, используйте следующую команду:

Постоянно блокировать запросы ping

Параметры ядра также можно изменить с помощью файла /etc/sysctl.conf. Этот файл позволит вам навсегда заблокировать ping-запросы к вашему серверу.

Блокировать запрос Ping

Чтобы заблокировать ping-запрос к вашей системе, отредактируйте файл /etc/sysctl.conf:

Затем добавьте в файл следующую строку:

Сохраните и закройте файл.

Затем введите следующую команду в Терминале, чтобы применить эту конфигурацию без перезагрузки:

Разблокировать запрос Ping

Чтобы разблокировать ping-запросы, отредактируйте файл /etc/sysctl.conf:

Затем измените значение net.ipv4.icmp_echo_ignore_all на « 0»:

Сохраните и закройте файл.

Затем введите следующую команду в Терминале, чтобы применить эту конфигурацию без перезагрузки:

Блокировать/разблокировать запросы ping с помощью iptables

Блокировать запрос Ping

Чтобы заблокировать запросы ping к вашей системе, введите следующую команду в Терминале:

Читать Автоматический выход неактивных пользователей из системы Linux

Теперь любой, кто отправит запрос ping в вашу систему, увидит следующий аналогичный вывод:

Разблокировать запрос Ping

Чтобы разблокировать ping-запросы к вашему серверу, введите следующую команду в Терминале:

Чтобы эти правила стали постоянными после перезагрузки системы, вам понадобится пакет iptables-persistent. Выполните следующую команду в Терминале, чтобы установить iptables-persistent:

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

После добавления или удаления любого правила введите следующие команды в Терминале, чтобы они пережили перезагрузку системы.

Чтобы просмотреть все правила, добавленные в iptables, введите в Терминале следующую команду:

Вот и все! В этой статье мы обсудили, как блокировать/разблокировать ping-запросы к Linux Server либо через параметры ядра, либо через утилиту iptables. Надеюсь это поможет!

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.


Блокировка PING на сервер является полезным, если сервер постоянно сталкивается с какой-то DoS атакой с помощью функции PING. При использовании IPTables мы можем просто остановить запретить прохождение ICMP пакетов (собственно, запретить PING) на сервер. Перед началом этого необходимо иметь представление о том, что такое Iptables в Linux. Iptables это система межсетевого экрана с набором правил, которые контролирует входящие и исходящие пакеты. По-умолчанию в Iptables работает без каких-либо правил, вы можете создавать, добавлять, редактировать правила.

Отключения Ping используя iptables

Обьяснение некоторых параметров в iptables, которые необходимы для создания правил управления ICMP пакетами:

-A : Добавляет правила.

-D : Удаляет правило с таблицы.

-p : Опция чтобы указать протокол (где ‘icmp’).

—icmp-type : Опция для указания типа.

-J : Перейти к цепочке.

Ниже, я приведу наглядные примеры.

Для этого, используем команду для ИПтейбелс:

Заблокирует все входящие и исходящие ICMP пакеты на сервере.

Разрешить Ping используя iptables

Если заблокировали ping на сервере и не знаете как вернуть назад. То я сейчас расскажу как это сделать. А делается это, добавлением следующего правила в IPtables:

Данные правила разрешат прохождения ICMP пакетов с сервера и на него.

Мы также можем блокировать пинг ответы непосредственно параметрами ядра. Можно заблокировать ответы на пинг временно или постоянно и внизу показано как это сделать.

Временная блокировка Ping

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

Чтобы разблокировать эту команду, выполните следующую:

Запретить Ping вообще

Вы можете заблокировать пинг ответы добавляя следующий параметр в конфигурационный файл:

sysctl используется для изменения параметров ядра во время выполнения, один из этих параметров может быть «ping daemon» (демон пинга), если вы хотите отключить пинг, то вы просто должны выполнить что-то вроде:

-w флаг используется, если вы хотите изменить некоторые настройки.

Теперь выполните следующую команду, чтобы немедленно применить настройки без перезагрузки системы:

Вот мой полный конфиг:

и потом можно выполнить:

Но так же, можно его просто прочитать тут:

Читайте также: