Замислите медијску кутију на кућној вези која би требало да достигне интернет само кроз тунел. Кад тунел падне, апликација би требало да стане, уместо да тихо настави преко физичког интерфејса. Постизање таквог понашања је проблем заштитног зида, а не усмеравања, и разлика је важна јер се рута може заменити рестартом демона, док филтер остаје где сте га поставили. Следи како пут пакета заправо одлучује, а затим како ограничити изузетке који тунелу омогућују поновно повезивање.

Локални излаз је друга кука од прослеђивања

Пакет који напушта апликацију на кутији пролази кроз излазну куку; пакет који кутија усмерава за други хост пролази кроз прослеђивање. Политика која помиње само forward ограничава друго и оставља прво потпуно отвореним, зато толико много закључавања излаза изгледа исправно и не ради ништа. Упаривање интерфејса припада истом правилу: oifname "tun0" accept пропушта саобраћај који је већ усмерен кроз тунел. Усмеравање и филтрирање такође остају одвојене одлуке, па рута ка провајдеру може постојати док филтер одбија пакет. На то раздвајање се ослањате.

Гејтвеј који прослеђује за друге уређаје треба обе куке. Закључавање само излаза штити саму кутију и оставља сваког клијента низводно слободним да исцури.

Напишите листу изузетака од крајње тачке према вани

Почните од крајње тачке тунела: једна одредишна адреса или мали одобрени скуп, транспортни протокол и одредишни порт, на пример udp dport 1194 ip daddr 203.0.113.7 accept. Ако клијент разрешава име хоста, почетна DNS размена треба сопствено правило ограничено на резолвер и на порт 53, а не бланкет дозволу за адресу тог резолвера. Сваки изузетак треба да наведе разлог због којег постоји. Дозвола за сав UDP саобраћај према VPN порту покрива много више од једне аутентификоване услуге коју сте имали на уму.

Почетно разрешавање је место где браве обично труну. Скуп адреса који се освежава по тајмеру треба дефинисано понашање кад освежавање не успе, а то понашање не може бити отварање везе према провајдеру док не успе. Освежавајте кроз тунел док је тунел горе, а иначе се вратите на последњи познати исправан крајњи пункт.

Локална администрација треба исти третман. Управљачка подмрежа није поуздана само зато што су њој адресе приватне, а правило које јој верује позива други пут око браве.

Упаривање интерфејса није доказ здравог тунела

Правила која прихватају све што излази из tun0 претпостављају да је пакет на том интерфејсу дошао из тунела. Имена интерфејса се поново стварају, а име није криптографски идентитет. Партнер такође може нестати док интерфејс остаје горе, што правило чини врло убедљивим не-операцијом.

Праћење конекција додаје сродну замку. Широко правило за успостављене конекције понавља дозволу коју је ток добио раније, па сесија започета пре пада тунела наставља да ради после. Ограничите прихватање по стању на интерфејсе и адресе које заиста мислите, иначе сте направили браву која се сама отвара. Улазна и излазна правила одговарају на различита питања, а очвршћивање једног уз игнорисање другог оставља кутију доступном у смеру о којем нисте размишљали.

Шта преживи пад демона

Филтер који инсталира скрипта која се извршава након дизања тунела нестаје заједно с тунелом, управо у тренутку кад је био потребан. Учитајте браву при подизању и пустите демону да управља само својим изузецима.

Брисање подразумеване руте такође није замена. Рута је стање које демон поседује и преписује, а њено уклањање може одузети пут потребан за поновно повезивање. IPv6 треба сопствени план, јер откривање суседа и огласи рутера су сервиси везе који морају наставити да раде док је обичан саобраћај блокиран. DHCP припада истој категорији. Запишите то као изузетке са сврхом, уместо да их касније откријете као испаде.

Пут опоравка пре примене

Тестирајте браву онако како ће пасти: подизање без тунела, убијање демона, промена крајње тачке и поновно повезивање. Сваки случај треба да заустави апликације и остави канал за опоравак функционалним. Радите то са конзоле, јер је удаљени шел сесија која ће највероватније бити закључана вашим сопственим правилом.

Затим проверите до чега обична апликација још може доћи, са безопасним одредиштем и захтевом који можете проверити. Резултат који желите је одбијање на вези и успех кроз тунел, а не двосмислен тајмаут који може значити обоје. Држите скуп правила под истим власником као и остатак заштитног зида, уместо да замените целу табелу из шел скрипте. Политика у којој свака дозвола може оправдати себе вреди више од дугог скупа правила које нико не може објаснити.

Повезани чланци