Как IPv6 помогает роутеры ломать
Предисловие
Проснулся я сегодня с мыслью, что огромное количество инструкций по настройке NAT советуют использовать строку вида:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Многие понимают проблемы этой конструкции, и советуют добавлять:
iptables -A FORWARD -i ppp0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
Но, зачастую, забывают задать таблице FORWARD действие REJECT по умолчанию, или добавить правило REJECT в конец таблицы.
На первый взгляд, вроде бы, все кажется нормальным. Однако, это далеко не так. Дело в том, что если не запретить маршрутизировать трафик из WAN-порта в WAN-порт, кто-нибудь из вашей WAN-сети (предположим, что провайдер садит весь подъезд в одну /24) может маршрутизировать трафик через вас, просто прописав ваш IP в качестве шлюза. Все современные SOHO роутеры это учитывают, а вот неопытный администратор, который делает роутер под обычным linux, может не знать или забыть об этом. В подсети моего провайдера таких роутеров не оказалось, и мой план по захвату мира провалился. Однако, статья совсем не об этом.
Магические двоеточия
Как вы, может быть, знаете, многие современные программы и сервисы биндятся на IP :: (два двоеточия), а не на 0.0.0.0, как было раньше. IPv6 адрес :: значит то же самое, что и IPv4 0.0.0.0, т.е. «слушаем все интерфейсы». Многие считают, что если программа слушает ::, то этот сокет может принимать только IPv6-соединения, однако это далеко не так.
В IPv6 есть так называемое отображение IPv4-адресов в IPv6 диапазон. Если программа слушает сокет ::, а к ней обращаются из IPv4-адреса 1.2.3.4, то программа получит соединение с адреса ::ffff:1.2.3.4. Этого можно избежать, сделав:
sysctl -w net.ipv6.bindv6only=1
Но это нужно далеко не всегда, т.к. обычно удобно, что программа слушает один сокет, а получать соединения может по двум протоколам сразу. Практически во всех дистрибутивах, IPv6-сокеты ведут себя именно так, т.е. bindv6only=0. Читать дальше →
Источник: Хабрахабр
Похожие новости
- Ашманов и партнеры: SEO-продвижение бренд-медиа
- МБК: Как самозанятым и предпринимателям не остаться без денег на пенсии
- Редакция Spark.ru: Всемирная история торговли в стиле Сатирикона: часть 11. «Бестселлер из медвежьего угла»
- SD-WAN и трудности миграции: объединяем сети с одинаковым адресным пространством
- [Перевод] Никаких игр, только хакинг — как я заработал $3000 на TikTok Bug Bounty
- Астерикс Обеликсов: Эксперимент: смогут ли бесплатные чат-боты написать Sci-Fi роман, достойный публикации на Литресе
- Лемешенко Даниил: TapDone — набор ядра команды
- Создание алертов в Wazuh: настройка декодеров для обнаружения угроз (Часть 1)
- Независимый fashion-ритейл планирует нарастить присутствие в онлайн-каналах в ближайшие 3 года
- Креативная революция: как ИИ переписывает учебники для дизайнеров