(mejoro estilo y estructura) |
|||
| Línea 40: | Línea 40: | ||
Cambiar la directiva ''ListenAddress'' a (por ejemplo) la dirección privada del servidor: | Cambiar la directiva ''ListenAddress'' a (por ejemplo) la dirección privada del servidor: | ||
| − | ListenAddress 192.168.0.1 | + | ListenAddress 192.168.0.1 |
| + | |||
| + | Agregar usuarios para conectarse dentro del rango de IP en la red interna configurar | ||
| + | |||
| + | '''AllowUsers usuario@192.168.0.*''' # corresponde al rango 192.168.0.1 al 192.168.0.255 | ||
| + | '''AllowUsers usuario@192.168.0.11 usuario2@192.168.0.12 usuario3@192.168.0.7''' # definir 1 dirección de IP por usuario | ||
| + | |||
| + | Agregar usuarios para conectarse desde cualquier parte del mundo | ||
| + | |||
| + | '''AllowUsers usuario usuario2 usuario3''' | ||
| + | |||
| + | Recomendación: para evitar ataques de hackers y hacerles más difícil que se conecten se debe desactivar la opcion para que se conecte el usuario "root", cambiando a no en la siguiente línea | ||
| + | |||
| + | # Authentication: | ||
| + | LoginGraceTime 120 | ||
| + | '''PermitRootLogin no''' | ||
| + | StrictModes yes | ||
=== Cambiando a un puerto no estándar === | === Cambiando a un puerto no estándar === | ||
|
Advertencia: éste artículo es un COMO o tutorial. La efectividad del mismo puede depender del hardware y software que tengas instalado. Por tanto, la fiabilidad puede variar entre usuarios, o incluso llegar estropear tu sistema. Utiliza este tutorial con precaución. |
Contenido |
Instala los paquetes openssh-server y openssh-client del repositorio main de Ubuntu.
La configuración del servidor ssh no es complicada, voy a explicar como hacerla desde la línea de comandos en un Ubuntu 7.04 Desktop, aunque también es aplicable a las versiones Server, si bien en una línea de comandos no podremos usar gedit usaremos nano o vi.
Para permitir y denegar los accesos, editaremos los archivos /etc/hosts.deny y /etc/hosts.allow. En el primero de ellos denegaremos todos los hosts y en el segundo permitiremos algunos, de forma que quedará todo denegado excepto lo que permitamos en hosts.allow.
Es imprescindible que comprendamos que los archivos hosts no se aplican solo al servidor ssh, sino a toda la máquina, por lo que hay que tener especial cuidado a la hora de permitir o denegar los accesos. Ésta práctica puede no ser adecuada en servidores web y tener en cuenta qué servicios permitir y denegar.
De ésta forma, si tenemos un servidor conectado a dos redes (una red interna y una red pública) podríamos denegar el acceso desde la red pública.
sudo gedit /etc/hosts.deny
Y añadimos la línea:
ALL: ALL
Ahora editamos el archivo hosts.allow:
sudo gedit /etc/hosts.allow
Y añadimos los hosts que queramos:
sshd: 192.168.0.10 # Permitir una dirección. sshd: 192.168.0.* # Permitir todo el rango de la IP 192.168.0.1 a 192.168.0.255.
Ahora definiremos en qué dirección queremos que escuche el servidor ssh, de forma que en caso de tener varias interfaces de red (una pública y otra privada) sólo se acceda por una de ellas:
Editar el archivo /etc/ssh/sshd_config:
sudo gedit /etc/ssh/sshd_config
Cambiar la directiva ListenAddress a (por ejemplo) la dirección privada del servidor:
ListenAddress 192.168.0.1
Agregar usuarios para conectarse dentro del rango de IP en la red interna configurar
AllowUsers usuario@192.168.0.* # corresponde al rango 192.168.0.1 al 192.168.0.255 AllowUsers usuario@192.168.0.11 usuario2@192.168.0.12 usuario3@192.168.0.7 # definir 1 dirección de IP por usuario
Agregar usuarios para conectarse desde cualquier parte del mundo
AllowUsers usuario usuario2 usuario3
Recomendación: para evitar ataques de hackers y hacerles más difícil que se conecten se debe desactivar la opcion para que se conecte el usuario "root", cambiando a no en la siguiente línea
# Authentication: LoginGraceTime 120 PermitRootLogin no StrictModes yes
Para aumentar la seguridad, una de las prácticas habituales es cambiar el puerto estándar (22) a uno no estádar (por ejemplo 5039).
Editamos el archivo /etc/ssh/sshd_config:
sudo gedit /etc/ssh/sshd_config
Cambiamos la directiva Port de 22 a (por ejemplo) 5039:
Port 5039
Con los pasos anteriores tendremos un servidor ya bastante seguro, pero todo se puede mejorar. Ahora vamos a definir otros aspectos de seguridad.
Cambiar el número de intentos fallidos de autentificación es una buena estrategia, sobre todo si nuestro servidor está escuchando en una red pública. De ésta forma podemos evitar que un posible atacante intente repetidamente averiguar una contraseña.
Editamos el archivo /etc/ssh/sshd_config:
sudo gedit /etc/ssh/sshd_config
Cambiamos la directiva (si no está la añadimos) MaxAuthTries:
MaxAuthTries 2
Si fallas la contraseña dos veces, te desconecta.
Ésta es una buena estrategia también, para evitar intentos de conexión. La directiva MaxStartUps controla el número de conexiones no autenticadas en el servidor, de ésta forma, evitamos que posibles atacantes intentasen conectarse demasiadas veces.
Editamos el archivo /etc/ssh/sshd_config
sudo gedit /etc/ssh/sshd_config
Cambiamos o añadimos la directiva MaxStartUps:
MaxStartUps 3
De ésta forma tendríamos un servidor ssh muy seguro.