SSH ja VPN-i sissetuleku reeglid: mida lubatute nimekiri tegelikult juhib
Jälgige üht ühendust kliendist hostini: millist konksu see läbib, miks hangumine ja keeldumine tähendavad eri reegleid ning miks keeldumine ei ole kunagi poliitika.
Ühenduge üks kord enne reegli muutmist ja pange tähele, kas klient jääb hanguma või lükatakse kohe tagasi. See üks erinevus ütleb, milline otsus paketi maha viskas, ja säästab tunni poliitikafailide lugemist. Ülejäänud teekond on lühike: pakett läbib konksu, sobib reegliga ja jõuab kas kuulajani või mitte. Lubatute nimekiri on lihtsalt nende kolme fakti ümber peetav arvestus.
Jälgige üht SSH-katset kuni sisendkonksuni
Klient saadab SYN-i hosti aadressile pordil 22 ja kernel otsustab, kas see pakett on kohaliku teenuse jaoks. Kui on, käivitub sisendtee ning reeglistik kas võtab paketi vastu või viskab selle ära. Vaikus tähendab, et SYN suri enne, kui kuulaja seda nägi, samas kui kiire keeldumine tähendab, et miski vastas lähtestamisega. Need on erinevad otsused erinevatest reeglitest ja mõlemad on legitiimsed tulemused.
Seejärel kinnitage kuulaja, sest ükski reegel ei päästa teenust, mida pole olemas. Käivitage ss -ltnp ja kontrollige, et miski on seotud oodatava pordi ja aadressiperekonnaga, seejärel lugege kliendil ssh -v, et näha, kus see peatub.
Edastamine on eraldi otsus
VPN-serveris on huvitavam konks forward, sest kliendi liiklus marsruuditakse masina kaudu, mitte ei toimetata sellele. Host, mis käitab ainult oma VPN-klienti, vajab palju väiksemat reeglistikku kui see, mis edastab teiste inimeste pakette. Kahe kavandi segamine ühes masinas loob reeglid, mis näevad õiged välja ja ei lase midagi läbi.
Kirjutage sisemine poliitika eraldi küsimusena: millised kliendi aadressid võivad tunneli kaudu millistele sihtkohtadele jõuda. Hoidke haldustee, näiteks SSH, sisendteel koos oma allikapiiranguga. Katsetamise ajal lisatud lubav forward-reegel on klassikaline defekt, mis elab katsest kauem, seega vaadake pärast muudatust üle kogu reeglistik, mitte see rida, mida muutsite. Tunneli kuulaja avamine ei ole luba igal ühendatud kliendil hosti hallata.
Mahaviskamine ja tagasilükkamine on toimingud, mitte poliitikad
Baasahela poliitika võtab vastu või viskab maha ja see on kogu valikute nimekiri, nagu ütleb nftablesi viide. Tagasilükkamine on olemas reegli toiminguna, millel on valitud vastus, mistõttu selle kirjutamine poliitikana ebaõnnestub nii nftablesil kui ka iptablesil. Praktikas ei anna drop kliendile mingit teavet, samas kui reject annab talle vea, millega saab midagi teha.
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
}
}
Lugege seda visandit otsuse kujuna, mitte kleepimiseks mõeldud failina, sest aadressivahemikud on näited. Selgesõnaline reject SSH-pordil paneb volitamata kliendi sekundiga ebaõnnestuma, selle asemel et oodata ajalõppu, mis lühendab teie enda silumist. Vaikus heidutab juhuslikku skaneerimist ja ei ütle volitatud kasutajale mitte midagi. Valige iga teenuse jaoks ja kirjutage põhjus üles, muidu muudab järgmine inimene selle tagasi.
Hoidke juhtimisliiklus, mida tegelikult vajate
Kogu ICMP blokeerimine on populaarne vaikeväärtus, mis rikub tee MTU avastamist, ja sümptom on ühendus, mis luuakse ja jääb siis suuremate pakettide juures seisma. IPv6 naabrite avastamine sõltub oma ICMPv6 tüüpidest ja nende mahaviskamine katkestab lingi enne, kui ühtegi TCP-reeglit küsitakse. Mõlemad kuuluvad lubatute nimekirja nimetatud sõltuvustena, mitte üldiste lubadena. Poliitika, mis vaikselt avastamise rikub, on halvem kui see, mis laseb veidi diagnostilist liiklust sisse.
Lubage olekud established ja related ühendustele, mille te ise algatasite, ja laske olekut jälgiv mootor vastused ära teha. Seejärel kinnitage, et vastusetee pole kaugemal blokeeritud, sest ainult väljuvat liiklust piirav piirang ülalpool tekitab sama ajalõpu, mida kavatsesite hosti süüks panna.
Tõestage taastumine enne vana tee pensionile saatmist
Hoidke konsoolisessioon avatud, rakendage muudatus ja avage täiesti uus haldusühendus teisest terminalist. Olemasolev sessioon ei tõesta midagi, sest see võib üle elada reegli, mis blokeerib iga uue sisselogimise, mis teeb sellest tulemüüritöö kõige veenvama valepositiivse tulemuse. Kui monitooringusüsteem kontrollib hosti, lisage selle allikaaadress enne muudatust, mitte pärast esimest hoiatust. Seejärel katsetage üht suurt ja üht väikest paketti, et tõestada, et avastamine töötab endiselt.
VPN-teenuse puhul korrake kliendist, mis pole kunagi ühendunud, sest jätkatud sessioon võib taaskasutada olekut, mille värske peab läbi rääkima. Kirjutage üles täpne reeglistik, mis läbis, koos kontrollsumma või koopiaga, et hilisemat muudatust saaks võrrelda, mitte oletada. Kooskõlastage sellega, kellele kuulub reeglite järjekord, sest varasem reegel võidab vaikselt teie lisatud reegli.