SEGURIDAD EN REDES NOMBRE: Daniel Leonardo Proaño Rosero TEMA: SSH server SSH (Secure SHell, en español: intérprete de órdenes segura) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo la computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos un Servidor X (en sistemas Unix y Windows) corriendo. Además de la conexión a otras máquinas, SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir claves al conectar a las máquinas y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH. SSH trabaja de forma similar a como se hace con telnet La diferencia principal es que SSH usa técnicas de cifrado que hacen que la información que viaja por el medio de comunicación vaya de manera no legible y ninguna tercera persona pueda descubrir el usuario y contraseña de la conexión ni lo que se escribe durante toda la sesión; aunque es posible atacar este tipo de sistemas por medio de ataques de REPLAY y manipular así la información entre destinos. Configuración de WinSSHD Ya que se ha instalado el programa procedemos a configurarlo. Para crear un usuario en el servidor WinSSHD abrimos el WinSSHD Control Panel y nos dirigimos a la opción Edit settings. Ahora nos dirigimos a la opción de Virtual groups donde vamos a crear los usuarios. En la siguiente ventana procedemos a crear el usuario y asignarle una contraseña, así mismo existen muchas opciones para asignarle al usuario como el número de conexiones, directorio inicial del usuario, autenticación, etc. Es importante asignarle un Virtual Group al usuario que se va a crear caso contrario devuelve un error y el usuario no se crea. Una vez realizado estos pasos se procede a iniciar el servicio en la ventana de WinSSHD Control Panel en la opción Start WinSSHD. Linux OpenSSH OpenSSH (Open Secure Shell) es un conjunto de aplicaciones que permiten realizar comunicaciones cifradas a través de una red, usando el protocolo SSH. Fue creado como una alternativa libre y abierta al programa Secure Shell, que es software propietario. 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. Configuración de OpenSSH Para el desarrollo de este documento se utilizo la distribución Centos 5.3. Mediante el terminal: # yum install openssh Una vez instalado se procede a configurar el archivo opensshd_config para eso desde el terminal digitamos lo siguiente: # vi /etc/ssh/opensshd_config En el archivo de configuración se analiza los siguientes parámetros: 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 solo 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. Port 22 SSH trabaja a través del puerto 22 por TCP. Puede elegirse cualquier otro puerto entre el 1025 y 65535. Ejemplo: Port 52341 Parámetro ListenAddress. Por defecto, 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.105: ListenAddress 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. PermitRootLogin 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. X11Forwarding yes Parámetro AllowUsers. Permite restringir el acceso por usuario y, opcionalmente, anfitrión desde el cual pueden hacerlo. El siguiente ejemplo restringe el acceso hacia el servidor SSH para que solo puedan hacerlo los usuarios aaaguirre y uprueba, desde cualquier anfitrión. AllowUsers aaaguirre uprueba Permite restringir el acceso por usuario y, opcionalmente, anfitrión desde el cual pueden hacerlo. El siguiente ejemplo restringe el acceso hacia el servidor SSH para que solo puedan hacerlo los usuarios aaaguirre y uprueba, solamente desde los anfitriones 192.168.0.100 y 192.168.0.101. AllowUsers [email protected] [email protected] 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. Para ejecutar por primera vez el servicio, utilice: # service sshd start Para hacer que los cambios hechos a la configuración surtan efecto, utilice: # service sshd restart Para detener el servicio, utilice: # service sshd stop Los usuarios que se añadieron anteriormente en el archivo de configuración son usuarios creados en el sistema operativo del Servidor y podemos añadir más usuarios como se puede ver en la siguiente imagen. Alternativas a SSH: SSL, S-HTTP e IPsec. SSH ofrece una solución completa a gran variedad de problemas relacionados con la seguridad. En este apartado se abordaran diferentes protocolos utilizados en comunicaciones seguras, tanto generales (caso de SSL) o especificas para la web (Secure HTTP). SSL (Secure Sockets Layer) es un protocolo desarrollado por Netscape en el año 1994, para transmitir documentos privados a través de Internet. Está basado en la aplicación conjunta de criptografía simétrica, criptografía asimétrica, certificados digitales y firmas digitales para conseguir un canal o medio seguro de comunicación a través de Internet. SSL trabaja usando una clave privada para encriptar los datos que son transmitidos por una conexión SSL. SSL ejecuta un protocolo de negociación para establecer una conexión segura a nivel de socket (nombre de la maquina más el puerto), haciendo que los servicios de seguridad sean transparentes al usuario y a la aplicación. Su mayor ventaja es que funciona entre la capa TCP y la capa de aplicación, por esto es muy fácil usarlo para proteger los protocolos de la capa de aplicación (por ejemplo FTP, gopher, HTTP...) sin tener que realizar cambios importantes en los mismos. Más concretamente, para asegurar el protocolo HTTP, surgió HTTPS, que mediante el uso de SSL consigue que la comunicación en la web sea segura. Sirve para crear un canal cifrado (cuyo nivel de cifrado depende del servidor remoto y del navegador utilizado por el cliente) más apropiado para el tráfico de información sensible que el protocolo HTTP. Es utilizado principalmente por entidades bancarias, tiendas en línea, y cualquier tipo de servicio que requiera el envío de datos personales o contraseñas. Actualmente es el estándar de comunicación segura en los navegadores web más importantes. En comparación con SSH, podemos decir que ambos protocolos pueden ser instalados en un mismo servidor, complementándose uno al otro. Su mayor diferencia está en que SSH cifra todos los canales que utiliza, mientras que SSL no. Secure HTTP (S-HTTP), los protocolos S-HTTP están integrados con HTTP. Aquí, los servicios de seguridad se negocian a través de las cabeceras y atributos de la página. Por lo tanto, los servicios de S-HTTP están disponibles sólo para las conexiones de HTTP. Es un protocolo a nivel de aplicación, que extiende HTTP para hacerlo seguro. Las negociaciones entre el cliente y el servidor tienen lugar intercambiando datos formateados. Estos datos incluyen una variedad de opciones de seguridad y algoritmos a utilizar. IPsec (IP Security) son un conjunto de protocolos desarrollados por la IETF para soportar intercambio de paquetes de forma segura a nivel IP. Consigue además, al trabajar a nivel IP, seguridad para los niveles superiores. En un primero momento fue desarrollado para Ipv6, para posteriormente adaptarlo para Ipv4. IPsec ha sido ampliamente utilizado para la implementación de VPNs (Virtual Private Networks). IPsec soporta dos tipos de encriptado: Transport y Tunnel. El primero, solo se encripta la porción de datos de cada paquete, dejando las cabeceras intactas. Por su parte el modo Tunnel, más seguro, cifra tanto los datos como las cabeceras. De esta forma un datagrama IP se encapsula por completo en un nuevo datagrama IPsec. La diferencia principal con SSH, radica en el hecho de que IPsec está orientado a proteger todo el tráfico que circula por la red, pero sin autentificar al usuario, mientras que SSH identifica tanto al usuario como al servidor. La elección de uno u otro, se debe basar en un estudio de las necesidades en cada situación. Es posible incluso utilizar SSH y IPsec de forma conjunta, de forma que primero se establece un túnel IPsec y luego utilizamos SSH para hacer login con la maquina remota. Bibliografía http://es.wikipedia.org/wiki/Secure_Shell
© Copyright 2024