Я просто перешел на сервер с ipv6 и поэтому изменил свой скрипт брандмауэра. Однако изменение моего iptables-script на ip6tables, похоже, не работает. Это часть ipv6, которая не разрешает ни исходящий, ни входящий трафик на ipv6 (но должна разрешать весь исходящий трафик и разрешать только ssh, https); ipv4 работает как шарм:
#IPv6
# Setting default policies:
ip6tables -P INPUT DROP
ip6tables -P FORWARD DROP
ip6tables -P OUTPUT ACCEPT
# Exceptions to default policy
ip6tables -I INPUT -i lo -j ACCEPT
ip6tables -A INPUT -p tcp —dport 22 -j ACCEPT # SSH
ip6tables -A INPUT -p tcp —dport 443 -j ACCEPT # HTTPS
ip6tables -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT
Спасибо!
Решение:
iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A FORWARD -p icmp -j ACCEPT
ip6tables -A INPUT -p icmpv6 -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 -j ACCEPT
ip6tables -A FORWARD -p icmpv6 -j ACCEPT
Согласно другому ответу здесь и http://www.ietf.org/rfc/rfc4890.txt
У вас нет правила, разрешающего исходящий трафик, хотя ваши правила для портов 22 и 443 кажутся двунаправленными. Вы должны фильтровать ICMP на внешнем интерфейсе и разрешать трафик DNS на порт 53 (как UDP, так и TCP).
Я бы порекомендовал вам использовать построитель межсетевого экрана с поддержкой IPv6. Есть порты, на которых вы, вероятно, захотите заблокировать исходящий трафик, даже если вам нужна открытая политика для исходящего трафика. У хорошего разработчика брандмауэра есть несколько правил по умолчанию, которые помогут вам начать работу с разумным брандмауэром.