Bllokimi i portës hyrëse të Transmission nuk është politikë VPN. Një klient torrent hap lidhje dalëse drejt kolegëve dhe tracker-ave, zgjidh emra dhe mund të ekspozojë një dëgjues për kontroll në distancë, dhe secila prej tyre mund të dalë përmes një ndërfaqeje që nuk e kishit parashikuar. Kaloni nëpër pesë kontrollet me radhë dhe trajtojeni rregullin e firewall-it, jo cilësimet e klientit, si kufirin. Dy kontrollet e fundit janë ato që njerëzit i anashkalojnë, dhe ato vendosin nëse garancia qëndron kur tuneli bie.

Emërtoni procesin që zotëron transferimin

Aplikacioni i desktopit dhe daemon-i i sistemit ekzekutohen nën llogari të ndryshme, dhe një rregull i bazuar te pronari ndjek llogarinë, jo emrin e programit. Zbuloni cili prej të dyve është duke u ekzekutuar përpara se të shkruani ndonjë rregull. Një llogari e dedikuar shërbimi i jep politikës një subjekt të saktë, ndërsa një përdorues desktopi ndan identitetin e tij me shfletues, editorë dhe gjithçka tjetër në sesion. Konfirmoni UID-në në vend që të supozoni se emri i llogarisë nga paketa është ai që përdoret.

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

Nëse llogaria nuk ekziston ende, krijoni atë për këtë qëllim dhe mos i jepni asgjë tjetër për të ekzekutuar. Shkruani llogarinë dhe UID-në në komentin e rregullit, sepse një rregull pa subjekt është një rregull që askush nuk mund ta redaktojë me siguri.

Ndani fushat e dëgjimit nga rruga

Transmission 4.x dokumenton adresat e dëgjimit për kolegët veçmas nga rpc-bind-address, dhe ndryshimi ka rëndësi. Cilësimi RPC kontrollon vetëm dëgjuesin për kontroll në distancë, prandaj ndryshimi i tij nuk zgjedh një rrugë për trafikun e kolegëve. Leximi i dy cilësimeve si një i vetëm është arsyeja më e zakonshme pse një konfigurim që duket i kujdesshëm ende rrjedh. I njëjti dokumentacion përshkruan një zgjidhje rezervë kur një adresë dëgjimi për kolegët është e pavlefshme, pra një adresë e padisponueshme është rast rezervë i dokumentuar, jo refuzim i garantuar.

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

Përdorni kontrollet e klientit për atë që janë dhe vendosni garancinë në firewall. Një cilësim dëgjimi mund të vlejë ende, por nuk vërteton se kontakti me tracker-ët, zbulimi lokal ose një zgjidhje e deleguar dalin të gjitha përmes tunelit. Kur të dy nuk pajtohen, është firewall-i ai që vendos.

Shkruani përputhjen e pronarit në zinxhirin e duhur

Manuali Netfilter për përputhjen e pronarit shpjegon se si paketat e krijuara lokalisht i atribuohen përdoruesit ose grupit pronar të skedarit socket. Ky atribuim nuk shtrihet te trafiku i ridrejtuar, dhe përputhja e grupeve shtesë kërkon një opsion të qartë. Lexoni manualin për shtojcën që po përdorni në të vërtetë, jo shembullin e parë që gjeni.

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

Rendi ka po aq rëndësi sa përputhja. Një pranim i gjerë më lart në zinxhir anulon një refuzim të saktë më poshtë, prandaj rishikoni të gjithë zinxhirin në vend që të shtoni një rregull dhe të shpresoni. Përfshini të dyja familjet e adresave nëse host-i ekzekuton IPv6, sepse një politikë vetëm për v4 lë të hapur një rrugë që askush nuk e mbikëqyr. Mbani rregullat të instaluara gjatë rindezjeve të klientit dhe të tunelit.

Vendosni çfarë ndodh kur tun0 zhduket

Politika e dështimit është thelbi i ushtrimit. Nëse tuneli zhduket dhe i njëjti hook heq rregullat, klienti është i lirë të përdorë ndërfaqen fizike derisa diçka tjetër ta ndalojë. Dizajni i sigurt i mban rregullat dhe i lë të refuzojnë, dhe kjo është ajo që e bën kufirin të pavarur nga shëndeti i tunelit. Një hook çmontimi që fshin edhe rregullat është e kundërta e një politike dështimi.

ip link show tun0
iptables -S OUTPUT

Testojeni me qëllim: ndaloni tunelin, nisni një transferim që është i sigurt për t’u braktisur dhe shikoni nëse diçka del. Pastaj ktheni tunelin dhe konfirmoni se rruga e synuar funksionon përsëri.

Mbuloni rrugët që rregulli nuk i sheh

Zgjidhja e emrave mund të trajtohet nga një proces resolver i veçantë, dhe një namespace ose një gateway i dedikuar mund të ofrojnë një kufi tjetër nëse rrugët e tyre të ndarjes dhe të nisjes janë projektuar për këtë. Vendosni cili komponent zotëron DNS-në dhe nëse ndjek të njëjtin rregull daljeje. Pastaj shikoni RPC-në: nëse rpc-whitelist është në përdorim, rrjeti i administrimit i miratuar është pjesë e kontratës, dhe një interval i gjerë RFC1918 nuk është.

ss -tunp | grep -i transmission

Numëruesit e ndërfaqes mund të mbështesin një vëzhgim, por nuk mund të provojnë cili proces i prodhoi bajtët. Kryeni një transferim që ju lejohet ta braktisni: fillimisht në rrugën që funksionon, pastaj pa tunel në nisje, dhe më pas përmes një ndërprerjeje, një rilidhjeje dhe një ndërfaqeje të krijuar rishtazi. Testoni si një përpjekje të re ashtu edhe një lidhje që ishte tashmë e hapur, sepse rregulli mund të mos jetë zbatuar për socket-in më të vjetër. Shënoni datën, llogarinë dhe rezultatin bashkë me testin.

Ngjitja e një shembulli që zbraz të gjithë zinxhirin ndërron një vrimë me disa, prandaj shtoni rregulla në vend që t’i fshini. Kur kalojnë të pesë kontrollet, garancia është e qartë: trafiku i klientit del përmes tunelit ose aspak, dhe rregulli që e detyron i mbijeton dështimit të vetë tunelit.

Artikuj të ngjashëm