Configurar servidor ssh

De doc.ubuntu-es
(Diferencias entre revisiones)
Saltar a: navegación, buscar
m (Cambiar el Número de Conexiones Concurrentes No Autentificadas)
(Permitiendo y denegando hosts)
 
(No se muestra una edición intermedia realizada por un usuario)
Línea 1: Línea 1:
 
{{Comos}} [[Categoría:Comos]]
 
{{Comos}} [[Categoría:Comos]]
= Instalando el Servidor SSH =
 
  
Para instalar el Servidor ssh:
+
== Instalación ==
  
sudo apt-get install openssh-client
+
[[instalar aplicaciones|Instala]] los paquetes <code>openssh-server</code> y <code>openssh-client</code> del repositorio ''main'' de Ubuntu.
sudo apt-get install openssh-server
+
  
= Configurar el Servidor sshd =
+
== Configuración ==
  
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 tambien es aplicable a las versiones server, si bien en una línea de comandos no podremos usar '[[gedit]]' usaremos [[nano]] o [[vi]].
+
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]].
  
 +
=== Permitiendo y denegando [[hosts]] ===
  
== Permitiendo y Denegando [[Hosts]]==
+
Para permitir y denegar los accesos, editaremos los archivos <code>/etc/hosts.deny</code> y <code>/etc/hosts.allow</code>. 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 <code>hosts.allow</code>.
  
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.
  
Es imprescindible que comprendamos que los archivos hosts no se aplican solo al servidor ssh, si no 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.
  
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 publica.
+
sudo gedit /etc/hosts.deny
  
sudo gedit /etc/hosts.deny
+
Y añadimos la línea:
  
Y añadimos la Línea:
+
ALL: ALL
  
ALL: ALL
+
Ahora editamos el archivo <code>hosts.allow</code>:
 
+
Ahora editamos el archivo hosts.allow
+
  
 
  sudo gedit /etc/hosts.allow  
 
  sudo gedit /etc/hosts.allow  
Línea 32: Línea 29:
 
Y añadimos los hosts que queramos:
 
Y añadimos los hosts que queramos:
  
 
+
  sshd: 192.168.0.10 # Permitir una dirección.
  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.
  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:
 
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'
+
Editar el archivo <code>/etc/ssh/sshd_config</code>:
  
 
  sudo gedit /etc/ssh/sshd_config  
 
  sudo gedit /etc/ssh/sshd_config  
  
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
  
== Cambiando a un Puerto no estándar ==
+
Agregar usuarios para conectarse dentro del rango de IP en la red interna configurar
  
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)
+
'''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
  
Editamos el archivo '/etc/ssh/sshd_config':
+
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 ===
 +
 
 +
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 <code>/etc/ssh/sshd_config</code>:
  
 
  sudo gedit /etc/ssh/sshd_config  
 
  sudo gedit /etc/ssh/sshd_config  
  
Cambiamos la directiva 'Port' de 22 a (por ejemplo) 5039:
+
Cambiamos la directiva ''Port'' de 22 a (por ejemplo) 5039:
  
 
  Port 5039  
 
  Port 5039  
  
== Incrementando la Seguridad ==
+
=== Incrementando la seguridad ===
  
Con los pasos anteriores tendremos un servidor ya bastante seguro, pero todo se puede mejorar. Ahora vamos a definir otros aspectos de seguridad
+
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 ===
+
==== Cambiar el número de intentos fallidos de autentificación ====
  
Cambiar el número deintentos 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.
+
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'
+
Editamos el archivo <code>/etc/ssh/sshd_config</code>:
  
 
  sudo gedit /etc/ssh/sshd_config  
 
  sudo gedit /etc/ssh/sshd_config  
  
Cambiamos la Directiva (y si no está la añadimos) MaxAuthTries
+
Cambiamos la directiva (si no está la añadimos) ''MaxAuthTries'':
  
 
  MaxAuthTries 2  
 
  MaxAuthTries 2  
Línea 76: Línea 88:
 
Si fallas la contraseña dos veces, te desconecta.
 
Si fallas la contraseña dos veces, te desconecta.
  
=== Cambiar el Número de Conexiones Concurrentes No Autentificadas ===
+
==== Cambiar el número de conexiones concurrentes no autentificadas ====
  
Ésta es una buena estrategia tambien, 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.
+
É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'
+
Editamos el archivo <code>/etc/ssh/sshd_config</code>
  
 
  sudo gedit /etc/ssh/sshd_config  
 
  sudo gedit /etc/ssh/sshd_config  
  
Cambiamos o añadimos la Directiva MaxStartUps:
+
Cambiamos o añadimos la directiva ''MaxStartUps'':
  
 
  MaxStartUps 3  
 
  MaxStartUps 3  
Línea 90: Línea 102:
 
De ésta forma tendríamos un servidor ssh muy seguro.
 
De ésta forma tendríamos un servidor ssh muy seguro.
  
 
 
<!-- Categorías -->
 
 
[[Categoría:Servidores]]
 
[[Categoría:Servidores]]

Última revisión de 16:01 18 jun 2008

Advert.3.png 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

[editar] Instalación

Instala los paquetes openssh-server y openssh-client del repositorio main de Ubuntu.

[editar] Configuración

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.

[editar] Permitiendo y denegando hosts

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

[editar] Cambiando a un puerto no estándar

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 

[editar] Incrementando la seguridad

Con los pasos anteriores tendremos un servidor ya bastante seguro, pero todo se puede mejorar. Ahora vamos a definir otros aspectos de seguridad.

[editar] Cambiar el número de intentos fallidos de autentificación

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.

[editar] Cambiar el número de conexiones concurrentes no autentificadas

É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.

Herramientas personales