stpnel vpn ट्रैफ़िक और यह सुनिश्चित करें कि यह पोर्ट 443 पर SSL ट्रैफ़िक जैसा दिखता है


13

मैं अपने आउटगोइंग और इनकमिंग ट्रैफिक को वैसा ही बनाने की कोशिश कर रहा हूं, जैसा कि एसएसएल ट्रैफिक के करीब है। क्या यह सुनिश्चित करने के लिए मेरा अपना ट्रैफ़िक डीपीआई करने का एक तरीका है कि यह एसएसएल ट्रैफ़िक जैसा दिखता है न कि ओपनवीपीएन ट्रैफ़िक? और मेरे कॉन्फ़िगर सेटअप के आधार पर सभी ट्रैफ़िक पोर्ट 443 का उपयोग करता है जो एसएसएल पोर्ट है?

मेरा विन्यास इस प्रकार है:

लैपटॉप पर STUNNEL:

[openvpn]
# Set sTunnel to be in client mode (defaults to server)
client = yes  
# Port to locally connect to
accept = 127.0.0.1:1194  
# Remote server for sTunnel to connect to
connect = REMOTE_SERVER_IP:443

लैपटॉप पर OPENVPN CONFIG:

client
dev tun
proto tcp
remote 127.0.0.1 1194
resolv-retry infinite
nobind
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
persist-key
persist-tun

सर्वर पर STUNNEL CONFIG:

sslVersion = all
options = NO_SSLv2
;chroot = /var/lib/stunnel4/
; PID is created inside the chroot jail
pid = /stunnel4.pid
; Debugging stuff (may useful for troubleshooting)
 debug = 7
 output = /var/log/stunnel4/stunnel4.log
setuid = root
setgid = root
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
compression = zlib
[openvpn]
accept = REMOTE_SERVER_IP:443
connect = REMOTE_SERVER_IP:11440
cert=/etc/stunnel/server.pem
key=/etc/stunnel/server.key

सर्वर पर OPENVPN CONFIG:

local REMOTE_SERVER_IP
port 11440
proto tcp

वीपीएन के साथ नए पहलुओं को सीखने और विश्लेषण प्रोटोकॉल के साथ-साथ नेटवर्क प्रोटोकॉल को समझने की कोशिश ...
जेसन

2
आप अपने लैपटॉप पर चल रहे वायरशर्क के साथ 2 के प्रश्न का उत्तर दे सकते हैं और संभवत: रास्ते में बहुत कुछ सीख सकते हैं
एलेक इस्तोमिन

ऐसा नहीं है कि आप शायद TLS संपीड़न (CRIME के ​​कारण) को अक्षम कर दें और अपने TLS सुरंग ( सर्वर साइड और क्लाइंट साइड) पर साधारण हमलों से बचने के लिए TLS प्रोटोकॉल और क्रिप्टोसुइट्स की संख्या को सीमित कर दें, यदि आप वास्तव में इसका उपयोग करना चाहते हैं विश्व।
ysdx

आप एसएसएल / टीएलएस के लिए अन्य पोर्ट उपयोगकर्ता कर सकते हैं। मैं भी इसे SCTP और IPv6 पर करता हूं।
स्केपरन

जवाबों:


22

टीएलएस पर ओपनवीपीएन

आपका वीपीएन ट्रांसपोर्ट प्रोटोकॉल के रूप में टीसीपी का उपयोग कर रहा है। टीएसएस / टीसीपी में टीसीपी स्ट्रीम की सामग्री को एनकैप्सुलेट करने के लिए स्टनलाइन इंस्टेंस का उपयोग किया जाता है। आपको यह प्रोटोकॉल स्टैक मिलता है:

[आईपी] <------------------------> [आईपी]
[OpenVPN] <------------------------> [OpenVPN]
            [TLS] <~~~~~> [TLS]
[टीसीपी] <-> [टीसीपी] <-----> [टीसीपी] <-> [टीसीपी]
[आईपी] <-> [आईपी] <-----> [आईपी] <-> [आईपी]
[] [] [] []
 सर्वर stunnel stunnel क्लाइंट

Stunnel उदाहरणों के बीच आपके पास वायर पर यह प्रोटोकॉल स्टैक होता है:

[आईपी]
[ओपनवीपीएन]
[टीएलएस]
[टीसीपी (443)]
[आईपी]
[...]

जैसा कि टीएलएस अपने पेलोड को एन्क्रिप्ट करता है, एक हमलावर केवल देख सकता है:

[??? ]
[टीएलएस]
[टीसीपी (443)]
[आईपी]
[...]

तो हाँ, यह सादा टीएलएस ट्रैफ़िक है (यह ट्रैफ़िक देखने वाले किसी व्यक्ति के लिए HTTP / TLS, SMTP / TLS, POP / TLS या कुछ और भी हो सकता है लेकिन यह HTTP / TLS की तरह ही दिखता है क्योंकि TCP पोर्ट 443 का उपयोग किया जाता है)। आप वायरशार्क का उपयोग करके इसकी जांच कर सकते हैं: स्टनलाइन उदाहरणों के बीच ट्रैफ़िक रिकॉर्ड करें। वायरशर्क यूआई (स्ट्रीम के एक पैकेट पर राइट बटन) में, आप वायरशर्क को टीएलएस के रूप में ट्रैफ़िक की व्याख्या करने के लिए कह सकते हैं: इसे टीएलएस ट्रैफ़िक के रूप में पहचाना जाएगा (आपको अलग-अलग टीएलएस संदेश दिखाई देंगे, लेकिन टीएलएस सत्र का पेलोड नहीं) ।

आप एक आधुनिक ब्राउज़र क्या करेंगे जैसे देखने के लिए ग्राहक में एसएनआई का उपयोग करना चाह सकते हैं । आप भले ही ALPN का उपयोग करना चाहते हों, लेकिन stunnel वर्तमान में ऐसा नहीं करता है।

ओपन वीपीएन बिल्डिन टीएलएस के साथ

इसकी तुलना में, यदि आप OpenVPN का उपयोग कर रहे हैं, तो आपके पास कुछ इस तरह होगा:

[आईपी]
[ओपनवीपीएन]
[टीसीपी]
[आईपी]
[...]

जो इस तरह दिखता है:

[??? ]
[ओपनवीपीएन]
[टीसीपी]
[आईपी]
[...]

बिल्ट टीएलएस परत आईपी (आईपी, ईथरनेट) पैकेट को एनकैप्सुलेट नहीं करता है, लेकिन इसका उपयोग केवल सत्र और प्रामाणिक विवरण सेट करने के लिए किया जाता है:

[टीएलएस]
[ओपनवीपीएन]
[टीसीपी]
[आईपी]
[...]

इस मामले में, आपका ट्रैफ़िक एक सादा टीएलएस ट्रैफ़िक की तरह नहीं दिखता है, लेकिन स्पष्ट रूप से ओपनवीपीएन है। यदि आप इस ट्रैफ़िक को ओपेन वीपीएन के रूप में वायरशार्क में व्याख्या करते हैं, तो आप ओपनवीपीएन संदेशों और उनके अंदर टीएलएस संदेशों (लेकिन पेलोड नहीं) को पहचान लेंगे ।

चेतावनी

आपको पता होना चाहिए कि अगर कोई निष्क्रिय हमलावर यह नहीं बता पाएगा कि आपका रिमोट सर्वर वास्तव में एक OpenVPN सर्वर है, तो एक सक्रिय हमलावर यह पता लगा सकेगा: बस TLS पर आपके सर्वर से जुड़ने से, वह सक्षम हो जाएगा पुष्टि करने के लिए यह है कि नहीं एक HTTP / TLS सर्वर। OpenVPN प्रोटोकॉल बोलने की कोशिश करने से, वह यह पता लगा सकेगा कि आपका सर्वर OpenVPN / TLS सर्वर है।

ग्राहक प्रमाणीकरण के साथ TLS पर OpenVPN

यह आप इस बात से चिंतित हैं कि आप टीएलएस क्लाइंट प्रमाणीकरण को सक्षम कर सकते हैं: एक हमलावर कार्यशील टीएलएस सत्र शुरू करने में सक्षम नहीं होगा और यह अनुमान लगाने में सक्षम नहीं होगा कि टीएलएस पर कौन सा पेलोड संलग्न है।

* चेतावनी: ** मैं ओपन वीपीएन में बिलिन टीएलएस समर्थन के बारे में बात नहीं कर रहा हूं (ऊपर एन स्पष्टीकरण के लिए देखें कि यह आपकी मदद क्यों नहीं करेगा)।

Multiplexed OpenVPN / TLS और HTTP / TLS

एक और उपाय टीएलएस सत्र में HTTP और OpenVPN दोनों की सेवा करना है। sslh का उपयोग प्रोटोकॉल के पेलोड का स्वचालित रूप से पता लगाने और या तो एक सादे HTTP / TCP सर्वर या आपको OpenVPN / TCP सर्वर पर भेजने के लिए किया जा सकता है। सर्वर मानक HTTP / TLS सर्वर की तरह दिखेगा, लेकिन इस सर्वर के साथ OpenVPN / TLS बोलने की कोशिश करने वाला कोई व्यक्ति यह पता लगा सकेगा कि यह वास्तव में OpenVPN / TLS सर्वर है।

        या तो OpenVPN / TCP
          या HTTP / टीसीपी       
[1] .---------। .------। HTTP / टीसीपी .-------------।
-> | stunnel | ----> | sslh | -------> | HTTP सर्वर |
   '---------' '------' | '-------------'
                           | .----------------।
                           '------> | OpenVPN सर्वर |
                        OpenVPN / टीसीपी '----------------'

[१] = या तो ओपनवीपीएन / टीएलएस / टीसीपी या एचटीटीपी / टीएलएस / टीसीपी

TLS पर HTTP कनेक्ट पर OpenVPN

एक अन्य समाधान एक मानक HTTP / TLS सर्वर का उपयोग करना और OpenVPN सर्वर से कनेक्ट करने के लिए HTTP CONNECT / TLS का उपयोग करना है: यह एक मानक HTTP सर्वर की तरह दिखेगा। यहां तक ​​कि HTTP कनेक्शन अनुरोध को अधिकृत करने के लिए आपको क्लाइंट के प्रमाणीकरण की आवश्यकता हो सकती है (स्क्विड यह करने में सक्षम होना चाहिए)।

OpenVPN के पास HTTP प्रॉक्सी का उपयोग करने का एक विकल्प है:

http-proxy proxy.example.com

आपको दूरस्थ HTTPS PROXY से कनेक्ट होने वाले स्टनलाइन उदाहरण के साथ इसे संयोजित करने में सक्षम होना चाहिए:

http-proxy 127.0.0.1 8443
remote vpn.example.com

जो इस प्रोटोकॉल स्टैक को लागू करेगा:

[आईपी] <------------------------> [आईपी]
[OpenVPN] <------------------------> [OpenVPN]
            [HTTP] <-------------> [HTTP]
            [TLS] <~~~~~> [TLS]
[टीसीपी] <-> [टीसीपी] <-----> [टीसीपी] <-> [टीसीपी]
[आईपी] <-> [आईपी] <-----> [आईपी] <-> [आईपी]
[] [] [] []
 सर्वर HTTPS PROXY stunnel क्लाइंट

क्या आप कृपया HTTP कनेक्ट दृष्टिकोण पर विस्तार से बता सकते हैं? मुझे इसे स्थापित करने के लिए एक गाइड कहां मिल सकता है?
२३'१ k को

kobtextify: OpenVPN / HTTP_CONNECT / TLS के संभावित कार्यान्वयन के बारे में कुछ विवरण जोड़े गए।
ysdx

धन्यवाद! वेब सर्वर या स्क्वीड भाग कैसा दिखेगा?
kontextify

मुझे लगता है जैसे «acl VPN_SERVER dstdomain vpn.example.com» «acl VPN_PORT पोर्ट 1194» «acl कनेक्ट विधि कनेक्ट करें» «http_access, VPN_SERER VPN_PORT CONNECT» «http_access सभी से इनकार करें»।
ysdx

4

ysdx का उत्तर बहुत अच्छा है, और बहुत अच्छी तरह से वर्णन करता है कि कैसे तार पर यातायात दिखाई देगा।

हालांकि, वामावर्त, यह है कि ट्रैफ़िक विश्लेषण अनुप्रयोगों की पहचान करने की दिशा में एक लंबा रास्ता तय कर सकता है।

मान लेते हैं कि आपका OpenVPN कनेक्शन तार पर https कनेक्शन की तरह दिखता है, इसलिए एक हमलावर बाइट स्ट्रीम को नहीं पढ़ सकता है और यह जान सकता है कि यह किस तरह का कनेक्शन है।

एक विशिष्ट https कनेक्शन बहुत अधिक समय तक नहीं रहेगा। हो सकता है कि आपका ब्राउज़र आपके मेल सर्वर के लिए एक कनेक्शन खुला रखे, मुझे नहीं पता। सामान्य तौर पर, बहुत सारे विविध दूरस्थ सर्वरों में अपेक्षाकृत कम कनेक्शन होंगे।

OTOH, OpenVPN कनेक्शन घंटे या दिनों के लिए रह सकता है, और आगे पीछे सर्वर के लिए बहुत सारा डेटा भेजेगा।

आप लंबे समय तक रहने वाले कनेक्शन को समय-समय पर छोड़ने और कनेक्शन को पुनरारंभ करके कम कर सकते हैं। यह संभवतः आपके आवेदन ट्रैफ़िक के लिए निहितार्थ है, लेकिन व्यावहारिक हो सकता है। आपके और Openvpn सर्वर के बीच जाने वाले बहुत सारे ट्रैफ़िक के पैटर्न, हालांकि, छलावरण के लिए बहुत कठिन होने जा रहे हैं।


2
हाँ। क्या अधिक है, मुझे लगता है कि यह यातायात के आकार को देखना संभव हो सकता है (जैसे कि इसकी "फटने") और इसकी तुलना मानक HTTP / TLS, IMAP / TLS, POP / TLS, OpenVPN / TLS से करना संभव है। आप ट्रैफ़िक के उन प्रोफाइल के साथ दिए गए टीएलएस ट्रैफ़िक को वर्गीकृत करने का प्रयास कर सकते हैं और आपके टीएलआर कनेक्शन में ट्रैफ़िक के प्रकार का अंदाज़ा लगा सकते हैं।
ysdx
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.