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

Пратите један SSH покушај до улазне куке

Клијент шаље SYN на адресу хоста на порту 22, а језгро одлучује да ли је тај пакет за локалну услугу. Ако јесте, извршава се улазна путања и скуп правила или прихвата пакет или га одбацује. Тишина значи да је SYN умро пре него што га је слушалац видео, а брзо одбијање значи да је нешто одговорило ресетом. То су различите пресуде различитих правила и обе су легитимни исходи.

Затим потврдите слушаоца, јер ниједно правило не спасава услугу које нема. Покрените ss -ltnp и проверите да ли је нешто везано за порт и породицу адреса које очекујете, а затим прочитајте ssh -v на клијенту да видите где се зауставља.

Преусмеравање је одвојена одлука

На VPN серверу је занимљивија кука forward, јер се саобраћај клијента усмерава кроз машину уместо да јој се доставља. Домаћин који покреће само сопствени VPN клијент треба много мањи скуп правила од оног који прослеђује туђе пакете. Мешање два пројекта на једној машини ствара правила која изгледају тачно и ништа не пропуштају.

Напишите унутрашњу политику као одвојено питање: које клијентске адресе смеју да достигну која одредишта кроз тунел. Држите административну путању, на пример SSH, на улазној путањи са сопственим ограничењем извора. Допустљиво правило forward додато током тестирања је класичан недостатак који надживљава тест, зато после промене прегледајте цео скуп правила, а не линију коју сте изменили. Отварање слушаоца тунела није дозвола сваком повезаном клијенту да администрира домаћин.

Одбацивање и одбијање су радње, не политике

Политика основног ланца прихвата или одбацује и то је цела листа избора, како наводи референца за nftables. Одбијање постоји као дејство правила са изабраним одговором, зато писање као политике не успева и на nftables и на iptables. У пракси drop не даје клијенту никакву информацију, док reject му даје грешку са којом може да ради.

table inet admin {
    chain input {
        type filter hook input priority filter; policy drop;
        ct state established,related accept
        ip saddr 203.0.113.0/28 tcp dport 22 accept
        udp dport 51820 accept
        icmp type { destination-unreachable, time-exceeded } accept
    }
}

Читајте ту скицу као облик одлуке, а не као датотеку за лепљење, јер су опсези адреса примери. Јасан reject на SSH порту тера неовлашћеног клијента да не успе у секунди уместо да чека истек времена, што скраћује ваше сопствено отклањање грешака. Тишина одвраћа од случајног скенирања и овлашћеном кориснику не говори ништа. Изаберите по услузи и запишите зашто, иначе ће следећа особа то вратити.

Задржите контролни саобраћај који вам је заиста потребан

Блокирање целог ICMP-а је популарно подразумевано подешавање које квари откривање MTU-а путање, а симптом је веза која се успостави и затим заглављује на већим пакетима. Откривање суседа на IPv6 зависи од сопствених ICMPv6 типова, а њихово одбацивање квари везу пре него што се погледа било које TCP правило. Оба припадају листи дозвољених као именоване зависности, а не као опште дозволе. Политика која тихо квари откривање гора је од оне која пушта мало дијагностичког саобраћаја.

Дозволите стања established и related за везе које сте сами започели и пустите мотор који прати стања да се побрине за одговоре. Затим потврдите да пут одговора није блокиран даље, јер ограничење само за одлазни саобраћај изнад ствара исти истек времена који сте намеравали да припишете домаћину.

Докажите опоравак пре него што напустите стару путању

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

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

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