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

Re: [LARGO]Compartir ADSL (funciona SQUID, pero no IPTABLES)



On Tue, 25 Nov 2003 12:43:20 -0600 (CST)

> #
> # firewall.sh
> # -----------
> # Por: Alejandro Sobrino <jander_AT_mallorcaweb.net>
> # Gracias a: Primetime <primetime_AT_linuxsilo.net>
> #
> 
> #!/bin/bash
> 
> IPTABLES=/sbin/iptables
> # Interfaz conectada a internet
> EXT="eth1"
> # Interfaz conectada a la red interna
> INT="eth0"
> 
> case "$1" in
>         start)
>                 # Cargamos los módulos necesarios
>                 echo "Setting firewall rules..."
>                 echo -n "Loading kernel modules: "
>                 /sbin/insmod -q -s ip_tables
>                 /sbin/insmod -q -s ip_conntrack
>                 /sbin/insmod -q -s ip_conntrack_ftp
>                 /sbin/insmod -q -s ip_conntrack_irc
>                 /sbin/insmod -q -s iptable_nat
>                 /sbin/insmod -q -s ip_nat_ftp
>                 echo "done"
> 
>                 # Activamos el IP forwarding
>                 echo -n "Activating IP Forwarding support: "
>                 echo "1" > /proc/sys/net/ipv4/ip_forward
>                 echo "done"
> 
>                 # Eliminamos las reglas anteriores
>                 echo -n "Deleting firewall rules: "
>                 $IPTABLES -F INPUT
>                 $IPTABLES -F OUTPUT
>                 $IPTABLES -F FORWARD
>                 $IPTABLES -F
>                 $IPTABLES -t nat -F
>                 echo "done"
> 
>                 echo -n "Activating NAT: "
>                 $IPTABLES -t nat -A POSTROUTING -s 192.168.1.0/24 -d
>                 0.0.0.0/0 -o $EXT -j

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to 80.35.198.200
(a todo lo que salga por eth1, haciendo SNAT le cambioamos la ip d
eorigen por la que tengo en el interfaz eth1 (en el ejemplo
80.35.190.201)

para obtenerla puedes añadir un:
INETADDR=`ifconfig eth1|grep "inet addr:"|cut -d":" -f2|cut -d" " -f1` y
dejar la regla tal que así:
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to $INETADDR

> MASQUERADE
>                 echo "done"
> 
>                 echo -n "Activating ICMP echo request: "
>                 $IPTABLES -A INPUT -i $EXT -p ICMP -j ACCEPT
>                 echo "done"
> 
>                 echo -n "Setting firewall port rules: "
> 
>                 # 21: ftp
>                 $IPTABLES -A INPUT -i $EXT -p TCP --dport 21 -m state
>                 --state NEW -j ACCEPT$IPTABLES -A INPUT -i $EXT -p TCP
>                 --dport 2100 -m state --state NEW -j ACCEPT
> 
>                 # 22: ssh
>                 $IPTABLES -A INPUT -i $EXT -p TCP --dport 22 -m state
>                 --state NEW -j ACCEPT
> 
>                 # 25: smtp
>                 $IPTABLES -A INPUT -i $EXT -p TCP --dport 25 -m state
>                 --state NEW -j ACCEPT
> 
>                 # 80: apache
>                 $IPTABLES -A INPUT -i $EXT -p TCP --dport 80 -m state
>                 --state NEW -j ACCEPT
> 
>                 echo "done"
> 
>                 echo -n "Final approach: "
>                 # Aceptamos paquetes de una conexión ya establecida
>                 $IPTABLES -A INPUT -p TCP -m state --state RELATED -j
>                 ACCEPT
> 
>                 # Rechazamos los de conexiones nuevas
>                 $IPTABLES -A INPUT -i $EXT -m state --state
>                 NEW,INVALID -j DROP
> 
>                 # Rechazamos conexiones de forwarding no establecidas
>                 $IPTABLES -A FORWARD -i $EXT -m state --state
>                 NEW,INVALID -j DROP
> 
>                 echo "done"
>                 ;;
> 
>         stop)
>                 echo -n "Stopping firewall: "
>                 $IPTABLES -F INPUT
>                 $IPTABLES -F OUTPUT
>                 $IPTABLES -F FORWARD
>                 $IPTABLES -F
>                 $IPTABLES -t nat -F
>                 echo "done"
>                 ;;
> 
>         restart)
>                 $0 stop
>                 echo -n "Sleeping a few seconds before setting the
>                 rules again: " sleep 2
>                 echo "done"
>                 $0 start
>                 ;;
> 
>         status)
>                 $IPTABLES -L
>                 $IPTABLES --table nat --list --exact --verbose
>                 --numeric --line-numbers;;
> 
>         *)
>                 echo "Usage: $0 {start|stop|restart|status}"
>                 exit 1
> esac
> exit 0
> 

Espero que te sirva.  La próxima vez que envíes
tanto, indicalo en el subject.

Aritz Beraza [Rei]
-- 
Aritz Beraza Garayalde         [aritz.beraza@estudiant.upc.es]
			       [aber1730@linuxupc.upc.es]
Linux User 272970              [http://www.upcnet.es/~abg]
************ 110011 TThhiinnggss YYoouu DDoo
NNoott WWaanntt YYoouurr SSyysstteemm
AAddmmiinniissttrraattoorr TToo SSaayy
************
95. ...and after I patched the microcode...



Reply to: