Maneira confiável de criar túneis seguros a partir da inicialização em um laptop ubuntu?

1

Estou procurando uma maneira confiável de iniciar um túnel seguro na inicialização de um laptop.

Este túnel não será necessário por outras partes do processo de inicialização, mas poderá ser necessário em qualquer momento subsequente por um usuário. Deveria "apenas funcionar", o usuário não deveria ter que monitorar e consertar isso.

O túnel seguro irá "puxar uma porta" de um aplicativo inseguro ligado a localhost (neste caso, um banco de dados redis) em um servidor remoto para o laptop ubuntu.

Exemplo:

servidor remoto: example.net

porta remota para encaminhar: 6379, ligada somente ao localhost do example.net

usuário remoto: [email protected]

keyfile: [email protected] autorizou um par de chaves ssh sem passphrase, uma chave é armazenada em authorized_keys no servidor e a outra em /root/moleKey.rsa no laptop

Funciona dentro de uma janela de terminal no laptop:

$ sudo su
...
# ssh -i /root/moleKey.rsa -L 16379:localhost:6379 [email protected] -N &
# exit
$ telnet localhost 16379
(works fine)
^C

Então eu tentei colocar

ssh -i /root/moleKey.rsa -L 16379:localhost:6379 [email protected] -N &

em /etc/rc.local

Mas isso não funciona de forma confiável, o processo ssh desapareceu quando o túnel foi necessário e não consigo encontrar nenhuma linha de erro para ele no syslog ou nas mensagens

Existe uma maneira mais confiável de iniciar o túnel seguro na inicialização, ou talvez um gerente que reinicie o túnel seguro conforme necessário?

    
por Paul 15.04.2012 / 04:26

2 respostas

1

Eu estava tendo os mesmos problemas com /etc/rc.local não sendo persistente durante as reinicializações

O Upstart é uma boa solução e isso funciona para mim:

# location: /etc/init/tunnel.conf 
description "persistent ssh tunnel through reboots"
author "morgan mcdaris <[email protected]>"

start on (local-filesystems and net-device-up IFACE=eth0)
stop on runlevel [016]

respawn
respawn limit 5 60

script
  exec su LOCAL_USERNAME -c "ssh -N -R 4040:localhost:22 -i /home/LOCAL_USERNAME/.ssh/id_rsa REMOTE_USERNAME@REMOTE_MACHINE_IP"
end script

post-start script
   PID='status tunnel | egrep -oi '([0-9]+)$' | head -n1'
   echo $PID > /var/run/tunnel.pid
end script

post-stop script
    rm -f /var/run/tunnel.pid
end script

você precisa inserir seus valores para: %código% %código% LOCAL_USERNAME

depois disso, você pode iniciá-lo reinicializando ou:

$ sudo start tunnel

os scripts de pós-inicialização dão um arquivo pid se você quiser fazer algumas coisas de monit

    
por Morgan 09.12.2013 / 09:48
1

Para o ubuntu 11.10+, o pacote "gstm" é bom para fornecer uma maneira mais fácil de configurar o túnel.

veja

link (link original agora morto)

    
por Paul 17.04.2012 / 10:29