Приклади фаєрвола для IPv6

Щоб відкрити порт 80 для доступу до локального вебсервера за адресою 2001:db8:42::1337 з Інтернету:

config rule
	option src 'wan'
	option proto 'tcp'
	option dest 'lan'
	option dest_ip '2001:db8:42::1337'
	option dest_port '80'
	option family 'ipv6'
	option target 'ACCEPT'

Щоб відкрити доступ до SSH для всіх IPv6-хостів у локальній мережі:

config rule
	option src 'wan'
	option proto 'tcp'
	option dest 'lan'
	option dest_port '22'
	option family 'ipv6'
	option target 'ACCEPT'

Щоб відкрити всі TCP/UDP-порти в діапазоні 1024–65535 для локальної IPv6-мережі:

config rule
	option src 'wan'
	option proto 'tcp udp'
	option dest 'lan'
	option dest_port '1024:65535'
	option family 'ipv6'
	option target 'ACCEPT'

:!: Цей приклад стосується лише IPv6-тунелів і не застосовується до нативних dual-stack інтерфейсів.

У наведеному нижче прикладі передбачається, що ваш тунельний інтерфейс налаштовано в окремій зоні. Альтернативною конфігурацією може бути розміщення вашого тунелю IPv6 на інтерфейсі, наприклад, henet, який належить до зони wan. Це також допустимо, але якщо ви плануєте передавати префікс у LAN і хочете правильно фільтрувати трафік — краще створити окрему зону фаєрвола, як описано нижче.

IPv6-пакети, як правило, не пересилаються з LAN у інтерфейс wan6 і навпаки. Переконайтеся, що параметр `net.ipv6.conf.all.forwarding=1` увімкнений — перевірити можна командою:

sysctl net.ipv6.conf.all.forwarding

(Ймовірно, це вже ввімкнено в нових збірках OpenWrt за замовчуванням.)

Припускаючи, що тунельний інтерфейс має назву wan6, додайте до файлу /etc/config/firewall наступні секції для створення нової зони:

config zone
	option name 'wan6'
	option network 'wan6'
	option family 'ipv6'
	option input 'ACCEPT'
	option output 'ACCEPT'
	option forward 'REJECT'
 
config forwarding
	option dest 'wan6'
	option src 'lan'

Переадресація lan → wan6 дозволяє працювати з IPv6-префіксом у LAN. Перевірити це можна на сайті: https://test-ipv6.com

Опція family забезпечує, що зона і всі пов’язані з нею записи (rule, forwarding, redirect) додаються лише до ip6tables, але не до iptables.

:!: Додавання наведеного нижче правила форвардингу відкриє ВСІ IPv6-порти для всіх хостів у LAN, що потенційно дуже небезпечно. Замість цього слід створити окремі правила дозволу IPv6 для необхідних сервісів.

Раніше документація зазначала, що це правило необхідне для правильної роботи IPv6-трафіку. Це неправда — правило wan6 → lan не потрібно для всього трафіку.

# Увімкніть це лише якщо ви точно знаєте, що робите, і маєте додаткові правила фаєрвола, які блокують небажаний трафік.
config forwarding
	option dest 'lan'
	option src 'wan6'

Усі правила фаєрвола для відкриття портів мають ту ж структуру, що й у попередніх прикладах, за винятком того, що значення src буде wan6 замість wan.

Переадресація трафіку IPv6 з WAN на конкретний хост у LAN, використовуючи GUA-адресу. Налаштуйте статичний суфікс IPv6 і додайте правило форвардингу.

uci add firewall rule
uci set firewall.@rule[-1].name="Forward-IPv6"
uci set firewall.@rule[-1].src="wan"
uci set firewall.@rule[-1].dest="lan"
uci set firewall.@rule[-1].dest_ip="::23/-64"
uci set firewall.@rule[-1].family="ipv6"
uci set firewall.@rule[-1].proto="tcp udp"
uci set firewall.@rule[-1].target="ACCEPT"
uci commit firewall
service firewall restart

Позначення з від’ємною маскою працює лише в фаєрволі OpenWrt:

  • /-64 еквівалентно /::0000:ffff:ffff:ffff:ffff
  • /-60 еквівалентно /::000f:ffff:ffff:ffff:ffff
  • /-56 еквівалентно /::00ff:ffff:ffff:ffff:ffff
  • /-48 еквівалентно /::ffff:ffff:ffff:ffff:ffff

Переадресація конкретного IPv6-порту з WAN на хост у LAN за NAT66. Налаштуйте статичну DHCPv6-оренду і додайте перенаправлення через ULA-адресу.

uci add firewall redirect
uci set firewall.@redirect[-1].name="Forward-SSH-IPv6"
uci set firewall.@redirect[-1].src="wan"
uci set firewall.@redirect[-1].src_dport="22"
uci set firewall.@redirect[-1].dest="lan"
uci set firewall.@redirect[-1].dest_ip="fd00:db8:42::1337"
uci set firewall.@redirect[-1].dest_port="22"
uci set firewall.@redirect[-1].family="ipv6"
uci set firewall.@redirect[-1].proto="tcp"
uci set firewall.@redirect[-1].target="DNAT"
uci commit firewall
service firewall restart

Ви можете перевірити стан вашого фаєрвола IPv6 за допомогою наступних інструментів:

Ці сервіси дозволяють перевірити один або кілька портів за IPv6-адресою і побачити, чи відповідає система. У більшості випадків не повинно бути відкритих портів, якщо вони не були явно відкриті через правила фаєрвола.

(Ймовірно, це вже ввімкнено в нових збірках OpenWrt за замовчуванням.)

Припускаючи, що тунельний інтерфейс має назву wan6, додайте до файлу /etc/config/firewall наступні секції для створення нової зони:

config zone
	option name 'wan6'
	option network 'wan6'
	option family 'ipv6'
	option input 'ACCEPT'
	option output 'ACCEPT'
	option forward 'REJECT'
 
config forwarding
	option dest 'wan6'
	option src 'lan'

Переадресація lan → wan6 дозволяє працювати з IPv6-префіксом у LAN. Перевірити це можна на сайті: https://test-ipv6.com

Опція family забезпечує, що зона і всі пов’язані з нею записи (rule, forwarding, redirect) додаються лише до ip6tables, але не до iptables.

:!: Додавання наведеного нижче правила форвардингу відкриє ВСІ IPv6-порти для всіх хостів у LAN, що потенційно дуже небезпечно. Замість цього слід створити окремі правила дозволу IPv6 для необхідних сервісів.

Раніше документація зазначала, що це правило необхідне для правильної роботи IPv6-трафіку. Це неправда — правило wan6 → lan не потрібно для всього трафіку.

# Увімкніть це лише якщо ви точно знаєте, що робите, і маєте додаткові правила фаєрвола, які блокують небажаний трафік.
config forwarding
	option dest 'lan'
	option src 'wan6'

Усі правила фаєрвола для відкриття портів мають ту ж структуру, що й у попередніх прикладах, за винятком того, що значення src буде wan6 замість wan.

Переадресація трафіку IPv6 з WAN на конкретний хост у LAN, використовуючи GUA-адресу. Налаштуйте статичний суфікс IPv6 і додайте правило форвардингу.

uci add firewall rule
uci set firewall.@rule[-1].name="Forward-IPv6"
uci set firewall.@rule[-1].src="wan"
uci set firewall.@rule[-1].dest="lan"
uci set firewall.@rule[-1].dest_ip="::23/-64"
uci set firewall.@rule[-1].family="ipv6"
uci set firewall.@rule[-1].proto="tcp udp"
uci set firewall.@rule[-1].target="ACCEPT"
uci commit firewall
service firewall restart

Позначення з від’ємною маскою працює лише в фаєрволі OpenWrt:

  • /-64 еквівалентно /::0000:ffff:ffff:ffff:ffff
  • /-60 еквівалентно /::000f:ffff:ffff:ffff:ffff
  • /-56 еквівалентно /::00ff:ffff:ffff:ffff:ffff
  • /-48 еквівалентно /::ffff:ffff:ffff:ffff:ffff
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2025/06/01 19:40
  • by vazaz