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:
- Follow-Ups:
- Re: ipchains
- From: Carlos Viglietta <carlosviglietta@myrealbox.com>