NGROK es una herramiento para crear túneles en red WAN hacia tu servidor local con "Port Forwarding". En linux se ejecuta un Script pasandole los parámetros de "protocolo" y "puerto".
En este caso hago un tunel para un servidor SSH (tcp 22). La cuestión es hacer este script autoejecutable al inicio del sistema pero en segundo plano.
Para esto he creado un script que he llamado "persistence" que checkea el ngrok y si no está corriendo lo ejecuta, esta comprobación es en bucle asique cuando se cierra ngrok automaticamente se vuelve a ejecutar.
Este script "persistence" es el que tengo que poner a ejecutar en el inicio de sistema para que invoque el script del tunel y no se pueda cerrar.
Actualmente trabajo en Kali 2018, basado en debian 4.16 (uname -a) y buno ya he comprobado varias opciones pero no.
He copiado este Script a /etc/init.d/ y he creado enlaces en /etc/rc*.d que son los "runlevels", tambien he ejecutado "update-rc.d persistence defaults" para actualizar los daemons de inicio y en .config/autostart tambien he creado una entrada que llame a "persistence".
Ahora os pongo todos los Scripts para ver si me podeis ayudar.
Código:
#!/bin/bash
# persisence
protocol="tcp"
port="22"
##
while true; do
basic(){
while true; do
check=`ps aux | grep -i "ngrok" | grep -v "grep" | wc -l`
if [ $check == 0 ];then
../../root/ngrok $protocol $port &
else
:
fi
done
}
##
case "$1" in
start)
basic
;;
stop)
basic
;;
*)echo "Modo de empleo: /etc/init.d/persistencia {start|stop}"
;;
esac
done
Esta es la entrada en .config/autostart
Como veis llama a pesistence dentro de init.d con el parametro "&" para que lo haga en segundo plano
Código:
[Desktop Entry]
Name=persistence
GenericName=persistence
Comment=persistence
Exec=menuexecg "/etc/init.d/persistence start &"
Terminal=false
Type=Application
X-GNOME-Autostart-enabled=true
Y como veis en esta screen en todos los runlevels esta el enlace a /etc/init.d/persistence
https://screenshot.net/es/w1553fw
El script persistence funciona, la cuestión es que no soy capaz de hacer que se ejecute ese script al inicio ya que ese invoca al NGROK original.
Muchas gracias.