सवाल यह कैसे जांचें कि ओपनवीपीएन सर्वर ओपनवीपीएन क्लाइंट का उपयोग किए बिना रिमोट पोर्ट पर सुन रहा है?


मुझे यह जांचने की ज़रूरत है कि एक ओपन वीपीएन (यूडीपी) सर्वर ऊपर दिए गए मेजबान पर है और पहुंच योग्य है: पोर्ट।

मेरे पास केवल एक ओपन वीपीएन क्लाइंट (और इसे इंस्टॉल करने का कोई मौका नहीं है) के साथ एक सादा विंडोज एक्सपी कंप्यूटर है और सर्वर से कनेक्ट करने के लिए आवश्यक कोई भी कुंजी नहीं है - केवल सामान्य WinXP कमांड लाइन टूल्स, ब्राउज़र और पुटी मेरे स्वभाव में हैं।

अगर मैं एसएमटीपी या पीओपी 3 सीरवर्ट की तरह कुछ परीक्षण कर रहा था तो मैं टेलनेट का उपयोग करता हूं और देखता हूं कि यह जवाब देता है, लेकिन ओपनवीपीएन (यूडीपी) के साथ ऐसा कैसे करें?


36
2018-04-22 09:01


मूल


अगर ओपन वीपीएन टीसीपी के माध्यम से चल रहा है, तो आप टेलनेट भी कर सकते हैं - rvs
ओपनवीपीएन यूडीपी के माध्यम से चल रहा है - Ivan
क्या आप विस्तारित कर सकते हैं कि आप इसे एक अप्रचलित विंडोज सिस्टम से क्यों हल करना चाहते हैं, न कि वास्तविक निगरानी प्रणाली से? - Alex Holst
यदि यूडीपी ओपन वीपीएन सर्वर (अनुशंसित) का उपयोग करता है tls-auth कॉन्फ़िगरेशन विकल्प, तो यह असंभव है (यदि आपके पास कम से कम बाहरी रैपर कुंजी नहीं है)! गलत एचएमएसी हस्ताक्षर वाले किसी भी पैकेट को सर्वर द्वारा प्रतिक्रिया के बिना त्याग दिया जाएगा। - Alex Stragies


जवाब:


यहां एक खोल एक-लाइनर है:

echo -e "\x38\x01\x00\x00\x00\x00\x00\x00\x00" | 
   timeout 10 nc -u openvpnserver.com 1194 | cat -v

अगर दूसरे छोर पर ओपन वीपीएन है तो आउटपुट होगा

@$M-^HM--LdM-t|M-^X^@^@^@^@^@@$M-^HM--LdM-t|M-^X^@^@^@^@^@@$M-^HM--LdM-t|M-^X...

अन्यथा यह 10 सेकंड के बाद म्यूट और टाइमआउट होगा या कुछ अलग प्रदर्शित करेगा।

नोट: यह केवल तभी काम करता है tls-auth कॉन्फ़िगरेशन विकल्प सक्रिय नहीं है, अन्यथा सर्वर गलत HMAC वाले संदेशों को अस्वीकार करता है।


44
2018-01-17 16:26



मुझे कुछ अलग मिलता है, लेकिन मुझे कुछ मिलता है। धन्यवाद। - artfulrobot
बस स्पष्ट करने के लिए, यह लिनक्स / यूनिक्स के लिए है, विंडोज़ के लिए नहीं। और इसके लिए नेटकैट की आवश्यकता है (कुछ distros में डिफ़ॉल्ट रूप से स्थापित नहीं है)। साथ ही, यदि आपके लिनक्स डिस्ट्रो में "टाइमआउट" कमांड नहीं है, तो बस "nc -w 10 -u openvpnserver.com 1194" जैसे netcat "-w" पैरामीटर का उपयोग करें। - MV.
यह भयानक fscking है। - dmourati
यह ओपी परिदृश्य में काम नहीं करेगा, अगर सर्वर का उपयोग करता है tls-auth गलत एचएमएसी एसआईजी के साथ पैकेट ड्रॉप करने के लिए विन्यास विकल्प। - Alex Stragies
मुझे पाइपिंग मिलती है od -x -N 14 बजाय cat -v अधिक उपयोगी है क्योंकि आप ए) एएससीआईआई कचरे के बजाय वास्तविक बाइनरी सामग्री देख सकते हैं और बी) आउटपुट की प्रत्येक पंक्ति को तुरंत प्राप्त करें क्योंकि सर्वर प्रत्येक हैंडशेक पैकेट भेजता है और इसे तुरंत बाद में रोक देता है। -N 14 क्योंकि हैंडशेक पैकेट 14 बाइट लंबा है और बस दोहराता है। - BaseZen


क्षमा करें अगर मैं अपने उत्तर के साथ थोड़ा देर हो चुकी हूं;)
निम्नलिखित सामग्री के साथ एक udp पैकेट भेजें:
$ 38 $ 01 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00
सर्वर को कुछ जवाब देना चाहिए।
आप इस तरह पाइथन के साथ udp पैकेट फोर्ज कर सकते हैं:

import socket
senddata= "\x38\x01\x00\x00\x00\x00\x00\x00\x00"

def checkserver(ip,port):
   print('Checking %s:%s' %(ip,port)) 
   sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
   sock.settimeout(5) # in seconds
   sock.connect((ip, port))
   print("Sending request...")
   sock.send(senddata)
   try:
      dta=sock.recv(100)
      print("Server reply: %s" %(dta))
   except:
      print("Server not responding")
   sock.close()
   print("###########################################################")

def main():
   checkserver("addr.of.server1",1194)
   checkserver("addr.of.server2",1195)

if __name__ == "__main__":
   main()

5
2017-10-30 07:56



जैसा कि लिक का जवाब कहता है, यह काम नहीं करता है tls-auth। - tedder42
पायथन 3 लाइन 10 के लिए एक मुद्दा होगा। "Sock.send (senddata)" को "sock.send (senddata.encode ())" से बदलें "और यह काम करेगा। - NDB


इस पर चल रहे किसी भी व्यक्ति के लिए जो सर्वर पर नजर रखने की कोशिश कर रहा है tls-auth सक्षम, आप यहां पाइथन लिपि का उपयोग कर सकते हैं: https://github.com/liquidat/nagios-icinga-openvpn

आउटपुट को नागोइस या इइसेसा में उपयोग के लिए स्वरूपित किया गया है, लेकिन इसे किसी भी चीज़ / किसी के द्वारा चलाया जा सकता है, बशर्ते आपके पास पाइथन और टीएलएस कीफाइल उपलब्ध हो।

उदाहरण के लिए, यदि आप उपयोग कर रहे हैं SHA256 आपके पाचन के रूप में, आप कुछ इस तरह का उपयोग करेंगे:

python check-openvpn.py -p 1194 --tls-auth ta.key --digest SHA256 vpn-server.example.com

नोट: आपको जोड़ने की आवश्यकता हो सकती है --tls-auth-inverse सर्वर के आधार पर key-direction मूल्य।


1
2018-01-31 21:14





आप सीएलआई में निम्नलिखित चलाने की कोशिश कर सकते हैं

#netstat -ltnup

यह आपके सर्वर / सिस्टम पर सुन रहे सभी प्रक्रियाओं को सूचीबद्ध करना चाहिए। आप जिस पोर्ट नंबर को चाहते हैं उसके लिए Grep

#netstat -ltnup | grep 1194

0
2018-04-22 12:49



ओपी में केवल विंडोज एक्सपी टूल्स हैं। - Iain


यदि आप ओपनवीपीएन सर्वर इंटरैक्शन पर वैध ओपनवीपीएन क्लाइंट का एक पॅक प्राप्त कर सकते हैं, तो आप टाइटन द्वारा सुझाए गए अनुसार नेटकैट जैसे कुछ पैकेट के प्रारंभिक सेट को मॉडल कर सकते हैं।

असल में, आप सर्वर को कम से कम एक त्रुटि संदेश के साथ प्रतिक्रिया देने के लिए एक वैध पहले पैकेट चाहते हैं, इसलिए इसे बिल्कुल सही नहीं होना चाहिए, बस इतना अच्छा है।

मैंने जाने की कोशिश की http://pcapr.net, लेकिन मुझे वहां एक ओपन वीपीएन उदाहरण नहीं मिला। शायद, अगर कोई और सेवा का दावा कर रहा है, तो आप लेनदेन के एक पेप को पकड़ने के लिए उस दूसरे व्यक्ति को प्राप्त कर सकते हैं।


0
2018-04-22 19:02





यदि आपने टीसीपी पर ओपन वीपीएन सेट किया है तो इसे सरल के रूप में सुनें

telnet vpnserver 1194

मानते हुए कि 1194 वह बंदरगाह है जिसे आपने सुना है

यह आपको दिखाने के लिए किसी प्रकार का जवाब देना चाहिए कि ओपन वीपीएन सर्वर सुन रहा है


-4
2018-04-22 09:25



क्या आप 100% निश्चित हैं? जब मैं ऐसा करता हूं, तो मुझे कुछ प्रतीक्षा के बाद "पोर्ट 1194 पर होस्ट से कनेक्शन नहीं खोल सका: कनेक्ट विफल"। ओपन वीपीएन सर्वर प्रतिक्रिया देने से पहले क्लाइंट पहले कुछ नहीं कहने वाला था? - Ivan
ध्यान दें कि डिफ़ॉल्ट रूप से OpenVPN केवल यूडीपी-केवल है और टेलनेट टीसीपी का उपयोग करने के लिए है। - Ivan