¡Esta es una revisión vieja del documento!
#!/bin/bash #Habilitamos siempre el forwarding echo 1 > /proc/sys/net/ipv4/ip_forward
DMZIFACE=“eth1” LOCALIFACE=“eth2” INETIFACE=“eth0” VPNIFACE=“tun0”
DMZNET=“10.12.13.0/24” LOCALNET=“10.12.12.0/24”
VPNALLIFACE=“tun+”
case “$1” in
start) echo "Iniciando Firewall... \n"
#Ponemos todo a cero iptables -F iptables -X iptables -Z
#Politicas por defecto iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
#Aceptamos las conexiones ya establecidas iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i lo -m state --state NEW -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
############################################ ## REGLAS PARA EL INPUT ## ############################################
# Permitimos los pings iptables -A INPUT -p icmp -m state --state NEW -j ACCEPT
#Abrimos en el INPUT el ssh desde cualquier interfaz iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#Abrimos en el INPUT el openvpn desde cualquier interfaz iptables -A INPUT -p udp --dport 1194 -j ACCEPT
#Abrimos en el INPUT dns para las vpn, la dmz y localnet iptables -A INPUT -i $DMZIFACE -p udp --dport 53 -j ACCEPT iptables -A INPUT -i $VPNALLIFACE -p udp --dport 53 -j ACCEPT iptables -A INPUT -i $LOCALIFACE -p udp --dport 53 -j ACCEPT #Abrimos en el INPUT dhcp para las dmz y localnet iptables -A INPUT -i $DMZIFACE -p udp --dport 67 -j ACCEPT iptables -A INPUT -i $LOCALIFACE -p udp --dport 67 -j ACCEPT
############################################ ## REGLAS PARA TODOS LOS FORWARDS ## ############################################
# Permitimos los pings iptables -A FORWARD -p icmp -m state --state NEW -j ACCEPT
############################################ ## REGLAS PARA EL FORWARD desde la DMZ ## ############################################
#de la DMZ a Inet solo aceptamos web y ssh y enmascaramos. Aceptamos tb la salida de rsync desde backup iptables -A FORWARD -i $DMZIFACE -o $INETIFACE -p tcp -m multiport --destination-ports www,ssh,https,sftp -m state --state NEW -j ACCEPT iptables -A FORWARD -s srv-backup -i $DMZIFACE -p tcp --dport 873 -m state --state NEW -j ACCEPT iptables -A FORWARD -s srv-backup -i $DMZIFACE -p tcp --dport 80 -m state --state NEW -j ACCEPT
#abrimos el correo para srv-datos iptables -A FORWARD -s srv-datos -i $DMZIFACE -o $INETIFACE -p tcp --dport 25 -m state --state NEW -j ACCEPT iptables -A FORWARD -s srv-datos -i $DMZIFACE -o $INETIFACE -p udp --dport 25 -m state --state NEW -j ACCEPT iptables -A FORWARD -s srv-datos -i $DMZIFACE -o $INETIFACE -p tcp --dport 21 -m state --state NEW -j ACCEPT iptables -A FORWARD -s srv-datos -i $DMZIFACE -o $INETIFACE -p udp --dport 21 -m state --state NEW -j ACCEPT iptables -A FORWARD -s srv-datos -i $DMZIFACE -o $INETIFACE -p tcp --dport 3306 -m state --state NEW -j ACCEPT iptables -A FORWARD -s srv-datos -i $DMZIFACE -o $INETIFACE -p tcp --dport 161 -m state --state NEW -j ACCEPT
#abrimos el correo para srv-web iptables -A FORWARD -s srv-web -i $DMZIFACE -o $INETIFACE -p tcp --dport 25 -m state --state NEW -j ACCEPT iptables -A FORWARD -s srv-web -i $DMZIFACE -o $INETIFACE -p udp --dport 25 -m state --state NEW -j ACCEPT
#abrimos para el servidor de fechas iptables -A FORWARD -s srv-web -i $DMZIFACE -o $INETIFACE -p udp --dport ntp -m state --state NEW -j ACCEPT
#abrimos al as400 de salica iptables -A FORWARD -s srv-web -d 194.30.40.94 -i $DMZIFACE -o $INETIFACE -m state --state NEW -j ACCEPT #abrimos al ENBOR de ingesit iptables -A FORWARD -s srv-web -d 212.81.222.114 -i $DMZIFACE -o $INETIFACE -m state --state NEW -j ACCEPT
#abrimos al ENBOR de Basterra iptables -A FORWARD -s srv-web -d 212.81.209.194 -i $DMZIFACE -o $INETIFACE -m state --state NEW -j ACCEPT
#abrimos al SQL SERVER de Gastrobaska iptables -A FORWARD -s srv-web -d 212.8.98.176 -i $DMZIFACE -o $INETIFACE -m state --state NEW -j ACCEPT #iptables -A FORWARD -s 10.12.12.70 -d 212.8.98.176 -i $DMZIFACE -o $INETIFACE -m state --state NEW -j ACCEPT #abrimos el correo para el servidor de backup iptables -A FORWARD -s srv-backup -i $DMZIFACE -o $INETIFACE -p tcp --dport 25 -m state --state NEW -j ACCEPT iptables -A FORWARD -s srv-backup -i $DMZIFACE -o $INETIFACE -p udp --dport 25 -m state --state NEW -j ACCEPT iptables -t nat -A POSTROUTING -s $DMZNET -o $INETIFACE -j MASQUERADE
############################################ ## REGLAS PARA EL FORWARD desde la LOCAL ## ############################################ #de la red local podemos acceder a los servicios de samba, http, https y ssh de srv-datos. Y ftp iptables -A FORWARD -i $LOCALIFACE -o $DMZIFACE -d srv-datos -p tcp -m multiport --destination-ports 999,www,ssh,https,139,445 -m state --state NEW -j ACCEPT iptables -A FORWARD -i $LOCALIFACE -o $DMZIFACE -d srv-datos -p udp -m multiport --destination-ports 137,138 -m state --state NEW -j ACCEPT iptables -A FORWARD -i $LOCALIFACE -o $DMZIFACE -d srv-datos -p tcp --dport 21 -m state --state NEW -j ACCEPT #de la red local podemos acceder a los servicios de samba, http, https y ssh de srv-web. Y ftp iptables -A FORWARD -i $LOCALIFACE -o $DMZIFACE -d srv-web -p tcp -m multiport --destination-ports 999,www,ssh,https,139,445 -m state --state NEW -j ACCEPT iptables -A FORWARD -i $LOCALIFACE -o $DMZIFACE -d srv-web -p udp -m multiport --destination-ports 137,138 -m state --state NEW -j ACCEPT iptables -A FORWARD -i $LOCALIFACE -o $DMZIFACE -d srv-web -p tcp --dport 21 -m state --state NEW -j ACCEPT iptables -A FORWARD -i $LOCALIFACE -o $DMZIFACE -d srv-web -p tcp --dport 20 -m state --state NEW -j ACCEPT
#de la red local podemos acceder a toda la centralita iptables -A FORWARD -i $LOCALIFACE -o $DMZIFACE -d centralita -m state --state NEW -j ACCEPT iptables -A FORWARD -o $LOCALIFACE -i $DMZIFACE -s centralita -m state --state NEW -j ACCEPT
#abrimos tambien el ldap iptables -A FORWARD -i $LOCALIFACE -o $DMZIFACE -d srv-datos -p tcp --dport 389 -m state --state NEW -j ACCEPT #abrimos tambien el mysql iptables -A FORWARD -i $LOCALIFACE -o $DMZIFACE -d srv-datos -p tcp --dport 3306 -m state --state NEW -j ACCEPT iptables -A FORWARD -i $LOCALIFACE -o $DMZIFACE -d srv-web -p tcp --dport 3306 -m state --state NEW -j ACCEPT
#de la red local podemos acceder a los servicios de ssh y https de srv-backup iptables -A FORWARD -i $LOCALIFACE -o $DMZIFACE -d srv-backup -p tcp -m multiport --destination-ports ssh,https,www -m state --state NEW -j ACCEPT
#dejamos todo el trafico a internet y lo enmascaramos
#iptables -A FORWARD -i $LOCALIFACE -o $DMZIFACE -p tcp --dport 20 -m state --state NEW -j ACCEPT
#iptables -A FORWARD -i $LOCALIFACE -o $DMZIFACE -p tcp --dport 21 -m state --state NEW -j ACCEPT
#iptables -A FORWARD -i $LOCALIFACE -o $INETIFACE -p tcp --dport 22 -m state --state NEW -j ACCEPT
#iptables -A FORWARD -i $LOCALIFACE -o $INETIFACE -p tcp --dport 2222 -m state --state NEW -j ACCEPT
#iptables -A FORWARD -i $LOCALIFACE -o $INETIFACE -p tcp --dport 8443 -m state --state NEW -j ACCEPT
#iptables -A FORWARD -i $LOCALIFACE -o $INETIFACE -p tcp --dport 25 -m state --state NEW -j ACCEPT
#iptables -A FORWARD -i $LOCALIFACE -o $INETIFACE -p tcp --dport 80 -m state --state NEW -j ACCEPT
#iptables -A FORWARD -i $LOCALIFACE -o $INETIFACE -p tcp --dport 443 -m state --state NEW -j ACCEPT
#iptables -A FORWARD -i $LOCALIFACE -o $INETIFACE -p tcp --dport 110 -m state --state NEW -j ACCEPT
#iptables -A FORWARD -i $LOCALIFACE -o $INETIFACE -p tcp --dport 3306 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i $LOCALIFACE -o $INETIFACE -m state --state NEW -j ACCEPT
iptables -t nat -A POSTROUTING -s $LOCALNET -o $INETIFACE -j MASQUERADE
#dejamos todo el trafico hacia los tuneles iptables -A FORWARD -i $LOCALIFACE -o $VPNALLIFACE -m state --state NEW -j ACCEPT
############################################ ## REGLAS PARA EL FORWARD desde la VPN ## ############################################
#Trafico abierto entre tuneles iptables -A FORWARD -i $VPNALLIFACE -o $VPNALLIFACE -j ACCEPT
#de la VPN podemos acceder a los servicios de ssh y https de srv-backup iptables -A FORWARD -i $VPNALLIFACE -o $DMZIFACE -d srv-backup -p tcp -m multiport --destination-ports ssh,https -m state --state NEW -j ACCEPT #de la VPN podemos acceder a los servicios de samba, http, https y ssh de srv-datos iptables -A FORWARD -i $VPNALLIFACE -o $DMZIFACE -d srv-datos -p tcp -m multiport --destination-ports 999,www,ssh,https,139,445 -m state --state NEW -j ACCEPT iptables -A FORWARD -i $VPNALLIFACE -o $DMZIFACE -d srv-datos -p udp -m multiport --destination-ports 137,138 -m state --state NEW -j ACCEPT iptables -A FORWARD -i $VPNALLIFACE -o $DMZIFACE -d srv-web -p tcp -m multiport --destination-ports 999,www,ssh,https,139,445 -m state --state NEW -j ACCEPT iptables -A FORWARD -i $VPNALLIFACE -o $DMZIFACE -d srv-web -p udp -m multiport --destination-ports 137,138 -m state --state NEW -j ACCEPT
echo "iniciado" ;;
stop)
#Ponemos todo a cero
iptables -F
iptables -X
iptables -Z
#Politicas por defecto
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t nat -A POSTROUTING -s $LOCALNET -o $INETIFACE -j MASQUERADE
iptables -t nat -A POSTROUTING -s $DMZNET -o $INETIFACE -j MASQUERADE
echo "Parando el Firewall... \n" echo "Queda todo abierto \n" ;;
status) echo "********************* Reglas de Filtrado ************************" iptables -v -n --line-numbers -x -t filter -L echo "*****************************************************************" ;;
- )
echo "Firewall: Script para la administracion de Firewall /n"
echo "Uso: Firewall {start|stop|status} /n"
;;
esac
exit 0