Ping – это утилита сетевого администрирования, которая используется для проверки доступности системы в IP-сети. Ping также используется для проверки качества сетевого соединения путем отслеживания времени приема-передачи и потери пакетов. С другой стороны, сетевые злоумышленники и хакеры также используют ping для идентификации сетевых подсетей, чтобы найти потенциальные хосты или выполнить атаки ICMP-лавинной рассылки. Поэтому рекомендуется блокировать запросы ping к вашим серверам, чтобы предотвратить любые атаки.
Эта статья о том, как заблокировать ping-запросы к Linux Server. Мы также расскажем, как разблокировать запросы ping, если вам нужно использовать ping для системного администрирования и устранения неполадок.
Примечание. Обсуждаемые здесь команды были протестированы на Ubuntu 20.04 LTS.
Ping работает, отправляя пакет ICMP (эхо-запрос) в систему назначения, а затем получает ответный пакет ICMP (эхо-ответ). В Linux команда ping продолжает отправлять пакеты ICMP, пока вы не остановите ее с помощью Ctrl + C.
Чтобы заблокировать запросы ping, вам нужно будет блокировать/разблокировать эхо-запросы ICMP, отправляемые на ваш сервер. Есть два способа блокировать/разблокировать эхо-запросы ICMP к серверу Linux.
Давайте начнем.
С помощью параметров ядра вы можете временно или постоянно блокировать ping-запросы. Параметры ядра можно изменить с помощью команды sysctl, каталога /sys /proc и файла /etc/sysctl.conf.
Команда sysctl в Linux используется для чтения и записи параметров ядра в каталог /proc/sys. Используя эту команду, мы можем настроить параметры ядра для блокировки/разблокировки запросов ping. Параметр ядра net.ipv4.icmp_echo_ignore_all определяет, должна ли система отвечать на эхо-запрос ICMP. Значение по умолчанию – «0», что означает ответ на запрос ICMP.
Чтобы заблокировать запрос ping, введите в Терминале следующую команду:
$ sudo sysctl -w net.ipv4.icmp_echo_ignore_all=1
Эта команда устанавливает для параметра ядра значение «1», что означает игнорирование всех запросов ICMP.
Теперь все запросы ping к вашей системе будут заблокированы, и отправитель не получит ответа.
Чтобы разблокировать запросы ping, снова запустите ту же команду, изменив значение параметра на «0» по умолчанию.
$ sudo sysctl -w net.ipv4.icmp_echo_ignore_all=0
Кроме того, вы можете заблокировать запросы ping, изменив значение параметра ядра в каталоге /proc/sys с помощью команды echo. Однако, чтобы использовать этот метод, вам нужно будет запустить команду от имени пользователя root.
Чтобы заблокировать запрос ping, сначала переключитесь на учетную запись root, используя следующую команду в терминале:
$ su root
Когда будет предложено ввести пароль, введите пароль для root.
Затем введите следующую команду в Терминале:
$ echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
Чтобы разблокировать запросы ping, используйте следующую команду:
$ echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
Параметры ядра также можно изменить с помощью файла /etc/sysctl.conf. Этот файл позволит вам навсегда заблокировать ping-запросы к вашему серверу.
Чтобы заблокировать ping-запрос к вашей системе, отредактируйте файл /etc/sysctl.conf:
$ sudo nano /etc/sysctl.conf
Затем добавьте в файл следующую строку:
net.ipv4.icmp_echo_ignore_all = 1
Сохраните и закройте файл.
Затем введите следующую команду в Терминале, чтобы применить эту конфигурацию без перезагрузки:
$ sysctl -p
Чтобы разблокировать ping-запросы, отредактируйте файл /etc/sysctl.conf:
$ sudo nano /etc/sysctl.conf
Затем измените значение net.ipv4.icmp_echo_ignore_all на « 0»:
net.ipv4.icmp_echo_ignore_all = 0
Сохраните и закройте файл.
Затем введите следующую команду в Терминале, чтобы применить эту конфигурацию без перезагрузки:
$ sysctl -p
Iptables – это утилита межсетевого экрана в Linux, которая контролирует входящий и исходящий трафик на основе определенных правил. Он предустановлен в системе Ubuntu. Если он отсутствует в системе, вы можете установить его с помощью следующей команды в Терминале:
$ sudo apt install iptables
Чтобы заблокировать запросы ping к вашей системе, введите следующую команду в Терминале:
$ sudo iptables -A INPUT -p icmp --icmp-type 8 -j REJECT
Если флаг A используется для добавления правила в iptables, а icmp-type 8 – это номер типа ICMP, используемый для эхо-запроса.
Приведенная выше команда добавит правило в брандмауэр, которое будет блокировать любые входящие запросы ping в вашу систему. Добавив это правило, любой, кто отправит запрос ping в вашу систему, увидит сообщение «Destination Port Unreachable», как показано на снимке экрана ниже.
Если вы не хотите, чтобы это сообщение появлялось, используйте следующую команду, заменив REJECT на DROP:
$ sudo iptables -A INPUT -p icmp --icmp-type 8 -j DROP
Теперь любой, кто отправит запрос ping в вашу систему, увидит следующий аналогичный вывод:
Чтобы разблокировать ping-запросы к вашему серверу, введите следующую команду в Терминале:
$ sudo iptables -D INPUT -p icmp --icmp-type 8 -j REJECT
Если флаг D используется для удаления правила в iptables, а icmp-type 8 – это номер типа ICMP, используемый для эхо-запроса.
Чтобы эти правила стали постоянными после перезагрузки системы, вам понадобится пакет iptables-persistent. Выполните следующую команду в Терминале, чтобы установить iptables-persistent:
$ sudo apt install iptables-persistent
Вам будет предложено подтвердить, хотите ли вы продолжить установку. Нажмите y, чтобы продолжить, после чего система начнет установку, и после ее завершения она будет готова к использованию.
После добавления или удаления любого правила введите следующие команды в Терминале, чтобы они пережили перезагрузку системы.
$ sudo netfilter-persistent save $ sudo netfilter-persistent reload
Чтобы просмотреть все правила, добавленные в iptables, введите в Терминале следующую команду:
$ sudo iptables -L
Вот и все! В этой статье мы обсудили, как блокировать/разблокировать ping-запросы к Linux Server либо через параметры ядра, либо через утилиту iptables. Надеюсь это поможет!