Aveces nos surge la necesidad de conectarnos remotamente a otros ordenadores con seguridad, en la actualidad existen muchas aplicaciones como TeamViewer o LogMeIn y muchas mas que nos ofrecen un escritorio remoto de una manera facil y rapida, pero sacrificando algo de seguridad en la conexion remota.
SSH (Secure Shell) es un protocolo que nos permite realizar conexiones remotas encriptando completamente toda la informacion que se intercambia durante la conexion, OpenSSH es la implementacion libre de SSH, esta aplicacion se compone de un servidor que es el encargado de gestionar las conexiones remotas, un cliente que es con el cual nos conectamos y sftp que es un cliente ftp que que se conecta atraves de SSH, entre otras herramientas.
Para instalar el servidor OpenSSH en Debian y derivados:
sudo apt-get install openssh-server
Con esto ya tenemos instalado el programa servidor, la mayoria de las distribuciones linux ya cuentan con el cliente preinstalado si no es a si lo podemos instalar de la siguiente manera:
sudo apt-get install openssh-client
Ahora solo falta conectarnos al servidor y lo hacemos con el siguiente comando:
ssh [Ip Servidor] -l [Usuario] [Puerto]
Con esto establecemos una conexion segura, para añadir mas seguridad a nuestro servidor vamos a editar el siguiente archivo:
nano /etc/ssh/sshd_config
1.- Cancelar el acceso remoto a root, con esto solo podremos autentificarnos como un usuario normal, si queremos ser root podremos identificarnos una vez conectado al servidor.
# Autentication
PermitRootLogin no
2.- Asegurarnos de que OpenSSH este utilizando el protocolo 2, ya que el protocolo 1 es obsoleto y es suceptible a ataques Man-In-The-Middle.
Protocol 2
3.- Limitar el acceso a usuarios, con esto podemos negar el acceso a usuario determinados, si las lineas no se encuentran en el archivo podemos agregarla nosotros, hay que tener cuidado con esta opcion ya que podemos quedar fuera del servidor .
AllowUsers root usuario1
DenyUsers usuario2
4.- Establecer un tiempo de espera para desconectar a usuarios inactivos, con esto se desconectan ususarios que tienen 5 minutos de inactividad, si estas lineas no se encuentran en el archivo las podremos agregar nosotros.
ClientAliveInterval 300
ClientAliveCountMax 0
5.- Evitar la lectura de ~/.rhosts y ~/.shosts.
IgnoreRhosts yes
5.- Deshabilitar la autenticación basada en host.
HostbasedAuthentication no
6.- Habilitar un Banner de Aviso, podemos poner nuestro propio mensaje editando el siguiente archivo.
Banner /etc/issue.net
7.- Desabilitar la opcion de password vacios.
PermitEmptyPasswords no
8.- Cambiar el puerto de conexion por defaul, algunas personas recomienda cambiar los puertos por defecto por encima del 5000 el total de puertos disponibles es de 65535.
Port 5000
Reiniciamos el servidor y verificamos todos los cambios.