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 [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]