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

ipchains



Buenas..

Tengo un problema al cual no le encuentro solucion..me han aconsejado que la 
solucion seria hacer un proxy transparente pero en cuanto hablo y digo que ya 
hay todo un firewall andando y que solo quiero agregarle unas reglas..ya se 
complica todo.....el firewall es un debian potato con kernel 2.2.19pre21 por 
si importa..

Primero: 

Este script le puede servir a alguien que quiera poner un firewall con una IP 
publica, la cual llega a el por una de las tarjetas de red, y quiera correr 
squid (un proxy) en el firewall...tambien deja pasar el correo hasta un 
exchange que esta en la LAN (el cual quiero cambiar por postfix..pero todavia 
no encaro el tema de que quede funcionando con los correos en el servidor)

Aqui va:

(Aclaro que no lo hice yo sino, no tendria la duda pelotud. que tengo)

La duda pelotud.: 

Me quiero conectar a un servicio por web el cual requiere que este se pueda 
conectar al puerto 1234 es decir segun lo entendi, yo me conecto a la pagina 
ellos tratan de abrir una conexion por el puerto 1234 a mi maquina..por lo 
tanto se tiene que permitir la conexion por el puerto 1234 en el firewall el 
cual tiene que a su vez redirigir esta hacia mi maquina, la cual a su vez 
tiene que salir desde la lan por el puerto 1234 tambien....

#!/bin/sh

# Interfase de la LAN:
ILOC=eth1

# Red local:
RLOC=192.168.1.254

# Mascara local:
MLOC=24

# Interfase de WAN/Internet:
IEXT=eth0

# Red externa:
REXT=xxx.xxx.xxx.xxx

# Mascara externa:
MEXT=255.255.255.192

# IP externa:
IPEXT=xxx.xxx.xxx.xxx

# Comando para ejecutar ipchains:
function IPC()
{
	/sbin/ipchains $*
}

function IPPF()
{
	/usr/sbin/ipmasqadm portfw $*
}

# Limpio reglas de firewall:
IPC -F
# Limpio redireccion de puertos:
IPPF -f

# Es mas seguro deshabilitar todo por defecto:
IPC -P input REJECT
IPC -P forward REJECT
IPC -P output REJECT

# Habilito forwarding de paquetes (para que pasen por la cadena forward):
echo 1 > /proc/sys/net/ipv4/ip_forward

# Trafico en el loopback está bien:
IPC -A input -i lo -j ACCEPT
IPC -A forward -i lo -j ACCEPT
IPC -A output -i lo -j ACCEPT

# Evito IP Spoofing, -l para loguearlo, DENY para evitar DoS:
IPC -A input -i $IEXT -s $RLOC/$MLOC -l -j DENY

# ICMP siempre habilitado ya que no es tan peligroso y sirve para
# diagnosticar (ojo, si hay servidores vulnerables al Ping of Death
IPC -A input 	-i $ILOC	-p icmp 	-j ACCEPT
IPC -A input 	-i $IEXT	-p icmp 	-j ACCEPT
IPC -A forward 	-i $IEXT	-p icmp		-j MASQ
IPC -A forward 	-i $ILOC	-p icmp		-j ACCEPT
IPC -A output 	-i $ILOC	-p icmp 	-j ACCEPT
IPC -A output 	-i $IEXT	-p icmp 	-j ACCEPT

# Para hacer masquerading solo para el SMTP hacia afuera:
IPC -A input	-p tcp -i $ILOC -s 192.168.1.253 1024: -d 0/0 smtp -j ACCEPT
IPC -A forward	-p tcp -i $IEXT -s 192.168.1.253 1024: -d 0/0 smtp -j MASQ
IPC -A output	-p tcp -i $IEXT -s 192.168.1.253 1024: -d 0/0 smtp -j ACCEPT
IPC -A output	-p tcp -i $IEXT -s $IPEXT 1024: -d 0/0 smtp -j ACCEPT
IPC -A input	-p tcp -i $ILOC -s 192.168.1.253 smtp -d 0/0 1024: -j ACCEPT
IPC -A forward	-p tcp -i $IEXT -s 192.168.1.253 smtp -d 0/0 1024: -j MASQ
IPC -A output	-p tcp -i $IEXT -s $IPEXT smtp -d 0/0 1024: -j ACCEPT
IPC -A output	-p tcp -i $ILOC -s 0/0 smtp -d 192.168.1.253 1024: -j ACCEPT

# Para permitir desde afuera acceder al servidor SMTP local:
IPC -A input	-p tcp -i $IEXT -s 0/0 smtp -d $IPEXT 1024: -j ACCEPT
IPC -A input	-p tcp -i $IEXT -s 0/0 1024: -d $IPEXT smtp -j ACCEPT
IPC -A forward	-p tcp -i $ILOC -s 0/0 -d 192.168.1.253 smtp -j ACCEPT
IPC -A output	-p tcp -i $ILOC -s 0/0 -d 192.168.1.253 smtp -j ACCEPT
IPPF -a -P tcp -L $IPEXT smtp -R 192.168.1.253 smtp

# Para hacer masquerading solo para el DNS hacia afuera y que las respuetas
# vuelvan:
for prot in udp tcp ; do
IPC -A input	-p $prot -i $ILOC -s 192.168.1.253 1024: -d 0/0 domain -j ACCEPT
IPC -A forward	-p $prot -i $IEXT -s 192.168.1.253 1024: -d 0/0 domain -j MASQ
IPC -A output	-p $prot -i $IEXT -s 192.168.1.253 1024: -d 0/0 domain -j ACCEPT
IPC -A output	-p $prot -i $ILOC -s 0/0 domain -d 192.168.1.253 1024: -j ACCEPT

# Para que tambien pueda hacerlo el firewall: (lo ya está habilitado)
IPC -A input	-p $prot -i $IEXT -s $IPEXT 1024: -d 0/0 domain -j ACCEPT
IPC -A forward	-p $prot -i $IEXT -s $IPEXT 1024: -d 0/0 domain -j ACCEPT
IPC -A output	-p $prot -i $IEXT -s $IPEXT 1024: -d 0/0 domain -j ACCEPT

# Para que vuelva al firewall (para el 253 no es necesario porque es
# automatico el input):
IPC -A input	-p $prot -i $IEXT -s 0/0 domain -d $IPEXT 1024: -j ACCEPT
done

# Para dejar salir al squid:
for prot in udp tcp ; do
IPC -A input -p $prot -i $ILOC -s $RLOC/$MLOC 1024: -d 192.168.1.254 80 -j 
ACCEPT
IPC -A forward -p $prot -i $ILOC -s $RLOC/$MLOC 1024: -d 192.168.1.254 80 -j 
ACCEPT
IPC -A output -p $prot -i $ILOC -s $RLOC/$MLOC 1024: -d 192.168.1.254 80 -j 
ACCEPT
IPC -A output -p $prot -i $ILOC -s 192.168.1.254 80 -d $RLOC/$MLOC 1024: -j 
ACCEPT
IPC -A forward -p $prot -i $IEXT -s $IPEXT 1024: -d 0/0 www -j ACCEPT
IPC -A output -p $prot -i $IEXT -s $IPEXT 1024: -d 0/0 www -j ACCEPT
IPC -A input -p $prot -i $IEXT -s 0/0 www -d $IPEXT 1024: -j ACCEPT

IPC -A forward	-p $prot -i $IEXT -s $IPEXT 1024: -d 0/0 https -j ACCEPT
IPC -A output	-p $prot -i $IEXT -s $IPEXT 1024: -d 0/0 https -j ACCEPT
IPC -A input	-p $prot -i $IEXT -s 0/0 https -d $IPEXT 1024: -j ACCEPT
done

# Para hacer FTP desde el Proxy (Norton Antivirus 5.0 requiere esto):
IPC -A output -p tcp -i $IEXT -s $IPEXT 1024: -d 0/0 ftp -j ACCEPT
IPC -A input -p tcp -i $IEXT -s 0/0 ftp -d $IPEXT 1024: -j ACCEPT

IPC -A output -p tcp -i $IEXT -s $IPEXT 1024: -d 0/0 1024: -j ACCEPT
IPC -A input -p tcp -i $IEXT -s 0/0 1024: -d $IPEXT 1024: -j ACCEPT

-----------------------------------------------------------------------------------------
Estas de aca abajo son las reglas que se me ocurren podrian solucionar el 
problema...quisiera la opinion de alguien..

IPC -A forward -p tcp -i $IEXT -s $IPEXT 1234 -d 0/0 1234 -j ACCEPT
IPC -A output -p tcp -i $IEXT -s $IPEXT 1234 -d 0/0 1234 -j ACCEPT
IPC -A input -p tcp -i $IEXT -s 0/0 1234 -d $IPEXT 1234 -j ACCEPT
-----------------------------------------------------------------------------------------
# Los siguientes son para facilitar el log:
IPC -A input -i $ILOC -p udp -s $RLOC/$MLOC netbios-ns -j REJECT
IPC -A input -i $ILOC -p udp -s $RLOC/$MLOC netbios-dgm -j REJECT


Que tan ridiculas son esas 3 reglas que puse ahi?? para mi tienen sentido 
pero...como no las puedo probar..(no tengo ni 2 tarjetas de red, ni 2 
maquinas, nisiquiera las fuentes de mi kernel 2.4.18 como para meterle el 
modulo de ipchains)

Saludos y si leyeron hasta aca abajo gracias...


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



Reply to: