Seguridad en accesos remotos del usuario root para servicios de ssh

Última respuesta ag. 28, 2019 19:05:59 526 6 65 11

 

En la actualidad se abordan temas sobre seguridad en servidores o seguridad en sistemas operativos que tienen alguna función específica como servidor de sitios web, bases de datos, para virtualizaciones, etc, más aún si son servidores que tienen instalado algún sistema operativo Linux de cualquier distribución. En este caso y para este documento se toma como distribución de Linux la versión Centos-7-x86-x64-1810.


Como bien describe el título se toman como casos los accesos de los servicios ssh y mysql con el usuario “root”. Por lo que empezaremos a describir quien es y que hace el usuario “root”, básicamente este usuario es considerado como un “super usuario” y no porque tenga poderes especiales sino porque tiene acceso sin restricciones a todo el sistema operativo.


El usuario “root” puede modificar, instalar, desinstalar (para las distros Linux se usa el término: remover), paquetes (pequeños programas en formato rpm para el caso de Centos), así como eliminar, modificar, crear cualquier tipo de archivo en cualquier directorio Linux, si consideramos que esto es su mayor virtud, también puede ser su mayor problema. Es decir, cuando el usuario “root” ingresa al sistema operativo de forma remota (es decir, de otro equipo que no es el servidor), digamos sin consentimiento de los administradores del servidor, el problema es llamado vulnerabilidad, ya que hace referencia a la posibilidad de generar un daño irreparable al sistema operativo, y por ende, a lo que tenga instalado o el servicio que ofrezca ese servidor. Por lo que es necesario aumentar las medidas de seguridad implementadas, para este caso, restringir al usuario “root” ingresar de manera directa al servidor, es decir, por el servicio ssh.


A continuación, se describe el procedimiento para restringir este acceso:


Paso 1. Debemos abrir una terminal de comando en el ambiente Linux, la cual se muestra en la figura 1, cabe destacar que el usuario “root” a diferencia del resto de los usuarios se identifica por el signo “#” en el prompt de la ventana de la terminal.


 Figura 1

Figura 1. Terminal de comando del sistema operativo Linux


Paso 2. Haciendo uso del comando “gedit” editamos el archivo “sshd_config” ubicado en el directorio “/etc/ssh/”, como se muestra en la línea de comando de la figura 2.

 

Figura2

Figura 2. Uso del comando gedit para editar el archivo sshd_config


Paso 3. Encontrar dentro del archivo “sshd_config” la variable “PermitRootLogin” quitar el signo “#” que está al inicio y por último cambiar la palabra “yes” por la palabra “no”, guardamos el documento y lo cerramos. La figura 3 muestra cómo queda la variable dentro del archivo sshd_config.

 

Figura3

Figura 3. Archivo sshd_config modificado.


Paso 4. Reiniciamos el servidor ssh como se muestra la figura 4.


Figura4

Figura 4. Reinicio del servicio ssh

 

Para verificar que se ha restringido el acceso, realizamos una prueba haciendo uso de un programa instalado en otro equipo de cómputo para evaluar el funcionamiento de restringir el acceso de root de forma remota, para este caso usamos el programa libre llamado “ZOC7 Terminal”.


Primero debemos de saber que IPv4 tiene el servidor, para ello hacemos uso del comando “ifconfig”, tal como se muestra la figura 5.

 

Figura5

Figura 5. Uso del comando ipconfig.


Ahora sabemos que la IPv4 es “192.168.192.132, usamos el programa “ZOC7 Terminal” para evaluar la configuración, para lo cual nos solicita que ingresemos la contraseña de root (ver figura 6).

 

Figura6

Figura 6. Usando el programa ZOC7 Terminal

 

En la figura 7, se muestra que al escribir la contraseña de “root” el programa regresa el mensaje de “Permission denied (password)”, esto nos indica que efectivamente se restringe al usuario “root” iniciar de manera remota al servidor.

 

Figura7

Figura 7. Acceso denegado al usuario “root”.


Conclusión

Actualmente como administradores de servidores debemos contar con diferentes medidas que aumenten los niveles de seguridad en los servidores, ya que puede estar comprometida la información y la integridad de los datos y/o información contenida en el servidor.

 





  • x
  • convención:

Manu518
Publicado 2019-8-23 19:36:27 Útil(3) Útil(3)
Otras medida de seguridad que puede ser implementada es reducir el tiempo de la pantalla de logueo para evitar que un atacante tenga el tiempo suficiente para atacar por medio de algún script malicioso.
Para implementar esto se debe editar al archivo "sshd_config" y modificar la variable "LoginGraceTime". En la Figura 3, arriba de la propiedad "PermitRootLogin" se encuentra la propiedad "LoginGracetime", quitaremos el signo # y después se cambiará el "2m" por "30", este 30 son los segundos que tiene el usuario para introducir su usuario y su contraseña, también se debe de considerar dejar un margen de tiempo para aquellos usuarios que son lentos al momento de introducir su información y puedan entrar sin problemas.
  • x
  • convención:

RubenC98
Publicado 2019-8-24 09:34:39 Útil(5) Útil(5)
Otra medida de seguridad puede ser el cambiar el puerto.
Port: Por default ssh funciona en el puerto 22, y precisamente muchos scripts de ataques están dirigidos a este puerto, el cambiar de puerto no garantiza que el servicio ya no será localizable, de hecho con herramientas como nmap o amap es sumamente fácil descubrir que un servicio ssh esta a la escucha en otro puerto distinto al 22, pero al menos no será localizable por varios scripts que de manera automática escanean redes y en cuanto a ssh se enfocan solo al puerto 22.
  • x
  • convención:

Gonhered
Publicado 2019-8-24 17:02:56 Útil(0) Útil(0)
Saludos a toda la comunidad, es importante implantar todas estas medidas de seguridad que permiten aumentar los "niveles de seguridad en los equipos que son comúnmente usados para el acceso publico.
  • x
  • convención:

DavidMtz
Publicado 2019-8-24 21:14:37 Útil(1) Útil(1)
Es increíble como un usuario puede tener tanto poder sobre un servidor con tan solo unas líneas de código, Esto puede resultar fácil en tan pocos pasos, pero es la diferencia entre estar protegiendo la integridad de los datos del servidor o tenerlos vulnerables ante usuarios maliciosos.
  • x
  • convención:

ChaseIshmael
Publicado 2019-8-28 17:38:41 Útil(0) Útil(0)
La administración de un servidor es importante, es por ello que las distribuciones del sistema operativo Linux crean el usuario root y de manera predeterminada junto con todos los permisos, así mismo como se muestra en la publicación la configuración del archivo “sshd_config” le permite al usuario root acceder mediante SSH; lo cual aprovechan los atacantes para realizar ataques de fuerza bruta mediante scripts para obtener la contraseña y tomar control del servidor. Es por ello que, así como lo menciona el post, deshabilitar el inicio remoto del usuario root y en su lugar crear un usuario donde su nombre y contraseña sea una combinación de caracteres que contenga guiones bajos, mayúsculas, minúsculas y números. De esta manera, si el administrador necesita acceder, inicia con su cuenta y una vez dentro con el comando “sudo “accede a los privilegios del sistema.
  • x
  • convención:

Char3605
Publicado 2019-8-28 19:05:59 Útil(0) Útil(0)
Tener la accesibilidad de acceder a un servidor remoto es muy importante, y es por eso que existen protocolos para ello, uno de ellos es el que se menciona en la publicación; SSH, el cual da la posibilidad de ingresar a un servidor de manera remota mediante un canal seguro de información cifrada. Sin embargo, aun siendo un medio seguro, existen riesgos, dado que los atacantes buscan maneras de poder acceder, no obstante, el peligro no solo se encuentra en la red externa que es la internet, sino que, de la misma manera dentro una LAN es posible que se encuentre el atacante al cual se le conoce como: “Man in the Middle”; éste atacante se encuentra dentro de la institución y busca la manera de desviar el tráfico SSH a su servidor propio y posteriormente al servidor genuino y de esta manera conocer todos los datos desencriptados.
Para prevenir estos ataques, es necesario conocer el “fringerprint” del servidor, el cual se obtiene entrando al directorio del archivo SSH (cd/etc/ssh) y utilizando el comando ssh-keygen -l -f ssh_host_key.pub lo mostrará en consola. Posteriormente es necesario anotarlo y en cada momento que se requiera acceder al servidor mediante SSH verificar que el “fringerprint” sea el mismo que se obtuvo de la consola, de otra manera no acceder dado que la conexión puede estar realizándose al computador de un atacante.
  • x
  • convención:

Responder

Responder
Debe iniciar sesión para responder la publicación Inicio de sesión | Registrarse

Aviso Aviso: Para garantizar sus legítimos derechos e intereses, la comunidad y los terceros no publicarán contenido que pueda generar riesgos legales a las partes, por ejemplo, pornografía, contenido político, contenido sobre juego, consumo y tráfico de drogas, así como contenido que viole los derechos de propiedad intelectual de terceros, por ejemplo, secretos comerciales, marcas, derechos de autor, patentes y privacidad personal. No comparta su cuenta ni su contraseña con terceros. Todas las operaciones realizadas usando su cuenta se considerarán como sus acciones y todas las consecuencias que estas acciones generen serán responsabilidad suya. Para obtener información detallada, consulte la “ Política de privacidad.”
Si el botón para adjuntar no está disponible, actualice Adobe Flash Player con la versión más reciente
¡Ingresa y disfruta de todos los beneficios para los miembros!

¡Ingresa y disfruta de todos los beneficios para los miembros!

Aterrizaje