मैं यह सुनिश्चित कर सकता हूं कि ट्रांसमिशन ट्रैफिक वीपीएन का उपयोग कैसे करे?


31

मैं यह सुनिश्चित करना चाहूंगा कि जब सर्वर वीपीएन से जुड़ा हो तो ट्रांसमिशन केवल ट्रैफ़िक भेजता / प्राप्त करता है।

मुझे यह सवाल मिला जो समान है लेकिन मैं वीपीएन के माध्यम से सभी ट्रैफ़िक को बाध्य नहीं करना चाहता हूं और मुझे कमांड लाइन से फायरस्टार का उपयोग करने के तरीके के बारे में एक अच्छा गाइड नहीं मिल पाया है।

इसके बजाय मैं ufw का उपयोग करने के बारे में सोच रहा था, लेकिन मुझे फायरवॉल के साथ कोई अनुभव नहीं है, और मुझे उम्मीद है कि समुदाय मेरी मदद कर सकता है।

एक विचार मुझे एक विशिष्ट पोर्ट का उपयोग करने के लिए ट्रांसमिशन को बाध्य करने के लिए होगा, 33442, और उसके बाद ही वीपीएन सर्वर के आईपी पते से और उस पोर्ट से आवागमन की अनुमति दें। मैंने उबंटू सर्वर गाइड की जाँच की और मुझे लगता है कि ऐसा कुछ कर सकता है:

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

क्या यह तर्क अपना नमक रखता है? आपको इसे कैसे करना होगा? वीपीएनआईपी के लिए मैं क्या उपयोग करूंगा, वीपीएन सर्वर का सार्वजनिक आईपी, या मुझे स्थानीय सबनेट रेंज निर्दिष्ट करना चाहिए जो वीपीएन मुझे जोड़ता है?

आपकी सहायताके लिए धन्यवाद!

जवाबों:


25

vpnrouteसमूह बनाएँ :

sudo groupadd vpnroute

एक iptablesनियम जोड़ें जो vpnrouteसमूह के सदस्यों द्वारा किए गए किसी भी आउटगोइंग नेटवर्क कनेक्शन को अस्वीकार करता है जो tun0इंटरफ़ेस के माध्यम से नहीं जाता है:

sudo iptables -A OUTPUT -m owner --gid-owner vpnroute \! -o tun0 -j REJECT

vpnrouteसमूह के सदस्य के रूप में ट्रांसमिशन प्रक्रिया शुरू करें :

sudo -g vpnroute transmission-gtk &

1
यही वह है जिसकी तलाश में मैं हूं। धन्यवाद!
ताराम

3
चेतावनी: यह Deluge, AFAICT के साथ काम नहीं करता है क्योंकि Deluge sup प्रक्रियाओं को बंद कर देता है। मैंने इसे ध्यान से परीक्षण किया है और मेरा सेटअप सही है - sudo -g vpnroute ping google.com जब तक मैं वीपीएन को ट्यून पर सक्षम नहीं करता तब तक 'गंतव्य पहुंच से बाहर' दिखाई देगा। लेकिन Deluge UI हमेशा torrents डाउनलोड कर सकता है, चाहे वीपीएन कनेक्ट हो या न हो। Pgrep -G vpnroute के साथ मैंने यह पाया क्योंकि केवल प्रारंभिक / usr / bin / python प्रक्रिया vpnroute GID के तहत चलाई जाती है, स्पेल्ड डेल्यूज़-जीईडीसी प्रक्रिया नहीं लगती है।
हैप्पीस्केप्टिक

10
क्या कोई समझा सकता है कि इनमें से प्रत्येक चरण क्या करता है, बिल्कुल?
ohnoplus

2
ट्रांसमिशन में एक विशिष्ट पते को सुनने की क्षमता होती है - लेकिन एक विशिष्ट इंटरफ़ेस के लिए नहीं। जब कमांड लाइन से शुरू किया जाता है, --bind-address-ipv4 $IP_ADDRतो ट्रांसमिशन को बताएगा कि किस पते पर बांधना है। इसके बाद ट्रैफ़िक को सही स्थान पर पहुँचाने के लिए सही रूटिंग नियमों की आवश्यकता होती है। इस सवाल पर एक नज़र डालें कि मैं इसे कैसे करने में कामयाब रहा।
seanlano

3
@ohnoplus "vpnroute" नामक एक समूह बनाता है; एक फ़ायरवॉल नियम जोड़ता है जो उस समूह के सदस्यों द्वारा किए गए किसी भी आउटगोइंग नेटवर्क कनेक्शन को अस्वीकार करता है जो वीपीएन के माध्यम से नहीं जाता है (यहां इंटरफ़ेस "ट्यून" के रूप में परिभाषित किया गया है लेकिन कुछ सिस्टम अलग हो सकते हैं); "vpnroute" समूह के एक सदस्य के रूप में चल रही संचरण प्रक्रिया को शुरू करता है।
टॉमीपीनट्स

4

यह हेडलेस ट्रांसमिशन के लिए काम करता है, मैं उपयोगकर्ता के आधार पर ट्रैफ़िक को प्रतिबंधित कर रहा हूं जो ट्रांसमिशन सेवा चला रहा है, 10.0.0.0/8आपका आंतरिक नेटवर्क है जिसे आपको अपने नेटवर्क से मिलान करने के लिए इसे बदलना चाहिए, tun0यह आपका OpenVPN इंटरफ़ेस है, eth0आपका LAN कनेक्शन है।

sudoयदि आप रूट नहीं हैं, तो कमांड में जोड़ें :

iptables -F (हमने सभी मौजूदा नियमों को फ्लश करने के लिए -F स्विच का उपयोग किया है, इसलिए हम एक स्वच्छ राज्य से शुरू करते हैं जहां से नए नियमों को जोड़ना है।)

iptables -L (सूची वर्तमान सेटअप)

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

पुनरारंभ करने के बाद iptables को स्थिर रखें

apt-get install iptables-persistent
service iptables-persistent start

यह मुझे निम्नलिखित देता है: $ sudo iptables-OUTPUT -d 10.0.0.0/8 -p tcp --sport 9091 -m owner --gid-owner debian-ट्रांसमिशन -o eth0 -j ACCEPT टेबल्स v1.4.12: मालिक : "-गिड-ओनर" विकल्प के लिए खराब मूल्य: "डेबियन-ट्रांसमिशन" क्या मैं कुछ याद कर रहा हूं?
ओएनओप्लस

हां, @ohnoplus :) आपको पहले ग्रुप (या मालिक) डेबियन-ट्रांसमिशन बनाना होगा। और सुनिश्चित करें कि आप इस समूह या उपयोगकर्ता: समूह के रूप में अनुप्रयोग चला रहे हैं।
जोकिम

यह वही था जो मुझे ट्रांसमिशन रिमोट वेब इंटरफ़ेस को सक्षम करने के लिए आवश्यक था, धन्यवाद!
ज़ेन हूपर

4

NOOBS (डेबियन का उपयोग करके) डेबियन-ट्रांसमिशन उपयोगकर्ता समूह (यानी ट्रांसमिशन) केवल वीपीएन के माध्यम से डेटा को रूट करता है, यह सुनिश्चित करने के लिए यहां एक पूर्ण 'HOW TO' है।

जटिल प्रणाली लिपियों पर आधारित वीपीएन के लिए अधिक लंबे 'हाउ' का उपयोग न करें ...! iptables सबसे अच्छा (और मूर्ख) METHOD है !!! - वीपीएन को नियंत्रित करने के लिए ट्रांसमिशन यूजर और ग्रुप के आधार पर एक फीचर्ड आईपीएल रूल्स का उपयोग करना (न कि कई अधिक जटिल 'हैक' तरीकों की तरह जो सिस्टम स्क्रिप्ट, अप और डाउन स्क्रिप्ट आदि का उपयोग करते हैं ...) और यह सरल है!

चरण 1 - सेटअप: (माना जाता है कि ट्रांसमिशन स्थापित है और डेबियन-ट्रांसमिशन उपयोगकर्ता इसलिए मौजूद है!)

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

चरण 2 - ट्रांसमिशन-आईपी-नियम फ़ाइल बनाएँ

sudo nano transmission-ip-rules

और नीचे से शुरू कोड कोड में पाठ जोड़ें #!/bin/bash

जरूरी

  • यदि आपका स्थानीय नेटवर्क 192.168.1.x का नहीं है, तो अपने स्वयं के स्थानीय नेटवर्क कोडिंग प्रारूप के अनुरूप नेट चर को बदलें।
  • यह भी पता है कि 192.168.1.0/25 वास्तव में 192.168.1.0-255 सीमा देता है quirk के बारे में पता होना!
  • कभी-कभी आपके इंटरफेस में eth0, tun0 (जो कि vpn) आदि होता है .. शायद अलग-अलग - 'ifconfig' से चेक करें और ज़रूरत पड़ने पर बदल दें।
#!/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

फ़ाइल सहेजें और फिर चलाएं

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

फिर सुनिश्चित करें कि ये नियम रिबूट के बीच बने रहते हैं:

sudo dpkg-reconfigure iptables-persistent

और दोनों संकेतों पर हाँ टैप करें। किया हुआ!

इस स्क्रिप्ट के बारे में महान बात यह है कि यह डिवाइस के माध्यम से सभी डेटा को ट्रैक करेगा! जब आप जारी करते हैं

sudo iptables -L -v

यह दिखाएगा कि किस इंटरफेस में कितना डेटा जा रहा है और किस तरफ INPUT या OUTPUT ताकि आपको आश्वस्त किया जा सके कि vpn स्क्रिप्ट ठीक से काम कर रही है। उदाहरण के लिए,

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

इस स्क्रिप्ट को वीपीएन से कनेक्ट, डिस्कनेक्ट, रिबूट पर विस्तृत रूप से परीक्षण किया गया है। यह बहुत अच्छा काम करता है। ट्रांसमिशन केवल वीपीएन का उपयोग कर सकता है। दूसरों पर इस लिपि का बड़ा फायदा यह है कि मैंने यह सुनिश्चित कर लिया है कि आप (के माध्यम से) देख सकते हैंiptables -L -v) कि आपके डेटा को संचरण पर खींचा गया है (प्रत्येक इंटरफ़ेस के लिए INPUT (सभी) और फॉरवर्ड (सभी) नियम जोड़कर, vpn (tun0))। तो आप जानते हैं कि वास्तव में क्या हो रहा है !!! डेटा का योग संचरण के साथ बिल्कुल सही नहीं होगा - दुर्भाग्य से मैं डेबियन-ट्रांसमिशन उपयोगकर्ता के लिए नीचे INPUT में कोई भेदभाव नहीं कर सकता, और एक ही वीपीएन का उपयोग करके दोनों अतिरिक्त ओवरहेड और शायद अन्य प्रक्रियाएं होंगी, लेकिन आप डेटा को लगभग लंबा देखेंगे INPUT की ओर और इसके कार्य की पुष्टि करने वाले vpn के लिए OUTPUT पर लगभग आधा है। नोट करने के लिए एक और बात - यह वीपीएन डिस्कनेक्ट (ट्रांसमिशन के साथ सभी ट्रैफ़िक रुक जाता है) पर थोड़ी देर लेता है और नए वीपीएन पर ट्रांसमिशन के लिए फिर से कनेक्ट करता है इसलिए चिंता मत करो अगर इसे फिर से शुरू करने के लिए लगभग 5 मिनट लगते हैं .. ।

टिप - google 'मैन iptables' और देखो की निगरानी बैंडविड्थ पर इस लेख यदि आप लाइन कैसे काम करता है इस स्क्रिप्ट से लाइन में जानना चाहते हैं ...


192.168.1.0/25 की सीमा 192.168.1.0-127 है।
Zachary822

3

आदर्श रूप से आपको एक टोरेंट क्लाइंट का उपयोग करना चाहिए जिसमें एक विशिष्ट इंटरफ़ेस (वीपीएन इंटरफ़ेस) को बांधने की सुविधा है।

धार ग्राहकों के बीच, डेल्यूज ऐसा करता है। तो आप Deluge को इनस्टॉल कर सकते हैं और Preferences में इंटरफ़ेस को कॉन्फ़िगर कर सकते हैं और आप सेट हो गए हैं!


आपके उत्तर के लिए धन्यवाद। मैं वास्तव में इस क्षण के लिए ट्रांसमिशन का उपयोग करने के लिए बहुत तैयार हूं, लेकिन क्या आप जानते हैं कि ट्रांसमिशन के साथ विशिष्ट इंटरफ़ेस या आईपी रेंज (इसलिए यह केवल वीपीएन का उपयोग करता है) को बांधना संभव है? धन्यवाद!
इवान

2
@ user4124 क्या आप जानते हैं कि डेलुगेड को कमांड लाइन या वेबुई के माध्यम से एक विशिष्ट नेटवर्क इंटरफेस में कैसे बांधा जाता है? चूंकि किसी को यह पता नहीं लगता है कि ट्रांसमिशन के साथ यह कैसे करना है, मैं डेल्यूज़ की कोशिश कर रहा हूं, लेकिन अभी तक भाग्य नहीं था। धन्यवाद!
इवान

3
@ इवान आप डेलूज में बंधने के लिए आईपी पता निर्दिष्ट कर सकते हैं listen_interface, नेटवर्क विकल्प में डेल्यूज़ -कंसोल या इंटरफ़ेस के साथ।
कैस

हालांकि यह सच है, मुझे लगता है कि यह अभी भी बुरी सलाह है, भले ही आपका एकमात्र उद्देश्य आपके अवैध टोरेंट डाउनलोड को छुपाना हो, आपको अपनी वीपीएन गुमनामी को दूर करना चाहिए और उन समाधानों की तलाश करनी चाहिए जो सिस्टम व्यापक हैं और न केवल एक कार्यक्रम के लिए काम कर रहे हैं।
रेडानिमलवार
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.