Transmission på Linux: handhev utgåande trafikk per prosesseigar
Peer-porten er ikkje heile historia. Avgrens brannmurregelen til kontoen til klienten, dekk begge adressefamiliane og test med tunnelen nede.
Å blokkere den innkomande porten til Transmission er ikkje ein VPN-policy. Ein torrentklient opnar utgåande samband til peers og trackarar, slår opp namn og kan eksponere ein lyttar for fjernstyring, og kvar av desse kan gå ut gjennom eit grensesnitt du ikkje hadde tenkt på. Gå gjennom dei fem kontrollane i rekkjefølgje og behandla brannmurregelen, ikkje innstillingane til klienten, som grensa. Dei to siste kontrollane er dei folk hoppar over, og dei avgjer om garantien held når tunnelen fell bort.
Namngi prosessen som eig overføringa
Skrivebordsprogrammet og systemtenesta køyrer under ulike kontoar, og ein regel basert på eigar følgjer kontoen i staden for programnamnet. Finn ut kva av dei to som køyrer før du skriv nokon regel. Ein eigen tenestekonto gjev policyen eit presist subjekt, medan ein skrivebordsbrukar deler identiteten sin med nettlesarar, editorar og alt anna i økta. Stadfest UID-en i staden for å anta at kontonamnet frå pakka er det som blir brukt.
systemctl status transmission-daemon
ps -o user=,pid=,cmd= -C transmission-daemon
Finnst ikkje kontoen enno, opprett han til dette føremålet og gje han ingenting anna å køyre. Skriv kontoen og UID-en i kommentaren til regelen, for ein regel utan subjekt er ein regel ingen kan redigere trygt.
Skil lyttar-felta frå ruta
Transmission 4.x dokumenterer peer-lyttaradresser åtskilde frå rpc-bind-address, og skilnaden har noko å seie. RPC-innstillinga styrer berre lyttaren for fjernstyring, så å endre henne vel ingen rute for peer-trafikk. Å lese dei to innstillingane som éin er den vanlegaste grunnen til at ein tilsynelatande nøye konfigurasjon likevel lekk. Same dokumentasjonen skildrar ein fallback når ei peer-lyttaradresse er ugyldig, så ei utilgjengeleg adresse er eit dokumentert fallback-tilfelle, ikkje ei garantert avvising.
grep -E '"(peer-port|rpc-bind-address|bind-address-ipv4)"' /var/lib/transmission-daemon/.config/transmission-daemon/settings.json
Bruk kontrollane til klienten for det dei er, og legg garantien i brannmuren. Ei lyttarinnstilling kan framleis vere verdt å bruke, men ho slår ikkje fast at trackar-kontakt, lokal oppdaging eller eit delegert oppslag alle går ut gjennom tunnelen. Når dei to er usamde, er det brannmuren som avgjer.
Skriv eigar-treffet i rett kjede
Netfilter-handboka om eigar-treff forklarer korleis lokalt genererte pakkar blir tilskrivne brukaren eller gruppa som eig socket-fila. Den tilskrivinga gjeld ikkje for vidaresend trafikk, og treff på tilleggsgrupper krev eit eksplisitt alternativ. Les handboka for utvidinga du faktisk brukar i staden for det første dømet du finn.
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
Rekkjefølgja har like mykje å seie som treffet. Ei brei aksept tidlegare i kjeda opphevar ei presis avvising seinare, så gå gjennom heile kjeda i staden for å leggje til ein regel og håpe. Ta med begge adressefamiliane om verten køyrer IPv6, for ein policy som berre dekkjer v4 lèt ein veg stå open som ingen følgjer med på. Hald reglane installerte gjennom omstartar av både klienten og tunnelen.
Avgjer kva som skjer når tun0 forsvinn
Feilpolitikken er sjølve poenget. Om tunnelen forsvinn og same krok fjernar reglane, står klienten fritt til å bruke det fysiske grensesnittet til noko anna stoppar han. Det trygge designet held på reglane og lèt dei avvise, og det er dette som gjer grensa uavhengig av helsa til tunnelen. Ein nedrivingskrok som også slettar reglane, er det motsette av ein feilpolitikk.
ip link show tun0
iptables -S OUTPUT
Test det med vilje: stopp tunnelen, start ei overføring som er trygg å avbryte, og sjå om noko går ut. Ta så tunnelen tilbake og stadfest at den tiltenkte vegen verkar igjen.
Dekk vegane regelen ikkje ser
Namneoppslag kan handterast av ein eigen resolverprosess, og eit namnerom eller ei dedikert gateway kan gje ei anna grense om delings- og oppstartsvegane er utforma for det. Avgjer kva komponent som eig DNS og om han følgjer same utgangsregel. Sjå så på RPC: om rpc-whitelist er i bruk, er det godkjende administrasjonsnettet ein del av kontrakten, og eit breitt RFC1918-område er det ikkje.
ss -tunp | grep -i transmission
Grensesnittteljarar kan støtte ei observasjon, men dei kan ikkje bevise kva prosess som produserte byta. Køyr ei overføring du har lov til å avbryte: først på den fungerande vegen, deretter utan tunnel ved oppstart, så gjennom eit avbrot, ei gjenoppkopling og eit nyleg oppretta grensesnitt. Test både eit nytt forsøk og ei tilkopling som allereie var open, for regelen er kanskje ikkje brukt på den eldre socketen. Noter dato, konto og resultat saman med testen.
Å lime inn eit døme som tømmer heile kjeda byter eitt hol mot fleire, så legg til reglar i staden for å slette dei. Når alle fem kontrollane passerer, er garantien uttrykkeleg: trafikken til klienten går ut gjennom tunnelen eller ikkje i det heile, og regelen som handhevar det, overlever svikt i sjølve tunnelen.