#### SCRIPT DE CONFIGURACION DE IPTABLES PARA PC1 #### #!/bin/bash # Dispositivo de red de internet (ip pública, viene del modem fibertel) EXIF="eth1" # Dispositivo de red local (ip:192.168.0.1, el que va a pc2 y notebook por el bridge) INIF="eth0" # Puertos tcp que se desean redirigir a pc2 (separados por espacios) # Para aMule:xxxxx, BT:xxxxx, FW:xxxxx pc2TCP="xxxxx xxxxxx xxxxx xxxxx" # Puertos udp que se desean redirigir a pc2 (separados por espacios) # Para aMule:xxxxxx, BT:xxxxxx, FW:xxxxxx, DC++:xxxxxx y xxxxxx pc2UDP="xxxxx xxxxx xxxxx xxxxx xxxxx" # Puertos tcp que se desean redirigir a notebook (separados por espacios) # Para aMule:xxxxx, BT:xxxxx, FW:xxxxx ntbkTCP="xxxxx xxxxxx xxxxx xxxxx" # Puertos udp que se desean redirigir a notebook (separados por espacios) # Para aMule:xxxxxx, BT:xxxxxx, FW:xxxxxx, DC++:xxxxxx y xxxxxx ntbkUDP="xxxxx xxxxx xxxxx xxxxx xxxxx" # IPs a las que se les redirigen los puertos pc2="192.168.0.2" notebook="192.168.0.3" fail=0 [ -f /etc/default/rcS ] && . /etc/default/rcS . /lib/lsb/init-functions log_begin_msg "Aplicando Reglas de Firewall..." ## Borrado de reglas anteriores iptables -F || fail=1 iptables -X || fail=1 iptables -Z || fail=1 iptables -t nat -F || fail=1 ## Establecemos politica por defecto iptables -P INPUT ACCEPT || fail=1 iptables -P OUTPUT ACCEPT || fail=1 iptables -P FORWARD DROP || fail=1 iptables -t nat -P PREROUTING ACCEPT || fail=1 iptables -t nat -P POSTROUTING ACCEPT || fail=1 # Marcar paquetes salientes con su ip de origen iptables -t nat -A POSTROUTING -o $EXIF -j MASQUERADE || fail=1 # Reenvio de IP echo 1 > /proc/sys/net/ipv4/ip_forward || fail=1 # Aceptar paquetes para reenviar procedentes de la red local iptables -A FORWARD -i $INIF -o $EXIF -j ACCEPT || fail=1 # Aceptar paquetes para reenviar procedentes de internet de conexiones ya establecidas iptables -A FORWARD -i $EXIF -o $INIF -m state --state RELATED,ESTABLISHED -j ACCEPT || fail=1 # Se redirigen los puertos configurados arriba for puerto in $pc2TCP do iptables -A FORWARD -i $EXIF -o $INIF -p tcp --dport $puerto -j ACCEPT || fail=1 iptables -t nat -A PREROUTING -i $EXIF -p tcp --dport $puerto -j DNAT --to $pc2:$puerto || fail=1 done for puerto in $pc2UDP do iptables -A FORWARD -i $EXIF -o $INIF -p udp --dport $puerto -j ACCEPT || fail=1 iptables -t nat -A PREROUTING -i $EXIF -p udp --dport $puerto -j DNAT --to $pc2:$puerto || fail=1 done for puerto in $ntbk2TCP do iptables -A FORWARD -i $EXIF -o $INIF -p tcp --dport $puerto -j ACCEPT || fail=1 iptables -t nat -A PREROUTING -i $EXIF -p tcp --dport $puerto -j DNAT --to $notebook:$puerto || fail=1 done for puerto in $ntbk2UDP do iptables -A FORWARD -i $EXIF -o $INIF -p udp --dport $puerto -j ACCEPT || fail=1 iptables -t nat -A PREROUTING -i $EXIF -p udp --dport $puerto -j DNAT --to $notebook:$puerto || fail=1 done # Se muestran los resultados log_end_msg $fail if [ $fail -eq 0 ] then log_success_msg "Verifique que lo que se aplica con: iptables -L -n." else log_warning_msg "Se ha producido un error al aplicar alguna de las reglas" fi #### FIN SCRIPT DE CONFIGURACION DE IPTABLES ####