para conectar con nuestro Raspberry desde el curro, escuela ...
Buenos días, el objetivo de hoy es configurar nuestro Raspberry para que sea accesible por SSH (que ya lo es) y además poder hacerlo a través de un proxy web. Esto es necesario es muchas oficinas, universidades, bibliotecas ... que obligan a pasar todo el tráfico de internet a través de un proxy y permitiendo únicamente navegación web.Empezamos instalando:
apt-get install libapache2-mod-proxy-html apache2 shellinabox a2enmod proxy_httpdel archivo /etc/default/shellinabox cambiamos la línea:
SHELLINABOX_ARGS="--no-beep"por esta otra
SHELLINABOX_ARGS="--no-beep --disable-ssl"al final del archivo /etc/apache2/sites-enabled/000-default añadimos:
ProxyRequests Off <Proxy> Order deny,allow Allow from all </Proxy> <Location /shell/> ProxyPass http://localhost:4200/ ProxyPassReverse http://localhost:4200/ </Location>y reiniciamos:
/etc/init.d/shellinabox restart /etc/init.d/apache2 restartahora hacemos un NAT en nuestro router, del puerto 80 hacia la ip del RaspberryPi y listo, podemos acceder vía web al servidor ssh de nuestro Raspberry.
Dedicado al Borre y al Porti.
Gracias Juan Mol, me va perfectamente para poder acceder desde el trabajo donde tengo webproxy y no me permiten Puty.
ResponderEliminar¿Hay alguna manera que no cierre la session tan rapido?
Pues la verdad es que no veo ninguna opción o parámetro para ajustar ese tiempo. Viendo un poco por ahí, veo que hay una variable que se llama AJAX_TIMEOUT que parece que es la que buscamos, pero hay que cambiarla en el código fuente de shellinabox, así que si te animas ... ;)
Eliminarsé que ha pasado tiempo, pero quizá te pueda ayudar este artículo... http://muyraspi.blogspot.com.es/search?q=/etc/ssh/sshd_config
EliminarHola, perdonad que os consulte algo tan obvio, pero... tengo un raspbian recién instalado en mi raspberry, he hecho apt-get update y apt-get upgrade, sin embargo no me encuentra los repositorios para instalar el software de las primeras líneas.
ResponderEliminarEs algún repositorio concreto? o con el repositorio que viene por defecto ya podrías isntalarlo?
gracias.
pega aqui el contenido de tu /etc/apt/sources.list y te cuento
EliminarHola, al editar el archivo 000-default añadiendo lo que sugieres, al reiniciar apache2, me da el siguiente error:
ResponderEliminarSyntax error on line 32 of /etc/apache2/sites-enabled/000-default:
Invalid command 'ProxyRequests', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
failed!
El error.log no dice nada. Se te ocurre que podría ser? gracias!
¿seguro seguro segurísimo que tienes instalado el paquete libapache2-mod-proxy-html ? ¿Y has ejecutado el a2enmod proxy_http ?
Eliminarperfecto! tenía instalado el paquete pero no lo había ejecutado. gracias por los tutoriales!
ResponderEliminarHola Juan,
ResponderEliminarRecientemente he llegado a tu blog y me parece muy interesante. Siento abordarte de esta manera, pero existe alguna forma de comunicarnos en privado.
Un saludo y mucho ánimo
Ignacio
Se me olvidó indicar la direccion de correo:
ResponderEliminargomago1709@gmail.com
Saludos
si preguntas aqui mismo, puede que le sirva a alguien mas. De todas formas puedes escribirme a rsppi.blog@gmail.com
EliminarHola Juan,
ResponderEliminarIncreible el Post.
Una pregunta tonta, en la configuración del NAT, se ha de poner como Puerto externo el 80, y como puerto interno el 22?
un saludo
no es una pregunta tonta. Tienes que llegar al puerto del apache, desde internet. Así que como puerto externo el 80 y como interno el 80 ;)
EliminarMuchas Gracias:).
EliminarBueno al final en ese puerto no me funcionaba, y tras mirar el fichero /etc/default/shellinabox, he visto que por defecto shellinabox escucha en el 4200, así que lo modifique a ese puerto y genial.
Espero q sirva al resto.
noooooooooooo ... si haces nat del puerto 4200, no estaremos consiguiendo la finalidad del post. La idea es acceder por puerto 80 para poder conectar desde la oficina, universidad o cibercafe, atravesando un proxy web. Hacer un nat de cualquier puerto no tiene misterio ;)
Eliminar¿No sería lo mismo si como puerto externo le pongo el 80 y como puerto interno el 4200?
Eliminarque si hombre, si soluciones hay miles :) las dos soluciones que das son validas, con la que pongo en el post, permite ademas tener otros servicios detras del puerto 80, tan solo añadiendo más locations en Apache.
EliminarVale, perfecto.
EliminarEs lo que pasa al iniciarse x estos mundos:)
Muchas Gracias.:)
porque lo instalas junto con apache?
ResponderEliminarFrancisco.
Lo pregunto, porque al mí a menos sin tener apache me lo sirve bajo el protocolo https
ResponderEliminarFrancisco.
para poder usar los dos ;)
EliminarHola Juan,
ResponderEliminarpodrías utilizar sslh. Te permite compartir el puerto 443 (https) para ofrecer una web y acceder al ssh de la maquina que decidas.
Un saludo.
Hola Juan
ResponderEliminarTengo una duda... al acceder al ip de la raspberry entiendo que apache funciona ya que obtengo:
It works!
This is the default web page for this server.
The web server software is running but no content has been added, yet.
Sin embargo, si accedo a http://ipdelaraspberry/shell no obtengo respuesta, cosa que si accedo a http://ipdelaraspberry:4200 sí aparece la terminal en el navegador...
a qué puede deberse??
te falta el libapache2-mod-proxy-html y configurar bien la parte de Proxy en el apache
EliminarHe seguido los pasos del post al pie de la letra, tanto lo del libapache2 como lo del proxy...
EliminarLos voy a repetir pero cómo puedo saber dónde fallo??
después de varios intentos me ha funcionado!
Eliminarhe tenido que cambiar http://localhost:4200 por http://ip-pública-de-la-raspberry:4200/
creo que es por la configuración de apache2, pues si me conecto a la raspberry por vnc, en midori no obtengo resultado con http://localhost
si accedes por el puerto 4200 desde la ip publica, no estara pasando el tráfico por el puerto 80, que es la gracia de este post: llegar por puerto 80 al ssh usando apache.
EliminarTe sigue faltando algo en el apache.
quiero aclarar que cuando digo "he tenido que cambiar http://localhost:4200 por http://ip-pública-de-la-raspberry:4200/" lo he hecho en el archivo /etc/apache2/sites-enabled/000-default y no cuando accedo al navegador
Eliminarde todas formas, creo que se debía a que tenía hecho un DMZ hacia la ip de la raspberry en lugar de un NAT (es que no me acabo de aclarar muy bien con el NAT)
aaaaaahm eso si tiene más sentido. Yo recomiendo siempre NAT, con las DMZ hay que tener mucho cuidado, tienes que leerte la documentación del ruter, para ver que es lo que entiende el fabricante por DMZ.
Eliminarmo me enterooooooo :'( donde tengo que poner eso? losiento... ayudameee
ResponderEliminardonde te as quedado?
EliminarHola, he visto esta publicación y es perfecta. Me funciona correctamente. Muchas gracias por este aporte.
ResponderEliminar