Kuhu VPN-i NAT UFW before.rules failis kuulub ja kuidas seda testida
NAT-rida before.rules failis peab asuma kehtivas tabelijaotises koos COMMIT-iga. Enne UFW uuesti laadimist kontrollige kandidaati käsuga iptables-restore --test.
NAT-reegel, mis kestas töötab, nurjub before.rules faili kleepimisel, sest see fail ei ole skript. See on taastamisvormingus dokument tabelijaotiste, ahelate deklaratsioonide ja iga tabeli jaoks COMMIT-markeriga. Vale koha peal olev rida kas katkestab kogu taastamise või viskab vaikselt välja reeglid, mis teie arvates seal olid. Allolev juhend paneb fragmendi sinna, kus raamistik seda ootab, ja tõestab tulemuse enne järgmist uuestilaadimist.
Kestakäsk ei ole taastamisfail
iptables -t nat-iga algav rida on juhis iptables binaarile, samas kui fail, mida UFW loeb, on tervikliku reeglistiku kirjeldus. Erinevus ei ole kosmeetiline: taastamisvorming peab teadma, millises tabelis see on, millised ahelad eksisteerivad ja kus tabel lõpeb. Sellesse dokumenti kleebitud käsk on kas süntaksiviga või, mis hullem, vale tabeli külge kinnitatud reegel. Raamistik laadib neid faile taastamistööriistade kaudu just seetõttu, et need on deklaratiivsed, mitte järjestikused.
Dokument laaditakse ka tervikuna, seega üks vigane jaotis võib takistada ülejäänud faili rakendamist. Nii tõmbab väike viga NAT-fragmendis kaasa ka filtrireeglid ja nii saab tulemüüri muudatusest katkestus.
Pange fragment olemasoleva tabelijaotise sisse
NAT-fragmendil on kuju ja kuju on tähtsam kui selles olev reegli tekst. Tabeli päis avab jaotise, ahelate deklaratsioonid seavad loendurid, reeglid järgnevad ja COMMIT sulgeb jaotise.
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.55.0.0/24 -o ens3 -j MASQUERADE
COMMIT
Ülalolev pool ja liides on teie enda väärtuste kohahoidjad; struktuur on osa, mida tasub kopeerida. Kui fail sisaldab juba jaotist *nat, lisage reegel selle jaotise sisse, mitte ärge avage teist, sest vorming ootab ühte COMMIT-i tabeli kohta ja kaks jaotist sama tabeli jaoks on parandus, mis ootab juhtumist. Hoidke distributsiooni ahelate definitsioonid puutumatuna, sealhulgas need, mille tarnija lisas oma integratsiooni jaoks. UFW raamistiku käsiraamat dokumenteerib failid before, user ja after koos vastava COMMIT-i nõudega.
Kui fail osutub tühjaks, ärge täitke seda õpetuse järgi. Kinnitage, milline pakett seda omab ja milline on tegelik töötav poliitika, sest tühi püsiv fail ei tõesta, et tuumal reegleid pole, ja laaditud reeglistik ei tõesta, et järgmisel uuestilaadimisel on täielik fail lugeda. Taastage esmalt toetatud baasjoon ja rakendage seejärel saidi muudatused selle peale uuesti.
Testige kandidaati ilma seda rakendamata
Taastamistööriist saab reeglistikku parsida ja koostada ilma seda rakendamata, mis on odavaim saadaolev test. Käivitage see kaitstud koopia, mitte töötava faili vastu, ja lugege veateksti, mitte ainult väljumisolekut. Parsimise nurjumine nimetab rea ja tavaliselt tabeli, mis on rohkem, kui ebaõnnestunud uuestilaadimine teile ütleb.
sudo cp /etc/ufw/before.rules /root/before.rules.bak
sudo iptables-restore --test < /root/before.rules.bak
echo "exit: 0"
Selle kontrolli läbimine tõestab, et dokument parsitakse, ja mitte midagi muud. See ei tõesta, et kandidaat sisaldab endiselt iga ahelat, millest UFW sõltub, et see lubab ainult kavatsetud allikaid või et kaughaldus jääb kättesaadavaks. Need on eraldi ülevaated ja viimane väärib teist seanssi, mis avatakse enne alustamist.
Valige tööriist, mis vastab paigaldatud taustarakendusele ja aadresside perekonnale. Host, mis käitab nft taustarakendust ühilduvuskihi kaudu, vajab vastavat käsku, ja IPv6 reeglid elavad hoopis teises failis.
Hoidke edasisaatmine, NAT ja juurdepääsupoliitika lahus
Allika tõlkimine lahendab adresseerimisprobleemi ega anna midagi. Edasisaatmine on eraldi luba, mida juhivad sysctl ja filtrite tabel, ja just see ununeb, kui tunnel marsruudib, aga liiklust läbi ei lase. Juurdepääsupoliitika on kolmas otsus selle kohta, millised allikad võivad millistele teenustele jõuda, ja ükski NAT-reegel ei väljenda seda. Nende kolme lahus hoidmine teeb rikke diagnoositavaks, mitte üheks ebamääraseks sümptomiks.
sysctl net.ipv4.ip_forward
sudo iptables -t nat -S POSTROUTING
sudo iptables -S FORWARD
Lugege neid kolme väljundit koos, mitte ükshaaval. Masquerade-reegel väljalülitatud edasisaatmisega loob kliendi, mis ühendub ja ei jõua kuhugi, mis kliendi poole pealt näeb täpselt välja nagu marsruutimistõrge ja saadab inimesed vale faili juurde. Filtrite tabel on ka koht, kus peitub liiga lai accept, seega kontrollige seal olles selle vaikepoliitikat.
Kontrollige uuestilaadimist, keeldumist ja VPN-i kadu
Kolm tähelepanekut moodustavad täieliku vastuvõtutesti: uuestilaadimine õnnestub, lubatud klienditoiming töötab ja taotlus, mis tuleks tagasi lükata, lükatakse tegelikult tagasi. Kolmas neist jäetakse vahele ja see on ainus tõend, et poliitika üldse midagi teeb.
sudo ufw reload
sudo ufw status verbose
sudo iptables -t nat -L POSTROUTING -n -v
Seejärel testige riket, mille jaoks te projekteerisite. Laske tunnel maha ja jälgige, mida host teeb, sest poliitika, mis töötab ainult siis, kui VPN on üleval, on poliitika väljaütlemata sõltuvusega. Laadige pärast veel kord uuesti, et tõestada, et töötava tulemuse annab fail, mitte mõni järelejäänud tööseisund.
IPv4 NAT ei ütle IPv6 kohta midagi, seega märkige kavatsetud katvus mõlema perekonna jaoks samas märkuses kui reegel. Eesmärk on sidus hallatav poliitika ja fragment, mis juhuslikult parsiti, ei ole selle tõestuseks.