Ver destacados

Iptables Firewall Servidores para proteger Tráfico

Tutorial con vídeo para saber usar Iptables Firewall Servidores para proteger Tráfico de forma completa en Linux.
Escrito por
1.8K Visitas  |  Publicado jun 14 2023 14:18
Favorito
Compartir
Comparte esta pagina a tus Amigos y Contactos usando las siguientes Redes Sociales


La seguridad es una pieza clave en los sistemas Linux ya que esto abarca en su totalidad todo lo que realizamos como usuarios a nivel personal, a nivel de servicios y con las diversas aplicaciones y programas disponibles. Una de las formas mas vulnerables en cualquier distribución Linux es el trafico de red tanto entrante como saliente debido a que muchas de las amenazas en la red están presentes en este segmento por el alto flujo de datos que van y vienen, para ventaja nuestra en Linux, en este caso usaremos Ubuntu, contamos con una herramienta esencial para proteger este tipo de tráfico y es Iptables.

 

Iptables se encarga de administrar las reglas de filtrado de paquetes en la red local y esto se logra configurando y controlando el tráfico de red tanto entrante y saliente ya sea en servidores o equipos Linux cliente, esta gestión es posible ya que Iptables analiza en detalle cada paquete que está en el tráfico de red y en base a las reglas que están configuradas determina la acción a tomar con ese paquete, si autoriza o no que continue al equipo.

 

Tutorial con vídeo para aplicar Configuración de Directivas de Grupo a Usuarios de forma completa.

 

Reglas en Iptables
Las reglas en Iptables toman criterios como:

 

  • Direcciones IP de origen y destino
  • Los puertos
  • Los protocolos de red

 


Cuando algún paquete no es confiable o no pasa la prueba de Iptables, será bloqueada su dirección IP o rangos de IP en caso de ser varias, esto se redirecciona a NAT (Network Address Translation) para que desde allí sea redireccionado el tráfico usando tras interfaces de red pero impidiendo que estas accedan a nuestro equipo.

 

Parámetros Iptables
Iptables cuenta con algunos parámetros generales que son:

 

  • -A (append): añade una nueva regla al final de una cadena existente.
  • -D (delete): permite eliminar una regla existente de una cadena.
  • -I (insert): inserta una nueva regla dentro de una posición específica en una cadena.
  • -L (list): nos permite ver todas las reglas de una o todas las cadenas.
  • -P (policy): establece una política predeterminada para una cadena.
  • -F (flush): elimina todas las reglas de una cadena.
  • -N (new chain): se encarga de crear una nueva cadena.
  • -E (rename chain): permite cambiar el nombre de una cadena.
  • -s (source): indica la dirección IP o rango de direcciones IP de origen.
  • -d (destination): hace referencia a la dirección IP o rango de direcciones IP de destino.
  • -p (protocol): nos dice el protocolo de red a usar TCP, UDP o ICMP.
  • -m (match): especifica un módulo adicional para realizar coincidencias avanzadas.

 

 

 

Ahora vamos a ver como a través de Iptables proteger el tráfico en nuestros equipos (servidores / clientes).

 

 

Cómo usar el firewall de Iptables para proteger el tráfico en Linux

 

Paso 1

Para comenzar abrimos la terminal y allí vamos a instalar el administrador de filtrado de paquetes Iptables usando el siguiente el comando:
sudo apt install iptables

 

Paso 2

Será necesario que ingresar la contraseña y luego confirmar este proceso con la letra S:

 

 

Paso 3

Una vez se haya instalado la utilidad, vamos a usar algún editor para acceder al archivo de configuración de las reglas IPv4, en este caso ejecutamos el siguiente comando:
sudo nano /etc/iptables/rules.v4

 

Paso 4

Pulsamos Enter e ingresamos la contraseña, en algunos casos veremos ya algún contenido disponible:

 

 

Paso 5

Vamos a la parte final de este archivo y allí vamos a ingresar lo siguiente:
*filter
# Allow all outgoing, but drop incoming and forwarding packets by default
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
# Custom per-protocol chains
:UDP - [0:0]
:TCP - [0:0]
:ICMP - [0:0]
# Acceptable UDP traffic

# Acceptable TCP traffic
-A TCP -p tcp --dport 22 -j ACCEPT
# Acceptable ICMP traffic
# Boilerplate acceptance policy
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i lo -j ACCEPT
# Drop invalid packets
-A INPUT -m conntrack --ctstate INVALID -j DROP
# Pass traffic to protocol-specific chains
## Only allow new connections (established and related should already be handled)
## For TCP, additionally only allow new SYN packets since that is the only valid
## method for establishing a new TCP connection
-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp --syn -m conntrack --ctstate NEW -j TCP
-A INPUT -p icmp -m conntrack --ctstate NEW -j ICMP
# Reject anything that's fallen through to this point
## Try to be protocol-specific w/ rejection message
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -j REJECT --reject-with icmp-proto-unreachable
# Commit the changes
COMMIT
*raw
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
*security
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
Paso 6

Con estas líneas hemos agregado diversos permisos para los protocolos disponibles.

 

 

 

Paso 7

Guardamos los cambios usando la combinación de teclas siguiente:

 

Ctrl + O

 

Salimos del editor usando:

 

Ctrl + X

 

Paso 8

Ahora es momento de revisar los puertos usados en el sistema, para ello vamos a ejecutar el comando “sudo netstat -4plunt” el cual listará todos los detalles necesarios:

 

 

Paso 9

Los parámetros de netstat usados son:

 

  • -p: despliega el PID y el nombre del programa asociado a cada socket.
  • -l: muestra los sockets de escucha
  • -u: muestra el tráfico UDP
  • -n: genera la salida numérica en lugar de los nombres de los servicios
  • -t: muestra el tráfico TCP

 

Nota
La dirección especial 0.0.0.0 indica que el servicio está escuchando en todas las direcciones que están disponibles en el sistema.

 

Paso 10

Es posible que sea necesario autorizar el acceso a determinados puertos como lo son el 80 y el 22, para esto vamos a acceder de nuevo al archivo de configuración de las reglas y en este archivo ubicaremos la sección llamada “Acceptable TCP traffic”, allí ya esta registrado el puerto 22 pero vamos a añadir el puerto 80 usando la sintaxis:
-A TCP -p tcp –dport 80 -j ACCEPT
Paso 11

Aplicamos los cambios.

 

 

 

Paso 12

Después de esto vamos a revisar que esté correctamente configurado, para ello vamos a ejecutar el comando:
sudo iptables-restore -t < /etc/iptables/rules.v4

 

Paso 13

Ahora vamos a revisar la dirección IP del sistema, ejecutamos el comando “ip -4 addr show scope global” y debemos tener presente tanto la dirección IP como el nombre del adaptador de red:

 

 

Paso 14

Abrimos de nuevo el archivo de configuración para agregar allí la IP y el nombre del adaptador de red con el fin de que se autorice el acceso a estos, estas líneas irán en la sección Acceptable TCP traffic:
-A TCP -p tcp –dport # -d Direccion_IP  -j ACCEPT
-A TCP -p tcp –dport # -i Adaptador  -j ACCEPT
Paso 15

Aplicamos los cambios.

 

 

 

Paso 16

Después de esto debemos confirmar que todo lo que se ha ingresado este correcto, ejecutamos el comando:
sudo iptables-restore -t < /etc/iptables/rules.v4

 

Paso 17

Finalmente se puede cargar toda la configuración usando alguno de los siguientes comandos:
sudo service iptables-persistent reload
sudo service netfilter-persistent reload

 

Solvetic te ha explicado como proteger el trafico en tu equipo Linux a través de pasos esenciales para contar con un sistema fiable.

 

Tutorial con vídeo para instalar y Usar Firewalld en Ubuntu.

¿Te ayudó este Tutorial?

Ayuda a mejorar este Tutorial!
¿Quieres ayudarnos a mejorar este tutorial más? Puedes enviar tu Revisión con los cambios que considere útiles. Ya hay 0 usuario que han contribuido en este tutorial al enviar sus Revisiones. ¡Puedes ser el próximo!