|
|
Atención: 20 al 24 de febrero, Curso Global de Servidores con CentOS 6. Atención: 21 y 28 de enero, 4 y 11 de febrero, Taller de programación de Python. Atención: Disponible ALDOS 1.4.2. Nuestro sistema operativo para escritorio. Configuración de OpenSSH
Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.alcancelibre.org/ Jabber ID: darkshram@jabber.org Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
Introducción.Acerca de SSH.SSH (Secure Shell) es un conjunto de estándares y protocolo de red que permite establecer una comunicación a través de un canal seguro entre un cliente local y un servidor remoto. Utiliza una clave pública cifrada para autenticar el servidor remoto y, opcionalmente, permitir al servidor remoto autenticar al usuario. SSH provee confidencialidad e integridad en la transferencia de los datos utilizando criptografía y MAC (Message Authentication Codes, o Códigos de Autenticación de Mensaje). De modo predeterminado, escucha peticiones a través del puerto 22 por TCP. Acerca de SFTP.SFTP (SSH File Transfer Protocol) es un protocolo que provee funcionalidad de transferencia y manipulación de archivos a través de un flujo confiable de datos. Comúnmente se utiliza con SSH para proveer a éste de transferencia segura de archivos. Acerca de SCP.SCP (Secure Copy, o Copia Segura) es una protcolo seguro para transferir archivos entre un anfitrión local y otro remoto, a través de SSH. Básicamente, es idéntico a RCP (Remote Copy, o Copia Remota), con la diferencia de que los datos son cifrados durante la transferencia para evitar la extracción potencial de información a través de programas de captura de las tramas de red (packet sniffers). SCP sólo implementa la transferencia de archivos, pues la autenticación requerida es realizada a través de SSH. Acerca de OpenSSH.OpenSSH (Open Secure Shell) es una alternativa de código abierto, con licencia BSD, hacia la implementación propietaria y de código cerrado SSH creada por Tatu Ylönen. OpenSSH es un proyecto creado por el equipo de desarrollo de OpenBSD y actualmente dirigido por Theo de Raadt. Se considera es más segura que su contraparte propietaria debido a la constante auditoría que se realiza sobre el código fuente por parte de una gran comunidad de desarrolladores, una ventaja que brinda al tratarse de un proyecto de fuente abierta. OpenSSH incluye servicio y clientes para los protocolos SSH, SFTP y SCP. URL: http://www.openssh.org/. Equipamiento lógico necesario.Instalación a través de yum.Si se utiliza de CentOS 5, o Red Hat Enterprise Linux 5, o versiones posteriores de éstos, se ejecuta lo siguiente:
SELinux y el servicio sshd.Si se utiliza de CentOS 6, o Red Hat Enterprise Linux 6, el sistema incluye tres políticas para el servicio sshd. Política ssh_chroot_rw_homedirs.Esta política habilita, o deshabilita, la lectura y escritura de archivos a través de SFTP en los directorios de inicio de los usuarios enjaulados. El valor predeterminado es deshabilitado. Para habilitar, ejecute lo siguiente
Política fenced_can_ssh.Esta política habilita, o deshabilita, que usuarios enjaulados a través de SFTP puedan ingresar también a través de SSH. El valor predeterminado es deshabilitado. Para habilitar, ejecute lo siguiente
Política ssh_sysadm_login.Esta política habilita, o deshabilita, el acceso a través de ssh como administrador del sistema (contextos sysadm_r:sysadm_t, que corresponden a los del directorio de inicio del usuario root, o bien que pueden ser aplicados al directorio de inicio de otro usuario con privilegios). El valor predeterminado es deshabilitado. Para habilitar, ejecute lo siguiente
Política allow_ssh_keysign.Esta política habilita, o deshabilita, el acceso a través de ssh utilizando firmas digitales. El valor predeterminado es deshabilitado. Para habilitar, ejecute lo siguiente
Para más detalles, consulte el documento titulado «Cómo utilizar OpenSSH con autenticación a través de firma digital.». Archivos de configuración.
Procedimientos.Edite /etc/ssh/sshd_config. A continuación se analizarán los parámetros a modificar.
Parámetro Port.Una forma de elevar considerablemente la seguridad al servicio de SSH, es cambiar el número de puerto utilizado por el servicio, por otro que sólo conozca el administrador del sistema. A este tipo de técnicas se les conoce como Seguridad por Oscuridad. La mayoría de los delincuentes informáticos utiliza guiones que buscan servidores que respondan a peticiones a través del puerto 22. Cambiar de puerto el servicio de SSH disminuye considerablemente la posibilidad de una intrusión a través de este servicio.
SSH trabaja a través del puerto 22 por TCP. Puede elegirse cualquier otro puerto entre el 1025 y 65535. ejemplo:
Parámetro ListenAddress.De modo predeterminado, el servicio de SSH responderá peticiones a través de todas las interfaces del sistema. En algunos casos es posible que no se desee esto y se prefiera limitar el acceso sólo a través de una interfaz a la que sólo se pueda acceder desde la red local. Para tal fin puede establecerse lo siguiente, considerando que el servidor a configurar posee la IP 192.168.1.254:
Parámetro PermitRootLogin.Establece si se va a permitir el acceso directo del usuario root al servidor SSH. Si se va a permitir el acceso hacia el servidor desde redes públicas, resultará prudente utilizar este parámetro con el valor no.
Parámetro X11Forwarding.Establece si se permite o no la ejecución remota de aplicaciones gráficas. Si se va a acceder hacia el servidor desde red local, este parámetro puede quedarse con el valor yes. Si se va a permitir el acceso hacia el servidor desde redes públicas, resultará prudente utilizar este parámetro con el valor no.
Parámetro AllowUsers.Permite restringir el acceso por usuario y, de manera opcional, anfitrión desde el cual pueden hacerlo. El siguiente ejemplo restringe el acceso hacia el servidor SSH para que sólo puedan hacerlo los usuarios fulano y mengano, desde cualquier anfitrión.
También se puede restringir el acceso por usuario y anfitrión. El siguiente ejemplo restringe el acceso hacia el servidor SSH para que sólo puedan hacerlo los usuarios fulano y mengano, solamente desde los anfitriones 10.1.1.1 y 10.2.2.1.
Aplicando los cambios.El servicio de SSH puede iniciar, detenerse o reiniciar a través de un guión similar a los del resto del sistema. De tal modo, podrá iniciar, detenerse o reiniciar a través del mandato service y añadirse al arranque del sistema en un nivel o niveles de ejecución en particular con el mandato chkconfig. De modo predeterminado, el servicio sshd está activo en todos los niveles de ejecución. Para ejecutar por primera vez el servicio sshd, ejecute lo siguiente:
Para hacer que surtan efecto los cambios hechos a la configuración del servicio sshd, ejecute lo siguiente:
Para detener el servicio sshd, ejecute lo siguiente:
De forma predeterminada, el servicio SSH está incluido en todos los niveles de ejecución con servicio de red. Para desactivar el servicio sshd de todos los niveles de ejecución, ejecute:
Probando OpenSSH.Acceso a través de intérprete de mandatos.Para acceder a través de intérprete de mandatos hacia el servidor, basta con ejecutar desde el sistema cliente el mandato ssh definiendo el usuario a utilizar y el servidor al cual conectar:
Para acceder hacia un puerto en particular, se utiliza el parámetro -p. En el siguiente ejemplo, utilizando la cuanta del usuario juan, se intentará acceder hacia el servidor con dirección IP 192.168.70.99, el cual tiene un servicio de SSH que responde peticiones a través del puerto 52341.
Transferencia de archivos a través de SFTP.Para acceder a través de SFTP hacia el servidor, basta con ejecutar desde el sistema cliente el mandato sftp definiendo el usuario a utilizar y el servidor al cual conectar:
El intérprete de mandatos de SFTP es muy similar al utilizado para el protocolo FTP y tiene las mismas funcionalidades. Para acceder hacia un puerto en particular, en el cual está trabajando el servicio de SSH, se hace través de el parámetro -o, con la opción Port=número de puerto. En el siguiente ejemplo, utilizando la cuenta del usuario juan, se accederá a través de SFTP hacia el servidor 192.168.70.99, el cual tiene trabajando el servicio de SSH en el puerto 52341.
Si dispone de un escritorio en GNU/Linux, con GNOME 2.x, puede acceder hacia servidores SSH a través del protocolo SFTP utilizando el administrador de archivos (Nautilus) para realizar transferencias y manipulación de archivos, especificando el URI (Uniform Resource Locator o Localizador Uniforme de Recursos) «sftp:», seguido del servidor y la ruta hacia la que se quiere acceder, seguido del puerto, en el caso que sea distinto al 22.
Jaulas para los usuarios que acceden a través de SFTP.La función de chroot viene incluida desde la versión 4.9p1de OpenSSH. Para habilitarla, es necesario editar el archivo /etc/ssh/sshd_config:
Casi al final del archivo, localice la siguiente línea:
Comente la línea con una almohadilla y añada el siguiente contenido:
Guarde el archivo y regrese al intérprete de mandatos Reinicie el servicio sshd ejecutando lo siguiente:
Utilice el mandato groupadd para crear el grupo sftpusers.
Añada a los usuarios a los cuales se quiera enjaular, al grupo sftp.
Cambie los permisos del directorio de inicio de los usuarios involucrados, para que pertenezcan a root, y tengan permiso de acceso 755.
Finalmente, cambie el intérprete de mandatos de los usuarios involucrados a /sbin/nologin o bien /bin/false.
A partir de este momento, los usuarios involucrados podrán ingresar al sistema a través de SFTP, pero solo podrán tener acceso a su directivo de inicio.
Transferencia de archivos a través de SCP.Para realizar transferencias de archivos a través de SCP, es necesario conocer las rutas de los directorios objetivo del anfitrión remoto. A continuación se describen algunas de las opciones más importantes del mandato scp.
En el siguiente ejemplo, se transferirá el archivo algo.txt, preservando tiempos y modos, hacia el directorio de inicio del usuario fulano en el servidor 192.169.0.99.
En el siguiente ejemplo, se transferirá la carpeta Mail, junto con todo su contenido, preservando tiempos y modos, hacia el directorio de inicio del usuario fulano en el servidor 192.169.0.99.
En el siguiente ejemplo, se transferirá la carpeta Mail, junto con todo su contenido, desde el directorio de inicio del usuario fulano en el servidor 192.169.0.99, cuyo servicio de SSH escucha peticiones a través del puerto 52341, preservando tiempos y modos, hacia el directorio del usuario con el que se está trabajando en el anfitrión local.
Modificaciones necesarias en el muro cortafuegos.Si se utiliza un cortafuegos con políticas estrictas, como por ejemplo Shorewall, es necesario abrir el puerto 22 por UDP (SSH). Si utiliza Shorewall, edite el archivo /etc/shorewall/rules:
Las reglas corresponderían a algo similar a lo siguiente:
Si la red de área local (LAN) va a acceder hacia el servidor recién configurado, es neceario abrir el puerto correspondiente.
O bien, hacer todo lo anterior, con una sola regla, que permita el acceso desde cualquier zona del muro cortafuegos:
Si se decidió ofuscar el puerto de SSH, puede utilizar la siguiente regla, donde, en lugar de 52341, deberá especificar el puerto que haya elegido:
Al terminar de configurar las reglas para Shorewall, reinicie el muro cortafuegos, ejecutando el siguiente mandato:
|
Comentarios Recientes