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