En este tutorial, le mostraremos cómo configurar un firewall con iptables en un VPS Linux con Ubuntu o CentOS como sistema operativo. Iptables es una herramienta de administración para el filtrado de paquetes IPv4 y NAT y se utiliza para configurar y administrar las tablas de reglas de filtrado de paquetes IPv4 en el kernel de Linux.
Configurar y configurar correctamente un firewall es una de las cosas más importantes y cruciales que debe hacer para proteger su servidor.
Con iptables, se definen varias tablas de coincidencia de paquetes diferentes y cada tabla puede contener una serie de cadenas integradas, así como algunas cadenas definidas por el usuario. Las cadenas son en realidad listas de reglas que coinciden con un conjunto de paquetes y cada regla especifica qué hacer con el paquete coincidente.
La tabla por defecto es el filter
y contiene las cadenas integradas INPUT, FORWARD y OUTPUT. La cadena INPUT se usa para paquetes destinados a sockets locales, la cadena FORWARD se usa para paquetes que se enrutan a través de la caja, mientras que la cadena OUTPUT se usa para paquetes generados localmente.
Conéctese a su servidor a través de SSH y enumere las reglas definidas en una cadena específica usando la siguiente sintaxis:
sudo iptables -L CHAIN
Reemplace CHAIN con una de las cadenas integradas para ver las reglas definidas. Si no se selecciona ninguna cadena, todas las cadenas se enumerarán en la salida.
sudo iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
Las reglas de firewall especifican qué hacer con un determinado paquete si coincide con ciertos criterios y, en caso de que el paquete no cumpla con los criterios, se examinará la siguiente regla de firewall definida en la cadena. Es muy importante saber esto al definir las reglas del cortafuegos porque puede bloquearse fácilmente el acceso a su servidor si define la regla que acepta paquetes de su dirección IP local después de la regla de bloqueo.
Los objetivos que puede usar para las reglas de firewall son ACCEPT, DROP, QUEUE y RETURN. ACCEPT dejará pasar el paquete, DROP dejará el paquete, QUEUE pasará el paquete al espacio de usuario mientras que RETURN detendrá el paso del paquete por la cadena actual y se reanudará en la siguiente regla de la cadena anterior. La política de cadena predeterminada definirá qué hacer con un paquete si no coincide con cierta regla de firewall. Como puede ver en el resultado del primer comando, la política predeterminada para todas las cadenas integradas se establece en ACEPTAR. ACCEPT permitirá que el paquete pase, así que básicamente no hay protección.
Antes de agregar reglas específicas, agregue la siguiente:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Esto evitará que las conexiones que ya están establecidas se interrumpan y su sesión SSH actual permanecerá activa.
A continuación, agregue reglas para permitir el tráfico en su interfaz de loopback:
sudo iptables -A INPUT -i lo -j ACCEPT sudo iptables -A OUTPUT -o lo -j ACCEPT
A continuación, permita el acceso a su servidor a través de SSH para su dirección IP local para que solo usted pueda acceder al servidor:
sudo iptables -A INPUT -s 111.111.111.111 -p tcp --dport 22 -j ACCEPT
Donde 111.111.111.111
es su dirección IP local y 22
es el puerto de escucha de su demonio SSH. En caso de que su dirección IP local cambie dinámicamente, es mejor omitir -s 111.111.111.111
y use un método diferente para proteger el servicio SSH del tráfico no deseado.
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
A continuación, permita el acceso a sus servicios importantes como el servidor HTTP/HTTPS:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
[ecko_alert color=”blue”]¿Atrapado en algún lugar? Obtenga un VPS de nosotros y aseguraremos adecuadamente su servidor y configuraremos un firewall para usted, ¡sin cargo! [/ecko_alert]
Ahora, enumere las reglas actuales y verifique si todo está bien. Para una salida detallada, puede usar el siguiente comando:
sudo iptables -nvL
Si tiene otros servicios a los que desea permitir el acceso, es mejor hacerlo ahora. Una vez que haya terminado, puede establecer la política predeterminada para la cadena integrada INPUT en DROP.
sudo iptables -P INPUT -j DROP
Esto eliminará cualquier paquete que no coincida con los criterios de las reglas del firewall. El resultado final debe ser similar al siguiente:
Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0
Sin embargo, si reinicia el servidor ahora, perderá todas las reglas de firewall que definió, por lo que es muy importante que las reglas sean permanentes.
En caso de que esté utilizando un VPS de Ubuntu, debe instalar un paquete adicional para ese propósito. Continúe e instale el paquete requerido usando el siguiente comando:
sudo apt-get install iptables-persistent
En Ubutnu 14.04 puede guardar y volver a cargar las reglas del cortafuegos con los siguientes comandos:
sudo /etc/init.d/iptables-persistent save sudo /etc/init.d/iptables-persistent reload
En Ubuntu 16.04 use los siguientes comandos en su lugar:
sudo netfilter-persistent save sudo netfilter-persistent reload
Si está utilizando un VPS de CentOS, puede guardar las reglas del cortafuegos con el siguiente comando:
service iptables save
Por supuesto, no tiene que hacer nada de esto si utiliza uno de nuestros servicios de alojamiento VPS completamente administrado, en cuyo caso simplemente puede pedirle a nuestros administradores expertos de Linux que lo ayuden a configurar sus iptables en su servidor. Están disponibles las 24 horas del día, los 7 días de la semana y atenderán su solicitud de inmediato.
PD . Si le gustó esta publicación sobre Cómo configurar un firewall con iptables en Ubuntu y CentOS, compártala con sus amigos en las redes sociales usando los botones a continuación o simplemente deje un comentario en la sección de comentarios. Gracias.