LinuxParty
AutoSSH es una gran herramienta para administradores de Linux. SSH es imprescindible, lo usamos a diario. En muchos casos, es suficiente. La herramienta bien diseñada que está haciendo su trabajo. Sin embargo, de vez en cuando necesitamos algo más.
¿Para qué puedo usar AutoSSH?
AutoSSH es una herramienta para monitorear y reiniciar sesiones SSH. Está comprobando el estado de la conexión y reinicia la sesión SSH si es necesario. Es útil para conexiones de Internet no confiables como GSM o en casos en los que los parámetros de conexión cambian de vez en cuando (por ejemplo, el ISP está asignando una nueva IP al servidor desde). Lo estamos usando para mantener un túnel confiable entre nuestros servidores remotos y el servidor de monitoreo principal.
Los servidores remotos están ubicados en lugares donde no se asignan direcciones IP estáticas y no hay posibilidad de abrir puertos en el enrutador. En este caso, la conexión debe iniciarse desde el host remoto. Simplemente estamos creando el túnel que reenvía todas las conexiones al puerto NNNN del host de monitoreo al puerto 22 (SSH) del host remoto. En algunos casos, estamos haciendo lo mismo para el puerto 80 (HTTP) del host remoto si queremos reenviar datos del servidor web.
Uso básico de AutoSSH
AutoSSH está disponible actualmente como paquete en la mayoría de las distribuciones de Linux. Puedes instalarlo usando yum o apt . Una vez instalado, está listo para usar. Sin embargo, hay un requisito previo importante: su SSH debe poder conectarse sin la contraseña . No desea ingresar la contraseña durante cada reconexión, ¿no es así?
El ejemplo básico del comando autossh es:
remote.host$ autossh -N -R 6000:localhost:22 Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
El comando anterior debe iniciarse en el host remoto. Simplemente crea el túnel que reenvía el puerto 6000 del host de monitoreo al puerto local 22. Esto significa que ahora puedo ejecutar el siguiente comando en el host de monitoreo:
monitoring.com$ ssh remoteuser@localhost -p 6000
Tenga en cuenta que me estoy conectando al número de puerto 6000 del host local. No es necesario conocer la IP del servidor remoto, el túnel ya está allí. Esto también muestra una cosa importante: solo puede haber un host remoto conectado al puerto único del servidor de monitoreo. Cada conexión adicional debe colocarse en el otro puerto.
¡Pero quiero que se inicie durante el arranque del servidor!
Hoy en día, la forma más conveniente de ejecutar autossh en el momento del arranque es usar el servicio systemd . Creemos el archivo llamado autossh-tunnel.service en /etc/systemd/system/ y peguemos este código en él:
[Unit] Description=AutoSSH tunnel service Remote port 6000 to local 22 After=network.target [Service] Environment="AUTOSSH_GATETIME=0" ExecStart=/usr/bin/autossh -o "ServerAliveInterval 10" -o "ServerAliveCountMax 3" -N -R 6000:localhost:22 Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. [Install] WantedBy=multi-user.target
Hay algunas cosas importantes a tener en cuenta: primero, la variable de entorno. Systemd no admite la opción & o -f para ejecutar el servicio en segundo plano. La variable de entorno le dice a autossh que no espere a que la primera conexión sea exitosa, sino que vaya inmediatamente a segundo plano y reinicie incluso si esta primera conexión falla. También agregamos ServerAliveInterval y ServerAliveCountMax : esto le dice a SSH que pruebe la conexión cada 10 segundos y asuma la falla después de 3 mensajes fallidos consecutivos. Dicha configuración asegura una rápida recuperación después de la falla de la conexión.
Una vez que tenemos el archivo de servicio creado, debemos informar a systemd que cambiamos algo, podemos iniciar el servicio y podemos habilitarlo para que se ejecute durante el tiempo de arranque:
remote.host$ systemctl daemon-reload remote.host$ systemctl start autossh-tunnel.service remote.host$ systemctl enable autossh-tunnel.service
Ahora podemos probar nuestro nuevo túnel de la misma manera que lo hicimos antes.
¿Que más puedo hacer?
También puede crear el túnel que funciona al revés. En algunos casos, lo usamos para reenviar el puerto 80 remoto al puerto local 8080 para reenviar algunas llamadas API. El único cambio que tiene que hacer es cambiar la parte de la configuración. Dicho túnel se puede crear así:
remote.host$ autossh -N -R 8080:localhost:80 Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Ahora, en el host remoto, puede acceder a Monitoring.com HTTP abriendo http: //localhost:8080/; la solicitud se reenviará a través del túnel al host de monitoreo.
-
Seguridad
- Conexión Segura NFS en Linux, Tunelizar NFS sobre SSH y Configuración de NFS sobre SSH para Mayor Seguridad
- Cómo limitar las conexiones SSH (puerto TCP 22) con ufw en Ubuntu Linux
- Utilizar ssh sin contraseña con ssh-keygen y ssh-copy-id
- Millones de teléfonos móviles podrían ser vulnerables a la vigilancia del gobierno chino
- Cómo limitar las conexiones SSH a la red local en Linux
- Los televisores inteligentes son como un «caballo de Troya digital» en los hogares
- Snort para Windows, detección de Intrusos y seguridad.
- Detección de Intrusiones con las herramientas: BASE y Snort.
- El Sistema de Detección de Intrusos: Snort. ( Windows y Linux )
- Configuración con Ejemplos de Snort para Windows, detección de intrusiones
- ¿El gobierno de EE. UU. ignoró la oportunidad de hacer que TikTok fuera más seguro?
- ¿Qué es SSH y cómo se utiliza? Los conceptos básicos de Secure Shell que necesitas saber
- Asegurar memcached del servidor, para evitar amplificar ataques DDoS
- Consejos de Seguridad para Pagos Móviles en España: Protege tus Transacciones con Estos Consejos Prácticos
- 22 herramientas de seguridad de servidores Linux de código abierto en 2023