Mērķis ir saprātīgs: šīs mašīnas pakalpojumiem jāpiekļūst tikai tuneļa lietotājiem. Risinājums, pie kā ķeras, ir IPv6 ievades ķēde, kas atmet visu, izņemot WireGuard, un tādējādi atmet arī datplūsmu, kas notur resursdatoru pievienotu tā paša saitei. Kaimiņu atrašana un ceļa uzturēšanas ziņojumi nav pakalpojumu piekļuve, un to noņemšana rada mašīnu, kas nav sasniedzama tādu iemeslu dēļ, kuriem nav sakara ar jūsu politiku. Tunelis paceļas, pakalpojumi ir pareizi ierobežoti, un nekas cits uz saites nedarbojas.

Trīs atbildības, viens noteikumu kopums

Pirmā atbildība ir ārējā tīkla darbība: resursdatoram jāpaliek uz savas saites, jāatrisina kaimiņi un jāzina šīs saites ceļa robežas. Otrā ir šifrētais klausītājs, kas pieņem UDP jūsu izvēlētajā adresē un portā. Trešā ir atšifrēto pakalpojumu kopa, kuriem vēlaties, lai tuneļa lietotāji piekļūtu.

Tās ir trīs dažādas politikas, un tikai otrā un trešā attiecas uz VPN. Noteikumu kopums, kas tās uzskata par vienu, manto atteices veidu, kurā lietojumprogrammas robežas stingrāka noteikšana klusi salauž resursdatora piesaisti.

Turiet tās atsevišķās ķēdēs vai vismaz atsevišķos komentāros, lai nākamais cilvēks redzētu, kura rinda un kāpēc pastāv.

Ko ICMPv6 dara resursdatora labā

IPv6 daudz vairāk nekā atbalsij paļaujas uz ICMPv6. Kaimiņa pieprasījums un paziņojums aizstāj ARP un ir nepieciešami vietējai piegādei. Packet Too Big pārnēsā ceļa MTU informāciju, un tā ignorēšana rada pārsūtījumus, kas iestrēgst pie lieliem paketiem. Maršrutētāja paziņojumi pārnēsā noklusējuma maršrutu un prefiksa informāciju, kad saite izmanto automātisko konfigurāciju.

RFC 4890 atdala ziņojumus, kurus resursdatora filtram obligāti jāatļauj, no tiem, kas ir administratīva izvēle, un to dara resursdatora sadaļā, kas atšķiras no noteikumiem maršrutētājam, kurš pārsūta starp tīkliem. Lasot tikai pārsūtīšanas sadaļu, tiek iegūta ievades politika, kas aizsargājamajam resursdatoram ir pārāk stingra.

Praktiskais noteikums ir atļaut būtiskos kļūdu un konfigurācijas ziņojumus saskarnē, kurai tie nepieciešami, ierobežojot tos pēc tipa un avota tur, kur platforma to atļauj, un skaidri izlemt par pārējiem.

Aizstāt to visu ar visaptverošu ICMPv6 atļauju atrisina pieejamības problēmu un atsakās no filtrēšanas. Aizstāt to ar visaptverošu nomešanu atrisina filtrēšanas problēmu un atsakās no resursdatora.

Vispirms ielaidiet tuneli, tad pakalpojumu

Pieņemiet WireGuard transportu paredzētajā ārējā adresē un UDP portā, bet atgriezenisko datplūsmu pieņemiet ar savienojumu izsekošanu. Pēc tam atļaujiet lietojumprogrammu pakalpojumus caur tuneļa saskarni no avotiem, kuriem jūs patiešām piešķirat pilnvaras.

Atļauja ārējam UDP portam nepiešķir pilnvaras atšifrētajiem pieprasījumiem tajā. Šī atšķirība ir viss iemesls, kāpēc pakalpojumu noteikumos parādās tuneļa saskarne.

Lasiet noteikumu kopumu tādu, kāds tas ir, nevis kā to apraksta fails:

sudo nft list ruleset
ip -6 addr show
ip -6 route show default

Klausītājs fiziskā adresē ir atsevišķa pakļaušana tam pašam pakalpojumam tuneļa adresē. Ja mašīna arī pārsūta datplūsmu uz citu mašīnu, tas ir pārsūtīšanas ķēdes lēmums, nevis šī ievades politika, un tam vajadzīgs savs pamatojums.

Pārbaudiet saiti, ne tikai tuneli

Pēc izmaiņām strādājošs tunelis pierāda mazāk, nekā šķiet, jo esošs kaimiņa ieraksts un nodibināts savienojums var paslēpt vadības ziņojumu, ko politika tagad atmet.

Pārbaudiet piesaisti tieši un pēc tam pārbaudiet, ka izslēgtais ceļš joprojām neizdodas:

ip -6 neigh show
ping -6 -c 3 2001:db8:1::1
sudo nft -c -f /etc/nftables.conf

Kaimiņu tabula, kas pēc pārstartēšanas paliek pilnīga, ir signāls, ka atrašana joprojām darbojas. Tabula, kas iztukšojas un vairs nekad nepiepildās, ir signāls, ka jūs to izfiltrējāt. Trešā komanda validē noteikumu kopuma sintaksi, to nepiemērojot, ko ir vērts darīt, kamēr vēl ir sesija.

Atjaunojiet resursdatoru, no kura sevi izslēdzāt

Pirms mainīt ugunsmūra noteikumus, kas pārnēsā jūsu pašu administrēšanas sesiju, turiet otru kanālu: konsoli, seriālo savienojumu vai ieplānotu atritināšanu, kas noņem jaunos noteikumus, ja to neatceļat.

Ja izmaiņas tomēr izslēdz jūs, atjaunošana notiek pa šo kanālu, nevis pa tīklu, kuru tikko noņēmāt. Atjaunojiet iepriekšējo noteikumu kopumu no saglabātas kopijas, apstipriniet, ka resursdators atkal ir sasniedzams, un tikai tad piemērojiet paredzēto politiku mazākās daļās.

Galīgā politika nav universāla. Adresēšana, maršrutēšana un ugunsmūra ieviešana ir izvietošanas ievades, bet robeža visur ir viena: liegiet nevēlamu lietojumprogrammu piekļuvi, saglabājot vadības datplūsmu, kas pārnēsā atļauto tuneli.

Saistītie raksti