Transmission'ın gelen bağlantı noktasını engellemek bir VPN politikası değildir. Bir torrent istemcisi eşlere ve izleyicilere giden bağlantılar açar, adları çözer ve uzaktan denetim için bir dinleyici açabilir; bunların her biri amaçlamadığınız bir arayüzden çıkabilir. Beş denetimi sırayla yapın ve sınır olarak istemcinin ayarlarını değil güvenlik duvarı kuralını alın. Son iki denetim insanların atladığı denetimlerdir ve tünel düştüğünde garantinin geçerli kalıp kalmayacağına onlar karar verir.

Aktarımın sahibi olan süreci adlandırın

Masaüstü uygulaması ve sistem servisi farklı hesaplar altında çalışır ve sahibe dayalı bir kural program adı yerine hesabı izler. Herhangi bir kural yazmadan önce hangisinin çalıştığını öğrenin. Ayrılmış bir hizmet hesabı politikaya kesin bir özne verir; masaüstü kullanıcısı ise kimliğini tarayıcılar, düzenleyiciler ve oturumdaki diğer her şeyle paylaşır. Paketteki hesap adının kullanılan ad olduğunu varsaymak yerine UID'yi doğrulayın.

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

Hesap henüz yoksa bu amaç için oluşturun ve ona çalıştıracak başka bir şey vermeyin. Hesabı ve UID'yi kuralın yorumuna yazın, çünkü öznesi olmayan bir kural kimsenin güvenle düzenleyemeyeceği bir kuraldır.

Dinleyici alanlarını rotadan ayırın

Transmission 4.x eş dinleme adreslerini rpc-bind-address ayarından ayrı olarak belgeler ve bu ayrım önemlidir. RPC ayarı yalnızca uzaktan denetim dinleyicisini denetler, bu yüzden onu değiştirmek eş trafiği için bir rota seçmez. İki ayarı bir tek ayar gibi okumak, özenli görünen bir yapılandırmanın hâlâ sızmasının en yaygın nedenidir. Aynı belge, eş dinleme adresi geçersiz olduğunda bir geri dönüş yolu tanımlar; yani kullanılamayan bir adres belgelenmiş bir geri dönüş durumudur, garanti edilmiş bir ret değil.

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

İstemcinin denetimlerini oldukları şey için kullanın ve garantiyi güvenlik duvarına koyun. Bir dinleyici ayarı yine de işe yarayabilir, ama izleyici temasının, yerel keşfin veya devredilmiş bir sorgunun hepsinin tünelden çıktığını kanıtlamaz. İkisi çeliştiğinde karar veren güvenlik duvarıdır.

Sahip eşleşmesini doğru zincire yazın

Netfilter'ın sahip eşleşmesi kılavuzu, yerelde üretilen paketlerin soket dosyasının sahibi olan kullanıcıya veya gruba nasıl atfedildiğini açıklar. Bu atıf iletilen trafiğe uzanmaz ve ek grupların eşleştirilmesi açık bir seçenek gerektirir. Bulduğunuz ilk örnek yerine gerçekten kullandığınız eklentinin kılavuzunu okuyun.

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

Sıra, eşleşme kadar önemlidir. Zincirin başındaki geniş bir kabul, sonraki kesin bir reddi etkisiz bırakır; bu yüzden bir kural ekleyip ummak yerine zincirin tamamını gözden geçirin. Ana makine IPv6 çalıştırıyorsa her iki adres ailesini de ekleyin, çünkü yalnızca v4 politikası kimsenin izlemediği bir yolu açık bırakır. Kuralları hem istemcinin hem de tünelin yeniden başlatılmaları boyunca kurulu tutun.

tun0 kaybolduğunda ne olacağına karar verin

Arıza politikası alıştırmanın özüdür. Tünel kaybolur ve aynı kanca kuralları kaldırırsa istemci, başka bir şey onu durduran kadar fiziksel arayüzü kullanmakta serbesttir. Güvenli tasarım kuralları korur ve reddetmelerine izin verir; sınırı tünelin sağlığından bağımsız kılan da budur. Kuralları da silen bir sökme kancası, arıza politikasının tam tersidir.

ip link show tun0
iptables -S OUTPUT

Bunu bilerek test edin: tüneli durdurun, bırakılması güvenli bir aktarım başlatın ve bir şeyin çıkıp çıkmadığını izleyin. Sonra tüneli geri getirin ve amaçlanan yolun yeniden çalıştığını doğrulayın.

Kuralın göremediği yolları kapsayın

Ad çözümlemesi ayrı bir çözümleyici süreç tarafından yürütülebilir ve bir ad alanı ya da ayrılmış ağ geçidi, paylaşım ve önyükleme yolları bunun için tasarlanmışsa başka bir sınır sağlayabilir. DNS'in hangi bileşene ait olduğuna ve aynı çıkış kuralına uyup uymadığına karar verin. Sonra RPC'ye bakın: rpc-whitelist kullanılıyorsa onaylanmış yönetim ağı sözleşmenin parçasıdır, geniş bir RFC1918 aralığı değildir.

ss -tunp | grep -i transmission

Arayüz sayaçları bir gözlemi destekleyebilir, ama baytları hangi sürecin ürettiğini kanıtlayamaz. Bırakmanıza izin verilen bir aktarım yapın: önce çalışan yolda, sonra açılışta tünelsiz, ardından bir kesinti, bir yeniden bağlanma ve yeni oluşturulmuş bir arayüz üzerinden. Hem yeni bir denemeyi hem de zaten açık olan bir bağlantıyı test edin, çünkü kural eski sokete uygulanmamış olabilir. Tarihi, hesabı ve sonucu testle birlikte kaydedin.

Tüm zinciri temizleyen bir örneği yapıştırmak bir deliği birkaç deliğe çevirir, bu yüzden kuralları silmek yerine ekleyin. Beş denetimin hepsi geçtiğinde garanti açıktır: istemcinin trafiği tünelden çıkar ya da hiç çıkmaz ve bunu zorunlu kılan kural tünelin kendi arızasını atlatır.

İlgili makaleler