Недавно я получил IPv6-подключение дома, и теперь я хотел бы разрешить подключения к домашнему серверу через IPv6 только из локальной сети. Хитрость в том, что адрес / префикс IPv6, назначенный серверу, является динамическим. Есть ли какой-нибудь способ написать правило UFW, которое позволяет только из напрямую подключенных подсетей?
Старый вопрос, но Google получил меня здесь, поэтому я думаю, что стоит отметить, что вы можете добавить локальный диапазон канала IPv6 с помощью:
ufw allow from fe80::/64
. локальный адрес должен использоваться вместо вашего глобального адреса IPv6.
Имейте в виду, что «локальных диапазонов» IPv6 не существует - каждый «локальный диапазон» IPv6 представляет собой собственный (как минимум) / 64 сегмент адресов v6 с определенным префиксом. Таким образом, любой адрес «частного диапазона», который вы получите, будет зависеть от подсети, на которую настроен ваш маршрутизатор, а не от внешнего адреса v6, который у вас есть (внутри маршрутизаторов есть логика для автоматической настройки подсетей, но когда вы попадаете в Маршрутизация корпоративного уровня с продвинутыми брандмауэрами, маршрутизаторами, коммутаторами и т. Д. IPv6 необходимо вручную настроить и настроить вручную.
Когда вы добавите в уравнение, что у вас вполне возможно (и часто) будет Постоянно меняя подсеть, невозможно принять их все динамически, не принимая все входящие соединения IPv6 - по крайней мере, при настройке сети потребительского уровня (с гораздо более сложным и гораздо более дорогим устройством брандмауэра вы можете явно делайте VLAN-разделение, чтобы предотвратить общение с внешним миром и принимать только внутренний v6, но вы не можете сделать это на технологиях маршрутизатора потребительского уровня).
Кроме того, правила брандмауэра разработаны в ufw
(и основные iptables
и netfilter
технологии es, с которыми работает ufw) иметь специфических правил (таких как ALLOW aaaa:bbbb:cccc:dddd::dead:beef INBOUND TO dddd:eeee:ffff:0000::dead:beef PORT 22/tcp
(очевидно, не правило, а просто пример)) и если у вас всегда есть разные адреса в разных подсетях v6 (либо внутри или внешне, но особенно внутри), это нарушает требования, предъявляемые брандмауэрами к правилам такого рода.
Поэтому вам необходимо знать все подсети, которые вы получите, и добавить правило ufw
, которое бы быть для каждой отдельной подсети. Если эта подсеть постоянно меняется, и вы не знаете, какую подсеть вы получите, то вы не можете надежно создать правило брандмауэра в любой настройке, которая может выполнять то, что вы хотите достичь, на динамичной постоянно меняющейся основе.
Это также относится к переадресации портов дома - вы не можете надежно настроить переадресацию портов, если только внутренний IP-адрес (v4 или v6) не изменится. (Маршрутизатор прозрачно обрабатывает INBOUND из Интернета сам по себе, при условии, что вы настроили внутреннюю версию v6 в статической настройке, но вы не можете гарантировать, что это произойдет без гораздо более длительной настройки и настройки сети, а также, возможно, больше оборудования уровня предприятия, которое может дорого обойтись)