openVPN desconectar a través de command-line en linux

¿Hay una manera de desconectar una connection openvpn que se estableció por radio libre con una command-line de shell?

Tengo toda la información sobre la connection openvpn:

  • Nombre de usuario
  • IP del cliente
  • AccountSeionID

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

el command pkill le permite señalar un process basado en el nombre u otros attributes

Esto enviará SIGTERM al openvpn haciendo que salga con gracia y cierre la interfaz tun. Usted puede / necesitará modificar la sección después de -f para que coincida con la forma en que comenzó la connection openvpn.

Encontré esto en la sección Signals de la página de manual openvpn.

SIGINT, SIGTERM Causes OpenVPN to exit gracefully. 

Determine la interfaz virtual con 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) 

y apagarlo con:

 sudo ifconfig tap0 down 

Aquí está el script init que he escrito para RedHat basado en:

 #! /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 

entonces usted puede utilizarlo como de costumbre:

 # /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... 

Nunca he utilizado el radio libre, pero estoy familiarizado con un problema similar en OpenVPN. Si se inicia la connection desde la command-line, el cliente VPN permanece activo en el indicador o se retira al background, pero no hay ningún command para detener explícitamente la connection.
Bajo Linux, la única manera de detener la connection es con un command "kill" o "killall". Podría ser similar para las conexiones de radio libre.

Sólo pensé en actualizar mi comentario con una respuesta más completa (que puede no ser relevante, teniendo en count que no sé acerca de radio libre) ..

He estado usando una distribución Debian Linux e instalado el package openvpn. La configuration del cliente en Debian se puede iniciar a través de command-line, lo que lleva a uno a este problema de que aparentemente no es una manera orderada de terminar / administrar la connection …

Aprendí hoy que hay un script /etc/init.d/openvpn que se ejecuta en el momento del arranque y si coloco el file de configuration openvpn en / etc / openvpn / (la extensión del file debe ser .conf), puedo controlar la connection utilizando /etc/init.d/openvpn stop y / etc / init.d / openvpn start (o "service openvpn stop").

Poner el file de configuration en / etc / openvpn / también hace que el túnel VPN aparezca automáticamente al arrancar. También se vuelve a conectar después de desconectar automáticamente también.