[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [.Iptables+DMZ] Ayuda! gran Dolor de cabeza !




On Jan 26, 2005, at 9:36 AM, Nelson Lopez wrote:

Hola amigos;


Hola

Sistema : Debian Sarge 3.1
Kernel : 2.4.27-1-386


lindo

les escribo este email pidiendo ayuda a ustedes ya que me he quebrado la
cabeza ya mas de 3 dias enteros sin descanso ni siquiera colacion =/..

les cuento tengo la necesidad de montar en mi trabajo un firewall que
proteja mis servidores y mi red interna por ejemplo



                   inet
                     |
                     |
                   eth0 ( ip publica fija )
                     |
                     |
               -------------
               | linux box |-------- eth2 ( LAN )------ XXXXX
               -------------
              /
             /
            eth1 ( dmz )
           192.168.10.99/255.255.255.0
            |
            |
            |
          eth0 ( WWW )
192.168.10.100/255.255.255.0


Este correo posiblemente est'e fuera de lugar, me disculpo por anticipado si lo creen as'i. Pero hay dos cosas que me llaman la atenci'on: "oficina" y "3 dias enteros sin descanso": y siento empat'ia por ti.

Si lo tienes que hacer en tu trabajo, yo te sugiero que utilices algo que te ordene mejor las cosas. En el tiempo, no solo necesitar'as colocar una DMZ, sino que de repente necesitar'as hacer redirecciones, cambios de puertos y proxies a nivel de aplicaci'on. Despu'es vendr'an las VPNs, despu'es vendr'a el ruteo din'amico y despu'es el failover y el split access. Depu'es la VoIP y con ello el tema de servicios diferenciados y calidad de servicio. Depu'es vendr'a alguien que quiere saber el uso (y abuso) de Internet y te pedir'a un registro, y luego alguien m'as te pedir'a los registros resumidos. Despu'es alguien te querr'a vender un IDS pero tu lo resolver'as con tu firewall en Debian, etc. etc. etc. .... y nunca acaba.

Trabajar directamente con iptables, ip, tc o ipsec puede ser frustrante. Yo te sugiero que uses una herramienta hecha para hacer firewalls. Shorewall ha sido una gran ayuda en tiempos como los que seguramente vives hoy. Todos los archivos est'an muy bien documentados y tienen ejemplos.

Paso 1: apt-get install shorewall
Paso 2: cp /usr/share/doc/shorewall/default-config/* /etc/shorewall/
Paso 3: cd /etc/shorewall; gunzip *gz
Paso 4: Coloca las lineas
eth0    eth1
eth0    eth2
en masq
Paso 5: Coloca las lineas
net eth0
loc eth2
dmz eth1
en interfaces
Paso 6: Coloca (antes del final) de policies
fw all ACCEPT
Paso 7: Coloca una linea del tipo DNAT por cada servicio, en rules

Paso N: continua investigando hasta encontrar la configuracion que te corresponda.

al final pueden ver lo que queda.

El punto que trato de probar es el siguiente. No importa que sea muy complicada o que no sea 'optima, me sirve porque me ordena. El resto la empresa lo compensa con m'as hardware.

Trabajar con iptables es divertido, tambi'en compilar un nucleo y optimizar un sistema. Lo se porque lo hice. Pero eso no puede tomar la totalidad de tu dia, especialmente si tienes otras cosas que hacer. Si quieres hacerlo, participa directamente en el shorewall de debian o en otras herramientas que seguramente son igualmente buenas.

en mi insrtalacion queda lo siguiente. (solo en la tabla de filter: no incluyo las tablas de nat, de manglel, el tc, el ipsec, el openvpn, las interfaces vituales y las otras cosas)

Tambi'en he quitado las referencias a los IPs publicos.


Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
DROP !icmp -- 0.0.0.0/0 0.0.0.0/0 state INVALID
eth0_in    all  --  0.0.0.0/0            0.0.0.0/0
eth1_in    all  --  0.0.0.0/0            0.0.0.0/0
common     all  --  0.0.0.0/0            0.0.0.0/0
LOG all -- 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 6 prefix `Shorewall:INPUT:REJECT:'
reject     all  --  0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy DROP)
target     prot opt source               destination
DROP !icmp -- 0.0.0.0/0 0.0.0.0/0 state INVALID TCPMSS tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU
eth0_fwd   all  --  0.0.0.0/0            0.0.0.0/0
eth1_fwd   all  --  0.0.0.0/0            0.0.0.0/0
common     all  --  0.0.0.0/0            0.0.0.0/0
LOG all -- 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 6 prefix `Shorewall:FORWARD:REJECT:'
reject     all  --  0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
DROP !icmp -- 0.0.0.0/0 0.0.0.0/0 state INVALID ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpts:67:68
fw2all     all  --  0.0.0.0/0            0.0.0.0/0
fw2loc     all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0

Chain all2all (1 references)
target     prot opt source               destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
common     all  --  0.0.0.0/0            0.0.0.0/0
LOG all -- 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 6 prefix `Shorewall:all2all:REJECT:'
reject     all  --  0.0.0.0/0            0.0.0.0/0

Chain common (4 references)
target     prot opt source               destination
icmpdef    icmp --  0.0.0.0/0            0.0.0.0/0
reject     udp  --  0.0.0.0/0            0.0.0.0/0          udp dpt:135
reject udp -- 0.0.0.0/0 0.0.0.0/0 udp dpts:137:139
reject     udp  --  0.0.0.0/0            0.0.0.0/0          udp dpt:445
reject     tcp  --  0.0.0.0/0            0.0.0.0/0          tcp dpt:139
reject     tcp  --  0.0.0.0/0            0.0.0.0/0          tcp dpt:445
reject     tcp  --  0.0.0.0/0            0.0.0.0/0          tcp dpt:135
DROP       udp  --  0.0.0.0/0            0.0.0.0/0          udp dpt:1900
DROP       all  --  0.0.0.0/0            255.255.255.255
DROP       all  --  0.0.0.0/0            224.0.0.0/4
reject     tcp  --  0.0.0.0/0            0.0.0.0/0          tcp dpt:113
DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:53 state NEW ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x10/0x10 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x04/0x04 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x01/0x01
DROP       all  --  0.0.0.0/0            200.87.125.199
DROP       all  --  0.0.0.0/0            192.168.1.255

Chain dynamic (4 references)
target     prot opt source               destination

Chain eth0_fwd (1 references)
target     prot opt source               destination
dynamic    all  --  0.0.0.0/0            0.0.0.0/0          state NEW
net2loc    all  --  0.0.0.0/0            0.0.0.0/0

Chain eth0_in (1 references)
target     prot opt source               destination
dynamic    all  --  0.0.0.0/0            0.0.0.0/0          state NEW
net2fw     all  --  0.0.0.0/0            0.0.0.0/0

Chain eth1_fwd (1 references)
target     prot opt source               destination
dynamic    all  --  0.0.0.0/0            0.0.0.0/0          state NEW
loc2net    all  --  0.0.0.0/0            0.0.0.0/0

Chain eth1_in (1 references)
target     prot opt source               destination
dynamic    all  --  0.0.0.0/0            0.0.0.0/0          state NEW
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpts:67:68
loc2fw     all  --  0.0.0.0/0            0.0.0.0/0

Chain fw2all (2 references)
target     prot opt source               destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0

Chain fw2loc (1 references)
target     prot opt source               destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT tcp -- 0.0.0.0/0 192.168.1.62 state NEW tcp dpt:22 ACCEPT tcp -- 0.0.0.0/0 192.168.1.62 state NEW tcp dpt:80
fw2all     all  --  0.0.0.0/0            0.0.0.0/0

Chain icmpdef (1 references)
target     prot opt source               destination

Chain loc2fw (1 references)
target     prot opt source               destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 state NEW udp dpt:53 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:53 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:110 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:143
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0

Chain loc2loc (0 references)
target     prot opt source               destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT tcp -- 0.0.0.0/0 192.168.1.62 state NEW tcp dpt:22 ACCEPT tcp -- 0.0.0.0/0 192.168.1.62 state NEW tcp dpt:80
all2all    all  --  0.0.0.0/0            0.0.0.0/0

Chain loc2net (1 references)
target     prot opt source               destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0

Chain net2all (2 references)
target     prot opt source               destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
common     all  --  0.0.0.0/0            0.0.0.0/0
LOG all -- 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 6 prefix `Shorewall:net2all:DROP:'
DROP       all  --  0.0.0.0/0            0.0.0.0/0

Chain net2fw (1 references)
target     prot opt source               destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25
ACCEPT     tcp  --  XXXXX        0.0.0.0/0          state NEW tcp dpt:22
ACCEPT     tcp  --  XXXX      0.0.0.0/0          state NEW tcp dpt:22
ACCEPT     tcp  --  1XXX       0.0.0.0/0          state NEW tcp dpt:22
ACCEPT     all  --  166.XXXX        0.0.0.0/0          state NEW
ACCEPT tcp -- XXXXX 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT     tcp  --  XXXXX       0.0.0.0/0          state NEW tcp dpt:22
ACCEPT tcp -- 20XXXX4.26 0.0.0.0/0 state NEW tcp dpt:22 ACCEPT tcp -- 20XXXX.50 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT     all  --  20XXXX1       0.0.0.0/0          state NEW
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 state NEW udp dpt:53 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:53 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:110 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:143
ACCEPT     all  --  20XXXX95       0.0.0.0/0          state NEW
ACCEPT     all  --  20XXXXX96       0.0.0.0/0          state NEW
ACCEPT     all  --  20XXXXX97       0.0.0.0/0          state NEW
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 state NEW udp dpt:5060 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:5060 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:4569 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 state NEW udp dpt:4569 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 state NEW udp dpts:17400:25000 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 state NEW udp dpts:23000:24999
net2all    all  --  0.0.0.0/0            0.0.0.0/0

Chain net2loc (1 references)
target     prot opt source               destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT tcp -- 0.0.0.0/0 192.168.1.62 state NEW tcp dpt:22 ACCEPT tcp -- 0.0.0.0/0 192.168.1.62 state NEW tcp dpt:80
net2all    all  --  0.0.0.0/0            0.0.0.0/0

Chain reject (10 references)
target     prot opt source               destination
REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 reject-with tcp-reset REJECT udp -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable REJECT icmp -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-unreachable REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited




para esto he estado probando muchos scripts y otros que he ido haciendo
yo y que no funcionan. *raro* ya que las reglas se ven si hago un
*iptables -nvL ó iptables -t nat -nvL*, sinceramente no se que pasa !.

pueden echarme una mano amigos ? ó quisas darme alguna guia o algo por
el estilo ?.-.


aqui pego el ultimo script que estube probando,


rei:~# cat dmz_fwl_lan
#!/bin/bash
################## Habilitando eht1  ####################
puerto_dmz="eth1"
ip_dmz="192.168.10.99"
ifconfig $puerto_dmz down
ifconfig $puerto_dmz $ip_dmz netmask 255.255.255.0 up
#ifconfig $puerto_dmz up
#########################################################
################## Reglas de Basicas ####################
iptables -F
#iptables -X
iptables -F -t nat
#iptables -X -t nat
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -s 192.168.10.0/24
iptables -P FORWARD DROP
iptables -A FORWARD -j ACCEPT -p UDP
iptables -A FORWARD -j ACCEPT -p ICMP
iptables -A FORWARD -mstate --state NEW,ESTABLISH,RELATED -j ACCEPT

modprobe ip_nat_irc
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc

echo "1" > /proc/sys/net/ipv4/ip_forward
#########################################################
################ Servicios ###############################
PORT_USR="21 22 25 53 80 110 443 8080"
   for PORT in $PORT_USR; do
   iptables -A FORWARD -p tcp --dport $PORT -j ACCEPT
   done
##########################################################
################ DMZ #####################################
IP_EXT="200.72.xxx.yyy"
IP_DMZ="192.168.10.100"
PORT_DMZ="80 20 21 22 25 110 443 8080"
   for PORT_DEMEZETA in $PORT_DMZ; do
     iptables -t nat -A PREROUTING -i eth0 -d $IP_EXT -p TCP --dport
$PORT_DEMEZ ETA -j DNAT --to-destination $IP_DMZ
   done

##########################################################
rei :~#

Disculpen lo largo de este Email. pero ya me he vuelto loco :(..

Nelson Lopez V.



--
To UNSUBSCRIBE, email to debian-user-spanish-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Reply to: