Jo hawwe de regel bewurke, de regelset opnij laden, en de tunnel hâldt him krekt as earder. Dat resultaat hat twa gongbere oarsaken, en dy freegje ferskate tests. Of de nije regel stiet nei in eardere regel dy't it pakket al akseptearre hat, of de útwikseling dy't jo besjogge is in folge ferbining dy't de feroaring nea opnij beoardielet. In regel yn in bestân sprekt in bedoeling út; wat it pakket beslút is it aktive paad dat it treft. Wurkje de kontrôles hjirûnder op folchoarder ôf en hâld dêrby in wei werom iepen.

Folchoarder fan regels en ferbiningsstatus binne ferskate fouten

Oardere keatlingen wurde fan boppe nei ûnderen beoardiele, en de earste regel dy't in einferdict berikt, einiget de gong troch dy keatling. Set in breed akseptaasje boppe in soarchfâldich skreaune beskoattelingsregel en de beskoattelingsregel wurdt dokumintaasje: hy stiet yn 'e regelset, syn teller is nul, en gjin pakket sil him ea berikke. Deselde tekst tapast op in oare keatling bewiist ek neat. Yn nftables hechtsje basikeatlingen oan hooks by prioriteiten, dus in akseptaasje yn ien keatling behinderet in oare keatling op in oare hook of prioriteit net om itselde pakket te sjen.

Ferbiningsopspoaring produsearret it twadde symptoom, en fan bûten liket it identyk. Sadree't in flow yn 'e steattabel stiet, komt in akseptaasje foar fêstige-of-relatearre tichtby de top fan 'e keatling werom foardat jo nije regel oait rieplachte wurdt. NAT-mappings hawwe deselde eigenskip: de oersetting waard fêstlein doe't de flow begûn, dus in bewurke postrouting-regel skriuwt in sesje dy't al rint net oer. Dêrom liket in feroaring om 09:00 te wurkjen foar in nije ferbining en liket er neat te dwaan foar de sesje dy't immen om 08:55 iepene.

Cloud-feiligensgroepen foegje in tredde model ta dat minsken fangt dy't op iptables leard hawwe. Harren yngeande regels binne in list fan tastiene dy't as in set beoardiele wurdt yn stee fan in gong by earste oerienkomst, se binne steatfol, en it fuortheljen fan in tastieningsregel einiget gjin flows dy't al folge wurde. Earste-oerienkomst-semantyk oannimme op in platfoarm dat dy net hat liedt ta selsbetrouwen, ferkearde konklúzjes.

Lês de aktive regelset, net it bestân dat jo bewurke hawwe

Begjin mei wat de kernel no krekt hanthavent. In bewarre konfiguraasje dy't nea tapast is, ferklearret ferbjusterjend folle ûnferoare hâldens, en it útsluten kostet ien opdracht:

nft list ruleset
iptables-save

Freegje dan oft jo regel oait berikt wurdt. Pakkettellers beantwurdzje dat direkt, en se beantwurdzje it better as hokker redenearring oer bedoeling ek:

iptables -L FORWARD -v -n --line-numbers
nft list chain inet filter forward

In beskoattelingsregel mei nul pakketten nei in echte testpoging is gjin beliedsprobleem, it is in posisjeprobleem. It ferpleatsen is in feroaring fan ien rigel, en de syntaksis is krekt wat de oarspronklike bug feroarsake. Mei iptables -I foeget yn en -A foeget ta oan 'e ein; mei nftables insert set in regel oan it begjin fan 'e keatling wylst add ta foeget oan 'e ein. As in regel winne moat, sis it dan eksplisyt yn stee fan te fertrouwen op 'e folchoarder dy't tafallich laden waard.

Bewiis oft de flow folge wurdt

Foardat jo de regel de skuld jouwe, kontrolearje oft it ferkear oait in folge ferbining is. Freegje de steattabel om 'e konkrete flow yn stee fan him hielendal út te stoarten:

conntrack -L -p tcp --dport 1194
conntrack -E -p tcp --dport 1194

De list jout de steat en de oerbleaune tiidlimit, en sa ûnderskiede jo in fêstige sesje fan in nije poging; de barrenmodus printsjet fernijings wylst se barre, wat nuttich is wylst jo in klant opnij ferbine. As de flow oanwêzich is mei in fêstige steat foardat jo eat oanreage, sil gjin bewurking fan 'e filterregels syn lot feroarje. Dat is gjin bug yn 'e firewall, it is it kontrakt fan steatfol filterjen.

Wjerstean de koarte wei om de hiele tabel op in produksjegateway te leegjen. conntrack -F is beskikber, en it ferneatiget ek elke folge flow op 'e masine, ynklusyf de beheersesje dêr't jo fan wurkje en de tunnel dy't jo shell draacht. Yndividuele yngongen kinne wiske wurde as jo it echt nedich hawwe, mar in nije flow fan in nije boarnpoarte is meastentiids in skjinner eksperimint.

Guon paden wurde net folge, en se hâlde har tsjinoersteld. Ferkear markearre as notrack yn 'e raw-tabel, guon tunnels dy't de normale hooks omgean, en asymmetryske routing dy't in flow oer twa gateways ferdielt, produsearje allegear pakketten dy't ien foar ien beoardiele wurde, of steat dy't nea oan beide kanten ûntstiet. As de tellers by elk pakket bewege, fertinkje dan sa'n paad foardat jo de folchoarder fertinkje.

Test fan in nije flow mei in wei werom

Foardat jo in regel testje dy't op ôfstân tagong ôfsnije kin, meitsje in herstelpaad: de console fan 'e provider, in seriale console, in bân-bûten behearadres, of in twadde ynterface dy't de regel net treffe kin. In weromdraaitimer is in ridlike begelieder, want it sil de foarige regelset werstelle sels as jo sesje midden yn 'e test stjert.

Test dan mei in útwikseling dy't net al troch steat dekt wêze koe. Skeakelje de klant los en ferbinje opnij sadat in nije fiifling ûntstiet, en besjoch beide kanten wylst dat bart:

tcpdump -ni eth0 'tcp port 1194'
journalctl -k -n 50 --no-pager

Fier de test yn beide rjochtingen út. In regel dy't de nije yngeande hânskudding blokkearret kin noch de antwurdwei tastean, of oarsom, en in ienrjochtingsresultaat is de gewoane reden dat in beskoatteling heal wurket. Ferbinje nei de test noch ien kear opnij om de stive steat te befêstigjen, en kontrolearje oft legitime behearder tagong oerlibbe hat; in regel skreaun foar ien poarte hat de gewoante om in breder berik te treffen as bedoeld.

Registrearje doel en posysje by de regel

In regel sûnder registrearre doel is in regel dy't nimmen doart fuort te heljen. Hâld by elk beskoattelingsyngong de flow dy't er beskermet, de keatling en hook dêr't er yn libbet, de posysje dy't er hâlde moat tsjinoer bredere akseptaasjes, en de test dy't it bewiisde. As immen seis moannen letter de omlizzende regelset bewurket, is dy notysje de iennichste warskôging dat de posysje mei opsetsin wie.

Foardat jo de feroaring slute, befêstigje fjouwer dingen: de rinnende regelset komt oerien mei it bestân, de nije regel hat tellers dy't net nul binne nei in nije poging, de tsjinoerstelde rjochting en behearder tagong wurkje noch, en jo hawwe ien kear opnij ferbûn om de stive steat te bewizen yn stee fan 'e steat fan in sesje dy't âlder is as de feroaring. As ien fan dy net ferifiearre is, is de feroaring net klear, wat de tunnel ek docht.

Relatearre artikelen