GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo configurar un firewall con iptables en Ubuntu y CentOS

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.


Cent OS
  1. Cómo abrir el puerto Http (80) en Iptables en CentOS

  2. Cómo abrir puertos en Ubuntu y CentOS usando IPtables

  3. Cómo configurar bloques de servidor Nginx en Ubuntu y CentOS

  4. Cómo configurar un firewall con iptables en Ubuntu y CentOS

  5. Cómo configurar un firewall con Firewalld en CentOS 8

Cómo configurar la alta disponibilidad de Nginx con Pacemaker y Corosync en CentOS 7

Cómo detener y deshabilitar el firewall en CentOS 8

Cómo vaciar DNS en Ubuntu y CentOS

Cómo configurar el firewall de Iptables en CentOS

Cómo instalar Firefox 36 en CentOS 7 y Ubuntu 14.04

Cómo instalar y configurar una VPN con OpenVPN en Ubuntu 18.04