Prisijunkite vieną kartą prieš keisdami taisyklę ir atkreipkite dėmesį, ar klientas pakimba, ar atmetamas iš karto. Šis vienintelis skirtumas pasako, kuris sprendimas numetė paketą, ir sutaupo valandą skaitant politikos failus. Likęs kelias trumpas: paketas kerta kabliuką, atitinka taisyklę ir pasiekia klausytoją arba ne. Leidžiamųjų sąrašas tėra apskaita aplink tuos tris faktus.

Sekite vieną SSH bandymą iki įėjimo kabliuko

Klientas siunčia SYN į hosto adresą 22 prievadu, o branduolys nusprendžia, ar šis paketas skirtas vietinei paslaugai. Jei taip, vykdomas įėjimo kelias ir taisyklių rinkinys paketą priima arba išmeta. Tyla reiškia, kad SYN mirė anksčiau, nei klausytojas jį pamatė, o greitas atmetimas reiškia, kad kažkas atsakė atstatymu. Tai skirtingų taisyklių skirtingi nuosprendžiai, ir abu yra teisėti rezultatai.

Tada patvirtinkite klausytoją, nes jokia taisyklė neišgelbės paslaugos, kurios nėra. Paleiskite ss -ltnp ir patikrinkite, ar kažkas susieta su laukiamu prievadu ir adresų šeima, tada perskaitykite ssh -v kliente, kad pamatytumėte, kur jis sustoja.

Persiuntimas yra atskiras sprendimas

VPN serveryje įdomesnis kabliukas yra forward, nes kliento srautas nukreipiamas per mašiną, o ne jai pristatomas. Hostui, kuriame veikia tik jo paties VPN klientas, reikia daug mažesnio taisyklių rinkinio nei tam, kuris persiunčia kitų žmonių paketus. Abiejų projektų sumaišymas vienoje mašinoje sukuria taisykles, kurios atrodo teisingos ir nieko nepraleidžia.

Vidinę politiką rašykite kaip atskirą klausimą: kurie kliento adresai gali pasiekti kuriuos tikslus per tunelį. Administracinį kelią, pavyzdžiui, SSH, laikykite įėjimo kelyje su savo šaltinio apribojimu. Bandymų metu pridėta leidžianti forward taisyklė yra klasikinis defektas, pergyvenantis testą, todėl po pakeitimo peržiūrėkite visą rinkinį, o ne tą vieną eilutę, kurią redagavote. Tunelio klausytojo atidarymas nėra leidimas kiekvienam prisijungusiam klientui administruoti hostą.

Numetimas ir atmetimas yra veiksmai, o ne politikos

Bazinės grandinės politika priima arba numeta, ir tai yra visas pasirinkimų sąrašas, kaip teigia nftables dokumentacija. Atmetimas egzistuoja kaip taisyklės veiksmas su pasirinktu atsakymu, todėl jo rašymas kaip politikos nepavyksta ir nftables, ir iptables atveju. Praktiškai drop nesuteikia klientui jokios informacijos, o reject duoda jam klaidą, su kuria jis gali dirbti.

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
    }
}

Šį eskizą skaitykite kaip sprendimo formą, o ne kaip failą įklijuoti, nes adresų diapazonai yra pavyzdžiai. Aiškus reject SSH prievade priverčia neįgaliotą klientą nepavykti per sekundę, o ne laukti laiko limito, ir tai sutrumpina jūsų pačių derinimą. Tyla atgraso atsitiktinį skenavimą ir nieko nepasako įgaliotam naudotojui. Rinkitės pagal paslaugą ir užsirašykite kodėl, antraip kitas žmogus tai grąžins atgal.

Išsaugokite valdymo srautą, kurio tikrai reikia

Viso ICMP blokavimas yra populiari numatytoji nuostata, kuri sugadina maršruto MTU aptikimą, o simptomas yra ryšys, kuris užsimezga ir paskui sustoja ties didesniais paketais. IPv6 kaimynų aptikimas priklauso nuo savo ICMPv6 tipų, o jų numetimas nutraukia saitą anksčiau, nei bus patikrinta kokia nors TCP taisyklė. Abu priklauso leidžiamųjų sąrašui kaip įvardytos priklausomybės, o ne kaip bendri leidimai. Politika, kuri tyliai sugadina aptikimą, yra blogesnė už tą, kuri įsileidžia šiek tiek diagnostinio srauto.

Leiskite būsenas established ir related ryšiams, kuriuos inicijavote patys, ir leiskite būseną atsekančiam varikliui tvarkyti atsakymus. Tada patvirtinkite, kad atsakymo kelias nėra užblokuotas toliau, nes apribojimas tik išėjimo srautui aukščiau sukuria tą patį laiko limitą, kurį ketinote priskirti hostui.

Įrodykite atkūrimą prieš atsisakydami seno kelio

Laikykite konsolės sesiją atidarytą, pritaikykite pakeitimą ir atidarykite visiškai naują valdymo ryšį iš kito terminalo. Esama sesija nieko neįrodo, nes ji gali pergyventi taisyklę, blokuojančią kiekvieną naują prisijungimą, ir tai daro ją įtikinamiausiu klaidingu teigiamu ugniasienės darbe. Jei stebėjimo sistema tikrina hostą, pridėkite jos šaltinio adresą prieš pakeitimą, o ne po pirmojo įspėjimo. Tada išbandykite vieną didelį ir vieną mažą paketą, kad įrodytumėte, jog aptikimas vis dar veikia.

VPN paslaugai pakartokite iš kliento, kuris niekada nebuvo prisijungęs, nes atnaujinta sesija gali pakartotinai naudoti būseną, dėl kurios turi derėtis nauja. Užrašykite tikslų praėjusį taisyklių rinkinį su kontrolės suma arba kopija, kad vėlesnį redagavimą būtų galima palyginti, o ne spėlioti. Derinkitės su tuo, kam priklauso taisyklių tvarka, nes ankstesnė taisyklė tyliai nugali jūsų pridėtą.

Susiję straipsniai