Şanzıman trafiğinin bir VPN kullanmasını nasıl sağlayabilirim?

27

Aktarımın, çalıştığı sunucu bir VPN'ye bağlı olduğunda yalnızca trafiği gönderdiğinden / aldığından emin olmak isterim.

bu soruyu benzer bulmuştum ama yapmadım. Tüm trafiği VPN üzerinden zorlamak istemiyorum ve komutanımdan ateşleyiciyi nasıl kullanacağına dair iyi bir rehber bulamadım.

Bunun yerine ufw kullanmayı düşünüyordum, ancak güvenlik duvarlarıyla ilgili çok az tecrübem var ve toplumun bana yardımcı olabileceğini umuyorum.

Bir fikrim, belirli bir bağlantı noktasını kullanmak için iletimi zorlamak olurdu, yani 33442, ve sonra sadece VPN sunucusunun IP adresinden gelen ve o bağlantı noktasından gelen trafiğe izin ver. Ubuntu sunucu rehberini kontrol ettim ve sanırım böyle bir şey yapabilirim:

sudo ufw enable
sudo ufw deny port tcp from localhost to any port 33442
sudo ufa allow port tcp from localhost to VPNIP port 33442
sudo ufw deny port udp from localhost to any port 33442
sudo ufa allow port udp from localhost to VPNIP port 33442

Bu mantık tuzu tutar mı? Nasıl yapardın? VPNIP için ne kullanmalıyım, VPN sunucusunun genel IP adresi mi yoksa VPN'nin bana bağladığı yerel alt ağ alanını mı belirtmeliyim?

Yardımlarınız için teşekkürler!

    
sordu Evan 28.04.2011 01:15

4 cevap

22
sudo groupadd vpnroute
sudo iptables -A OUTPUT -m owner --gid-owner vpnroute \! -o tun0 -j REJECT
sudo -g vpnroute transmission-gtk &
    
verilen cevap Anne Onyme 24.10.2012 02:49
4

Bu, başsız bir iletim için çalışıyor, iletim hizmetini çalıştıran kullanıcıya dayalı trafiği kısıtlıyorum, 10.0.0.0/8 , ağınıza uyacak şekilde değiştirmeniz gereken iç ağınız, tun0 , OpenVPN arabiriminizdir, eth0 , LAN bağlantınızdır.

Kök değilse, sudo komutlarına ekleyin:

iptables -F (Mevcut tüm kuralları yıkamak için -F anahtarını kullandık, böylece yeni kuralların ekleneceği temiz bir durumla başlarız.)

iptables -L (mevcut ayarı listele)

NET=10.0.0.0/8
GROUP=debian-transmission
IFACE_INTERNAL=eth0
IFACE_VPN=tun0
ALLOW_PORT_FROM_LOCAL=9091
iptables -A OUTPUT -d $NET -p tcp --sport $ALLOW_PORT_FROM_LOCAL -m owner --gid-owner $GROUP -o $IFACE_INTERNAL -j ACCEPT
iptables -A OUTPUT -d $NET -p udp --sport $ALLOW_PORT_FROM_LOCAL -m owner --gid-owner $GROUP -o $IFACE_INTERNAL -j ACCEPT
iptables -A OUTPUT -m owner --gid-owner $GROUP -o $IFACE_VPN -j ACCEPT
iptables -A OUTPUT -m owner --gid-owner $GROUP -o lo -j ACCEPT
iptables -A OUTPUT -m owner --gid-owner $GROUP -j REJECT

yeniden başlatıldıktan sonra iptables'i kalıcı hale getirin

apt-get install iptables-persistent
service iptables-persistent start
    
verilen cevap TheZeroth 08.05.2014 09:08
3

İdeal olarak, belirli bir arayüze (VPN arayüzü) bağlanmak için bir özelliği olan bir torrent istemcisi kullanmalısınız.

Torrent müşterileri arasında, Deluge bunu yapıyor. Böylece Deluge'yi yükleyebilir ve arayüzü Tercihler bölümünde yapılandırabilirsiniz ve siz de ayarlanmışsınız!

    
verilen cevap user4124 28.04.2011 02:26
2

Burada, debian-transmisyon kullanıcı grubunun (yani iletimin) sadece vpn

üzerinden veri yolladığından emin olmak için NOOBS (debian kullanarak) için tam bir 'NASIL YAPILIR?'

Karmaşık sistem komut dosyalarına dayalı olarak vpn için daha uzun 'Nasıl yapılır' kullanmayın ...! iptables EN İYİ (ve kusursuz) YÖNTEM !!! - Şanzıman kullanıcısı ve grubu vpn'yi kontrol edecek bir FEW IPTABLE KURALLARININ KULLANILMASI (systemd betikleri, yukarı ve aşağı komut dosyaları vb. kullanan daha karmaşık 'hack' yöntemlerine benzemeyen ...) ve soooo basit!

Adım 1 - Kurulum: (İletim yüklüdür ve debian-transmission kullanıcısı var demektir!)

sudo apt-get install iptables
sudo apt-get install iptables-persistent

Adım 2 - İletim ipucu kuralları dosyasını oluşturun

sudo nano transmission-ip-rules

ve aşağıdaki kod bloğundaki metni #!/bin/bash

'den başlayarak ekleyin.

ÖNEMLİ

  • Yerel ağınız formda değilse 192.168.1.x NET değişkenini kendi yerel ağ adresleme biçiminize uygun olarak değiştirin !!
  • Ayrıca, 192.168.1.0/25 aslında 192.168.1.0-255 aralığını veren tuhaflıktan haberdar olun!
  • Bazen arabirimleriniz eth0, tun0 (vpn'dir) vb. belki farklı olabilir - 'ifconfig' ile kontrol edin ve gerekirse değiştirin.
#!/bin/bash
# Set our rules so the debian-transmission user group can only route through the vpn
NET=192.168.1.0/25
GROUP=debian-transmission
IFACE_INTERNAL=eth0
IFACE_VPN=tun0
ALLOW_PORT_FROM_LOCAL=9091
iptables -A OUTPUT -d $NET -p tcp --sport $ALLOW_PORT_FROM_LOCAL -m owner --gid-owner $GROUP -o $IFACE_INTERNAL -j ACCEPT
iptables -A OUTPUT -d $NET -p udp --sport $ALLOW_PORT_FROM_LOCAL -m owner --gid-owner $GROUP -o $IFACE_INTERNAL -j ACCEPT
iptables -A OUTPUT -m owner --gid-owner $GROUP -o $IFACE_VPN -j ACCEPT
iptables -A OUTPUT -m owner --gid-owner $GROUP -o lo -j ACCEPT
iptables -A OUTPUT -m owner --gid-owner $GROUP -j REJECT
# not needed - but added these to properly track data to these interfaces....when using iptables -L -v
iptables -A INPUT -i $IFACE_VPN -j ACCEPT
iptables -A INPUT -i $IFACE_INTERNAL -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
# track any forward (NAT) data for completeness - don't care about interfaces
iptables -A FORWARD

Dosyayı kaydedin ve çalıştırın

sudo iptables -F 
sudo chmod +x transmission-ip-rules
sudo ./transmission-ip-rules

sonra bu kuralların aşağıdakilerle yeniden başladığından emin olun:

sudo dpkg-reconfigure iptables-persistent

ve her iki iletiye de evet'e dokunun. YAPILAN!

Bu komut dosyasıyla ilgili harika olan, cihazdaki tüm verileri izleyebilmesi! Sorduğunuzda

sudo iptables -L -v

vpn komut dosyasının düzgün çalıştığından emin olmak için hangi arabirime ve hangi tarafa GİRİŞ veya ÇIKIŞ'a ne kadar veri gittiğini gösterecektir. Örneğin

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination                                                                                         
1749K  661M ACCEPT     all  --  tun0   any     anywhere             anywhere                                                                                            
3416K 3077M ACCEPT     all  --  eth0   any     anywhere             anywhere                                                                                            
 362K  826M ACCEPT     all  --  lo     any     anywhere             anywhere                                                                                            

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination                                                                                         
    0     0            all  --  any    any     anywhere             anywhere                                                                                            

Chain OUTPUT (policy ACCEPT 2863K packets, 2884M bytes)
 pkts bytes target     prot opt in     out     source               destination                                                                                         
 1260  778K ACCEPT     tcp  --  any    eth0    anywhere             192.168.1.0/                                                                                        25       tcp spt:9091 owner GID match debian-transmission
    0     0 ACCEPT     udp  --  any    eth0    anywhere             192.168.1.0/                                                                                        25       udp spt:9091 owner GID match debian-transmission
1973K 1832M ACCEPT     all  --  any    tun0    anywhere             anywhere                                                                                                     owner GID match debian-transmission
 8880  572K ACCEPT     all  --  any    lo      anywhere             anywhere                                                                                                     owner GID match debian-transmission
13132  939K REJECT     all  --  any    any     anywhere             anywhere                                                                                                     owner GID match debian-transmission reject-with icmp-port-unreachable

Bu betik, bağlantılarda bağlantısız bir şekilde test edildi, bağlantı kesildi, vpn'den yeniden başlatıldı. Harika çalışıyor. Şanzıman SADECE VPN kullanabilir. Bu betiğin diğerlerine göre en büyük avantajı, verilerinizin aktarımla çektiği (her biri için INPUT (all) ve Forward (all) kuralları ekleyerek görebildiğiniz gibi ( iptables -L -v yoluyla) emin olduğunuzdan emin olduğumdur. arayüz eth0, vpn (tun0)). Yani tam olarak ne olduğunu biliyorsunuz! Veri toplamları aktarımla tam olarak uyuşmayacaktır - Ne yazık ki, INPUT tarafında debian-transmisyon kullanıcısına ayrım yapamıyorum ve aynı VPN'yi kullanarak hem ekstra yük hem de diğer süreçler olacaktır, ancak verileri kabaca bir şekilde göreceksiniz. INPUT tarafında ve çalışmasını onaylayan vpn için OUTPUT'un yaklaşık yarısıdır. Dikkat edilmesi gereken başka bir şey - bir süre sonra vpn bağlantı kesilmesi (tüm trafik iletim ile durur) ve yeni vpn 'iletmek' iletimi için yeniden bağlanın, bu yüzden yeniden torrent başlatmak için yaklaşık 5 dakika sürerse endişelenmeyin. .

TIP - Google "iptables iptables" ve bilmek istiyorsanız bant genişliği izleme hakkındaki bu makaleye bakın. Bu betiğin nasıl çalıştığını satır ...

    
verilen cevap Musclehead 30.09.2017 11:59

Etiketlerdeki diğer soruları oku