🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Syspanel: Configurar un firewall básico para tu servidor (iptables)

Actualizado el 18 de noviembre de 2025

¿Tu servidor está expuesto a Internet y te preocupa que alguien pueda entrar sin permiso? Es una preocupación completamente lógica. Cuando contratas un hosting y gestionas tu propio servidor, especialmente con un panel como Syspanel, la seguridad es tu responsabilidad. La buena noticia es que no necesitas ser un experto en redes para dar el primer paso y proteger tu máquina.

En esta guía, vamos a desmitificar el firewall. Te enseñaré a configurar iptables de una forma sencilla y práctica, directamente relacionada con tu panel de control. Olvídate de comandos crípticos; aquí lo haremos paso a paso, como si estuviéramos tomando un café y te lo explicara un amigo.

Al final de este artículo, tendrás un firewall básico pero sólido que bloqueará el tráfico no deseado y permitirá el que necesitas. Vamos a ello.

¿Qué es exactamente un firewall y por qué lo necesitas?

Imagina que tu servidor es un edificio de oficinas. El firewall es el guardia de seguridad en la puerta principal. Su trabajo es revisar la identificación (los puertos) de todos los que quieren entrar (las conexiones) y decidir quién pasa y quién se queda fuera.

Sin este guardia, cualquier persona en Internet podría intentar acceder a las "oficinas" (servicios) que tienes abiertas, como la base de datos o el panel de control. Un firewall bien configurado es tu primera línea de defensa contra ataques de fuerza bruta, escaneos de puertos y otras amenazas comunes.

En el contexto de Syspanel, que es tu herramienta para gestionar el servidor, configurar un firewall es una tarea de mantenimiento esencial. No es un extra; es una necesidad para la seguridad de tu servidor.

Antes de empezar: Acceso y preparación (¡Importante!)

Vamos a trabajar con la terminal. No te asustes, es más fácil de lo que parece. Necesitas acceder a tu servidor por SSH (Secure Shell). Si usas Windows, puedes usar PuTTY; si usas Mac o Linux, la propia terminal.

[WARNING] Este es el paso más crítico. Un error aquí puede dejarte sin acceso a tu servidor. Asegúrate de tener una sesión SSH abierta y de no cerrarla hasta que termines de configurar todo. Si algo sale mal, necesitarás esa sesión para revertir los cambios.

Primero, vamos a ver las reglas actuales. Escribe este comando y pulsa Enter:

sudo iptables -L -n -v

Probablemente verás que las cadenas (INPUT, FORWARD, OUTPUT) están vacías o tienen políticas predeterminadas de ACCEPT. Esto significa que actualmente se acepta todo el tráfico. No es lo ideal.

Configurando tu firewall básico con iptables

Vamos a construir nuestro firewall poco a poco. Lo haremos con comandos que se ejecutan de inmediato. Eso sí, estos cambios no son permanentes, pero lo solucionaremos al final.

Paso 1: Establecer políticas por defecto (La regla de oro)

Lo primero es decirle al firewall: "Si no está permitido explícitamente, se bloquea". Esta es la filosofía de "denegar por defecto".

sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

[INFO] -P significa "policy" (política). INPUT es el tráfico que entra, FORWARD el que se redirige y OUTPUT el que sale. Al poner DROP en INPUT y FORWARD, bloqueamos todo lo que no esté en la lista blanca que vamos a crear. OUTPUT lo dejamos en ACCEPT para que el servidor pueda comunicarse con el exterior (por ejemplo, para actualizarse).

Paso 2: Permitir el tráfico local (Loopback)

Tu servidor necesita comunicarse consigo mismo. Esto es esencial para muchos servicios internos.

sudo iptables -A INPUT -i lo -j ACCEPT

Este comando permite todo el tráfico en la interfaz lo (loopback), que es la interfaz de red interna.

Paso 3: Permitir conexiones ya establecidas

Cuando tu navegador se conecta a tu web, se establece una conexión. Necesitamos permitir las respuestas a esas conexiones y las conexiones relacionadas. Esto es crucial para que todo funcione.

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Este comando es como decirle al guardia: "Deja pasar a las personas que ya están dentro del edificio y que vuelven a entrar con su identificación".

Paso 4: Abrir los puertos esenciales para Syspanel y tu web

Ahora viene la parte importante. Vamos a abrir los puertos que necesitas para gestionar y servir tu contenido.

  • Puerto 22 (SSH): Para que puedas seguir accediendo a tu servidor de forma remota.
  • Puerto 80 (HTTP): Para el tráfico web normal.
  • Puerto 443 (HTTPS): Para el tráfico web seguro (el candadito en el navegador).
  • Puerto 2106 (Acceso a Syspanel): Este es el puerto específico de tu panel de control.

[TIP] Nunca cambies el puerto SSH a uno no estándar sin antes configurar el firewall. Es una receta para el desastre. Primero abrimos el puerto, luego lo cambiamos.

Ejecutamos los siguientes comandos uno por uno:

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 2106 -j ACCEPT

Paso 5: Proteger tu servidor con reglas anti-escaneo (Opcional pero recomendado)

Podemos añadir algunas reglas para dificultar la vida a los escáneres automáticos que buscan puertos abiertos. Estas reglas registran los intentos y los bloquean.

sudo iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
sudo iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 5 -j DROP

[INFO] Este bloque de comandos limita a 5 intentos de conexión SSH por minuto desde la misma IP. Después de eso, se bloquea temporalmente. Es una excelente medida contra ataques de fuerza bruta.

Paso 6: Guardar la configuración (¡El paso que no debes olvidar!)

Como mencioné, estos cambios son temporales. Si reinicias el servidor, se perderán. Para guardarlos, usamos una herramienta llamada iptables-persistent.

Primero, instálala:

sudo apt update
sudo apt install iptables-persistent -y

Durante la instalación, te preguntará si quieres guardar las reglas actuales. Selecciona . Si no te lo pregunta, o para guardarlas manualmente más tarde, usa estos comandos:

sudo netfilter-persistent save
sudo systemctl enable netfilter-persistent

[TIP] El comando netfilter-persistent save guarda las reglas en un archivo que se carga automáticamente al arrancar el sistema.

Script completo para copiar y pegar

Para que te sea más fácil, aquí tienes un script que puedes copiar y pegar en tu terminal. Ejecuta los comandos uno a uno para ver si hay errores.

# 1. Políticas por defecto
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

# 2. Permitir loopback
sudo iptables -A INPUT -i lo -j ACCEPT

# 3. Permitir conexiones establecidas y relacionadas
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# 4. Abrir puertos necesarios
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 2106 -j ACCEPT

# 5. Protección básica contra fuerza bruta SSH
sudo iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
sudo iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 5 -j DROP

# 6. Guardar la configuración
sudo apt update
sudo apt install iptables-persistent -y
sudo netfilter-persistent save
sudo systemctl enable netfilter-persistent

[WARNING] Si tu interfaz de red no se llama eth0 (puede ser ens3, enp0s3, etc.), el paso 5 fallará. Para saber el nombre de tu interfaz, ejecuta ip a y busca la que tenga la IP de tu servidor. Sustitúyela en el comando.

Verificando que todo funciona

Después de ejecutar el script, verifica las reglas de nuevo:

sudo iptables -L -n -v

Ahora deberías ver las cadenas con las políticas DROP en INPUT y FORWARD, y varias reglas ACCEPT para los puertos que hemos abierto.

Para probar que el firewall funciona, intenta acceder a tu web desde tu navegador. Debería cargar sin problemas. También intenta acceder a Syspanel usando https://tu-servidor:2106. Debería funcionar.

[TIP] Si algo no funciona, no entres en pánico. Vuelve a tu sesión SSH y ejecuta sudo iptables -P INPUT ACCEPT para abrir todo de nuevo y poder depurar el problema. Luego, revisa los puertos que has abierto.

Preguntas frecuentes (FAQ)

¿Es seguro usar iptables en lugar de un firewall como CSF o UFW?

Sí, absolutamente. iptables es la herramienta base del sistema Linux. UFW o CSF son solo interfaces que generan reglas de iptables. Al usar iptables directamente, tienes un control total y no dependes de software adicional. Es más ligero y, en mi opinión, te hace entender mejor cómo funciona tu servidor.

¿Qué pasa si necesito abrir un puerto específico para una aplicación?

Es muy sencillo. Solo necesitas ejecutar un comando similar a los que ya hemos visto. Por ejemplo, para el puerto 3306 (MySQL):

sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
sudo netfilter-persistent save

[WARNING] Ten mucho cuidado al abrir puertos de bases de datos. Solo deberías hacerlo si es estrictamente necesario y, preferiblemente, restringiendo el acceso a IPs específicas.

¿Cómo puedo bloquear una IP específica?

Para bloquear una IP maliciosa, usa este comando:

sudo iptables -A INPUT -s 123.456.789.000 -j DROP
sudo netfilter-persistent save

Sustituye 123.456.789.000 por la IP que quieras bloquear.

¿Puedo revertir todos los cambios?

Sí. Si quieres volver a la configuración inicial (todo abierto), ejecuta:

sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F
sudo netfilter-persistent save

El comando -F (flush) borra todas las reglas.

¿Syspanel no tiene su propio firewall?

Syspanel puede tener algunas herramientas de seguridad integradas, pero es posible que no ofrezcan un control tan granular como iptables. Configurar tu propio firewall te da independencia y un control absoluto sobre la seguridad de tu servidor, sin importar el panel que uses. Recuerda que el acceso a Syspanel se realiza a través del puerto 2106, que ya hemos asegurado.

Conclusión: Tu servidor está un paso más seguro

Felicidades. Has dado un paso enorme en la protección de tu servidor. Con este firewall básico, has bloqueado la entrada a los "ladrones" digitales más comunes y has asegurado que solo el tráfico legítimo pueda llegar a tu web y a tu panel de control.

Configurar un firewall no es un evento único; es un proceso continuo. A medida que tu proyecto crezca, necesitarás añadir nuevas reglas. Pero ahora ya tienes la base y el conocimiento para hacerlo con confianza.

Te animo a que experimentes en un entorno seguro, si es posible, y a que consultes la documentación oficial de iptables para profundizar. La seguridad de tu servidor es una inversión, y hoy has hecho una muy inteligente. Si tienes dudas, recuerda que siempre puedes volver a esta guía. ¡Buen trabajo!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel