Назад | Перейти на главную страницу

Требуются ли особые правила для ip6tables?

После настройки правил с помощью iptables и проверки того, что все работает, я также установил те же правила для адресов IPv6 и заметил, что я не могу подключиться ни к одному из адресов и портов IPv6 моего сервера. Политика по умолчанию: DROP все, кроме портов, разрешаю вручную.

Правила выглядят так:

-P INPUT DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
...

Если честно, я запускал эти команды с iptables и ip6tables и хотя с IPv4 все работает нормально, я не могу подключиться через IPv6 извне.

Должен ли я разрешить для IPv6 дополнительные вещи, которые IPv4 не требует?

IPv4 использовал отдельный протокол для поиска MAC-адреса, принадлежащего IPv4-адресу: ARP. Поскольку это отдельный протокол, iptables на него не влияет.

IPv6 интегрировал эту функциональность и не требует / не использует ARP. Функция реализована с помощью сообщений ICMPv6. Разница в том, что ICMPv6 является зависит от ip6tables. Если вы не пропускаете правильные сообщения ICMPv6, вы фактически блокируете себе доступ к сети. Вы не сможете найти другие системы в своей локальной сети (например, шлюз по умолчанию), и другие не найдут вас.

Как минимум, вам необходимо принимать сообщения запроса соседей и объявления соседей. Если вы используете рекламу маршрутизатора для финансирования шлюза по умолчанию и / или используете автоконфигурацию адреса, вам также необходимо принять их. Также может быть полезно пинговать вашу машину для отладки, поэтому, возможно, вы также захотите принять сообщения эхо-запроса.

Полный список возможных сообщений ICMPv6 см. https://www.iana.org/assignments/icmpv6-parameters.