Я использую брокер туннелей gogoc на моем компьютере с ubuntu для включения ipv6. Я хочу использовать свой компьютер с Ubuntu в качестве маршрутизатора ipv6. Я включил режим маршрутизатора в клиенте gogoc. Я использую radvd для рекламы роутера в локальной сети. tun
это туннельный (WAN) интерфейс. br0
- это интерфейс LAN (wan0 и eth0 были соединены мостом, чтобы сделать ноутбук беспроводной точкой доступа). Какие правила брандмауэра я могу использовать для включения пересылки пакетов и обеспечения достаточно хорошей безопасности для маршрутизатора и устройств LAN.
Для маршрутизаторов на базе Linux я считаю, что shorewall6
--- инструмент межсетевого экрана на основе ip6tables
--- работает неплохо. Используя внешний инструмент, например shorewall6
вместо сырого ip6tables
, вы можете обойтись без некоторых важных, но неудобных деталей, например, поинтересоваться неопределенностями ICMPv6 (какие типы мне нужно принять? какие отбросить / отклонить?), поскольку они уже были компетентно рассмотрены.
Настроить shorewall6
, вы редактируете небольшое количество хорошо документированных файлов конфигурации в /etc/shorewall6
. По крайней мере, вы должны изменить эти файлы:
zones
, где вы даете имена своим сетям;interfaces
, где вы указываете свои сетевые интерфейсы и зоны, к которым они подключены;policy
, где вы определяете свои политики по умолчанию для переадресации между зонами (ACCEPT, DROP и т. д.);rules
, где вы можете создать особые исключения для своих политик.(Есть еще несколько файлов, но для большинства ситуаций подходят значения по умолчанию.)
В вашем случае вы можете определить две зоны, скажем lan
и wan
. Ваш по умолчанию wan
-к-lan
политика будет DROP, а по умолчанию lan
-к-wan
политика будет ПРИНЯТЬ. Затем, если, например, вы хотите разрешить ssh-подключения к определенным хостам в вашем lan
зона от wan
зоне, вы должны добавить эти исключения в rules
файл.
Таким образом, используя интерфейсный инструмент, например shorewall6
позволяет очень легко создать надежный и безопасный маршрутизатор / брандмауэр - конечно, проще, чем использовать raw ip6tables
--- потому что он создает некоторые легко понятные абстракции, которые вы можете настроить (зоны, политики, правила), а затем заботится о лежащих в основе деталях.
Я не могу сказать, что знаком с этим конкретным брокером туннелей, я предполагаю, что вы получили / 64 для своих хостов. Есть несколько туннельных брокеров, которые предоставляют / 48, и в этом случае вам нужно немного изменить правила. Это в формате iptables-save:
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
# Allow established connections
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
# Allow ICMPv6 traffic (required for IPv6) This could be tightened up but it must
# be done very carefully unless you know what you're doing. It could block all
# routing
-A INPUT -p ipv6-icmp -j ACCEPT
-A FORWARD -p ipv6-icmp -j ACCEPT
# Allow traffic from your internal hosts to the outside world
-A FORWARD -s <your address block>::/64 -j ACCEPT
COMMIT
Вам нужно будет заменить "<your address block> :: / 64" любым назначенным вам диапазоном адресов.
Этот брандмауэр предотвратит все внешние подключения к вашим локальным IPv6-адресам, одновременно предоставив им доступ ко всему. Если вам нужно предоставлять услуги на ваших внутренних хостах IPv6, вам нужно добавить разрешающие правила в цепочку FORWARD в конце (но перед COMMIT).