Эта статья о том, как заблокировать ping-запросы к Linux Server. Мы также расскажем, как разблокировать запросы ping в случае, если вам нужно использовать ping для системного администрирования и устранения неполадок.
Предпосылки
- Ubuntu 20.04 LTS
- Пользователь с привилегиями sudo
Примечание: Обсуждаемые здесь команды были протестированы на 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 каталог и / и т.д. / sysctl.conf файл.
Временные запросы блокировки / разблокировки ping
Команда sysctl в Linux используется для чтения и записи параметров ядра в / proc / sys каталог. Используя эту команду, мы можем настроить параметры ядра для блокировки / разблокировки запросов ping. Параметр ядра сеть.ipv4.icmp_echo_ignore_all контролирует, должна ли система отвечать на эхо-запрос ICMP. Значение по умолчанию - '0 ' что означает ответ на запрос ICMP.
Блокировать запрос Ping
Чтобы заблокировать запрос ping, введите в Терминале следующую команду:
$ sudo sysctl -w net.ipv4.icmp_echo_ignore_all = 1Эта команда устанавливает для параметра ядра значение '1', что означает игнорирование всех запросов ICMP.
Теперь все запросы ping к вашей системе будут заблокированы, и отправитель не получит ответа, как показано на скриншоте ниже.
Разблокировать запрос Ping
Чтобы разблокировать запросы ping, снова запустите ту же команду, изменив значение параметра на 0 по умолчанию.
$ sudo sysctl -w net.ipv4.icmp_echo_ignore_all = 0
Кроме того, вы можете заблокировать запросы ping, изменив значение параметра ядра в / proc / sys каталог с помощью команды echo. Однако, чтобы использовать этот метод, вам нужно будет запустить команду от имени пользователя root.
Чтобы заблокировать запрос ping, сначала переключитесь на учетную запись root, используя следующую команду в Терминале:
$ su rootКогда будет предложено ввести пароль, введите пароль для root.
Затем введите следующую команду в Терминале:
$ эхо 1> / proc / sys / net / ipv4 / icmp_echo_ignore_all
Чтобы разблокировать запросы ping, используйте следующую команду:
$ эхо 0> / proc / sys / net / ipv4 / icmp_echo_ignore_allПостоянно блокировать запросы ping
Параметры ядра также можно изменить с помощью / и т.д. / sysctl.conf файл. Этот файл позволит вам навсегда заблокировать ping-запросы к вашему серверу.
Блокировать запрос Ping
Чтобы заблокировать ping-запрос к вашей системе, отредактируйте / и т.д. / sysctl.conf файл:
$ sudo nano / etc / sysctl.confЗатем добавьте в файл следующую строку:
сеть.ipv4.icmp_echo_ignore_all = 1
Сохраните и закройте файл.
Затем введите следующую команду в Терминале, чтобы применить эту конфигурацию без перезагрузки:
$ sysctl -p
Разблокировать запрос Ping
Чтобы разблокировать запросы ping, отредактируйте / и т.д. / sysctl.conf файл:
$ sudo nano / etc / sysctl.confЗатем измените значение сеть.ipv4.icmp_echo_ignore_all к '0 ':
сеть.ipv4.icmp_echo_ignore_all = 0
Сохраните и закройте файл.
Затем введите следующую команду в Терминале, чтобы применить эту конфигурацию без перезагрузки:
$ sysctl -pБлокировать / разблокировать запросы ping с помощью iptables
Iptables - это утилита межсетевого экрана в Linux, которая контролирует входящий и исходящий трафик на основе определенных правил. Он предустановлен в системе Ubuntu. Если он отсутствует в системе, вы можете установить его с помощью следующей команды в Терминале:
$ sudo apt установить iptablesБлокировать запрос Ping
Чтобы заблокировать запросы ping к вашей системе, введите следующую команду в Терминале:
$ sudo iptables -A INPUT -p icmp --icmp-type 8 -j REJECTГде А флаг используется для добавления правила в iptables и icmp-тип 8 это номер типа ICMP, используемый для эхо-запроса.
Приведенная выше команда добавит правило в брандмауэр, которое будет блокировать любые входящие запросы ping в вашу систему. Добавив это правило, любой, кто отправит запрос ping в вашу систему, увидит значок «Порт назначения недоступен”Сообщение, как показано на скриншоте ниже.
Если вы не хотите, чтобы это сообщение отображалось, используйте следующую команду, заменив ОТКЛОНЯТЬ с участием УРОНИТЬ:
$ sudo iptables -A INPUT -p icmp --icmp-type 8 -j DROPТеперь любой, кто отправит запрос ping в вашу систему, увидит следующий аналогичный вывод:
Разблокировать запрос Ping
Чтобы разблокировать ping-запросы к вашему серверу, введите следующую команду в Терминале:
$ sudo iptables -D INPUT -p icmp --icmp-type 8 -j REJECTГде D флаг используется для удаления правила в iptables и icmp-тип 8 это номер типа ICMP, используемый для эхо-запроса.
Чтобы эти правила стали постоянными после перезагрузки системы, вам потребуется iptables-постоянный упаковка. Выполните следующую команду в Терминале, чтобы установить iptables-persistent:
$ sudo apt установить iptables-persistent
Вам будет предложено подтвердить, хотите ли вы продолжить установку или нет. Ударить у для продолжения, после чего система начнет установку и по завершении она будет готова к использованию.
После добавления или удаления любого правила введите следующие команды в Терминале, чтобы они пережили перезагрузку системы.
$ sudo netfilter-постоянное сохранение$ sudo netfilter-постоянная перезагрузка
Чтобы просмотреть все правила, добавленные в iptables, введите в Терминале следующую команду:
$ sudo iptables -LЭто все, что нужно для этого! В этой статье мы обсудили, как блокировать / разблокировать ping-запросы к Linux Server либо через параметры ядра, либо через утилиту iptables. Надеюсь это поможет!