वीपीएन सर्वर खोलने के लिए जुड़े हुए उपयोगकर्ताओं को कैसे देखें?


59

मैं OpenVPN उपयोगकर्ताओं को Django ढांचे के साथ प्रबंधित करने के लिए एक वेबसाइट विकसित कर रहा हूं। लेकिन मुझे यह जानने की जरूरत है कि OpenVPN से सक्रिय उपयोगकर्ताओं को निकालने का कोई तरीका है? मेरा सर्वर Ubuntu 12.04 चला रहा है।

जवाबों:


84

एक स्टेटस लॉग होना चाहिए जिसे आप देख सकते हैं कि आपको दिखाना है, मेरा है, परीक्षा के लिए:

cat /etc/openvpn/openvpn-status.log

संपादित करें:

एक विकल्प के रूप में, ध्वज को --management IP port [pw-file]जोड़ना या आपके लिए उसी निर्देश को जोड़ना server.conf, उदाहरण के लिए:

management localhost 7505

यह आपको उस पोर्ट पर टेलनेट करने की अनुमति देगा और आपको चलाने के लिए कमांड की एक सूची प्रदान करेगा:

telnet localhost 7505

help


1
धन्यवाद, लेकिन क्या कोई अन्य तरीका है जो फ़ाइल परिवर्तनों को देखने के लिए नहीं है? उदाहरण के लिए एक पुस्तकालय जो जुड़े हुए उपयोगकर्ताओं को सूचीबद्ध करता है?
बजे हामिद FzM

1
@ HamidFzM एक लाइब्रेरी के बारे में निश्चित नहीं है, आप मेरे द्वारा एडिट किए गए मैनेजमेंट इंटरफ़ेस का उपयोग कर सकते हैं; कृपया लोकलहोस्ट के अलावा किसी अन्य आईपी का उपयोग न करें क्योंकि यह निश्चित रूप से आपकी सुरक्षा के लिए एक
बाधा होगी

@ c4urself, .log के लिए मेरा आउटपुट है: bit.ly/1ORnsYp मैं कनेक्टेड उपयोगकर्ताओं को कहां देख सकता हूं? क्या इस .log के माध्यम से उन्हें ips सौंपा जाना संभव है?
मैक्सिम वी। पावलोव

@ MaximV.Pavlov ऐसा लगता है कि कोई भी आपके मामले में जुड़ा हुआ नहीं है। हां, आईपी पते दिखाए जाते हैं।
c4urself

2
/etc/openvpn/openvpn-status.logडेबियन पर मेरे लिए काम नहीं किया, यह कभी नहीं बदला, इसके बजाय /var/run/openvpn/server.statusपूरी तरह से काम किया।
नेल्सन

20

@Sekrett उत्तर को पूरा करने के लिए :

killall -USR2 openvpn ; tail -f /var/log/syslog

यह चलता रहेगा, यह "नियमित" मार नहीं है, बस कुछ आँकड़े छापने का अनुरोध है।

प्रदर्शित आँकड़े बहुत पठनीय हैं। नमूना उत्पादन:

Oct 14 07:34:14 vpn2 openvpn[20959]: Updated,Fri Oct 14 07:34:14 2016
Oct 14 07:34:14 vpn2 openvpn[20959]: Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
Oct 14 07:26:26 vpn2 openvpn[20959]:
10.8.0.132,hostname1,213.219.XXX.XXX:63765,Fri Oct 14 07:25:01 2016
Oct 14 07:26:26 vpn2 openvpn[20959]:
10.8.0.242,hostname2,213.219.XXX.XXX:62416,Sun Sep 25 03:49:19 2016

सुधार के लिए धन्यवाद। मेरा जवाब सही था लेकिन इसमें एक उदाहरण और स्पष्टीकरण का अभाव है। :)
sekrett

7

मुझे स्वयं की समान आवश्यकता थी और मुझे पता चला सबसे आसान समाधान प्रबंधन इंटरफ़ेस से कनेक्ट करने के लिए उल्लेखित टेलनेट का उपयोग करना था (आपको सर्वर कॉन्फ़िगरेशन फ़ाइल में प्रबंधन : लोकलहोस्ट 6666 जोड़ना होगा )।

आप कर सकते हैं ग्राहक की सही संख्या प्राप्त करने के लिए:

  • टेलनेट लोकलहोस्ट 6666
  • स्थिति

फिर आपको बहुत सारे लॉग मिलेंगे:

10.9.10.11,test-docker,52.58.48.98:56859,Wed May  4 09:37:34 2016
10.9.7.45,test-docker,52.58.156.80:38774,Wed May  4 09:36:59 2016
10.9.1.103,test-docker,52.58.161.230:52201,Wed May  4 09:35:47 2016
GLOBAL STATS
Max bcast/mcast queue length,0
END
>CLIENT:ESTABLISHED,19845
>CLIENT:ENV,n_clients=19361
>CLIENT:ENV,time_unix=1462357164
  • =>> ग्राहक: ENV, n_clients = 19361 देखें

मेरे मामले में चूंकि मेरे पास बहुत बड़ी संख्या में ग्राहक हैं, इसलिए लॉग फ़ाइल का उपयोग करना निश्चित रूप से बहुत व्यावहारिक नहीं है।


आपके स्टेटस कमांड ने मेरी मदद की, thx
मोहम्मद नौरेल्डिन

4

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


क्या आप इसके लिए कमांड लिख सकते हैं?
शयन_ आर्यन

1
@MichaelC यह लिखा है: killall -USR2 openvpn। फिर लॉग देखें। यह डिस्ट्रो पर निर्भर करता है /var/log/syslogया हो सकता है /var/log/messages
सेक्सी

लेकिन यह खुलेपन को नहीं मारता है?
शयन_ आर्यन

killकमांड अलग-अलग सिग्नल भेज सकता है, USR2 नहीं मारेगा, यह सिर्फ एक सिग्नल है। आप यहाँ एक सूची देख सकते हैं: linux.org/threads/kill-signals-and-commands-revised.11625 या चलाकर kill -l
16:13 पर सेक्रेट

मैंने बस कोशिश की। यह कनेक्टेड क्लाइंट काउंट के बारे में जानकारी नहीं देता है
Shayan_Aryan

3

मैं हमारी कंपनी OpenVPN सर्वर का प्रबंधन करता हूं और जिस तरह से मैं सक्रिय कनेक्शन देखता हूं वह इस प्रकार है,

/etc/openvpn/server.conf में जोड़ें

management 127.0.0.1 5555

Openvpn सर्वर को पुनरारंभ करें

systemctl restart openvpn@server.service

OpenVPN Monitor Python पैकेज जोड़ें - यह एक Gunicorn वेब सर्वर के माध्यम से चलेगा और सक्रिय कनेक्शन दिखाएगा,

mkdir /opt/openvpn-monitor

एक आभासी env बनाएँ (आवश्यक नहीं है, लेकिन py संकुल के साथ अच्छा अभ्यास)

cd /opt/openvpn-monitor
virtualenv venv
source venv/bin/activate

आवश्यक पैकेज स्थापित करें

pip install openvpn-monitor gunicorn

एक मॉनिटर विन्यास फाइल जोड़ें

vi /opt/openvpn-monitor/openvpn-monitor.conf

[openvpn-monitor]
site=your-openvpn-site
#logo=logo.jpg
#latitude=40.72
#longitude=-74
maps=True
geoip_data=/var/lib/GeoIP/GeoLite2-City.mmdb
datetime_format=%d/%m/%Y %H:%M:%S

[VPN1]
host=localhost
port=
name=Your VPN Server Name
show_disconnect=False

वेब सर्वर शुरू करें जो सक्रिय कनेक्शन दिखाएगा,

gunicorn openvpn-monitor -b 0.0.0.0:80 --name openvpn-monitor --daemon

मॉनिटर बंद करने के लिए

pkill gunicorn 

सक्रिय कनेक्शन देखने के लिए, अपने वीपीएन सर्वर के सार्वजनिक आईपी पर जाएं

http://<ip of openvpn server>

पोर्ट 80 के लिए उचित फ़ायरवॉल को कॉन्फ़िगर करना सुनिश्चित करें, श्वेतसूची केवल इनबाउंड आईपी पर भरोसा करती है

यहाँ छवि विवरण दर्ज करें


1

बस निम्न आदेश के साथ sacli का उपयोग करें। यह कनेक्टेड वीपीएन क्लाइंट्स को सूचीबद्ध करेगा।

/usr/local/openvpn_as/scripts/sacli VPNSummary
{
"n_clients": 15
}

सभी IP देखने के लिए इस विकल्प का उपयोग करें। ./sacli VPNStatus

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.