Editado el 14 de Diciembre del 2016 a las 15:10:08 por Rafael Corro
Para acceder a una máquina remota mediante una conexión cifrada instalaremos OpenSSH
OpenSSH (Open Secure Shell) ofrece herramientas que permiten realizar comunicaciones cifradas a través de la red, usando el protocolo SSH.
Abrimos la terminal de linux e instalamos OpenSSH
sudo apt-get install openssh-server
Ya podremos conectarnos a nuestro equipo remoto introduciento el usuario del sistema y su password.
Para acceder a la configuración, editaremos el fichero sshd_config
sudo nano /etc/ssh/sshd_config
Algunas notas de la configuración de ssh_config
Puerto por defecto por el que escuchará. si cambiamos el puerto tendriamos que acceder así: ssh -p puerto usuario@maquina
Port 22
Por defecto el servicio SSH escuchará peticiones de cualquier dirección. Podemos indicar por ejemplo que solo se pueda acceder localmente desde una ip determinada. Ejemplo: ListenAddress 192.168.1.100
#ListenAddress ::
#ListenAddress 0.0.0.0
SSH usa dos protocolos. Habilitaremos el protocolo 2 ya que es más seguro que el antiguo protocolo 1
Protocol 2
Lugar donde se guardan las Keys del protocolo 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
Separa privilegios mediante la creación de un proceso hijo sin privilegios. Esta directiva de seguridad debe de estar activada
UsePrivilegeSeparation yes
La opción KeyRegenerationInterval especifica cuánto tiempo en segundos el servidor debe esperar antes de regenerar automáticamente su clave. Esta es una característica de seguridad para evitar el descifrado de sesiones capturadas.
KeyRegenerationInterval 3600
La opción ServerKeyBits especifica cuántos bits utilizar en la clave del servidor. Estos bits se utilizan cuando el daemon comienza a generar su clave RSA.
ServerKeyBits 1024
Logging
SyslogFacility AUTH
LogLevel INFO
La opción LoginGraceTime especifica cuánto tiempo esperará en segundos antes de desconectarse si el usuario no ha iniciado sesión correctamente después de una solicitud de conexión el servidor
LoginGraceTime 120
Desactivar el acceso como root. Si queremos hacer uso de funciones de root usar el comando su valores posibles:
prohibit-password: únicamente podremos loguearnos como root si tenemos una clave SSH instalada en el servidor, eliminando el ingreso de contraseña por teclado.
no: el usuario root no puede hacer login remoto.
without-password: root puede hacer login solamente con autenticacion de clave privada.
forced-commands-only: root puede hacer login solamente si ejecuta un comando simple y no pasa al shell.
PermitRootLogin prohibit-password
La opción StrictModes especifica si ssh debe comprobar los permisos del usuario en su #directorio de inicio y los archivos de rhosts antes de aceptar el inicio de sesión.
StrictModes yes
Especifica si se permite la autenticación RSA pura. El valor predeterminado es "yes". Esta opción sólo se aplica al protocolo versión 1.
RSAAuthentication yes
Especifica si se permite la autenticación de clave pública. El valor predeterminado es "yes". # Esta opción sólo se aplica al protocolo versión 2.
PubkeyAuthentication yes
Especifica el archivo que contiene las claves públicas que se pueden utilizar para la autenticación de usuarios.
#AuthorizedKeysFile %h/.ssh/authorized_keys
Especifica que los archivos .rhosts y .shosts no serán utilizados en RhostsRSAAuthentication o autenticación del tipo HostbasedAuthentication.
Estos archivos se encuentran en la carpeta del usuario dentro del "home" : ~/.rhosts y ~/.shosts del usuario
~/.rhosts: Cualquier usuario del sistema remoto podrá conectar al nuestro (sin que se le solicite contraseña) pero sólo bajo el nombre de usuario en cuyo $HOME se encuentra en este archivo.
IgnoreRhosts yes
Especifica si se permite la autenticación rhosts o /etc/hosts.equiv junto con la autenticación correcta del host del cliente de clave pública (autenticación basada en host). Para que funcione necesitará las claves de host /etc/ssh_known_hosts
RhostsRSAAuthentication no
La autenticación basada en host permite a los hosts autenticarse en nombre de todos o algunos # de los usuarios del sistema.
HostbasedAuthentication no
Permite entrar con una contraseña vacia
PermitEmptyPasswords no
Especifica si se permite la autenticación a través de PAM o a través de estilos de autenticación soportados en login.conf
ChallengeResponseAuthentication no
La opción PasswordAuthentication especifica si debemos usar la autenticación basada en contraseña. Para una #mayor seguridad, esta opción siempre debe estar en "yes".
#PasswordAuthentication yes
Opciones para Kerberos
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
Opciones para GSSAPI
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
La opción X11Forwarding permite ejecutar apliaciones gráficas de una máquina remota
X11Forwarding yes
Especifica el primer número de pantalla disponibles para sshd. Esto evita que sshd interfiera con servidores X11 reales
X11DisplayOffset 10
"PrintMotd" especifica si el servicio SSH debería mostrar el contenido de "/etc/motd" cuando el usuario ingresa
PrintMotd no
"PrintLastLog" muestra la última vez que alguien ingresó al servidor con el mismo usuario con que ingresamos nosotros.
PrintLastLog yes
Esta opción se usa para dar estabilidad y que las sesiones no den un "TimeOut"
TCPKeepAlive yes
Especifica si se utiliza login para las sesiones de inicio de sesión interactivas. El valor predeterminado es "no".
#UseLogin no
Controlar el máximo de conexiones
10: Número de conexiones no autenticadas antes de comenzar a caer
30: Porcentaje de probabilidad de caer una vez que llegamos a 10
60: Número máximo de conexiones en las que comenzamos a caer
#MaxStartups 10:30:60
Crea una pantalla de presentación. Lo podemos editar con nano
#Banner /etc/issue.net
Permite que el cliente pase variables de entorno locales al host remoto
AcceptEnv LANG LC_*
Implementa el subsistema de transferencia de archivos "SFTP ".
Subsystem sftp /usr/lib/openssh/sftp-server
Debe estar marcado como "yes" para poder acceder por contraseña. Si queremos que solo acceda por llave lo marcariamos como "no"
UsePAM yes
Valoración de los lectores sobre: Conexion remota SSH y configuración de ssh_config
¿Te ha parecido útil o interesante? Tú opinión es importante, gracias!
2023-01-12 09:31:33
na hay imegenes