Instalación y configuración de un servidor SSH en Linux. Cómo usar el protocolo SSH en Ubuntu: instalación y configuración No se conecta vía ssh ubuntu

Este artículo trata sobre la configuración. acceso remoto al servidor Ubuntu. El principio de conexión es muy simple: en el lado del cliente usamos un programa para acceso remoto (por ejemplo, Putty), en el lado del servidor instalamos y configuramos el paquete OpenSSH. Al conectarse, el cliente se somete a un procedimiento de autorización con el servidor y se establece una conexión cifrada entre ellos. El principio de funcionamiento del protocolo SSH se analizó con más detalle en el artículo sobre.

El diagrama de red se muestra a continuación. La conexión remota al servidor se realizará desde la computadora cliente.

Instalamos Ubuntu Server en un disco duro limpio. Después de la instalación, debe configurar la interfaz de red del servidor para acceder a la red. Es decir, configure la dirección IP, la máscara de red y la puerta de enlace predeterminada. Si su interfaz ya está configurada, puede omitir este paso. Ajustes interfaces de red están especificados en el archivo /etc/red/interfaces. Para editar usaremos un editor de texto. nano.

Entramos en el modo de edición del archivo de interfaces. Nos interesa todo lo que aparece a continuación # La interfaz de red principal. EN este momento el servidor recibe una dirección IP a través de DHCP, lo cual no es del todo correcto. El servidor debe tener una IP estática para que todos los nodos de la red sepan exactamente su dirección. vamos a escribirlo configuración de la red a mano.

Mi servidor está en la subred local 192.168.1.0/24. El servidor tiene asignada IP 192.168.1.2, máscara 255.255.255.0, puerta de enlace predeterminada 192.168.1.1, dirección del servidor DNS 192.168.0.1

Para guardar el archivo, presione Ctrl + X –> Y –> Enter. Para aplicar la configuración, debe reiniciar el proceso de red. También puedes simplemente reiniciar el servidor con el comando sudo reboot.

comprobar (comando ifconfig-a) – se aplican los ajustes

Todo está listo para OpesnSS, que se puede instalar desde la terminal usando los comandos

$ sudo apt-get install openssh-cliente

$ sudo apt-get install openssh-servidor

Puede controlar el inicio, la parada y el reinicio del servidor SSH mediante los comandos

$sudo servicio ssh detener | inicio | Reanudar

De hecho, ya tienes acceso SSH al servidor. pero para mas sintonia FINA Hay un archivo de configuración en /etc/ssh/sshd_config. El acceso a las configuraciones solo es posible desde la raíz.

Del lado del cliente, descarga cualquier programa para conectarte vía SSH, te recomiendo Putty. En el programa, todo lo que tienes que hacer es ingresar la dirección IP del servidor y conectarte a él. Al conectarse, ingrese el nombre de usuario y la contraseña.


Suscríbete a nuestro


Para instalar el servidor ssh, ejecute en la terminal:

Ubuntu/Debian/Linux Menta

Luego edite la configuración del servidor ssh en el archivo /etc/ssh/sshd_config
Para hacer esto, en la terminal ejecute:


Además, para que OpenSSH escuche solo ciertas direcciones IP, por ejemplo 192.168.0.50, 192.168.0.51 en el puerto 777, simplemente agregue las siguientes líneas:

Restringir el acceso vía SSH para usuarios: test test2 test3

El servidor OpenSSH puede usar el protocolo Rlogin para autorización y puede simular el comportamiento del comando rsh heredado, así que deshabilite la lectura. Archivos de usuario~/.rhosts y ~/.shosts:

Habilite el banner de advertencia editando la siguiente línea y creando lo siguiente. archivo:

Guarde los registros, asegúrese de que la directiva LogLevel esté configurada en INFO o DEBUG

Para reiniciar OpenSSH en CentOS, Fedora o RHEL:

En algunos casos, puede iniciar el servidor sólo de esta manera:


Para verificar el estado del servidor use el siguiente comando


Ahora puede iniciar sesión en una computadora con el servidor OpenSSH instalado de esta manera:

Ssh [-p puerto]

Por ejemplo:

CentOS / RHEL / Fedora Linux: puede desactivar o eliminar OpenSSH de esta manera:

$ chkconfig sshd desactivado
$ yum borrar servidor openssh

Principales archivos y carpetas SSH:
~/.ssh/ - directorios de configuración de usuario
~/.ssh/authorized_keys y ~/.ssh/authorized_keys2: listas de claves públicas (RSA o DSA) que se pueden usar para autorizar una cuenta de usuario
~/.ssh/known_hosts - claves del servidor
/etc/ssh/sshd_config - Archivo de configuración del servidor OpenSSH
/etc/ssh/ssh_config - Archivo de configuración del cliente OpenSSH
/etc/nologin: si este archivo existe, el sistema no permitirá el acceso a nadie que no sea el usuario root. Es mejor quitarlo y no usarlo.
/etc/hosts.allow y /etc/hosts.deny: listas de control de acceso (ACL)

En este artículo, le mostraremos cómo instalar, configurar y usar OpenSSH en Ubuntu 16.04. SSH (Secure Shell) es un protocolo que permite el acceso seguro a una máquina remota mientras que OpenSSH es un conjunto de herramientas basadas en el protocolo SSH. Hoy te mostraremos cómo instalar y configurar OpenSSH usando Ubuntu 16.04 como sistema operativo.

Instalación de OpenSSH en Ubuntu 16.04

Primero, instalemos OpenSSH. Actualice los índices de los paquetes usando el siguiente comando:

Sudo apt-obtener actualización

Para instalar la aplicación del servidor OpenSSH, así como otros paquetes relacionados, utilice el siguiente comando:

Sudo apt-get install openssh-server

Tenga en cuenta que es posible que el paquete del servidor OpenSSH ya esté instalado en su sistema como parte del proceso de instalación inicial del servidor. Alternativamente, puede instalar la aplicación cliente OpenSSH usando el siguiente comando:

Sudo apt-get install openssh-client

Configurar OpenSSH en Ubuntu 16.04

Antes de realizar cambios en la configuración de OpenSSH, es bueno saber cómo administrar el servicio OpenSSH en su . Para iniciar el servicio puede utilizar el siguiente comando:

Sudo systemctl inicia sshd.service

Para detener el servicio puedes utilizar:

Sudo systemctl detener sshd.service

Para reiniciar el servicio puedes usar:

Sudo systemctl reinicia sshd.service

Para comprobar el estado del servicio puede utilizar:

Sudo systemctl estado sshd.service

Para habilitar el servicio durante el inicio del sistema, puede usar:

Sudo systemctl habilita sshd.service

Para deshabilitar el servicio mientras el sistema se está iniciando, puede usar:

Sudo systemctl deshabilita sshd.service

Después de realizar cambios en la configuración de OpenSSH, debe reiniciar el servicio para que los cambios surtan efecto.

El archivo de configuración principal para la aplicación del servidor OpenSSH es /etc/ssh/sshd_config. Asegúrese de hacer una copia de seguridad de su configuración original antes de realizar cualquier cambio:

Sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig

Puedes editar este archivo con editor de texto según tu elección. Lo primero que puedes hacer es. Abra el archivo y busque la línea que define el puerto de escucha:

Cámbialo por otra cosa. Por ejemplo 2022

Puerto 2022

Guarde el archivo y ciérrelo. Luego reinicie el servicio para que los cambios surtan efecto.

Ahora puede intentar utilizar el número de puerto especificado en el archivo de configuración del servidor OpenSSH. Si puede conectarse al servidor a través de SSH correctamente, puede continuar con el siguiente paso, que es proteger OpenSSH.

OpenSSH seguro en Ubuntu 16.04

#PermitRootLogin sí

y cambiarlo a:

PermitRootLogin no

Guarde los cambios y reinicie el servicio para que los cambios surtan efecto. La próxima vez que se conecte al servidor, podrá utilizar el usuario SUDO recién creado.

Para proteger el servidor, también puede desactivar la verificación de contraseña y . Además, puedes.

Puede consultar opciones de configuración adicionales utilizando la página de manual:

Hombre sshd_config

o puede visitar las páginas del manual de OpenSSH en https://www.openssh.com/manual.html.

Esta sección de la Guía del servidor Ubuntu presenta una poderosa colección de herramientas para el control remoto y la transferencia de datos entre computadoras en red llamada OpenSSH. También aprenderá sobre algunos de los ajustes de configuración posibles con el Servidor OpenSSH aplicación y cómo cambiarlos en su sistema Ubuntu.

OpenSSH es una versión disponible gratuitamente de la familia de protocolos Secure Shell (SSH) de herramientas para controlar remotamente o transferir archivos entre computadoras. Las herramientas tradicionales utilizadas para realizar estas funciones, como telnet o rcp, son inseguras y transmiten la contraseña del usuario en texto sin cifrar cuando se utilizan. OpenSSH proporciona un demonio de servidor y herramientas de cliente para facilitar operaciones de transferencia de archivos y control remoto seguras y cifradas, reemplazando de manera efectiva las herramientas heredadas.

El componente del servidor OpenSSH, sshd, escucha continuamente las conexiones del cliente desde cualquiera de las herramientas del cliente. Cuando se produce una solicitud de conexión, sshd configura la conexión correcta según el tipo de herramienta cliente que se conecta. Por ejemplo, si la computadora remota se conecta con la aplicación cliente ssh, el servidor OpenSSH configura una sesión de control remoto después de la autenticación. Si un usuario remoto se conecta a un servidor OpenSSH con scp, el demonio del servidor OpenSSH inicia una copia segura de archivos entre el servidor y el cliente después de la autenticación. OpenSSH puede utilizar muchos métodos de autenticación, incluida una contraseña simple, una clave pública y tickets Kerberos.

Instalación

La instalación de las aplicaciones de servidor y cliente OpenSSH es sencilla. Para instalar las aplicaciones cliente OpenSSH en su sistema Ubuntu, use este comando en el símbolo del terminal:

sudo apt instalar openssh-cliente

Para instalar la aplicación del servidor OpenSSH y los archivos de soporte relacionados, use este comando en el símbolo del terminal:

sudo apt instalar el servidor openssh

El paquete openssh-server también se puede seleccionar para instalar durante el proceso de instalación de Server Edition.

Configuración

Puede configurar el comportamiento predeterminado de la aplicación del servidor OpenSSH, sshd, editando el archivo /etc/ssh/sshd_config. Para obtener información sobre las directivas de configuración utilizadas en este archivo, puede ver la página del manual correspondiente con el siguiente comando, emitido en el símbolo del terminal:

hombre sshd_config

Hay muchas directivas en el archivo de configuración sshd que controlan cosas como la configuración de comunicación y los modos de autenticación. Los siguientes son ejemplos de directivas de configuración que se pueden cambiar editando el archivo /etc/ssh/sshd_config.

Antes de editar el archivo de configuración, debe hacer una copia del archivo original y protegerlo contra escritura para tener la configuración original como referencia y poder reutilizarla según sea necesario.

Copie el archivo /etc/ssh/sshd_config y protéjalo contra escritura con los siguientes comandos, emitidos en el símbolo del terminal:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original sudo chmod aw /etc/ssh/sshd_config.original

Los siguientes son ejemplos de directivas de configuración que puede cambiar:

    Para configurar su OpenSSH para que escuche en el puerto TCP 2222 en lugar del puerto TCP predeterminado 22, cambie la directiva Puerto como tal:

    Para que sshd permita credenciales de inicio de sesión basadas en clave pública, simplemente agregue o modifique la línea:

    Autenticación Pubkey sí

    Si la línea ya está presente, asegúrese de que no esté comentada.

    Para que su servidor OpenSSH muestre el contenido del archivo /etc/issue.net como un banner previo al inicio de sesión, simplemente agregue o modifique la línea:

    Banner /etc/issue.net

    En el archivo /etc/ssh/sshd_config.

Después de realizar cambios en el archivo /etc/ssh/sshd_config, guarde el archivo y reinicie la aplicación del servidor sshd para efectuar los cambios usando el siguiente comando en el símbolo del terminal:

sudo systemctl reiniciar sshd.service

Muchas otras directivas de configuración para sshd están disponibles para cambiar el comportamiento de la aplicación del servidor para satisfacer sus necesidades. Sin embargo, tenga en cuenta si su único método de acceso a un servidor es ssh y comete un error al configurar sshd a través de /etc /ssh. /sshd_config, es posible que se bloquee el acceso al servidor al reiniciarlo. Además, si se proporciona una directiva de configuración incorrecta, el servidor sshd puede negarse a iniciarse, así que tenga mucho cuidado al editar este archivo en un servidor remoto.

Descubrimos qué es SSH y cuales son sus ventajas, también implementamos el ejemplo más simple SSH- servidor y cliente.

Hoy hablaré sobre configuraciones más detalladas. SSH- servidor.

Como dice la famosa frase, “en linux todo es un archivo", así que para configurar SSH- servidor, es necesario y suficiente editar un archivo de configuración. Su ruta completa/etc/ssh/sshd_config. Para editarlo, abra este archivo con derechos de superusuario utilizando cualquier editor de texto.

Antes de editar, lo haremos por si acaso. respaldo archivo:

Sudo cp /etc/ssh/sshd_config(,.bak)

Ahora veamos su contenido:

Sudo nano /etc/ssh/sshd_config

Después de cada cambio en este archivo debes reiniciar ssh- servidor para aplicar nuestros cambios.

Como podemos ver, aquí hay bastantes parámetros, nos ocuparemos de cada uno de ellos gradualmente.

Puerto

Aquí especificamos qué puerto escuchará nuestro servidor. Por defecto escucha 22 puerto TCP/IP. Dato interesante que puede especificar varios puertos. Por ejemplo:

EscucharDirección

La vista general de la configuración se puede escribir de la siguiente manera:

Anfitrión de dirección de escucha | Dirección_IPv4 | IPv6_addr dirección de escucha: puerto

Especifica la dirección de red en la que el servidor "escuchará".
Si el servidor tiene varias interfaces de red que están configuradas para usar diferentes IP direcciones, entonces puede restringir el acceso mediante este parámetro.
Por ejemplo, en el servidor lo siguiente 4 interfaz de red:

Eth0 – 192.168.0.1 eth1 – 192.168.0.2 eth2 – 192.168.0.3 eth3 – 192.168.0.4

Por defecto ssh- el servidor está en un estado de espera de conexión IP direcciones. Si desea que los usuarios puedan iniciar sesión solo en las interfaces 2 Y 3 , entonces deberías hacer esto:

Dirección de escucha 192.168.0.2 Dirección de escucha 192.168.0.3

También puede especificar el puerto aquí. Por ejemplo:

EscucharDirección 192.168.0.2:222

Si no se especifica el puerto, ssh escuchará en esta dirección y
en el puerto especificado en la opción Puerto. Si utiliza EscucharDirección sin especificar el puerto, entonces la opción Puerto debe ir precedido de una opción Dirección de escucha. Si no lo especificas en absoluto Dirección de escucha, luego, de forma predeterminada, el servidor escucha en todas las direcciones locales.

Dirección Familia

Indica qué familia IP Las direcciones deben ser utilizadas por el servicio. ssh. Posibles opciones:
"cualquier"- cualquier
"inet"(solo IPv4)
"inet6"(solo IPv6)
Por defecto - "cualquier".

Tiene sentido, si es posible, limitar la familia de direcciones procesadas a aquellas que realmente se utilizan, es decir, si sólo se utilizan IPv4- desactivar IPv6, y viceversa.

Por ejemplo, para resolver IPv4 y prohibir IPv6:

DirecciónFamilia inet

Protocolo

ssh puede trabajar con protocolos SSH1 Y SSH2. Al mismo tiempo, el uso de materiales inseguros. SSH1 Altamente no recomendado. Fuerza ssh trabajar solo con el protocolo SSH2 Puedes hacerlo:

Protocolo 2

Permitir inicio de sesión raíz

De forma predeterminada, inicie sesión en el servidor remoto como usuario raíz nadie lo prohíbe. Pero no es del todo seguro. En su lugar, sería más correcto iniciar sesión con el nombre de usuario. cuenta y aumenta tus privilegios usando el comando 'su-', o usar 'sudo'.

Si su organización tiene varios administradores del sistema y todos se conectan al servidor como superusuario, no siempre es posible saber qué administrador está en el servidor. Por lo tanto, después de deshabilitar la capacidad de iniciar sesión directamente bajo el usuario raíz administradores de sistemas primero iniciarán sesión en su cuenta y solo después recibirán privilegios de superusuario; Esto facilitará la auditoría del servidor y las acciones realizadas por los administradores del sistema.
Para deshabilitar la función anterior, deshabilite el parámetro Permitir inicio de sesión raíz, estableciendo el valor "No".

PermitRootLogin no

Permitir contraseñas vacías

Bloquear contraseñas vacías

Permitir contraseñas vacías no

Permitir usuarios, permitir grupos

De forma predeterminada, cualquier usuario del servidor puede iniciar sesión. Es mejor limitar el círculo de usuarios a los que se les permite acceder a ssh.
Esto puede resultar útil cuando crea varios usuarios en el sistema, pero permite el acceso mediante ssh quiero sólo algunos.

Para hacer esto, en el archivo de configuración sshd_config debe agregar usuarios específicos que existan en el servidor. En el siguiente ejemplo, estos son usuarios. juan, pedro Y Miguel, quienes pueden ingresar al servidor. Los nombres de usuario están separados por espacios.

AllowUsers juan peter michael

Al agregar todos los usuarios que están presentes en un grupo específico, debe especificarlo como se muestra en el siguiente ejemplo. Los grupos de usuarios a los que se les permite iniciar sesión en el servidor también están separados por un espacio.

Administradores de desarrolladores de AllowGroups

Denegar usuarios, Denegar grupos

En lugar de permitir el acceso a usuarios o grupos específicos, también puede especificar usuarios o grupos a los que se les niega el acceso al servidor.
Para hacer esto, agregue al archivo de configuración. sshd_config parámetro Denegar usuarios, en los que, separados por un espacio, se indican aquellos usuarios que tienen prohibido el acceso al servidor. En el siguiente ejemplo, este es el sistema. apache y también bastante real boris.

Denegar usuarios apache boris

También existe una opción que le permite denegar el acceso no a usuarios individuales, sino a grupos completos a los que pertenecen los usuarios. Este es un parámetro Denegar grupos y los grupos también se indican con un espacio.

Hackers de marketing de DenyGroups

Tenga en cuenta que puede utilizar combinaciones de parámetros que prohíben y permiten: Denegar usuarios, Permitir usuarios, Denegar grupos, Y Permitir grupos.

Iniciar sesiónGraceTime

Al intentar iniciar sesión usando ssh en el servidor que tienes 2 minutos para ingresar su nombre de usuario y contraseña. Si no hace esto, se perderá la conexión con el servidor. 2 Minutos de espera para obtener datos de autorización es bastante. Debe limitarse a 1 minutos o incluso hasta 30 segundos

Para hacer esto, cambie el parámetro. Iniciar sesiónGraceTime editando el archivo sshd_config e indicar allí el tiempo requerido. En el siguiente ejemplo es 1 minuto.

Iniciar sesiónGraceTime 1m

IntervaloClienteVivo

Desconexión cuando no hay actividad en el shell.

Una vez que haya iniciado sesión exitosamente en el servidor, es posible que desee permitir la desconexión automática después de que haya pasado un tiempo durante el cual no haya realizado ninguna acción en la consola. A esto se le conoce comúnmente como tiempo de inactividad.

Usando Intento, puedes lograr esto cambiando Variable ambiental TMOUT.

EN AbiertoSSH esto se logra mediante una combinación de parámetros ClienteAliveCountMax Y IntervaloClienteVivo en el archivo de configuración sshd_config.

  • ClienteAliveCountMax— indica la cantidad máxima checkalive mensajes enviados ssh- servidor del que no recibe ninguna respuesta ssh- cliente. El valor predeterminado es 3.
  • IntervaloClienteVivo— indica el tiempo de espera (timeout) en segundos. Después del tiempo especificado ssh- el servidor enviará checkalive mensaje al cliente, esperando una respuesta de él (respuesta). El valor predeterminado es 0, es decir, el servidor no enviará mensajes para verificación.

Para que tu ssh- el cliente se desconecta automáticamente después 10 minutos ( 600 segundos), debe realizar cambios en el archivo de configuración sshd_config de la siguiente manera:

ClientAliveInterval 600 ClientAliveCountMax 0

Eso es todo por ahora. En principio creo que esto ya es suficiente para una buena configuración y mayor seguridad. ssh. En la siguiente parte veremos algunos parámetros más. ssh- servidor y tal vez podamos discutir la autenticación basada en claves.

¡Buena suerte a todos y nos vemos pronto en nuestro blog!




Arriba