Назад | Перейти на главную страницу

Несколько устройств с одним IPv6 для выхода в Интернет?

Я хочу подключить несколько устройств (в локальной сети) к Интернету через один общедоступный IPv6-адрес.

К сожалению, я не нашел хорошего способа сделать это. Единственная идея, которая у меня была, заключалась в том, чтобы туннелировать все, от PF / OPNsense через OpenVPN до Raspberry Pi или аналогичного до Sense, а затем перейти в Интернет с IPv6 от Pi.

Планируемая установка: Интернет (WAN) - Fritzbox (LAN1) - PFSense / OPNsense (с интерфейсом WAN) - LAN2.

Есть ли другие возможности? Решение VPN не очень хорошее.

Зачем? Назначение каждому (частному) устройству собственного общедоступного IP-адреса (также с расширением конфиденциальности) упрощает отслеживание. Кроме того, у некоторых устройств нет расширения конфиденциальности или оно неактивно.

IPv6 не предназначен для этого. Попытка NAT в стиле IPv4 с IPv6 сломает ситуацию. Тем не менее, я почти уверен, что вы можете использовать NAT IPv6 с Linux iptables, так что это не невозможно. Но я бы настоятельно не рекомендовал этого делать.

IPv6 не имеет стандарта NAT, как IPv4. Там есть ЭКСПЕРИМЕНТАЛЬНЫЙ RFC для однозначного NAT (один внешний адрес для каждого внутреннего адреса) на IPv6, но явно запрещает то, что вы хотите делать (я выделил это ниже):

6. Примечание о отображении портов

Помимо перезаписи IP-адресов при пересылке дейтаграмм, устройства NAPT44 перезаписывают номер порта источника в исходящем трафике и номер порта назначения во входящем трафике. Этот механизм называется «отображение портов».

Основное преимущество сопоставления портов заключается в том, что оно позволяет нескольким компьютерам совместно использовать один адрес IPv4. Большое количество внутренних IPv4-адресов (обычно из одного из частных адресных пространств [RFC1918]) может быть отображено в один внешний, глобально маршрутизируемый IPv4-адрес, при этом номер локального порта используется для определения того, какой внутренний узел должен получать каждую входящую датаграмму. Эта функция усиления адреса обычно не рассматривается как необходимость в настоящее время.

Поскольку сопоставление портов требует перезаписи части заголовка транспортного уровня, оно требует, чтобы устройства NAPT44 знали обо всех транспортных протоколах, которые они пересылают, что сдерживает разработку новых и улучшенных транспортных протоколов и предотвращает использование шифрования IPsec. Изменение заголовка транспортного уровня несовместимо с механизмами безопасности, которые шифруют полную полезную нагрузку IP и ограничивают NAPT44 пересылкой транспортных уровней, использующих слабые алгоритмы контрольной суммы, которые легко пересчитываются в маршрутизаторах.

Поскольку существует значительный ущерб, вызванный изменением заголовков транспортного уровня, и очень мало пользы, если таковая имеется, от использования сопоставления портов в IPv6, трансляторы NPTv6, которые соответствуют этой спецификации, НЕ ДОЛЖНЫ выполнять сопоставление портов.

Кроме того, вы обнаружите, что NAT нарушает некоторые функции IPv6.

IPv6 имеет множество адресов, поэтому вам не нужно использовать NAPT, как с IPv4. NAPT на IPv4 ломает парадигму IP, в которой каждому узлу назначается уникальный адрес, так что соединения осуществляются от конца до конца, и промежуточным устройствам не требуется поддерживать состояние соединений. IPv6 восстанавливает парадигму IP, разрешая протоколы, отличные от TCP, UDP и ICMP *, и исправляет приложения и протоколы прикладного уровня, которые нарушаются NAPT.

Вы можете неправильно понять отслеживание и работу Privacy Extensions. Дело в том, что отслеживание, которое предотвращает Privacy Extensions, - это отслеживание устройства, когда оно подключено к разным сетям, получение нового адреса в каждой подключенной сети, а не отслеживание служб, которые устройство использует в Интернете. Используя только исходный SLAAC, устройство всегда будет иметь один и тот же IID (идентификатор интерфейса) на одном и том же интерфейсе, и его можно будет коррелировать, независимо от сети, к которой было подключено устройство, отслеживая его при перемещении из сети в сеть. Это не имеет значения, если устройство существует только в одной сети, вам нечего отслеживать. Если вы переместите устройство в другие сети, а оно не поддерживает расширения конфиденциальности, вы сможете отслеживать его, но я бы также сказал, что программное обеспечение устройства настолько старое, что в нем возникают проблемы с безопасностью.

Если устройство подключается только к одной сети, риск отслеживания отсутствует, и вы также можете использовать DHCPv6 для назначения адресации или вручную назначить адрес, а не использовать SLAAC, который использует идентификатор, например MAC-адрес.


*RFC 3022, Традиционный преобразователь сетевых адресов IP (традиционный NAT) объясняет IPv4 NAT, включая NAPT в Разделе 2.2:

Сеансы, отличные от типа запроса TCP, UDP и ICMP, просто не разрешены с локальных узлов, обслуживаемых маршрутизатором NAPT.

Адреса IPv6 - не самый эффективный способ отслеживания. Трафик DNS показывает, куда вы идете в Интернете. На настольных компьютерах и мобильных устройствах рекламные и социальные идентификаторы отслеживания отслеживают пользователей на разных устройствах и IP-адресах.

Адреса IPv6 можно часто менять, оставляя только общий префикс, идентифицирующий ваш сайт, а не хост. На устройствах без расширений конфиденциальности подумайте о том, чтобы самостоятельно реализовать нечто подобное. Сгенерируйте случайные идентификаторы хоста и статически назначьте их как IP-адрес в вашем префиксе.

Шифровать трафик. Используйте TLS для всех приложений.

При необходимости используйте безопасные оверлеи для передачи сетей, которым вы не доверяете.

Избегайте NAT. Каждое устройство может выбирать из миллиардов IP-адресов, зачем нарушать сквозное соединение, используя один?

Как отмечали другие, есть много способов ваши устройства будут отслеживаться. Даже если бы у вас были тысячи (а не десятки) из них, и все они были бы сопоставлены с одним и тем же IP-адресом, это не имело бы большого значения.

См. Например https://panopticlick.eff.org/ если хотите попробовать сами, нажмите «Показать полные результаты». Попробуйте с другими устройствами, даже измените свой IP через VPN или перезагрузите роутер. Это ужасно. Таким образом, даже с браузером с усиленной конфиденциальностью (который вряд ли будет доступен на всех ваших устройствах) и перезагрузкой маршрутизатора после каждого подключения, чтобы ваш IP-адрес изменился (надеюсь), ваши устройства все еще довольно хорошо идентифицируются.

Теперь представьте, что вы имеете дело с недобросовестными трекерами (а это большинство проблемных из них), которые будут иметь доступ к гораздо большему количеству информации, и тот факт, что большая часть ваших обращений будет поступать с одного IP (или одного диапазона IPv6, не имеет значения).

Использование NAT для повышения конфиденциальности приводит к тому, что «я хочу обернуть влажным полотенцем выхлоп моего дизельного автомобиля, чтобы уменьшить его загрязнение». Просто не поможет никаким измеримым образом.

Если вас не волнует сквозное соединение, вам вообще не стоит беспокоиться об IPv6. Весьма вероятно, что ваши устройства будут нормально работать под обычным IPv4 NAT до конца своего срока службы.

При этом, если вы все еще настаиваете на идея, что все ваши исходящие соединения должны происходить с одного IPv6-адреса, вы бы сделали это, отключив маршрутизацию и вместо этого установив прокси-сервер. Существует общий протокол прокси SOCKS, но для HTTP вам лучше использовать прокси, повышающие конфиденциальность, например Privoxy. Кроме того, вы можете связать апстрим Privoxy с Сеть Tor чтобы получить выгоду от изменения IP-адресов источника. Если вы не можете использовать прокси, VPN - ваш лучший и наименее уродливый способ.

Это может немного помочь с конфиденциальностью, хотя для лучших результатов в настоящее время вам необходимо полностью отключить Javascript (или, по крайней мере, установить uBlock Origin и NoScript в более безопасных режимах и мучительно настраивайте их для каждого сайта) на всех ваших устройствах (и, конечно же, отключите такие ужасы, как Flash и другие плагины браузера!)

Если вы хотите делать что-то необычное / неодобрительно относиться к вещам, то использование готового «дистрибутива маршрутизатора» в качестве пограничного маршрутизатора, вероятно, не лучший вариант. Далее pfsense основан на freebsd pf, который не поддерживает IPv6 NAT "один ко многим".

Если вы хотите использовать один или несколько ipv6 NAT, я бы предложил использовать последнюю версию общего дистрибутива Linux в качестве пограничного маршрутизатора. Linux добавил поддержку ipv6 nat в 3.9.0, и его использование в основном так же просто, как и его аналог ipv4, например "ip6tables -A POSTROUING -t nat -o -j MASQUERADE".

Вы можете прекрасно использовать IPv6 NAT с любым достаточно современным маршрутизатором, поддерживающим iptables, между скрытой сетью и сетью, в которой есть единственный IP-адрес. На практике это используется для размещения нескольких машин за шлюзом в оверлейной сети cjdns IPv6, как описано в документации. Вот.

Предполагая, что в вашем ядре настроена пересылка IPv6, а ваш маршрутизатор уже настроен на путь между двумя сетями, правила iptables выглядят следующим образом:

ip6tables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
ip6tables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -A FORWARD -i eth1 -o eth0 -j ACCEPT

Вот, eth0 это интерфейс в сети, которую вы скрываете, и tun0 - это интерфейс с IP-адресом, за которым вы хотите, чтобы все выглядело позади.

Обратите внимание, что с помощью этого типа NAT вы собираетесь испортить любые входящие соединения или трафик, который не является частью установленного сеанса. Пакеты, адресованные на «настоящие» IPv6-адреса внутренних машин, будут приходить нормально, но ответы будут преобразованы в NAT и будут выглядеть как поступающие с другого адреса. Только сеансы, инициированные из-за NAT, будут работать правильно. Вы можете добавить правила брандмауэра, чтобы блокировать входящий трафик, не связанный с сеансом, о котором знает NAT.

Отвечая на вашу озабоченность по поводу отслеживания через IPv6-адрес: возможность использования временные адреса существуют. Я знаю об этом только теоретически, но чувствую, что это должна быть стандартная установка.

https://tools.ietf.org/html/rfc4941

также: https://tools.ietf.org/html/rfc7721