Berikut ini adalah 'CARA UNTUK' yang lengkap untuk NOOBS (menggunakan debian) untuk memastikan grup pengguna transmisi-debian (yaitu transmisi) hanya merutekan data melalui vpn
JANGAN gunakan 'How to' yang lebih panjang untuk vpn berdasarkan skrip sistem yang rumit ...! iptables adalah METODE TERBAIK (dan sangat mudah) !!! - MENGGUNAKAN BEBERAPA ATURAN IPTABLE yang didasarkan pada pengguna dan grup transmisi untuk mengontrol vpn (tidak seperti banyak metode 'peretasan' yang lebih kompleks yang menggunakan skrip systemd, skrip atas dan bawah dll ...) dan sangat sederhana!
Langkah 1 - Pengaturan: (Diasumsikan transmisi telah terpasang dan oleh karena itu, pengguna transmisi debian!)
sudo apt-get install iptables
sudo apt-get install iptables-persistent
Langkah 2 - Buat file transmission-ip-rules
sudo nano transmission-ip-rules
dan tambahkan teks dalam blok kode di bawah ini mulai dari #!/bin/bash
PENTING
- Jika jaringan lokal Anda bukan dari bentuk 192.168.1.x Ubah variabel NET agar sesuai dengan format pengalamatan jaringan lokal Anda sendiri !!.
- Perlu diketahui juga tentang kekhasan yang 192.168.1.0/25 benar-benar memberikan kisaran 192.168.1.0-255!
- Kadang-kadang antarmuka Anda eth0, tun0 (yang merupakan vpn) dll. Mungkin berbeda - periksa dengan 'ifconfig' dan ubah jika perlu.
#!/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
Simpan file dan kemudian jalankan
sudo iptables -F
sudo chmod +x transmission-ip-rules
sudo ./transmission-ip-rules
lalu pastikan aturan ini tetap ada antara reboot dengan:
sudo dpkg-reconfigure iptables-persistent
dan ketuk ya untuk kedua petunjuk. DIBUAT!
Apa yang hebat tentang skrip ini adalah ia akan melacak semua data melalui perangkat! Saat Anda mengeluarkan
sudo iptables -L -v
itu akan menunjukkan berapa banyak data yang pergi ke antarmuka mana dan sisi mana INPUT atau OUTPUT sehingga Anda dapat yakin bahwa skrip vpn berfungsi dengan baik. Misalnya;
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
Script ini telah diuji secara mendalam pada koneksi, terputus, reboot dari vpn. Ini bekerja dengan baik. Transmisi HANYA dapat menggunakan VPN. Keuntungan besar skrip ini dibandingkan yang lain adalah bahwa saya telah memastikan seperti yang Anda lihat (viaiptables -L -v
) bahwa data Anda sesuai dengan apa yang ditarik transmisi (dengan menambahkan aturan INPUT (semua) dan Maju (semua) untuk setiap antarmuka eth0, vpn (tun0)). Jadi, Anda tahu persis apa yang terjadi !!! Total data tidak akan persis sesuai dengan transmisi - Sayangnya saya tidak dapat membedakan sisi INPUT ke pengguna transmisi debian, dan akan ada overhead tambahan dan mungkin proses lain menggunakan VPN yang sama, tetapi Anda akan melihat data yang kira-kira masuk akal. di sisi INPUT dan sekitar setengah pada OUTPUT untuk vpn yang mengkonfirmasikan kerjanya. Hal lain yang perlu diperhatikan - perlu beberapa saat pada putuskan vpn (semua lalu lintas berhenti dengan transmisi) dan sambungkan kembali untuk transmisi 'pergi' pada vpn baru jadi jangan khawatir jika dibutuhkan sekitar 5 menit untuk mulai torrent lagi .. .
TIP - google 'MAN iptables' dan lihat artikel ini tentang pemantauan bandwidth jika Anda ingin tahu baris demi baris cara kerja skrip ini ...