#!/bin/sh mieth=eth2 eth_mac=vif1.0 eth_wil=vif2.0 miip=192.168.0.24 echo -n "aplicando reglas del firewall..." ## FLUSH de reglas iptables -F iptables -X iptables -Z iptables -t nat -F ## Establecemos politica por defecto iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT ##=================Comienza el filtrado=====================## ######## Prerouting (dnat) ######## # peticiones al puerto 80, redirigidas al 10.0.0.4 iptables -t nat -A PREROUTING -s 0.0.0.0/0 -d $miip -i $mieth -p tcp --dport 80 -j DNAT --to 10.0.0.4 #peticiones a los puertos 20:21 (ftp), redirigidas a 10.0.0.4 iptables -t nat -A PREROUTING -s 0.0.0.0/0 -d $miip -i $mieth -p tcp --dport 20:21 -j DNAT --to 10.0.0.4 #peticiones al puerto 22(ssh), redirigidas a 10.0.0.4 iptables -t nat -A PREROUTING -s 0.0.0.0/0 -d $miip -i $mieth -p tcp --dport 22 -j DNAT --to 10.0.0.4 ######## input y output ########## #aceptamos todas las conexiones locales (entrada y salida) iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT #permitimos el acceso al servidor dns iptables -A INPUT -i $mieth -p udp --sport 53 -j ACCEPT iptables -A OUTPUT -o $mieth -p udp --dport 53 -j ACCEPT #permitimos el firew coneccion a internet iptables -A INPUT -i $mieth -p tcp --sport 80 -j ACCEPT iptables -A OUTPUT -o $mieth -p tcp --dport 80 -j ACCEPT #permitimos ssh al firew iptables -A INPUT -i $mieth -p tcp --sport 22 -j ACCEPT iptables -A OUTPUT -o $mieth -p tcp --dport 22 -j ACCEPT #permitimos el icmp iptables -A INPUT -i $mieth -p icmp -j ACCEPT iptables -A OUTPUT -o $mieth -p icmp -j ACCEPT #permitimos el irc iptables -A INPUT -i $mieth -p tcp --sport 6667 -j ACCEPT iptables -A OUTPUT -o $mieth -p tcp --dport 6667 -j ACCEPT #permitimos el msn iptables -A INPUT -i $mieth -p tcp --sport 1863 -j ACCEPT iptables -A OUTPUT -o $mieth -p tcp --dport 1863 -j ACCEPT iptables -A INPUT -i $mieth -p tcp --sport 443 -j ACCEPT iptables -A OUTPUT -o $mieth -p tcp --dport 443 -j ACCEPT ######## forward ########## #permitimos el acceso de macartu a wilson al puerto 80 iptables -A FORWARD -s 10.0.0.1 -i $eth_mac -d 10.0.0.4 -o $eth_wil -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -s 10.0.0.4 -i $eth_wil -d 10.0.0.1 -o $eth_mac -p tcp --sport 80 -j ACCEPT #permitimos el acceso al apt-cacher iptables -A FORWARD -s 10.0.0.4 -i $eth_wil -o $mieth -p tcp --dport 3142 -j ACCEPT iptables -A FORWARD -d 10.0.0.4 -i $mieth -o $eth_wil -p tcp --sport 3142 -j ACCEPT #permitimos el acceso ICMP iptables -A FORWARD -s 10.0.0.4 -i $eth_wil -o $mieth -p icmp -j ACCEPT iptables -A FORWARD -d 10.0.0.4 -i $mieth -o $eth_wil -p icmp -j ACCEPT iptables -A FORWARD -s 10.0.0.1 -i $eth_mac -o $mieth -p icmp -j ACCEPT iptables -A FORWARD -d 10.0.0.1 -i $mieth -o $eth_mac -p icmp -j ACCEPT #permitimos el acceso al servidor web de wilson iptables -A FORWARD -i $mieth -o $eth_wil -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -i $eth_wil -o $mieth -p tcp --sport 80 -j ACCEPT #permitimos conectarse a internet iptables -A FORWARD -s 10.0.0.0/24 -o $mieth -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -d 10.0.0.0/24 -i $mieth -p tcp --sport 80 -j ACCEPT #permitimos acceso ssh iptables -A FORWARD -i $mieth -o $eth_wil -p tcp --dport 22 -j ACCEPT iptables -A FORWARD -i $eth_wil -o $mieth -p tcp --sport 22 -j ACCEPT #permitimos el ftp iptables -A FORWARD -d 10.0.0.4 -i $mieth -o $eth_wil -p tcp --dport 20:21 -j ACCEPT iptables -A FORWARD -s 10.0.0.4 -i $eth_wil -o $mieth -p tcp --sport 20:21 -j ACCEPT #permitimos el acceso al servidor dns iptables -A FORWARD -i $mieth -p udp --sport 53 -j ACCEPT iptables -A FORWARD -o $mieth -p udp --dport 53 -j ACCEPT ######## postrouting ######## #cambiamos la ip de la red interna para que comunique con otra red iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o $mieth -j SNAT --to $miip echo ā€œ OK . Verifique que lo que se aplica con: iptables –L -nā€œ # Fin del script