Duda iptables

Pos como que ahora me estoy Gentooizando he tenido que leer sobre el funcionamiento de iptables y sus particularidades.

Antes usaba redhat y venga, con el script que incluia tampoco me mire en su dia como funcionaban las iptables.

Leyendo y leyendo he encontrado este script creado por Rusty (me parece que es el que ha creado iptables) en donde crea un cortafuegos para los que como yo usan PPP. Pego aqui el codigo:

----------------------------------------------------------------------------------
## Insertar los módulos de seguimiento de la conexión (no es necesario
## si están en el núcleo).
# insmod ip_conntrack
# insmod ip_conntrack_ftp

## Crear una cadena que bloquee las conexiones nuevas, excepto si vienen
## de dentro.
# iptables -N block
# iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT
# iptables -A block -j DROP

## Saltar a esa cadena desde las cadenas INPUT y FORWARD.
# iptables -A INPUT -j block
# iptables -A FORWARD -j block
----------------------------------------------------------------------------------

Esto de aceptar conexiones que vienen de dentro no lo acabo de entender. En teoria -i indica la interface y el '!' indica diferente, por lo que todo lo que no me venga de ppp lo acepto.
Segun esto solo con estar en una LAN este script no me serviria no?
O despues con el iptables -A block -j DROP todos los paquetes de la chain block que no cumplan condiciones anteriores se dropean como politica por defecto?

Bufff tengo un empache, haber si alguien me aclara las dos linias.
# iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT
# iptables -A block -j DROP

Nus vemos!
Perdon por la intromision en tu hilo.
No puedo ayudarte, pero por lo que veo tu si que podrías.
Tengo un firewall en mi empresa, y tengo que dar acceso a todos los ordeandores para que cuando accedan a algunas paginas las vean sin problemas.
En concreto son las paginas seguras que usan el puerto 443 y 444.
Ahora mismo tengo una regla que permite a un ordenador ver las paginas con puerto 443, pero lo que yo quiero es que TODOS los ordeandores puedan navegar tanto por las paginas de https 443, como por otras que usan el 444.

Como tendria que ser la regla si tenemos en cuenta que la IP interna de la LAN es 192.168.4.0/24

Gracias y un saludo
Escrito originalmente por quelcom


Esto de aceptar conexiones que vienen de dentro no lo acabo de entender. En teoria -i indica la interface y el '!' indica diferente, por lo que todo lo que no me venga de ppp lo acepto.
Segun esto solo con estar en una LAN este script no me serviria no?
O despues con el iptables -A block -j DROP todos los paquetes de la chain block que no cumplan condiciones anteriores se dropean como politica por defecto?

Bufff tengo un empache, haber si alguien me aclara las dos linias.
# iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT
# iptables -A block -j DROP

Nus vemos!


A la cadena block llegan los paquetes que vienen de fuera a tu maquina (INPUT->BLOQ) y los que se han de reenviar (FORWARD->BLOQ). Los paquetes que se generen en tu ordenador no pasaran por la cadena, solo pasaran por la cadena OUTPUT.

Si tu ordenador comparte la conexión que tienes en ppp0 con otros ordenadores que tengas en una LAN (pe en eth0) la linea les permite establecer conexiones nuevas hacia el exterior, pero no permite abir conexiones nuevas a tu ordenador desde ppp0.
Esta linea no tiene mucho sentido si lo que quieres es solo un firewall, y si quieres hacer de router te faltaria activar el masquerading y el forwarding si no estan ya activados en el nucleo.


La última linea como bien has dicho equivale a poner la política en drop por defecto.

PD: Yo de ti buscaria un script mejor. Si usas la busqueda del foro seguro que encuentras alguno.

Escrito originalmente por jordigm


Como tendria que ser la regla si tenemos en cuenta que la IP interna de la LAN es 192.168.4.0/24



Posiblemente añadiendo estas lineas funcionaría, pero no se puede asegurar sin ver el resto del script, ya que depende de como este montado. Suponiendo que la targeta de la red 192.168.4.0 es la eth0:

iptables -A FORWARD -i eth0 --dport 443 -j ACCEPT
iptables -A FORWARD -i eth0 --dport 444 -j ACCEPT

taluek
Os adjunto el script que uso, por si me podeis ayudar a optimizarlo.
Las partes que me dan más problemas están en negrita y cursiva.

Saludos y Gracias de antemano

Adjuntos

Esta linea no tiene mucho sentido si lo que quieres es solo un firewall, y si quieres hacer de router te faltaria activar el masquerading y el forwarding si no estan ya activados en el nucleo.


Hombre... teniendo en cuenta que este script esta incluido en la documentacion oficial de iptables dudo que la linia no tenga muxo sentido, ya que si el autor la ha puesto sera por algo.

Po weno, seguire leyendo.
Ahora mismo tengo una regla que permite a un ordenador ver las paginas con puerto 443, pero lo que yo quiero es que TODOS los ordeandores puedan navegar tanto por las paginas de https 443, como por otras que usan el 444.

Como tendria que ser la regla si tenemos en cuenta que la IP interna de la LAN es 192.168.4.0/24


Hace mucho que no trasteo con iptables , pero esta orden te tendria que valer para lo que pides:

iptables -A FORWARD -s 192.168.4.0/24 -p tcp --dport 443:444 -j ACCEPT
Escrito originalmente por Anjel


Hace mucho que no trasteo con iptables , pero esta orden te tendria que valer para lo que pides:

iptables -A FORWARD -s 192.168.4.0/24 -p tcp --dport 443:444 -j ACCEPT


Creo que esa regla está puesta en el script que adjunto y no funciona.
Si no es la misma regla es una casi igual.
Echale un vistazo al script y me lo comentas.

Gracias [oki]
No estoy seguro , prueba una cosa , las reglas donde pones por defecto DROP (#DENEGAMOS POR DEFECTO) quitalas del medio del firewall y ponlas al final del todo , que queden arriba siempre las de ACCEPT , es posible que no te funcione la regla porque esta debajo de la que deniega por defecto.

Ya sabes , las de ACCEPT arriba y las politicas por defecto en DROP abajo del todo del firewalll.

Si sigue sin funcionarte la regla que te he puesto despues de hacer esos cambios no se que puede ser , tendras que esperar a que algunos de los admins de linux que se pasan por aqui te ayuden.
Escrito originalmente por Anjel
No estoy seguro , prueba una cosa , las reglas donde pones por defecto DROP (#DENEGAMOS POR DEFECTO) quitalas del medio del firewall y ponlas al final del todo , que queden arriba siempre las de ACCEPT , es posible que no te funcione la regla porque esta debajo de la que deniega por defecto.

Ya sabes , las de ACCEPT arriba y las politicas por defecto en DROP abajo del todo del firewalll.

Si sigue sin funcionarte la regla que te he puesto despues de hacer esos cambios no se que puede ser , tendras que esperar a que algunos de los admins de linux que se pasan por aqui te ayuden.


Okis, gracias lo probaré a ver si lo arreglo rápido que los usuarios ya me apretan con las paginas seguras :-(
8 respuestas