Voy a implementar una máquina Linux como una especie de terminal pública en una ubicación remota. Me gustaría poder acceder de forma remota a través de SSH para el mantenimiento, pero no quiero mantener un puerto abierto en el firewall remoto para las raras ocasiones en que necesito acceder a esta máquina. Pensé en una secuencia de comandos simple para crear un túnel SSH inverso a una máquina en el exterior, pero prefiero no tener que hacer que un usuario haga nada cuando necesito acceder a él. ¿Algunas ideas?
Actualización: he decidido seguir mi plan original de un script para crear un túnel ssh inverso. Mientras que otras soluciones sugeridas, como el bloqueo de puertos, estarían más en la línea de lo que realmente quiero hacer, en este caso, no tengo ningún acceso para configurar el enrutador que no sea guiar a un usuario a través de una configuración. estremecimiento
fuente
Respuestas:
Si cambiar el enrutador está completamente fuera de discusión, es posible que deba buscar una solución P2P o VPN como Hamachi . Si configura el sistema para establecer automáticamente la conexión VPN al inicio, entonces debería poder conectarse cuando lo necesite. Hamachi hace toda la negociación del firewall por usted. El único inconveniente es que debe confiar en que los servidores de Hamachi estén activos y en funcionamiento cuando necesite conectarse.
Si tiene un servidor que siempre está activo, puede configurar autossh para que el sistema remoto siempre mantenga un túnel abierto y conectado a su servidor. El único inconveniente es que el sistema remoto está comprometido, el atacante obtendrá las claves que se usaron para establecer la sesión ssh. Sería muy importante mantener su sistema que acepta la conexión ssh realmente bloqueado.
A continuación se muestra mi respuesta original, supuse que actualizar el enrutador era una opción.
Una solución que quizás desee investigar si su firewall lo admite, es la eliminación de puertos . Con algunos cortafuegos debería ser posible enviar un conjunto especial de paquetes que el cortafuegos advierte y luego abre temporalmente el agujero a través del cortafuegos.
Hay muchas implementaciones, algunas mejores que otras. Algunos usan criptografía sólida para hacer que sea casi imposible que una persona sin las teclas correctas envíe el golpe correcto.
fuente
No estaría tan preocupado por dejar el puerto 22 accesible a Internet, pero tomaría algunas medidas para asegurarlo.
En primer lugar, deshabilite la autenticación interactiva del teclado y vaya a las teclas ssh.
En segundo lugar, instale algo como fail2ban en su servidor remoto en direcciones IP de blackball que prueben repetidamente su máquina. Debido a que ha configurado claves ssh, no debería haber fallas de autenticación para usuarios autorizados.
Alternativamente, si puede, siga los consejos de WerkkreW y configure el cortafuegos frente a la máquina para terminar una conexión vpn, luego solo permita que el demonio ssh en el servidor remoto acepte conexiones que cruzan ese vpn.
Alternativamente, si su cortafuegos no puede terminar la conexión vpn, probablemente pueda reenviar los paquetes GRE o IPSEC a su máquina Linux, y terminarlo allí.
fuente
Parece que estás buscando knockd
Puede instalar eso en el servidor Linux en sí, con iptables para que sea como un firewall de segundo nivel. Incluso con el puerto 22 abierto en el cortafuegos frontend, no estaría abierto en el servidor, por lo que los escaneos de puertos no verían ningún puerto abierto. Luego, cuando envía el "golpe secreto", de repente tiene un camino abierto al puerto 22.
¿Tiene sentido?
fuente
Para resumir todas las respuestas:
use ssh, pero hágalo más oscuro y seguro.
Por seguridad:
Para la oscuridad:
fuente
Tarea programada el script para su túnel ssh inverso, o abra el puerto del firewall.
Si le preocupa que SSH esté abierto al mundo, podría programar la tarea cuando su período de mantenimiento con scripts de iptables y solo tenga el puerto disponible en ese momento.
fuente
Mire a los puertos para abrir su túnel SSH.
Además, ejecute denyhosts para bloquear a las personas después de demasiadas solicitudes incorrectas.
Ambos paquetes están disponibles en los repositorios estándar de Ubuntu, Fedora y RHEL.
fuente
Continúe y abra un puerto, solo hágalo fuera del rango normal. Lo convertiría en un puerto aleatorio sobre 1024. De esa manera, es poco probable que los hackers lo busquen.
fuente
No hay razón para no hacer el agujero en el firewall si necesita acceso a la máquina de forma remota, aunque con poca frecuencia.
Sin embargo, si aún prefiere no abrir (o no puede) abrir el puerto, un simple script de shell podría monitorear algunos recursos disponibles en Internet que usted controla y escucha el comando para iniciar el túnel inverso. Las cuentas de correo electrónico, los canales IRC y las páginas web vienen inmediatamente a la mente como dispositivos de activación.
Por supuesto, esto es mucho más frágil y menos seguro que simplemente abrir el puerto. Pero estoy seguro de que tienes tus razones.
fuente