ওপেনভিপিএন লিনাক্সের কমান্ড লাইনের মাধ্যমে সংযোগ বিচ্ছিন্ন করে


11

শেল কমান্ড লাইনের সাথে মুক্ত-ব্যাসার্ধ দ্বারা প্রতিষ্ঠিত কোনও ওপেনভিএনএন সংযোগ বিচ্ছিন্ন করার কোনও উপায় আছে কি?

ওপেনভিএনএন সংযোগ সম্পর্কে আমার কাছে সমস্ত তথ্য রয়েছে:

  • ব্যবহারকারীর নাম
  • ক্লায়েন্ট আইপি
  • AccountSeassionID
  • ...

টিএল; ডিআর: sudo pkill openvpn
অ্যান্ড্রু

উত্তর:


9

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

pkill কমান্ড আপনাকে নাম বা অন্যান্য বৈশিষ্ট্যের উপর ভিত্তি করে কোনও প্রক্রিয়া সংকেত দেওয়ার অনুমতি দেয়

এটি ওপেনভিএনএনতে সাইনটারম প্রেরণ করবে যার ফলে এটিকে টিউন ইন্টারফেসটি নিখুঁতভাবে ছাড়তে এবং বন্ধ করতে হবে। আপনি ওপেনভিএনএন সংযোগটি যেভাবে শুরু করেছেন তার সাথে মেলে নিতে আপনাকে / বিভাগের পরে বিভাগটি সংশোধন করতে হবে।

আমি এটি ওপেনভিপিএন ম্যান পৃষ্ঠার সিগন্যাল বিভাগে পেয়েছি।

   SIGINT, SIGTERM
      Causes OpenVPN to exit gracefully.

বাহ, খুব সুবিধাজনক এবং মার্জিত
জর্জিসিকে

নগদ টাকা! ^ আমি আশা করি এটি ব্যঙ্গাত্মক ছিল
অ্যান্ড্রু

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
এটি এটিকে ঠিক আছে, তবে এটি ওপেনভিএনপিএন প্রক্রিয়াটিকে মেরে ফেলবে না। যদি আমি আবার সংযোগটি ফিরিয়ে আনতে চাই তবে আমাকে ইন্টারফেসটি ফিরিয়ে আনতে হবে এবং তারপরে আমাকে ওপেনভিএনপিএন প্রক্রিয়াটি মেরে ফেলতে হবে এবং তারপরে আমাকে আবার ওপেনভিএনপিএন - কনফিগ <blah> চালাতে হবে। আমি (এবং আমি মনে করি ওপি) ভাবছিলাম যে এটি কি এটির উদ্দেশ্য হিসাবে, বা যদি খুব সুন্দর উপায় থাকে তবে আমরা অবগত নই।
জেকিম

@ জাকিম: আমার উত্তরের উপর ভিত্তি করে রেডহ্যাটের জন্য একটি স্ক্রিপ্ট যুক্ত করেছে।
কোয়ান্টা

চমৎকার! 123456789101112
dmourat

হ্যাঁ এটি "কাজ করে" তবে এটি ওপেনভিপিএনকে হত্যা করে না।
অ্যান্ড্রু


0

আমি কখনই ফ্রি-রেডিয়াস ব্যবহার করি নি, তবে আমি ওপেনভিপিএন-তে একই ধরণের সমস্যার সাথে পরিচিত। যদি কমান্ড লাইন থেকে সংযোগটি শুরু করা হয়, তবে ভিপিএন ক্লায়েন্ট হয় প্রম্পটে জীবিত থাকে বা এটি ব্যাকগ্রাউন্ডে ফিরে যায়, তবে সংযোগটি স্পষ্টভাবে বন্ধ করার কোনও আদেশ নেই।
লিনাক্সের অধীনে সংযোগ বন্ধ করার একমাত্র উপায় হ'ল "কিল" বা "কিল্লাল" কমান্ড। ফ্রি-ব্যাসার্ধ সংযোগের জন্য একই রকম হতে পারে।


0

ভেবেছিলাম আমি সম্পূর্ণ মন্তব্য দিয়ে আমার মন্তব্য আপডেট করব (যা প্রাসঙ্গিক নাও হতে পারে, ফ্রি-ব্যাসার্ধ সম্পর্কে আমি না জানি) ..

আমি একটি ডেবিয়ান লিনাক্স ডিস্ট্রো ব্যবহার করে ওপেনভিএনপি প্যাকেজ ইনস্টল করেছি। ডেবিয়ানের ক্লায়েন্ট কনফিগারেশনটি কমান্ড লাইনের মাধ্যমে চালু করা যেতে পারে, যা সংযোগটি বন্ধ / পরিচালনা করার কোনও ঝরঝরে উপায় বলে মনে হচ্ছে না ...

আমি আজ শিখেছি যে বুট করার সময় একটি /etc/init.d/openvpn স্ক্রিপ্ট রয়েছে এবং আমি যদি ওপেনভিপিএন কনফিগারেশন ফাইলটিকে / ইত্যাদি / ওপেনভিপিএন / এ রাখি (ফাইল এক্সটেনশনটি অবশ্যই .conf হওয়া উচিত) তবে আমি সংযোগটি নিয়ন্ত্রণ করতে পারি /etc/init.d/openvpn স্টপ এবং ইত্যাদি / init.d / ওপেনভিপিএন স্টার্ট (বা "পরিষেবা ওপেনভিএনপিএন স্টপ") ব্যবহার করে।

কনফিগার ফাইলটি / etc / openvpn / এ রাখার ফলে ভিপিএন টানেল বুট করার সময় স্বয়ংক্রিয়ভাবে উঠে আসে। এটি স্বয়ংক্রিয়ভাবে সংযোগ বিচ্ছিন্ন হওয়ার পরেও পুনরায় সংযোগ স্থাপন করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.