Linux-OS » iptables

Squid como Proxy Transparente - Redireccionar el tráfico web al squid

30 05 2009

El tema de implementar un proxy transparente es como todo muy extenso de explicar en profundidad, asi que a la solicitud de muchos usuarios preguntando como configurarlo les dejamos solo 2 líneas que en general son las que faltan en las configuraciones.

En /etc/squid/squid.conf

http_port 3128 transparent

y luego en nuestro script de iptables

iptables -t nat -A PREROUTING -s 0/0 -d 0/0 -p tcp –dport 80 -j REDIRECT –to-port 3128

:wq!

Mas info aquí, aquí, aquí y aquí.



Bloquear una IP con IPTABLES - dropear al momento

18 04 2009

Muchas veces sucede que nos tenemos que conectar a una red remota y, producto de que algún puesto tiene levantado un gestor de descargas o algún cliente de p2p se nos hace imposible trabajar.

Lea el resto »



iptables: Redirigir el tráfico de un puerto

20 01 2009

Como redirigir el tráfico de determinados orígenes en un puerto hacia otra máquina con iptables:

puerto=1433
ips_permitidas=”80.34.235.121 80.34.235.120″
host_destino=147.83.78.2

Lea el resto »



Problemas con NAT Linux y FTP / TFTP

26 06 2008

FTP y TFTP son protocolos bastante especiales en su forma de trabajo, ya que si bien tienen puertos definidos para establecer sesiones, las transferencias de datos no se hacen siempre por puertos definidos (Conexiones Pasivas).

Cuando se implementa un NAT es muy posible que protocolos como TFTP no funcionen bien, pero siempre hay una solución, Linux como kernel es bastante inteligente como para trabajar y permitir que clientes FTP y TFTP se conecten a servidores nateados a través de él. ¿Como? Cargando los módulos necesarios.

En Debian existe una herramienta bastante útil llamada modconf, la cual muestra, carga y configura el inicio automático de los módulos que necesitemos.

Buscamos /kernel/net/ipv4/netfilter, para cargar los siguientes modulos:

# ip_conntrack_tftp
# ip_conntrack_ftp
# ip_nat_ftp
# ip_nat_tftp

Con eso debería bastar para que esos protocolos sean funcionales trás el NAT Linux.

Vía: http://mcbrain.powers.cl/?p=390



Protección de una Red Interna con Iptables

23 06 2008

Aquí otro enlace de este buen sitio que muestra un script de Iptables con algunos tips para asegurar una red interna.

Otros artículos relacionados al uso de Iptables aquí, aquí, aquí, aquí y aquí.

:wq!



Utilizar listas con Iptables

20 06 2008

Les dejo un enlace a un artículo muy interesante donde se explica como manejar “listas” en iptables.

El sitio es muy interesante por lo que les recomendo lo visiten!

Breve ejemplo:

#!/bin/sh
# Creacion de variables
IPTABLES=/sbin/iptables
LISTA_BLANCA=/usr/local/lista_blanca
LISTA_NEGRA=/usr/local/lista_negra
PUERTOS="80 443 22 25 110"
# Borrar cualquier politica existente
$IPTABLES -f
# LISTA BLANCA
for HOST in `grep -v ^# $LISTA_BLANCA | awk '{print $1}'`; do
$IPTABLES -A INPUT -t filter -s $HOST -j ACCEPT
done
#LISTA NEGRA
for HOST in `grep -v ^# $LISTA_NEGRA | awk '{print $1}'`; do
$IPTABLES -A INPUT -t filter -s $HOST -j DROP
done
# PUERTOS A LOS QUE SE CONECTAN LOS
for PUERTO in $PUERTOS; do
$IPTABLES -A INPUT -t filter -p tcp --dport $PUERTO -j ACCEPT
done;
#Se bloquean intentos de conexión de otros protocolos.
$IPTABLES -A INPUT -t filter -p tcp --syn -j DROP

:wq!



Algunos artículos y tips sobre iptables

17 06 2008

Les dejo algunos artículos relacionados a iptables aquí, aquí, aquí, aquí, aquí, aquí, aquí, aquí y aquí.

:wq!



Bloquear el MSN con iptables

26 03 2008

El servicio MSN, a nivel laboral, es el primer dolor de cabeza en las Instituciones y Empresas, tanto para el Jefe, como el Administrador de la Red. Tradicionalmente se utiliza (bajo Software Libre) una combinación de iptables+squid para bloquearlo, lo cual el computador tiene que procesar el bloqueo del puerto 1863 (en iptables) más el application/x-msn-messenger en Squid. Pero según Nelson e Jordão un Analista de Sistemas de Brasil, todo se puede resolver con sólo una línea de código en el cortafuegos.

Lea el resto »



Compartir la conexión con Iptables

12 03 2008

Iptables funciona de forma parecida a las reglas de acceso del proxy squid, es decir, será un conjunto de reglas puestas en orden y si cumplimos una que restringe a la siguiente, no cumpliremos esta última. Es decir, imaginemos que en una primera regla impedimos el acceso de una dirección ip a nuestra web o mejor dicho al puerto 80 de nuestra maquina, si en una regla posterior aceptamos de todo el mundo los paquetes (o para que lo entendamos todos, conexiones), a este mismo puerto 80, la dirección ip que antes habíamos restringido, seguirá sin poder ver nuestra web, pues la primera regla ha restringido a la segunda, convirtiéndose esta última en: “aceptamos el acceso de todos menos de esa ip”.
Pero bueno, como no es objetivo de este artículo, explicar como se pone en marcha un firewall, sino compartir la conexión a internet o dicho de mejor forma, “Hacer NAT de nuestra red local”, vamos a ver sin más dilación como vamos a llevar a cabo esta faena.

Lea el resto »



Mostrar las reglas de iptables (netfilter)

5 03 2008

Algunas alternativas serían:

Mostrar Filter:

# iptables -nvL

Mostrar Filter y las reglas de NAT

# iptables -t nat -nvL

:wq!

tux-messi



Algunos Tips sobre Iptables en Debian

3 03 2008

Según la Wikipedia, 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 queue, 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.

Lea el resto »



Linux - Firewalls: Guía Avanzada

2 10 2007

Este libro guía a los usuarios particulares y de pequeños negocios en los pasos básicos que deben seguir para diseñar e implementar un firewall de filtrado de paquetes. Sin embargo, un firewall es solo un paso para crear un sistema seguro. También son necesarias las medidas de seguridad de alto nivel…

Lea el resto »



Bloquear el MSN con iptables

26 09 2007

El servicio MSN, a nivel laboral, es el primer dolor de cabeza en las Instituciones y Empresas, tanto para el Jefe, como el Administrador de la Red. Tradicionalmente se utiliza (bajo Software Libre) una combinación de iptables+squid para bloquearlo, lo cual el computador tiene que procesar el bloqueo del puerto 1863 (en iptables) más el application/x-msn-messenger en Squid. Pero según Nelson e Jordão un Analista de Sistemas de Brasil, todo se puede resolver con sólo una línea de código en el cortafuegos.

Lea el resto »



Seguridad en SSH: iptables, denyhosts, sudoers…

7 09 2007

Si se fijan en los logs generados por ssh, verán la cantidad de intentos de ataques que sufre este servicio. Existen gusanos que lanzan ataques remotos con intención de loguearse como root en nuestros sistemas y así instalar otros rootkits o hacerse con el control del mismo.

Lea el resto »



iptables y NAT para vagos

13 07 2007

A pesar que en Bulma hay varios artículos explicando estos temas, es una pregunta recurrente en la lista Bulmailing. Además no se suelen usar las características, muy buenas, de control de conexiones del netfilter. Aquí doy un par de ejemplos concretos, especialmente preparados para los vagos que no se leen ningún tutorial :-)

En nuestros ejemplos vamos aprovechar las capacidades de control de conexiones que tienen las iptables. Primero, hay que tener en cuenta que el forwarding debe estar habilitado:

echo 1 > /proc/sys/net/ipv4/ip_forward

Y también recordar que para cambiar las reglas, primero hay que “borrar” las anteriores, por ejemplo:

iptables -F
iptables -t nat -F

Ahora veremos ejemplos particulares, en todos los ejemplos suponemos que las direcciones de nuestra red privada son 192.168.0.0/24 (es decir la máscara es de 24 bits: 255.255.255.0)

Sólo quiero hacer masquerading de una IP asignada dinámicamente

Caso común para un Linux que obtiene direcciones dinámicas de su proveedor de Internet, en el ejemplo lo doy con la interfaz ippp0, que es la que se usa para RDSI, pero podéis sustituirla por caulquier interfaz que uséis (eth0, ppp0…).

Además de hacer el NAT, vamos a permitir el tráfico ICMP (de los pings…) ya que está recomendado que así funcione. Veremos que las última 3 reglas, que no son obligatorias, peri os las recomiendo, lo que haces es descartar cualquier paquete que no sea de uina conexión previamente establecida.

# Habilito el NAT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0.0.0.0/0 -j MASQUERADE
# Dejo pasar los paquetes ICMP
iptables -A INPUT -i ippp0 -p ICMP -j ACCEPT
# Acepto paquetes de conexiones ya establecidas
iptables -A INPUT -p TCP -m state --state RELATED -j ACCEPT
# Rechazamos paquetes de conexiones nuevas
iptables -A INPUT -i ippp0 -m state --state NEW,INVALID -j DROP
# Rechazamos paquetes de forwarding de conexiones no establecidas
iptables -A FORWARD -i ippp0 -m state --state NEW,INVALID -j DROP

Pero también quiero permitir conexiones entrantes SSH y HTTP

Eso es fácil, antes de las últimas reglas “DROP” hay que poner unas que permitan las conexiones nuevas a esos puertos. Las reglas nos quedan de la siguiente forma:

# Habilito el NAT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0.0.0.0/0 -j MASQUERADE
# Dejo pasar los paquetes ICMP
iptables -A INPUT -i ippp0 -p ICMP -j ACCEPT
# Permito conexiones al puerto 80 (HTTP)
iptables -A INPUT -i ippp0 -p TCP --dport 80 -m state --state NEW -j ACCEPT
# Permito conexiones al puerto 22 (SSH)
iptables -A INPUT -i ippp0 -p TCP --dport 22 -m state --state NEW -j ACCEPT
# Acepto paquetes de conexiones ya establecidas
iptables -A INPUT -p TCP -m state --state RELATED -j ACCEPT
# Rechazamos paquetes de conexiones nuevas
iptables -A INPUT -i ippp0 -m state --state NEW,INVALID -j DROP
# Rechazamos paquetes de forwarding de conexiones no establecidas
iptables -A FORWARD -i ippp0 -m state --state NEW,INVALID -j DROP

Si queréis “abrir” otros puestos, sólo tenéis que agregar esas nuevas reglas.

Tengo dirección IP fija, ¿como lo hago?

Es muy fácil, en vez de usar masquerading, vamos a usar una solución mejor: source NAT. Sólo hay que cambiar la regla del nat (la primera en los ejemplos anteriores). Si la interfaz que tiene la IP fija es la eth0, y la IP fija es la 111.111.111.111, nos quedaría:

# Habilito el SNAT
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 111.111.111.111
# Dejo pasar los paquetes ICMP
iptables -A INPUT -i eth0 -p ICMP -j ACCEPT
# Permito conexiones al puerto 80 (HTTP)
iptables -A INPUT -i eth0 -p TCP --dport 80 -m state --state NEW -j ACCEPT
# Permito conexiones al puerto 22 (SSH)
iptables -A INPUT -i eth0 -p TCP --dport 22 -m state --state NEW -j ACCEPT
# Acepto paquetes de conexiones ya establecidas
iptables -A INPUT -p TCP -m state --state RELATED -j ACCEPT
# Rechazamos paquetes de conexiones nuevas
iptables -A INPUT -i eth0 -m state --state NEW,INVALID -j DROP
# Rechazamos paquetes de forwarding de conexiones no establecidas
iptables -A FORWARD -i eth0 -m state --state NEW,INVALID -j DROP

Vale, pero ahora quiero redireccionar las conexiones a un puerto hacia un ordenador interno de mi LAN

Esto se llama destination NAT es bastante sencillo, sólo hay que poner una regla adicional. Por ejemplo, si queremos redireccionar las conexiones al puerto 80 hacia el puerto 80 de un ordenador en la red interna (192.168.0.111).

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.0.111:80

Otro ejemplo sencillo y muy útil, redireccionar el puerto 2022 del ordenador haciendo de NAT o firewall hacia el puerto 22 (ssh) de un ordenador de la red interna.

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2022 -j DNAT --to 192.168.0.111:22

Voilà, funciona. También podéis leer los Howtos y tutoriales, que están hasta en castellano.

Fuente: http://bulma.net/body.phtml?nIdNoticia=1522

Nota: Este artículo es bastante antiguo, pero me ha sido muy útil varias veces por lo que quería postearlo aquí.