Cómo configurar un servidor Linux por primera vez
¡Hola! Bienvenido al apasionante mundo de la administración de sistemas. Si estás leyendo esto, probablemente acabas de alquilar un VPS o has montado un equipo viejo en tu casa con la idea de configurar tu primer servidor linux. Es normal sentirse un poco abrumado al principio, pero te prometo que con esta guía linux básica, paso a paso, lo tendrás listo en menos de lo que piensas.
No necesitas ser un experto en informática para seguir esta guía. Solo necesitas paciencia, un poco de curiosidad y ganas de aprender. Vamos a desmitificar el mito de que los servidores son complicados. Al final de este artículo, tendrás un servidor seguro, actualizado y con una base sólida para crecer. Como sysadmin principiante, esta será tu primera gran victoria.
Vamos a ello. Respira hondo, coge un café y prepárate para ensuciarte las manos (virtualmente, claro).
Paso 1: Acceso Inicial y Conexión por SSH
Cuando contratas un servidor, te dan una IP pública, un usuario (normalmente root) y una contraseña. Para configurar un servidor linux, el primer paso es conectarte a él. Olvídate de pantallas y ratones; en el mundo de los servidores, todo se hace mediante terminal.
¿Qué es SSH?
SSH (Secure Shell) es un protocolo que te permite acceder a la consola de tu servidor de forma segura y cifrada. Es como un túnel privado entre tu ordenador y el servidor.
Cómo conectarte desde Windows, Mac o Linux
- Windows: Necesitarás un programa llamado "PuTTY". Es gratuito y muy sencillo de usar. Abre PuTTY, escribe la IP de tu servidor en el campo "Host Name", asegúrate de que el puerto sea
22y haz clic en "Open". Te pedirá usuario y contraseña. - Mac y Linux: Ambos sistemas traen un cliente SSH integrado en su terminal. Solo abre tu aplicación de Terminal y escribe el siguiente comando, sustituyendo
tu_usuarioytu_ippor los datos que te proporcionó tu proveedor:
ssh tu_usuario@tu_ip
Te pedirá la contraseña. Cuando la escribas, no verás nada en pantalla (ni asteriscos), es normal. Solo escribe y pulsa Enter.
[TIP] Si es la primera vez que te conectas, te preguntará si confías en la conexión. Escribe
yesy pulsa Enter.
El Primer Comando: Actualizar el Sistema
Una vez dentro, verás algo como root@servidor:~#. ¡Felicidades! Ya estás dentro. Lo primero que debes hacer es actualizar el sistema operativo y sus paquetes. Esto es crucial para la seguridad y el rendimiento.
Dependiendo de tu distribución (Ubuntu, Debian, CentOS, etc.), los comandos varían. Te mostraré los más comunes.
Para Ubuntu y Debian (usando apt):
sudo apt update
sudo apt upgrade -y
Para CentOS, AlmaLinux o Rocky (usando dnf):
sudo dnf update -y
[INFO] El comando
sudote da permisos de superusuario.apt updateactualiza la lista de paquetes disponibles, mientras queapt upgradeinstala las nuevas versiones de los paquetes ya instalados. La bandera-yresponde "sí" automáticamente a todas las preguntas.
Paso 2: Crear un Usuario con Permisos Administrativos
Trabajar como root (el superusuario) es cómodo, pero muy peligroso. Un error con root puede romper todo el sistema. La buena práctica es crear un usuario normal con permisos de administrador (sudo). Así, tendrás que escribir tu contraseña para comandos críticos, lo que añade una capa de seguridad.
Creando el Nuevo Usuario
Vamos a crear un usuario llamado tu_usuario (cámbialo por el que quieras). Ejecuta:
adduser tu_usuario
El sistema te pedirá que pongas una contraseña y algunos datos opcionales (puedes dejarlos en blanco pulsando Enter).
Dándole Poderes de Administrador
Ahora, vamos a añadir este usuario al grupo sudo para que pueda ejecutar comandos con permisos elevados.
usermod -aG sudo tu_usuario
[WARNING] Nunca, jamás, compartas la contraseña de
rootni la de tu usuario sudo. Guárdalas en un gestor de contraseñas. Si alguien las obtiene, tendrá control total sobre tu servidor.
Cambiando al Nuevo Usuario
Ahora, desconéctate de la sesión actual y vuelve a conectarte, pero con tu nuevo usuario:
exit
ssh tu_usuario@tu_ip
A partir de ahora, usa siempre este usuario. Cuando necesites permisos de administrador, antepone sudo al comando.
Paso 3: Configurar la Seguridad del Servidor (Firewall)
Un servidor sin firewall es como una casa sin puertas. El firewall es tu primera línea de defensa. Vamos a configurar uno simple pero efectivo llamado UFW (Uncomplicated Firewall), que es muy fácil de usar.
Instalando y Activando UFW
Primero, instálalo (si no lo tienes):
sudo apt install ufw -y
Ahora, configura las reglas básicas. Vamos a permitir el tráfico SSH (puerto 22) y las conexiones web (puertos 80 y 443 para HTTP y HTTPS).
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
[INFO] El puerto 22 es el de SSH, el 80 es para HTTP (páginas web sin cifrar) y el 443 para HTTPS (páginas web cifradas). Si planeas usar el servidor para otras cosas (como un juego o un servicio de correo), tendrás que abrir los puertos correspondientes.
Ahora, activa el firewall:
sudo ufw enable
Te preguntará si quieres continuar. Escribe y y pulsa Enter. Puedes ver el estado con:
sudo ufw status
Verás una lista con las reglas que hemos añadido. Perfecto, tu servidor ya tiene una barrera protectora.
Paso 4: Configurar SSH para una Seguridad Reforzada
La contraseña es la forma más débil de autenticación. Para configurar un servidor linux de forma profesional, es fundamental cambiar a autenticación por claves SSH. Esto es mucho más seguro y te permitirá conectarte sin necesidad de escribir la contraseña cada vez.
Generando un Par de Claves en tu PC Local
En tu ordenador (no en el servidor), abre tu terminal o PuTTY y ejecuta:
ssh-keygen -t rsa -b 4096
Te preguntará dónde guardar el archivo y si quieres poner una contraseña (frase de paso) adicional. Te recomiendo que sí pongas una, es una capa extra de seguridad. Esto generará dos archivos: una clave privada (que nunca debes compartir) y una clave pública (que subiremos al servidor).
Copiando la Clave Pública al Servidor
Ahora, copia la clave pública al servidor. El comando ssh-copy-id hace esto de forma automática.
ssh-copy-id tu_usuario@tu_ip
Te pedirá la contraseña de tu usuario del servidor. Una vez hecho, intenta conectarte de nuevo:
ssh tu_usuario@tu_ip
Si has configurado una frase de paso, te la pedirá. Si no, entrarás directamente. ¡La autenticación por clave está funcionando!
Desactivar la Autenticación por Contraseña
Ahora que las claves funcionan, podemos desactivar la autenticación por contraseña para hacer el servidor mucho más seguro. Edita el archivo de configuración de SSH.
sudo nano /etc/ssh/sshd_config
Busca la línea que dice #PasswordAuthentication yes y cámbiala a:
PasswordAuthentication no
[WARNING] Antes de cerrar el archivo, asegúrate de que tu clave SSH funciona correctamente. Si te equivocas y la desactivas sin haber configurado la clave, te quedarás fuera del servidor para siempre. Si no estás seguro, déjalo como está o haz una prueba en una ventana nueva antes de cerrar la sesión actual.
Guarda el archivo con Ctrl+O, pulsa Enter y luego Ctrl+X para salir. Reinicia el servicio SSH:
sudo systemctl restart ssh
[INFO] Si usas CentOS o AlmaLinux, el servicio se llama
sshden lugar dessh. El comando seríasudo systemctl restart sshd.
Paso 5: Instalar un Panel de Control (Opcional pero muy útil)
Si todo esto de la terminal te parece complejo, no te preocupes. Existen herramientas que te facilitan la vida. Un panel de control te permite gestionar el servidor a través de una interfaz gráfica web.
¿Qué es Syspanel?
Syspanel (anteriormente conocido como HestiaCP) es un excelente panel de control gratuito y de código abierto. Es perfecto para un sysadmin principiante porque te permite gestionar sitios web, bases de datos, cuentas de correo, etc., sin tocar una sola línea de la terminal.
Instalando Syspanel
La instalación es muy sencilla. Solo tienes que ejecutar un comando en tu servidor. Asegúrate de estar como usuario con permisos sudo.
sudo bash -c "$(curl -fsSL https://syspanel.install)"
El proceso tardará unos minutos. Al final, te dará una dirección IP con un puerto y una contraseña temporal.
[INFO] El acceso a Syspanel se realiza a través del puerto 2106. La URL sería algo así:
https://tu_ip:2106. Recuerda que es una conexión HTTPS, así que tu navegador te avisará de que el certificado no es de confianza. Es normal al principio, puedes continuar.
Una vez dentro, te pedirá que cambies la contraseña temporal y configures tu dominio principal. ¡Y listo! Ya tienes un panel de control potente y fácil de usar.
Paso 6: Instalación de Software Básico (LAMP o LEMP)
Para que tu servidor sea útil (por ejemplo, para alojar una web), necesitas instalar un stack de software. Los más comunes son LAMP (Linux, Apache, MySQL, PHP) y LEMP (Linux, Nginx, MySQL, PHP). La diferencia principal es el servidor web: Apache vs Nginx.
Instalando LAMP (Apache)
Vamos a instalar LAMP, que es el más clásico y fácil de entender para empezar.
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql -y
Configurando MySQL
Después de la instalación, configura la base de datos para que sea segura. Ejecuta:
sudo mysql_secure_installation
Te hará una serie de preguntas. Te recomiendo responder "sí" a todas, especialmente a la de cambiar la contraseña de root y eliminar usuarios anónimos.
Verificando la Instalación
Para verificar que Apache funciona, abre tu navegador y escribe la IP de tu servidor. Deberías ver la página de bienvenida de Apache.
Para verificar que PHP funciona, crea un archivo de prueba en el directorio web.
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
Ahora, ve a http://tu_ip/info.php. Deberías ver una página con información sobre tu configuración de PHP.
[WARNING] Este archivo
info.phpes una puerta de entrada para los atacantes. Bórralo inmediatamente después de verificar que funciona. Usasudo rm /var/www/html/info.php.
Paso 7: Programar Tareas Automáticas (Cron)
Un buen administrador de sistemas no hace todo manualmente. Debes automatizar tareas repetitivas, como actualizar paquetes o limpiar archivos temporales. Para eso está cron.
¿Qué es Cron?
Cron es un programador de tareas. Puedes decirle que ejecute un comando o un script en un momento específico del día, semana o mes.
Editando el Crontab
Para editar las tareas de tu usuario, usa:
crontab -e
Se abrirá un editor. Aquí puedes añadir líneas con la siguiente sintaxis:
minuto hora día-del-mes mes día-de-la-semana comando
Por ejemplo, para actualizar el sistema todos los días a las 4:00 AM, añadirías:
0 4 * * * sudo apt update && sudo apt upgrade -y
[TIP] Usa la herramienta web
crontab.gurupara generar fácilmente las expresiones de tiempo. Es una maravilla para los principiantes.
Conclusión y Próximos Pasos
¡Enhorabuena! Has completado los pasos fundamentales para configurar un servidor linux por primera vez. Has aprendido a conectarte por SSH, a crear usuarios, a configurar un firewall, a asegurar el SSH, a instalar un panel de control y a montar un stack web básico. Esto es mucho más de lo que la mayoría de la gente logra.
Como sysadmin principiante, tienes una base sólida. A partir de aquí, te recomiendo que explores:
- Copias de seguridad: Configura sistemas de backup automáticos para tus datos.
- Monitoreo: Instala herramientas como
htoponetdatapara vigilar el rendimiento del servidor. - Aprende más comandos: Familiarízate con comandos como
grep,find,tailyps. - Documentación: Toma notas de todo lo que hagas. Te lo agradecerás en el futuro.
Recuerda que la administración de sistemas es un viaje, no un destino. Habrá errores, pero cada error es una oportunidad para aprender.
[INFO] Si te atascas, la comunidad es tu mejor amiga. Foros como Stack Overflow o Reddit (r/sysadmin) están llenos de gente dispuesta a ayudar.
Ahora, ve y explora. Tu servidor es tu nueva máquina de aprender. ¡Buena suerte y feliz administración!
