Отвечая на свой вопрос здесь, но я подумал, что эта информация может представлять общий интерес:
Изучая этот вопрос, я наткнулся на ufw (Несложный FireWall) от разработчиков Ubuntu. Если IPV6 включен в конфигурации ufw, ufw будет управлять правилами iptables и ip6tables параллельно. Это означает, что вы можете сделать что-то вроде этого:
# ufw allow ssh/tcp
И в итоге получить:
# ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
22/tcp ALLOW Anywhere (v6)
В результате правила iptables / ip6tables выглядят следующим образом:
# iptables-save | grep 'dport 22'
-A ufw-user-input -p tcp -m tcp --dport 22 -j ACCEPT
# ip6tables-save | grep 'dport 22'
-A ufw6-user-input -p tcp -m tcp --dport 22 -j ACCEPT
Ufw также поддерживает профили приложений, которые позволяют создавать именованные группы портов. Вы можете сделать это:
# ufw allow 'WWW Full'
И в конечном итоге открыть оба порта 80 и 443 (как для IPv4, так и для IPv6).
Я только начал изучать это, но, похоже, он довольно хорошо собран.
Firewall Builder имеет именно то, что вам нужно. Вы можете создать один набор правил, пометить его как «комбинированный ipv4 + ipv6» и разместить свои сети ipv4 и ipv6, назначенные одному и тому же сегменту (например, «сеть баз данных» etC) в одном правиле. Затем программа генерирует две отдельные конфигурации iptables: одну для ipv4, а другую - для ipv6. Эта глава Руководства пользователя иллюстрирует это, хотя в качестве примера используются списки доступа маршрутизаторов Cisco. Это работает точно так же для iptables.
http://www.fwbuilder.org/4.0/docs/users_guide5/combined-ipv4-ipv6-rule-set.html
В интересах продолжения евангелизации дела, я предлагаю использовать Puppet для вашего подъема. В настоящее время нет хорошего сценария для обработки правил iptables 4 и 6, но написать его, как только вы приспособитесь к языку, не составит особого труда.
Public git репозиторий Mediawiki ] представляет собой фантастический кладезь шаблонов конфигурации и включает в себя класс iptables , который обеспечит хорошую основу для начала. Вы можете отредактировать его, чтобы по умолчанию применять правила к обоим стекам одновременно и иметь флаги для разных правил, когда вы основываете что-то на правилах IPv4 или IPv6.
Поскольку он все еще отсутствует в списке: Shorewall - широко распространенный и регулярно обновляемый многофункциональный инструмент настройки фильтра пакетов. Некоторое время он имел поддержку IPv6 .
Я также недавно столкнулся с проблемой с созданием правил iptables для IPv4 и IPv6. После непродолжительных поисков я остановился на ветке IPv6 FireHOL Фила Уинрея .
FireHOL - это генератор брандмауэра iptables, создающий брандмауэры с фильтрацией пакетов iptables с отслеживанием состояния на хостах и маршрутизаторах Linux с любым количеством сетевых интерфейсов, любым количеством маршрутов, любым количеством обслуживаемых сервисов, любым уровнем сложности между вариантами сервисов (включая положительные и отрицательные выражения). (Источник: веб-сайт FireHOL)
К сожалению, в официальной версии отсутствует поддержка IPv6. Но Фил Уинрей добавил поддержку в неофициальной ветке.
Некоторые примеры того, как выглядит конфигурация:
# allowing outgoing http and https requests for ipv4 and ipv6 (default setting when nothing is specified):
client "http https" accept
# allow incoming ssh only on ipv4
ipv4 server ssh accept
# allow incoming IMAP requests only for ipv6
ipv6 server imap accept
Вы можете проверить эту ветку firehol по адресу:
git clone git://repo.or.cz/fireholvi.git
Дополнительную документацию можно найти в официальной документации FireHOL или на сайте дополнительный Readme о IPv6 .
Лично я, вероятно, был бы осторожен при использовании его на производственной машине, где важно наличие 100% надежного межсетевого экрана.