Nexolinux
Sistemas Linux, servidores web, certificaciones, LPIC, Linux básico y profesional
Navigation
  • Home
  • Bash
  • LPIC
  • Noticias
  • Seguridad
  • Servicios
  • HowTo’s
You are here: Home › Linux General › Comandos más usados para gestionar Iptables

Comandos más usados para gestionar Iptables

18 abril, 2013 | Filed under: Linux General, Nivel Avanzado, Seguridad and tagged with: firewall linux, iptables linux, Linux certification, linux seguridad, linux training, servidores

Si bien hace tiempo ya publicábamos unos artículos sobre iptables  el firewall que viene integrado con Red Hat y muchísimas más distribuciones. Hoy toca poner algunos ejemplos de reglas habituales o cómo se ponen o por lo menos entrar un poco más hondo en la gestión de este magnífico firewall

1 – Borrar todas las reglas en Iptables

root@nexolinux ~ # iptables -F

o también:

root@nexolinux ~ # iptables --flush

2- Configurar políticas por defecto.

Iptables por defecto tiene una configuración que permite todo, para un mayor control lo recomendable sería bloquear todo y permitir lo que queremos. Para ello hay dos formas, poner una regla en cada cadena (INPUT, OUTPUT, FORWARD ) que bloquee todo al final, pues recordad que lee de arriba a abajo en orden estricto, o lo mejor es poner la política por defecto DROP con lo que se negará todo salvo lo que configuremos, y no corremos el riesgo  de tocar la última línea en una configuración y dejar el firewall abierto.

root@nexolinux ~ # iptables -P INPUT DROP
root@nexolinux ~ # iptables -P OUTPUT DROP
root@nexolinux ~ # iptables -P FORWARD DROP
root@nexolinux ~ # iptables --list
Chain INPUT (policy DROP)

Chain FORWARD (policy DROP)

Chain OUTPUT (policy DROP)

 3- Bloquear a una IP específica.

Para algunas direcciones IP que nos dan un tráfico sospechoso:

root@nexolinux ~ # iptables -A INPUT -s 192.168.1.22 -j DROP 

 4- Permitir todo el tráfico entrante de SSH

root@nexolinux ~ # iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
root@nexolinux ~ # iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

5- Permitir tráfico de SSH sólo de un segmento de red.

root@nexolinux ~ # iptables -A INPUT -i eth0 -p tcp -s 192.168.200.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
root@nexolinux ~ # iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

 6- Permitir tráfico HTTP y HTTPS

#HTTP

root@nexolinux ~ # iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
root@nexolinux ~ # iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

# HTTPS

root@nexolinux ~ # iptables -A INPUT -i eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
root@nexolinux ~ # iptables -A OUTPUT -o eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACC

7- Combinar múltiples reglas con multipuerto.

Este ejemplo permite todo el tráfico entrante SSH, HTTP y HTTPS:

root@nexolinux ~ # iptables -A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
root@nexolinux ~ # iptables -A OUTPUT -o eth0 -p tcp -m multiport --sports 22,80,443 -m state --state ESTABLISHED -j ACCEPT

 8- Permitir SSH saliente

root@nexolinux ~ # iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
root@nexolinux ~ # iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

 9- Permitir SSH sólo a una red en particular.

Esta regla sólo permitirá el tráfico saliente ssh a una red en particular. En concreto la del rango 192.168.100.0/24

root@nexolinux ~ # iptables -A OUTPUT -o eth0 -p tcp -d 192.168.101.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
root@nexolinux ~ # iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

10- Permitir HTTPS saliente.

Esta regla es buena para permitir el internet a los usuarios.

root@nexolinux ~ # iptables -A OUTPUT -o eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
root@nexolinux ~ # iptables -A INPUT -i eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

11- Balanceo de tráfico entrante.

Se puede hacer balanceo en iptables, usando la extensión nth, así podemos balancear el tráfico a tres direcciones IP distintas. Cada tercer paquete lo balancea al servidor adecuado.

root@nexolinux ~ # iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.1.101:443
root@nexolinux ~ # iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 1 -j DNAT --to-destination 192.168.1.102:443 
root@nexolinux ~ # iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 2 -j DNAT --to-destination 192.168.1.103:443

 12- Permitir PING de fuera hacia dentro.

root@nexolinux ~ # iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
root@nexolinux ~ # iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

13- Permitir PING de dentro a fuera.

root@nexolinux ~ # iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

14- Permitir tráfico de la red interna al exterior.

En un Firewall perimetral en donde las redes están separadas completamente.

# Si eth1 está conectada a una red externa (internet)

# Si eth0 Está conectada a una red interna (192.168.1.x)

root@nexolinux ~ # iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

15- Permitir tráfico DNS saliente.

root@nexolinux ~ # iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT
root@nexolinux ~ # iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT

16- Permitir Rsync de una red en particular.

root@nexolinux ~ # iptables -A INPUT -i eth0 -p tcp -s 192.168.101.0/24 --dport 873 -m state --state NEW,ESTABLISHED -j ACCEPT
root@nexolinux ~ # iptables -A OUTPUT -o eth0 -p tcp --sport 873 -m state --state ESTABLISHED -j ACCEPT

17- Permitir POP3 y POP3S

root@nexolinux ~ # iptables -A INPUT -i eth0 -p tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
root@nexolinux ~ # iptables -A OUTPUT -o eth0 -p tcp --sport 110 -m state --state ESTABLISHED -j ACCEPT
root@nexolinux ~ # iptables -A INPUT -i eth0 -p tcp --dport 995 -m state --state NEW,ESTABLISHED -j ACCEPT
root@nexolinux ~ # iptables -A OUTPUT -o eth0 -p tcp --sport 995 -m state --state ESTABLISHED -j ACCEPT

18- Prevenir ataques DoS

-Limit 25/minute : Limita a sólo 25 conexiones por minuto.

-Limit-burst 100: Indica que el valor de limit/minute será forzado sólo después del número de conexiones en este nivel

root@nexolinux ~ # iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT

19- Permitir redirección de puertos.

Ejemplo puerto 422 redirigimos al 22, con lo que podemos tener conexiones al puerto 22 y al puerto 422 por ssh.

root@nexolinux ~ # iptables -t nat -A PREROUTING -p tcp -d 192.168.102.37 --dport 422 -j DNAT --to 192.168.102.37:22
root@nexolinux ~ # iptables -A INPUT -i eth0 -p tcp --dport 422 -m state --state NEW,ESTABLISHED -j ACCEPT
root@nexolinux ~ # iptables -A OUTPUT -o eth0 -p tcp --sport 422 -m state --state ESTABLISHED -j ACCEPT

20- Sacar en el log los paquetes caídos.

Primero creamos una cadena llamada LOGGING:

root@nexolinux ~ # iptables -N LOGGING

Luego todas las conexiones entrantes vayan por la cadena LOGGING

root@nexolinux ~ # iptables -A INPUT -j LOGGING

Logueamos paquetes con un log-prefix

root@nexolinux ~ # iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables Packet Dropped: " --log-level 7

Y los bloqueamos:

root@nexolinux ~ # iptables -A LOGGING -j DROP

Fuente: www.thegeekstuff.com

Comparte esto:

  • Facebook
  • Twitter
  • LinkedIn

Me gusta esto:

Me gusta Cargando...

10 Responses to "Comandos más usados para gestionar Iptables"

  1. Jose Luis F dice:
    27 septiembre, 2017 a las 20:51

    Hola, tengo una pregunta, tengo un proxy con squid funcionando, el tema es que cuando habilito ip_forwarding quienes no tienen configurado el proxy pueden saltearse las restricciones. Cuando deshabilito el ip_forwarding no tengo resolución DNS de los equipos internos hacia afuera, es decir si hacen ping a google.com no hay respuesta. Hay alguna manera de habilitar solo el forwarding DNS?
    Saludos

    Responder
  2. Claudio dice:
    28 junio, 2014 a las 02:55

    raul, según entiendo se puede bloquear por ‘string’ y en este caso el string es ‘facebook’

    Responder
    1. m3t4g4m3 dice:
      29 junio, 2014 a las 13:09

      Buenas Claudio.

      Me temo que no, es lo que explicaba en otro comentario anterior, iptables sólo lee ips y rangos, en caso de querer poner un «string» como comentas y bloquear el acceso a una web, estamos hablando de un servidor Proxy, piensa que Facebook no tiene una sóla IP, y la principal función del firewall es bloquear el tráfico IP entrante, no navegación saliente que es para lo que está destinado un proxy. Ojo que no es lo mismo bloquear IPs que navegación, en el segundo caso hablamos de un navegador web de por medio como puede ser Chrome o Firefox.

      Responder
  3. raul dice:
    21 noviembre, 2013 a las 01:41

    Excelente explicación, pero me queda las siguientes dudas, como bloqueo o autorizo por contenido? o sea si bloqueo todo y quiero habilitar por ejemplo facebook, solamente facebook,lo demás que quede bloqueado, como lo hago?
    y si fuera al revés, cómo sería? si habilito todo y quiero solamente bloquear facebook? pero no con las IPs, si no que con la palabra FACEBOOK?
    agradecería tú ayuda

    Responder
    1. m3t4g4m3 dice:
      21 noviembre, 2013 a las 01:47

      Buenas Raul.

      En primer lugar para casos en los que quieres bloquear todo o nada, las reglas en iptables se leen en orden de arriba a abajo, con lo que algo razonable, sería permitir un número determinado de reglas y luego prohibir las demás.

      En caso de querer bloquear webs en particular, creo que la herramienta que necesitas es un Proxy, un firewall sólo bloquea IP y/o Puerto, en caso de un portal como facebook puede tener multitud de Ips, y el puerto es común a todas las webs el 80.

      Te recomiendo leer este artículo: Proxy Squid control accesos

      Responder
  4. Milton Padilla dice:
    30 junio, 2013 a las 00:37

    Exelente post gracias por compartir esta informacion.

    Responder
  5. Gonzalo Murillo dice:
    19 abril, 2013 a las 16:55

    excelente publicacion, te felicito y sigue adelante. Tengo años trabajando con iptables, pero jamas vi una publicacion tan clara.

    Saludos
    desde Bolivia

    Responder
    1. m3t4g4m3 dice:
      19 abril, 2013 a las 19:25

      Muchas gracias, el mérito principalmente es de la fuente citada, que desde luego además de ser de las mejores blogs de Linux en inglés, el artículo merecía ser compartido y transmitido.

      Saludos!

      Responder
  6. Luweeds dice:
    19 abril, 2013 a las 00:07

    Muy buena recopilación de comandos y usos. Muchas gracias por tus posts¡¡

    Responder
    1. m3t4g4m3 dice:
      19 abril, 2013 a las 09:25

      Gracias a ti por leerme. 🙂

      Saludos!

      Responder

Deja un comentarioCancelar respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Categorías.

  • Bases de datos
  • Bash & Comandos
  • HowTo
  • Linux General
  • LPIC
  • LPIC-2
  • Nivel Avanzado
  • Nivel Basico
  • Noticias
  • Seguridad
  • Servicios
  • Servidor Web

Entradas y Páginas Populares

  • Comando fuser, Localizamos procesos que usan un fichero.
    Comando fuser, Localizamos procesos que usan un fichero.
  • Ejemplos usos mount y umount
    Ejemplos usos mount y umount
  • Ficheros de usuarios /etc/passwd y /etc/shadow
    Ficheros de usuarios /etc/passwd y /etc/shadow
  • Instruccion READ en Bash
    Instruccion READ en Bash
  • ¿Cómo cifra linux las contraseñas?
    ¿Cómo cifra linux las contraseñas?
  • Proxy Squid, control de accesos ACL (II)
    Proxy Squid, control de accesos ACL (II)
  • 15 dispositivos que funcionan con Linux
    15 dispositivos que funcionan con Linux
  • fichero fstab
    fichero fstab
  • HowTo:Ejecutar comando como otro usuario.
    HowTo:Ejecutar comando como otro usuario.
  • Comandos más usados para gestionar Iptables
    Comandos más usados para gestionar Iptables

© 2025 Nexolinux

Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrar publicidad relacionada con tus preferencias. cerrar Política de cookies
Privacidad y política de cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
GUARDAR Y ACEPTAR
%d