15.07.2014 Views

bin/bash #Este script es el firewall para el router configurado con rc ...

bin/bash #Este script es el firewall para el router configurado con rc ...

bin/bash #Este script es el firewall para el router configurado con rc ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

#!/<strong>bin</strong>/<strong>bash</strong><br />

<strong>#Este</strong> <strong>script</strong> <strong>es</strong> <strong>el</strong> <strong>firewall</strong> <strong>para</strong> <strong>el</strong> <strong>router</strong> <strong><strong>con</strong>figurado</strong> <strong>con</strong> <strong>rc</strong>.<strong>con</strong>f<strong>router</strong><br />

#Es basicamente lo mismo de siempre solo que hace SNAT en las dos interfac<strong>es</strong><br />

#externas y maneja <strong>el</strong> forwardeo entre las mismas de forma segura<br />

# Variabl<strong>es</strong><br />

IPTABLES=/s<strong>bin</strong>/iptabl<strong>es</strong><br />

IFI=eth0<br />

IFE=ppp0<br />

NWI=192.168.0.0<br />

NMI=24<br />

IPCAM=192.168.0.150<br />

fwStart()<br />

{ echo "ARRANCANDO EL FIREWALL..."<br />

# Limpio las reglas previas y <strong>es</strong>tablezco politica por defecto #<br />

echo "Limpiando reglas previas..."<br />

echo "Estableciendo la Politica por Defecto DENEGAR..."<br />

$IPTABLES -F INPUT<br />

$IPTABLES -P INPUT DROP<br />

$IPTABLES -F OUTPUT<br />

$IPTABLES -P OUTPUT ACCEPT<br />

$IPTABLES -F FORWARD<br />

$IPTABLES -P FORWARD DROP<br />

$IPTABLES -t nat -F<br />

############################ Reglas en INPUT ############################<br />

echo "Aplicando reglas de INPUT..."<br />

#Permito todo lo entrante en Localhost<br />

$IPTABLES -A INPUT -i lo -j ACCEPT<br />

#Permito que solo entren las r<strong>es</strong>pu<strong>es</strong>tas de <strong>con</strong>exion<strong>es</strong> creadas de adentro hacia<br />

#afuera y/o r<strong>el</strong>ativas a <strong>es</strong>tas.<br />

$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT<br />

#Permito los requ<strong>es</strong>t de DNS (udp)<br />

$IPTABLES -A INPUT -i $IFI -p udp --dport 53 -j ACCEPT<br />

#Permito los requ<strong>es</strong>t de DNS (tcp)<br />

$IPTABLES -A INPUT -i $IFI -p tcp --dport 53 -j ACCEPT<br />

#Permito los requ<strong>es</strong>t de DHCP<br />

$IPTABLES -A INPUT -i $IFI -p udp --dport 67 -j ACCEPT<br />

#Permito <strong>con</strong>exion<strong>es</strong> ssh<br />

$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT<br />

#Permito <strong>con</strong>exion<strong>es</strong> icmp de cualquier tipo que vengan d<strong>el</strong> lado de adentro<br />

$IPTABLES -A INPUT -i $IFI --s<strong>rc</strong> $NWI/$NMI -p icmp -j ACCEPT


#################### Reglas general<strong>es</strong> de FORWARD #########################<br />

echo "Aplicando reglas general<strong>es</strong> de FORWARD..."<br />

#Permito <strong>con</strong>exion<strong>es</strong> salient<strong>es</strong> de la LAN hacia INTERNET<br />

$IPTABLES -A FORWARD -i $IFI -o $IFE -j ACCEPT<br />

#Permito que entren paquet<strong>es</strong> de internet a la LAN que sean de <strong>con</strong>exion<strong>es</strong> <strong>es</strong>-<br />

#tablecidas y/o r<strong>el</strong>ativas<br />

$IPTABLES -A FORWARD -i $IFE -o $IFI -m state --state RELATED,ESTABLISHED -j<br />

ACCEPT<br />

##################### Reglas general<strong>es</strong> de SNAT ##########################<br />

echo "Aplicando reglas general<strong>es</strong> SNAT..."<br />

#Hacemos NAT <strong>con</strong> los paquet<strong>es</strong> que salen a Internet (le cambiamos <strong>el</strong> campo ip<br />

#origen)<br />

#$IPTABLES -t nat -A POSTROUTING --s<strong>rc</strong> $NWI/$NMI -o $IFE -j SNAT --to-sou<strong>rc</strong>e $IPE<br />

#Cuando nu<strong>es</strong>tro ISP nos da ip dinámico debemos hacer MASQUERADE en lugar de SNAT<br />

$IPTABLES -t nat -A POSTROUTING --s<strong>rc</strong> $NWI/$NMI -o $IFE -j MASQUERADE<br />

#Ejemplo: Camara Ip en la LAN <strong>con</strong> ip privado<br />

echo "Permitiendo <strong>el</strong> paso a Camara Ip por ADSL"<br />

$IPTABLES -t nat -A PREROUTING -i $IFE -p tcp --dport 80 -j DNAT --tod<strong>es</strong>tination<br />

$IPCAM:80<br />

#$IPTABLES -A FORWARD --dst $IPCAM -p tcp --dport 80 -j ACCEPT<br />

}<br />

fwStop()<br />

{ echo "APAGANDO EL FIREWALL..."<br />

}<br />

$IPTABLES -P INPUT ACCEPT<br />

$IPTABLES -F INPUT<br />

$IPTABLES -P OUTPUT ACCEPT<br />

$IPTABLES -F OUTPUT<br />

$IPTABLES -P FORWARD ACCEPT<br />

$IPTABLES -F FORWARD<br />

$IPTABLES -t nat -F<br />

case $1 in<br />

start)<br />

fwStart<br />

;;<br />

stop)<br />

fwStop<br />

;;<br />

r<strong>es</strong>tart)<br />

fwStop<br />

fwStart<br />

;;<br />

*)<br />

echo "Uso: {start | stop | r<strong>es</strong>tart}"<br />

;;<br />

<strong>es</strong>ac

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!