Apuntes de linux. Iptables Firewall de linux

IPTABLES, una herramienta de cortafuegos que permite no solamente filtrar paquetes, sino también realizar traducción de direcciones de red (NAT) para IPv4 o mantener registros de log. El proyecto Netfilter no sólo ofrece componentes disponibles como módulos del núcleo sino que también ofrece herramientas de espacio de usuario y librerías.

iptables es el nombre de la herramienta de espacio de usuario mediante la cual el administrador puede definir políticas de filtrado del tráfico que circula por la red. El nombre iptables se utiliza frecuentemente de forma errónea para referirse a toda la infraestructura ofrecida por el proyecto Netfilter. Sin embargo, el proyecto ofrece otros subsistemas independientes de iptables tales como el connection tracking system o sistema de seguimiento de conexiones, o que, que permite encolar paquetes para que sean tratados desde espacio de usuario. iptables es un software disponible en prácticamente todas las distribuciones de Linux actuales.

Puede ser local perimetral.

# 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


#iptables -A añade una nueva regla
#iptables -D borra una regla

Cualquier accion minima lleva el comando con una opcion


iptables -N chain (cadena) -----------> crea nueva cadena

Los tipos de cadena son :input, output o forward. Pero se pueden crear nuevas.

rulenum indica que las reglas se van numerando, y podemos usarlo posteriormente en las reglas
name es el nombre de la interfaz

Opciones:

* la opcion -p indica protocolos: TCP, UDP, etc…
una ! (exclamacion) en un comando es para negar
* -s source. mask va de 0-32
* -d destino se especifica igual con una direccion/mascara

Ejercicio:

Bloquear la ip de un ordenador para que no pueda acceder al puerto 80


# iptables -A INPUT -s 192.168.2.23 -p tcp --dport 80 -j DROP

modificador: -A INPUT, Añado regla a la cadena entrante
Especifcacion de la cadena: -s 192.168.2.23 -p tcp –dport 80
Accion: -j DROP

Listamos lo que hay ahora:


# iptables -nL

(-n es para que no muestra los nombres de domino, es decir resolucion de dominos)


[root@pventura ~]# iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
DROP       tcp  —  192.168.2.23         anywhere            tcp dpt:http

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
[root@pventura ~]#

Muestro las lineas de cada regla

# iptables -nL --line-numbers

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    DROP       tcp  —  192.168.2.23         0.0.0.0/0 tcp dpt:80

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination
Ejercicio:
Activar el ftp modo activo, (puerto 20 y 21)  para un usuario y denegarlo para el resto.

# iptables -A INPUT -s 192.168.1.144 -p tcp --dport 21 -j ACCEPT
# iptables -A INPUT -s 192.168.1.144 -p tcp --dport 20 -j ACCEPT

# iptables -A INPUT -s 0.0.0.0 -p tcp --dport 21 -j DROP
# iptables -A INPUT -s 0.0.0.0 -p tcp --dport 20 -j DROP

El los firewall en produccion todo se bloquea como politica por defecto. Despues se va habilitando poco a poco reglas de excepcion.

# iptables -L

Chain INPUT (policy ACCEPT) ———————->> Politica por defecto acepta
target     prot opt source               destination
DROP       tcp  —  192.168.2.23         anywhere            tcp dpt:http
DROP       tcp  —  192.168.2.217        anywhere            tcp dpt:http
DROP       tcp  —  192.168.2.215        anywhere            tcp dpt:http

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
Para cambiar las políticas por defecto y bloquearlo todo se ejecuta el siguiente comando:

# iptables -P INPUT DROP

Importantes antes de aplicar una política restrictiva introducir antes la política para poder conectar por ssh con nuestra ip.Ahora ya se ha cambiado.

# iptables -nL

Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp  —  192.168.1.217        0.0.0.0/0 tcp dpt:22
DROP       tcp  —  192.168.2.23         0.0.0.0/0 tcp dpt:80
DROP       tcp  —  192.168.2.217        0.0.0.0/0 tcp dpt:80
DROP       tcp  —  192.168.2.215        0.0.0.0/0 tcp dpt:80
ACCEPT     tcp  —  192.168.1.217        0.0.0.0/0 tcp dpt:22

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
Para cambiar el orden de una politica para subirla y o bajarla es con la opcion -I INPUT NUMERO_POSICION

# iptables -I INPUT 1 -s 192.168.1.217 -p tcp --dport 22 -j ACCEPT -------------->>> subimos el ssh a la linea 1 ya que el servicio ssh es de los mas importantes

Ejerccio:

Bloquear todas las webs salvo una.

#iptables - A OUTPUT   -d 192.168.1.231 -p tcp --dport 80 -j ACCEPT
bloquer todo
#iptables - A OUTPUT  -p tcp --dport 80 -j DROP no hace falta poner ip porque directamente lo bloquea todo.

Importante siempre que se hace una modificacion en el iptables despues hay que guardar una copia de seguridad de lo que hay, porque los registros del firewall en el iptables se guardan en memoria ram, de manera que sino hay copia de seguridad y se reinicia la maquina se pierde todas las reglas.

Para hacer una copia de seguridad se usa iptables-save

# iptables-save > /root/iptables-20110126.txt

Para restaurar copias de segurridad se usa el comando iptables-restore, es capaz de recoger las reglas que hay en un fichero y restaurarlas.

# iptables-restore < /root/iptables-20110126.txt

Otras Opciones para enrutado

TABLES
There are currently three independent tables (which tables are present at any time depends on the kernel configuration options and which modules are present).

-t, –table table
This option specifies the packet matching table which the command should operate on.  If the kernel is configured with automatic module loading, an attempt will be made to load the appropriate module
for that table if it is not already there.

The tables are as follows:

filter:
This is the default table (if no -t option is passed).  It contains the built-in chains INPUT (for packets destined to local sockets), FORWARD (for packets being routed through the box), and OUT-
PUT (for locally-generated packets).

nat:
This  table is consulted when a packet that creates a new connection is encountered.  It consists of three built-ins: PREROUTING (for altering packets as soon as they come in), OUTPUT (for alter-
ing locally-generated packets before routing), and POSTROUTING (for altering packets as they are about to go out).

mangle:
This table is used for specialized packet alteration.  Until kernel 2.4.17 it had two built-in chains: PREROUTING (for altering incoming packets before routing) and OUTPUT (for altering  locally-
generated packets before routing).  Since kernel 2.4.18, three other built-in chains are also supported: INPUT (for packets coming into the box itself), FORWARD (for altering packets being routed
through the box), and POSTROUTING (for altering packets as they are about to go out).

raw:
This table is used mainly for configuring exemptions from connection tracking in combination with the NOTRACK target.  It registers at the netfilter hooks with higher priority and is thus  called
before  ip_conntrack,  or  any other IP tables.  It provides the following built-in chains: PREROUTING (for packets arriving via any network interface) OUTPUT (for packets generated by local pro-
cesses)

# iptables -t nat -nL

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

# iptables -t filter -nL

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

# iptables -t mangle -nL

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
Usando la tabla NAT

Ejercicio. enrutar el trafico desde wi-fi hasta el disco duro multimedia.

Esta directiva es para enrutar lo que viene del disco duro y se envia a la wlan0, ya que ésta tiene otra red

iptables -t nat -A POSTROUTING -s 192.168.2.10/24 -o 192.168.3.2 -j MASQUERADE --------> con ips
iptables -t nat -A POSTROUTING -i eth0 -o wlan0 -j MASQUERADE --------->> con interfaces

Las dos directivas anteriores son iguales


# iptables -t nat -A POSTROUTING -s 192.168.2.10/24 -o 192.168.3.2 -j MASQUERADE

# iptables <strong>-t nat</strong> -nL ------->>>> para mostrar reglas nuevas introducidas desde nat

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  —  192.168.2.0/24 0.0.0.0/0

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
Los paquetes tcp tienen flasgs en el en cabezado, iptables es capaz de filtrar los flags activos.

Firewall perimetral

Se suelen crear firewall para proteger redes, se debe crear bridge;br0

Se crea una estructura de árbol para crear reglas con el nombre del servicio o de la maquina.

Para crear nuevas cadenas es con el comando iptables -N rama1

Otras fuentes de ayuda.

http://linux.die.net/man/8/iptables
http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-sg-es-4/ch-fw.html
http://web.mit.edu/rhel-doc/5/RHEL-5-manual/Deployment_Guide-en-US/ch-iptables.html

Tags de búsquedas:

iptables linux,como cerrar el puerto 80 iptables,comandos firewall linux,iptables loc:ES,generador de reglas iptables,politica restrictiva iptables,Aplicar excepciones en iptables,iptables,iptable denegar todo lo vendo de la internet,linux iptables,iptables opciones,iptables politicas en modo restrictivo,Iptables Firewall,iptables en linux,iptables modificadores

Noticias relacionadas »

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

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

Invertir en criptomonedas: »

 

Cómo comprar bitcoin

Invertir y comprar Bitcoin y otras altcoins es más fácil de lo que crees.

1) Si sólo quieres comprar Bitcoin, Ethereum o Litecoin como inversión, tu opción es Coinbase

2) Si quieres probar con otras criptomonedas tu opción es Binance

3) Cualquier duda escríbeme con total libertad al formulario de contacto para resolver dudas: https://www.pedroventura.com/contacto/

¡Comparte este artículo! »

  • Irene (3 días)
    I used www.zerobounce.net and it is an amazing platform for…
  • Felipe Albornoz (4 días)
    Agradecido. Saludos.
  • Joel (2 semanas)
    Este grupo es buenísimo hay personas de todo el mundo…
  • Citricus (3 semanas)
    Análisis muy buenos y detallados: Crypto Trading Campus https://t.me/cryptotradingcampus
  • Vane (2 meses)
    Hola muy buena información, en lo personal mino con Javascript…
  • Gabriel Roncancio (2 meses)
    Hola Pedro, gracias por compartir. Tu artículo me dió algunas…

Suscríbete al newsletter »

Proporciona tu correo electrónico a continuación y recibe las últimas noticias! Funciona con Feedburner de Google

Archivo »

Leer entrada anterior
Puertos tcp udp más importantes

Puertos TCP y UDP más usados o más importantes. También se añade algún otro puerto no asignado oficialmente por IANA,...

Cerrar