Blokiranje vhodnih vrat Transmissiona ni politika VPN. Odjemalec torrentov odpira izhodne povezave do sogovornikov in sledilnikov, razrešuje imena in lahko izpostavi poslušalec za oddaljeno upravljanje, vsak od teh tokov pa lahko odide skozi vmesnik, ki ga niste predvideli. Pojdite skozi pet preverjanj po vrsti in za mejo vzemite pravilo požarnega zidu, ne nastavitve odjemalca. Zadnji dve preverjanji običajno preskočimo in prav ti odločata, ali garancija velja, ko tunel pade.

Poimenujte proces, ki je lastnik prenosa

Namizna aplikacija in sistemski daemon tečeta pod različnimi računi, pravilo po lastniku pa sledi računu, ne imenu programa. Ugotovite, kateri od obeh teče, preden napišete pravilo. Namenski servisni račun da politiki natančen subjekt, medtem ko si namizni uporabnik deli identiteto z brskalniki, urejevalniki in vsem drugim v seji. Potrdite UID, namesto da predpostavite, da je ime računa iz paketa tisto, ki se uporablja.

systemctl status transmission-daemon
ps -o user=,pid=,cmd= -C transmission-daemon

Če račun še ne obstaja, ga ustvarite v ta namen in mu ne dajte ničesar drugega za poganjanje. Zapišite račun in UID v komentar pravila, ker je pravilo brez subjekta pravilo, ki ga nihče ne more varno urejati.

Ločite polja poslušanja od poti

Transmission 4.x dokumentira naslove poslušanja sogovornikov ločeno od rpc-bind-address, in ta razlika je pomembna. Nastavitev RPC upravlja samo poslušalec oddaljenega upravljanja, zato njena sprememba ne izbere poti za promet sogovornikov. Branje obeh nastavitev kot ene je najpogostejši razlog, da na videz skrbna konfiguracija še vedno pušča. Ista dokumentacija opisuje rezervno pot, ko je naslov poslušanja sogovornika neveljaven, torej je nedosegljiv naslov dokumentiran rezervni primer, ne zagotovljena zavrnitev.

grep -E '"(peer-port|rpc-bind-address|bind-address-ipv4)"' /var/lib/transmission-daemon/.config/transmission-daemon/settings.json

Uporabite kontrolnike odjemalca za to, kar so, in garancijo položite v požarni zid. Nastavitev poslušanja lahko še vedno velja, a ne dokazuje, da stik s sledilniki, lokalno odkrivanje ali delegirano iskanje vsi odidejo skozi tunel. Ko se ta dva ne strinjata, odloča požarni zid.

Zapišite ujemanje lastnika v pravilno verigo

Priročnik Netfilterja o ujemanju lastnika pojasnjuje, kako se lokalno ustvarjeni paketi pripišejo uporabniku ali skupini, ki imata v lasti datoteko vtičnice. To pripisovanje se ne razširi na posredovani promet, ujemanje dodatnih skupin pa zahteva izrecno možnost. Berite priročnik za razširitev, ki jo res uporabljate, ne prvega primera, na katerega naletite.

iptables -A OUTPUT -m owner --uid-owner transmission -o tun0 -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner transmission -j REJECT
ip6tables -A OUTPUT -m owner --uid-owner transmission -o tun0 -j ACCEPT
ip6tables -A OUTPUT -m owner --uid-owner transmission -j REJECT

Vrstni red je enako pomemben kot ujemanje. Široka odobritev višje v verigi izniči natančno zavrnitev niže, zato preglejte celotno verigo, namesto da dodate pravilo in upate. Vključite obe družini naslovov, če gostitelj teče IPv6, ker politika samo za v4 pušča odprto pot, ki je nihče ne nadzoruje. Pravila naj ostanejo nameščena skozi ponovne zagone odjemalca in tunela.

Odločite, kaj se zgodi, ko tun0 izgine

Politika okvare je jedro vaje. Če tunel izgine in ista kljuka odstrani pravila, lahko odjemalec uporablja fizični vmesnik, dokler ga nekaj drugega ne ustavi. Varna zasnova obdrži pravila in jim dovoli zavračanje, in prav to naredi mejo neodvisno od zdravja tunela. Kljuka za razgradnjo, ki izbriše tudi pravila, je pravo nasprotje politike okvare.

ip link show tun0
iptables -S OUTPUT

Preizkusite to namerno: ustavite tunel, začnite prenos, ki ga je varno opustiti, in glejte, ali kaj odide. Nato vrnite tunel in potrdite, da predvidena pot spet deluje.

Pokrijte poti, ki jih pravilo ne vidi

Razreševanje imen lahko obravnava ločen proces razreševalnika, imenski prostor ali namenski prehod pa lahko nudita drugo mejo, če so njune poti deljenja in zagona zasnovane za to. Odločite, katera komponenta je lastnik DNS in ali sledi istemu pravilu izhoda. Nato poglejte RPC: če se uporablja rpc-whitelist, je odobreno upravljavsko omrežje del pogodbe, širok razpon RFC1918 pa ne.

ss -tunp | grep -i transmission

Števci vmesnika lahko podprejo opažanje, ne morejo pa dokazati, kateri proces je ustvaril bajte. Izvedite prenos, ki ga smete opustiti: najprej po delujoči poti, nato brez tunela ob zagonu, nato skozi prekinitev, ponovno povezavo in na novo ustvarjen vmesnik. Preizkusite tako nov poskus kot že odprto povezavo, ker pravilo morda ni bilo uporabljeno za starejšo vtičnico. Zapišite datum, račun in rezultat skupaj s preizkusom.

Pripenjanje primera, ki izprazni celotno verigo, zamenja eno luknjo za več, zato dodajajte pravila, namesto da jih brišete. Ko vseh pet preverjanj uspe, je garancija izrecna: promet odjemalca odide skozi tunel ali nikamor, in pravilo, ki to vsili, preživi lastno okvaro tunela.

Sorodni članki