Блокирање IPv6 ради заштите WireGuard-а квари хост
Правило које одбацује сав долазни IPv6 уклања и откривање суседа и Packet Too Big. Раздвојите три одговорности па проверите да хост још ради.
Циљ је разуман: само корисници тунела треба да достигну услуге на овом рачунару. Решење коме се прибегава је долазни ланац IPv6 који одбацује све осим WireGuard-а, а тиме одбацује и саобраћај који држи хост прикључен на његову сопствену везу. Откривање суседа и поруке за одржавање путање нису приступ услузи, и њихово уклањање даје машину недоступну из разлога који немају везе са вашом политиком. Тунел се подиже, услуге су исправно ограничене и ништа друго на вези не ради.
Три одговорности, један скуп правила
Прва одговорност је рад спољашње мреже: хост мора да остане прикључен на своју везу, разрешава суседе и учи границе путање те везе. Друга је шифровани слушалац, који прихвата UDP на адреси и порту који сте изабрали. Трећа је скуп дешифрованих услуга до којих желите да дођу корисници тунела.
То су три различите политике и само се друга и трећа односе на VPN. Скуп правила који их третира као једно наслеђује начин отказа у коме затезање границе апликације тихо ломи прикљученост хоста.
Држите их у одвојеним ланцима или барем одвојеним коментарима, да следећа особа види која линија постоји и зашто.
Шта ICMPv6 чини за хост
IPv6 се ослања на ICMPv6 за много више од одјека. Захтев и објава суседа замењују ARP и потребни су за локалну доставу. Packet Too Big носи информацију о MTU путање, а њено игнорисање даје преносе који заглављују на великим пакетима. Објаве рутера носе подразумевану руту и информацију о префиксу када веза користи аутоматску конфигурацију.
RFC 4890 раздваја поруке које филтер хоста мора да пропусти од оних које су административни избор, и то у одељку за хост који се разликује од правила за рутер који прослеђује између мрежа. Читање само одељка о прослеђивању даје долазну политику која је престрога за хост који штити.
Практично правило је допустити основне поруке о грешкама и конфигурацији на интерфејсу коме су потребне, ограничене по типу и извору где платформа то дозвољава, и донети изричиту одлуку о осталима.
Заменити све то свеобухватним допуштањем ICMPv6 решава проблем доступности и одриче се филтрирања. Заменити га свеобухватним одбацивањем решава проблем филтрирања и одриче се хоста.
Пустите тунел, па услугу
Прихватите WireGuard саобраћај на предвиђеној спољашњој адреси и UDP порту, а повратни саобраћај прихватите кроз праћење веза. Затим допустите апликацијским услугама да прођу кроз интерфејс тунела, са извора које заиста овлашћујете.
Дозвола за спољашњи UDP порт не овлашћује дешифроване захтеве унутар њега. Та разлика је цео разлог зашто се интерфејс тунела појављује у правилима услуга.
Читајте скуп правила онакав какав јесте, а не како га датотека описује:
sudo nft list ruleset
ip -6 addr show
ip -6 route show default
Слушалац на физичкој адреси је одвојено излагање од исте услуге на адреси тунела. Ако машина такође прослеђује саобраћај на другу машину, то је одлука ланца прослеђивања, а не ова долазна политика, и тражи сопствено образложење.
Тестирајте везу, не само тунел
Тунел који ради након промене доказује мање него што изгледа, јер постојећи унос суседа и успостављена веза могу да сакрију контролну поруку коју политика сада одбацује.
Проверите прикљученост директно, па проверите да изузета путања још пада:
ip -6 neigh show
ping -6 -c 3 2001:db8:1::1
sudo nft -c -f /etc/nftables.conf
Табела суседа која остане потпуна након поновног покретања знак је да откривање још ради. Табела која се испразни и никада не напуни знак је да сте је филтрирали. Трећа наредба проверава синтаксу скупа правила без примене, што вреди учинити док још имате сесију.
Опоравите хост из ког сте се закључали
Пре него што промените правила заштитног зида која носе вашу сопствену административну сесију, држите други канал: конзолу, серијску везу или заказано враћање које уклања нова правила ако га не откажете.
Ако вас промена ипак закључа, опоравак иде кроз тај канал, а не кроз мрежу коју сте управо уклонили. Вратите претходни скуп правила из сачуване копије, потврдите да је хост опет доступан и тек онда примените предвиђену политику у мањим деловима.
Коначна политика није универзална. Адресирање, рутирање и имплементација заштитног зида су улази за увођење, али граница је свуда иста: одбијте нежељен приступ апликацијама уз задржавање контролног саобраћаја који носи овлашћени тунел.