linux में कमांड लाइन के माध्यम से openVPN डिस्कनेक्ट करें


11

क्या एक ओपनवैप कनेक्शन को डिस्कनेक्ट करने का एक तरीका है जो फ्री-रेडियस द्वारा शेल कमांड लाइन के साथ स्थापित किया गया था?

मुझे ओपनवपन कनेक्शन के बारे में सभी जानकारी है:

  • उपयोगकर्ता नाम
  • ग्राहक आईपी
  • AccountSeassionID
  • ...

टीएल; डीआर: sudo pkill openvpn
एंड्रयू

जवाबों:


9

pkill -SIGTERM -f 'openvpn --daemon --conf $ OPENVPNCONFFILE'

pkill कमांड आपको नाम या अन्य विशेषताओं के आधार पर एक प्रक्रिया को इंगित करने की अनुमति देता है

यह SIGTERM को ओपनवैप पर भेजेगा, जिससे यह इनायत से ट्यून इंटरफ़ेस को छोड़ देगा और बंद कर देगा। आप जिस तरह से ओपेनवैन कनेक्शन शुरू करते हैं, उससे मिलान करने के बाद आपको अनुभाग को संशोधित करना पड़ सकता है।

मुझे यह ओपनवीपीएन मैन पेज के सिग्नल अनुभाग में मिला।

   SIGINT, SIGTERM
      Causes OpenVPN to exit gracefully.

वाह, बहुत आसान और सुरुचिपूर्ण
georgiecasey

OOF! ^ मुझे आशा है कि व्यंग्य था
एंड्रयू 1

4

वर्चुअल इंटरफ़ेस के साथ निर्धारित करें ifconfig:

tap0      Link encap:Ethernet  HWaddr 32:28:a4:04:34:cc  
          inet addr:172.22.18.14  Bcast:172.22.18.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

और इसके साथ बंद करें:

sudo ifconfig tap0 down

रेड इंडियन पर आधारित इनिट स्क्रिप्ट यहां आधारित है:

#! /bin/bash
#
# openvpn-client    Start/Stop the openvpn client
#
# chkconfig: 2345 90 60
# description: start openvpn client at boot
# processname: openvpn

# Source function library.
. /etc/init.d/functions

daemon="openvpn"
prog="openvpn-client"
conf_file="/vagrant/vpn/client-dept18-payment.ovpn"

start() {
    echo -n $"Starting $prog: " 
        if [ -e /var/lock/subsys/openvpn-client ] && [ $(pgrep -fl "openvpn --config /vagrant/vpn/client-dept18-payment.ovpn" | wc -l) -gt 0 ]; then
        echo_failure
        echo
        exit 1
    fi
    runuser -l root -c "$daemon --config $conf_file >/dev/null 2>&1 &" && echo_success || echo_failure
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/openvpn-client;
    return $RETVAL
}

stop() {
    echo -n $"Stopping $prog: "
    pid=$(ps -ef | grep "[o]penvpn --config $conf_file" | awk '{ print $2 }')
    kill $pid > /dev/null 2>&1 && echo_success || echo_failure
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/openvpn-client;
    return $RETVAL
}   

status() {
    pgrep -fl "openvpn --config /vagrant/vpn/client-dept18-payment.ovpn" >/dev/null 2>&1
    RETVAL=$?
    if [ $RETVAL -eq 0 ]; then
        pid=$(ps -ef | grep "[o]penvpn --config $conf_file" | awk '{ print $2 }')
        echo $"$prog (pid $pid) is running..."
    else
        echo $"$prog is stopped"
    fi
}   

restart() {
    stop
    start
}   

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        restart
        ;;
    status)
        status
        ;;
    condrestart)
        [ -f /var/lock/subsys/openvpn-client ] && restart || :
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart}"
        exit 1
esac

तो आप इसे हमेशा की तरह उपयोग कर सकते हैं:

# /etc/init.d/openvpn-client start
Starting openvpn-client:                                   [  OK  ]
# /etc/init.d/openvpn-client start
Starting openvpn-client:                                   [FAILED]
# /etc/init.d/openvpn-client status
openvpn-client (pid 5369) is running...

# /etc/init.d/openvpn-client stop
Stopping openvpn-client:                                   [  OK  ]
# /etc/init.d/openvpn-client stop
Stopping openvpn-client:                                   [FAILED]
# /etc/init.d/openvpn-client status
openvpn-client is stopped

# /etc/init.d/openvpn-client restart
Stopping openvpn-client:                                   [  OK  ]
Starting openvpn-client:                                   [  OK  ]
# /etc/init.d/openvpn-client status
openvpn-client (pid 5549) is running...

1
यह इसे नीचे ले जाता है, लेकिन यह Openvpn प्रक्रिया को नहीं मारता है। अगर मैं कनेक्शन को फिर से वापस लाना चाहता हूं, तो मुझे इंटरफ़ेस को वापस लाना होगा, और फिर मुझे ओपनवपन प्रक्रिया को मारना होगा, और फिर मुझे फिर से ओपनवैप --config <blah> को चलाना होगा। मैं (और मुझे लगता है कि ओपी) सोच रहा था कि क्या यह ऐसा तरीका है जो इसका इरादा है, या अगर कोई ऐसा तरीका है जिससे हम वाकिफ नहीं हैं।
JKim

@jkim: मेरे जवाब के आधार पर RedHat के लिए एक init स्क्रिप्ट को जोड़ा गया।
क्वांटा

अच्छा! 123456789101112
dmourati

हाँ, यह "काम करता है" लेकिन यह OpenVPN को नहीं मारता है।
एंड्रयू

1

बस दौड़ना sudo pkill openvpnमेरे लिए ठीक काम कर गया। (लिनक्स मिंट 19.1)


0

मैंने कभी भी फ्री-रेडियस का उपयोग नहीं किया है, लेकिन मैं ओपनवीपीएन में एक समान समस्या से परिचित हूं। यदि कनेक्शन कमांड लाइन से शुरू किया गया है, तो वीपीएन क्लाइंट या तो प्रॉम्प्ट पर जीवित रहता है या यह पृष्ठभूमि में पीछे हट जाता है, लेकिन कनेक्शन को स्पष्ट रूप से रोकने के लिए कोई आदेश नहीं है।
लिनक्स के तहत कनेक्शन को रोकने का एकमात्र तरीका "किल" या "किलॉल" कमांड है। फ्री-रेडियस कनेक्शन के लिए समान हो सकता है।


0

बस मैंने सोचा कि मैं एक फुलर उत्तर के साथ अपनी टिप्पणी को अपडेट करूंगा (जो प्रासंगिक नहीं हो सकता है, यह देखते हुए कि मैं फ्री-रेडियस के बारे में नहीं जानता)।

मैं एक डेबियन लिनक्स डिस्ट्रो का उपयोग कर रहा हूं और ओपेनवोन पैकेज स्थापित कर रहा हूं। डेबियन में क्लाइंट कॉन्फिग को कमांड लाइन के माध्यम से लॉन्च किया जा सकता है, जो कि इस समस्या की ओर जाता है जिससे कनेक्शन समाप्त करने / प्रबंधित करने का कोई साफ तरीका नहीं लगता है ...

मैंने आज सीखा कि हालांकि एक /etc/init.d/openvpn स्क्रिप्ट है जो बूट समय पर चलती है और अगर मैं ओपनवीपीएन कॉन्फिग फाइल को / etc / openvpn / (फाइल एक्सटेंशन को .conf) में रखता हूं, तो मैं कनेक्शन को नियंत्रित कर सकता हूं। /etc/init.d/openvpn stop, और etc / init.d / openvpn start (या "service openvpn stop") का उपयोग करके।

Config फाइल को / etc / openvpn / में डालने से भी वीपीएन सुरंग बूट समय पर अपने आप आ जाती है। यह स्वचालित रूप से भी डिस्कनेक्ट करने के बाद पुन: जुड़ता है।

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