Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Foros Linux » Administración del sistema » Seguridad


Nuevo tema Responder al tema
 [ 6 mensajes ] 
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mar Sep 07, 2010 9:08 am
Mensajes: 16

Nota Publicado: Jue Sep 16, 2010 4:51 pm 
Arriba  
Hola a todos de nuevo.

Sigo con mis problemas de iptables. Os pongo en antecedentes:

Tengo instalado Ubuntu 9.10 (Karmic) Server con samba y las X configuradas. El caso es que quiero hacer andar iptables para montar un firewall de red perimetral sin DMZ.

Este es el script básico que se me ha ocurrido para probar que pasa con este Ubuntu. He de decir que también lo he probado en un Ubuntu Desktop 9.10 y me pasa lo mismo.

Código:
#!/bin/sh
#
# Firewall basico

# Variables
# INTNET=192.168.29.0/24

## FLUSH de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

## Establecemos politica por defecto: DROP
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT  # HTTP
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT # HTTPS
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT # DNS
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT # DNS
iptables -A OUTPUT -p tcp --dport 21:22 -j ACCEPT #FTP

#/bin/echo "1" > proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

#iptables -A FORWARD -s $INTNET -d 0.0.0.0/0 -m state --state NEW -p tcp --dport 80 -j ACCEPT # HTTP

#iptables -A FORWARD -s $INTNET -d 0.0.0.0/0 -m state --state NEW -p tcp --dport 443 -j ACCEPT # HTTPS

#iptables -A FORWARD -s $INTNET -d 0.0.0.0/0 -m state --state NEW -p udp --dport 53 -j ACCEPT # DNS


Cuando ejecuto el script aparentemente no hay error, aunque no puedo navegar y no se el motivo porque si OUTPUT no esta bloqueado creo que deberia poder navegar. Si ejecuto dmesg aparece esto:

Código:
30.361143] eth0: no IPv6 routers present
[   30.468026] eth1: no IPv6 routers present
[  864.841521] nf_conntrack version 0.5.0 (8192 buckets, 32768 max)
[  864.844181] CONFIG_NF_CT_ACCT is deprecated and will be removed soon. Please use
[  864.844195] nf_conntrack.acct=1 kernel parameter, acct=1 nf_conntrack module option or
[  864.844206] sysctl net.netfilter.nf_conntrack_acct=1 to enable it.


A parte de esto si descomento la linia
Código:
#/bin/echo "1" > proc/sys/net/ipv4/ip_forward
me devuelve este error:

Código:
/etc/guardian_b.sh: 25: cannot create proc/sys/net/ipv4/ip_forward: Directory nonexistent


Si miro dmesg aparece lo mismo de antes.

A continuacion pongo el resultado de iptables -L -n:

Código:
Chain INPUT (policy DROP)
target     prot opt source               destination         

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:443
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:53
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:53
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpts:21:22


¿Alguien me puede ayudar a resolver el problema? Mis conocimientos no son de esperto, pero me defiendo un poco, aunque esto me supera.

Si necesitais más datos para investigar mi problema pedidmelos.

Gracias a todos

 Perfil Email  

Desconectado
Forista Distinguido
Forista Distinguido
Avatar de Usuario

Registrado: Sab Oct 09, 2004 11:00 pm
Mensajes: 1299

Nota Publicado: Jue Sep 16, 2010 8:30 pm 
Arriba  
Por empezar, tienes comentada la línea más importante: la que activa el bit de forward.

Si de verdad lo tienes así, el script no da errores, porque no hace absolutamente nada.
En cuanto al error que te da al descomentarla bueno, el error es ese: que no existe el archivo. Y si no puedes activar el bit de forward no puedes esperar que el script funcione.

La ruta proc/sys/net/ipv4/ip_forward no existe. Existe /proc/sys/net/ipv4/ip_forward.

Por lo tanto:

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

 Perfil  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mar Sep 07, 2010 9:08 am
Mensajes: 16

Nota Publicado: Vie Sep 17, 2010 1:34 am 
Arriba  
Hola neurus,

Gracias por tu comentario, la verdad es que no habia caido en la cuenta de la barra.

Igualmente desde el equipo firewall propiamente dicho deberia poder salir a internet¿no?

En cuanto a los demás errores ¿alguien se anima a decirme que le pasa?

Código:
[   25.776726] eth0: no IPv6 routers present
[   25.800697] eth1: no IPv6 routers present
[   81.787354] mtrr: base(0xd0000000) is not aligned on a size(0x1490000) boundary
[  160.891520] nf_conntrack version 0.5.0 (8192 buckets, 32768 max)
[  160.894124] CONFIG_NF_CT_ACCT is deprecated and will be removed soon. Please use
[  160.894142] nf_conntrack.acct=1 kernel parameter, acct=1 nf_conntrack module option or
[  160.894153] sysctl net.netfilter.nf_conntrack_acct=1 to enable it.


Código:
Chain INPUT (policy DROP)
target     prot opt source               destination         

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:443
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:53
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:53
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpts:21:22


Gracias a todos por participar

 Perfil Email  

Desconectado
Forista Distinguido
Forista Distinguido
Avatar de Usuario

Registrado: Sab Oct 09, 2004 11:00 pm
Mensajes: 1299

Nota Publicado: Vie Sep 17, 2010 4:47 am 
Arriba  
Esos no son necesariamente errores. Dice que no hay routers ipv6 presentes (¿los hay?).

Y que CONFIG_NF_CT_ACCT es una opción obsoleta, puesto que ahora se configura mediante sysctl.

Lo dicho, no son errores.

En cuanto a navegar desde la misma máquina, es otro tema, en absoluto relacionado con el firewall. ¿Está configurada la conexión a internet en esa máquina?

 Perfil  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mar Sep 07, 2010 9:08 am
Mensajes: 16

Nota Publicado: Sab Sep 18, 2010 9:03 am 
Arriba  
Hola neurus.

Si tu dices que no son errores lo acepto porque yo no soy un experto en la materia.

¿Me puedes explicar como hago para que el servidor iptables salga a internet?¿Que es lo que estoy haciendo mal?

A la pregunta de si tengo conexion a internet te contesto que antes de ejecutar el script soy capaz de navegar por internet, pero luego no. Debe haber un error en el script que he posteado más arriba. Te agradecería que lo revisaras y me dijeras que es lo que hago mal.

Un saludo y muchas gracias.

Editado -- Sab Sep 18, 2010 3:03 pm --

Hola de nuevo.

He decidido empezar desde 0 con ayuda del manual de pello, he consiguido algunas cosas.

eth0= es internet
eth1= lan interna

Todas la politicas por defecto son DROP.

Quiero poder navegar desde el propio firewall. Esto lo he conseguido sin problemas con la ayuda de pello.
Tambien quiero poder navegar desde mi red interna pero aquí es donde ya estoy desesperado y no encuentro la forma de llevarlo a cabo. Espero que alguno de vosotros sepa que estoy haciendo mal porque yo no.

A continuacion pongo las partes de código:

Código:
#!/bin/sh

echo -n Aplicando Reglas de Firewall...

## FLUSH de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

## Establecemos politica por defecto: DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# Permitimos que la maquina pueda salir
/sbin/iptables -A INPUT -p tcp -m tcp --sport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT

# Ya tambien a webs seguras
/sbin/iptables -A INPUT -p tcp -m tcp --sport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT

# Permitimos la consulta a un primer DNS
/sbin/iptables -A INPUT -s IP_DNS -p udp -m udp --sport 53 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -d IP_DNS -p udp -m udp --dport 53 -j ACCEPT

# Con esto permitimos hacer forward de paquetes en el firewall, o sea
# que otras máquinas puedan salir a traves del firewall.
echo 1 > /proc/sys/net/ipv4/ip_forward

# Ahora hacemos enmascaramiento de la red local
# y activamos el BIT DE FORWARDING (imprescindible!!!!!)RANGO_IP_INTERNO -o eth0 -j MASQUERADE

# Aceptamos que vayan a puertos 80
/sbin/iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport 80 -j ACCEPT

# Aceptamos que vayan a puertos https
/sbin/iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport 443 -j ACCEPT

# Aceptamos que consulten los DNS
/sbin/iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 53 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport 53 -j ACCEPT
/sbin/iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -p udp --sport 53 -j ACCEPT

# Barrera de backup por si cambiamos a modo ACCEPT temporalmente
# Con esto protegemos los puertos reservados y otros well-known
/sbin/iptables -A INPUT -p tcp -m tcp --dport 1:1024 -j DROP
/sbin/iptables -A INPUT -p udp -m udp --dport 1:1024 -j DROP
/sbin/iptables -A INPUT -p tcp -m tcp --dport 1723 -j DROP
/sbin/iptables -A INPUT -p tcp -m tcp --dport 3306 -j DROP
/sbin/iptables -A INPUT -p tcp -m tcp --dport 5432 -j DROP

echo " OK . Verifique que lo que se aplica con: iptables -L -n"


Bueno ese es mi script.
Si pongo la politica por defecto de FORWARD en ACCEPT funciona.

Si comento las linias de los puertos del forward y añado estas las que pongo debajo tambien funciona.

Código:
# Aceptar paquetes para reenviar procedentes de la red local
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT 

# Aceptar paquetes para reenviar procedentes de internet de conexiones ya establecidas
iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT


¿Que es lo que tengo que hacer para poder filtrar los puerto internos hacia afuera?

Espero con ansia que alguien me conteste. Gracias por vuestro tiempo

 Perfil Email  

Desconectado
Forista Nuevo
Forista Nuevo
Avatar de Usuario

Registrado: Mar Ene 27, 2009 12:00 am
Mensajes: 43

Nota Publicado: Vie Oct 01, 2010 8:13 am 
Arriba  
Justo lo que estaba buscnado yo tambien me uno a la pregunta que tiene sputnik99

¿Que es lo que tengo que hacer para poder filtrar los puerto internos hacia afuera?

porque por lo menos yo tengo q entrar a estas tipo de paginas

http://190.69.73.242:8084/GLPI/

y no me deja entrar cuando navego por el proxy ....:S

 Perfil  
Mostrar mensajes previos:  Ordenar por  
 [ 6 mensajes ] 
Nuevo tema Responder al tema

Saltar a:  


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC - 6 horas
Traducción al español por Huan Manwë
phpBB SEO