Как включить брандмауэр UFW, чтобы разрешить ответ ICMP?

У меня есть несколько серверов Ubuntu 10.04, и на каждом из них включен брандмауэр UFW. Я разрешил порт 22 (для SSH) и 80 (если это веб-сервер). Мой вопрос заключается в том, что я пытаюсь включить эхо-ответ icmp (ping reply).

ICMP функционирует не так, как другие протоколы - я знаю, что в техническом смысле он ниже уровня IP. Вы можете просто набрать sudo ufw allow 22, но вы не можете набрать sudo ufw allow icmp

21
задан 4 September 2013 в 20:36

5 ответов

ufw не позволяет задавать правила icmp через команду интерфейса командной строки. Он позволяет вам настроить ваш набор правил с помощью файлов правил, которые являются файлами стилей iptables-restore.

ufw разрешает определенный трафик icmp по умолчанию, включая эхо-ответ icmp, и это уже настроено по умолчанию в /etc/ufw/before.rules:

-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT

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

0
ответ дан 4 September 2013 в 20:36

Вот справочный документ, в котором обсуждается, как включить / отключить ответы ping и др.

UFW help

0
ответ дан 4 September 2013 в 20:36

Добавьте в файл /etc/ufw/before.rules следующее:

# allow outbound icmp
-A ufw-before-output -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
-A ufw-before-output -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT

После редактирования файла выполните команду:

sudo ufw reload
0
ответ дан 4 September 2013 в 20:36

Для Ubuntu 18.04 в вашем файле /etc/ufw/before.rules должны быть следующие правила:

# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type source-quench           -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded           -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem       -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request            -j ACCEPT

# ok icmp code for FORWARD
-A ufw-before-forward -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type source-quench           -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type time-exceeded           -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type parameter-problem       -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type echo-request            -j ACCEPT

Они были в моем файле по умолчанию.

Конечно, будьте уверены, что это действительно проблема. Моя проблема заключалась в том, что мой компьютер блокировал пинги от выхода в сеть, где существовал сервер, на котором я пытался пинговать. Я закончил тем, что использовал веб-сайт, который уже был в Интернете, чтобы выполнить пинг для меня (например, https://ping.eu/ping/ ).

0
ответ дан 4 September 2013 в 20:36

Если у вас все еще есть проблемы, возможно, это ваши сетевые настройки VirtualBox или VMWare. Я часто использую адресацию NAT, поэтому мне нужно перейти в «Устройства/Сеть/Настройки сети...» -> «Дополнительно» -> «Переадресация портов» и добавить правило для сопоставления хоста с гостевыми портами для порта 22.

0
ответ дан 25 April 2020 в 14:27

Другие вопросы по тегам:

Похожие вопросы: