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

21

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

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

Джереми Хайек
источник

Ответы:

17

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

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

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

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

jdstrand
источник
3
не работает для меня: сервер 11.04. Как я могу устранить эту проблему?
pylover
Нужен ли сброс или что-то в этом роде?
Амир Карими
1
@AmirKarimi sudo ufw reload(и разрешить запросы звона , я должен был добавить -A ufw-before-output -p icmp --icmp-type echo-request -j ACCEPTв /etc/ufw/before.rules)
baptx
2

Для 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/ ).

hoadlck
источник
0

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

Помощь UFW

Кейси Келлер
источник
0

Добавьте следующее в файл /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
user3801989
источник