Å blokkere Transmissions innkommende port er ikke en VPN-policy. En torrentklient åpner utgående forbindelser til peers og trackere, slår opp navn og kan eksponere en lytter for fjernstyring, og hver av disse kan gå ut gjennom et grensesnitt du ikke hadde tenkt på. Gå gjennom de fem kontrollene i rekkefølge og behandle brannmurregelen, ikke klientens innstillinger, som grensen. De to siste kontrollene er dem folk hopper over, og de avgjør om garantien holder når tunnelen faller bort.

Navngi prosessen som eier overføringen

Skrivebordsprogrammet og systemtjenesten kjører under forskjellige kontoer, og en regel basert på eier følger kontoen i stedet for programnavnet. Finn ut hvilken av de to som kjører før du skriver noen regel. En egen tjenestekonto gir policyen et presist subjekt, mens en skrivebordsbruker deler identiteten sin med nettlesere, editorer og alt annet i økten. Bekreft UID-en i stedet for å anta at kontonavnet fra pakken er det som brukes.

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

Finnes ikke kontoen ennå, opprett den til dette formålet og gi den ingenting annet å kjøre. Skriv kontoen og UID-en i kommentaren til regelen, for en regel uten subjekt er en regel ingen kan redigere trygt.

Skill lyttefeltene fra ruten

Transmission 4.x dokumenterer peer-lytteadresser atskilt fra rpc-bind-address, og forskjellen betyr noe. RPC-innstillingen styrer bare lytteren for fjernstyring, så å endre den velger ingen rute for peer-trafikk. Å lese de to innstillingene som én er den vanligste grunnen til at en tilsynelatende nøye konfigurasjon likevel lekker. Samme dokumentasjon beskriver en fallback når en peer-lytteadresse er ugyldig, så en utilgjengelig adresse er et dokumentert fallback-tilfelle, ikke en garantert avvisning.

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

Bruk klientens kontroller for det de er, og legg garantien i brannmuren. En lytteinnstilling kan fortsatt være verdt å bruke, men den fastslår ikke at tracker-kontakt, lokal oppdagelse eller et delegert oppslag alle går ut gjennom tunnelen. Når de to er uenige, er det brannmuren som bestemmer.

Skriv eier-treffet i riktig kjede

Netfilter-håndboken om eier-treff forklarer hvordan lokalt genererte pakker tilskrives brukeren eller gruppen som eier socket-filen. Den tilskrivningen gjelder ikke for videreformidlet trafikk, og treff på tilleggsgrupper krever et eksplisitt alternativ. Les håndboken for utvidelsen du faktisk bruker i stedet for det første eksempelet du finner.

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

Rekkefølgen betyr like mye som treffet. En bred aksept tidligere i kjeden opphever en presis avvisning senere, så gjennomgå hele kjeden i stedet for å legge til en regel og håpe. Ta med begge adressefamiliene hvis verten kjører IPv6, for en policy som bare dekker v4 etterlater en vei åpen som ingen følger med på. Hold reglene installert gjennom omstarter av både klienten og tunnelen.

Bestem hva som skjer når tun0 forsvinner

Feilpolitikken er hele poenget. Hvis tunnelen forsvinner og samme krok fjerner reglene, står klienten fritt til å bruke det fysiske grensesnittet til noe annet stopper den. Det trygge designet beholder reglene og lar dem avvise, og det er dette som gjør grensen uavhengig av tunnelens helse. En nedrivningskrok som også sletter reglene, er det motsatte av en feilpolitikk.

ip link show tun0
iptables -S OUTPUT

Test det med vilje: stopp tunnelen, start en overføring som er trygg å avbryte, og se om noe går ut. Ta så tunnelen tilbake og bekreft at den tiltenkte veien virker igjen.

Dekk veiene regelen ikke ser

Navneoppslag kan håndteres av en egen resolverprosess, og et navnerom eller en dedikert gateway kan gi en annen grense hvis delings- og oppstartsveiene er utformet for det. Bestem hvilken komponent som eier DNS og om den følger samme utgangsregel. Se så på RPC: hvis rpc-whitelist er i bruk, er det godkjente administrasjonsnettet en del av kontrakten, og et bredt RFC1918-område er det ikke.

ss -tunp | grep -i transmission

Grensesnitttellere kan underbygge en observasjon, men de kan ikke bevise hvilken prosess som produserte bytene. Kjør en overføring du har lov til å avbryte: først på den fungerende veien, deretter uten tunnel ved oppstart, så gjennom en avbrytelse, en gjenoppkobling og et nylig opprettet grensesnitt. Test både et nytt forsøk og en forbindelse som allerede var åpen, for regelen er kanskje ikke brukt på den eldre socketen. Noter dato, konto og resultat sammen med testen.

Å lime inn et eksempel som tømmer hele kjeden bytter ett hull mot flere, så legg til regler i stedet for å slette dem. Når alle fem kontrollene passerer, er garantien uttrykkelig: klientens trafikk går ut gjennom tunnelen eller ikke i det hele tatt, og regelen som håndhever det, overlever tunnelens egen svikt.

Relaterte artikler