2008-05-27

настройка файрвола ipv6

естественно линукс умеет нормально файрволить ipv6. для этого используется все тот же нетфильтер, и юзерспейс-утилита - ip6table. суть - тот же iptables. аналогичные опции, аналогичные цепочки. различны лишь способы указания адресов и поддерживаемые модули... ну и естественно есть скрипты ip6tables-save и ip6tables-restore.

так как опыта эксплуатации ipv6 у меня ноль, то возникает куча вопросов и раздумий... первое что приходит в голову - как ограничить доступ в интернет через меня, т.е. фильтровать цепочку форвард?

вот к какому решени. я пока пришел.
естественно что указывать при этом полностью все адреса неудобно. да и так как все адреса по-определению честные, то необходимо пропускать и трафик из интернета на них
что тут может помочь - использование модуля eui64. данный модуль проверяет совпадение мака в фрейме с младшими 64битами адреса. если использовалась автоконфигурация, то это вполне адекватно. таким образоммы можем сразу отфильтровать "левые" адреса приходящие из локалки на роутер, а пропустить только разданные нами например по дхцп "нашим" макам. далее - ограничить доступ только с определенных маков с локалки...

пример:
1) цепочка для проверки "законных" маков, заодно ограничив исход только с законных префиксов (никто и брокеров не хочет маршрутизировать левые префиксы :)):
ip6tables -N FORW
ip6tables -I FORWARD -i eth+ -m eui64 -s 2001:db8::/48 -j FORW
2) задаем разрешенные маки:
ip6tables -A FORW -m mac --mac-source 00:01:23:45:67:78 -i eth0 -j ACCEPT
ip6tables -A FORW -m mac --mac-source 00:01:23:45:67:90 -i eth0 -j ACCEPT
3) закрываем весь левый трафик _пытающийся_ уйти в туннель :)
iptables -A FORWARD -o tun -j DROP

возникшие у меня вопросы:
1) как поступать с пакетами которые прошли маршрутизацию? например подсеть не являющейся непосредственно подсоединенной?
2) как eui64 работает в не-езернет сетях?
3) что имеет смысл фильтровать на вход _из_ интернета? пока я ничего не фильтрую :)

Немає коментарів: