martes, 16 de octubre de 2007

Squid + iptables denegación por defecto.

Os dejo este script para squid con iptables denegando todo lo que se mueva , que "colocaremos" en /etc/init.d/, daremos permisos de ejecución. Básicamente "hace":
  • Deniega por defecto el tráfico entrante a excepcion de SSH y SQUID
  • Permite usar el proxy a la LAN.
En un futuro próximo :
  • Implementación seguridad MAC
  • Proxy Transparente
  • Algo que se me ocurra.


#!/bin/bash
#
#Liberado bajo Licencia Publica General version 2
#Alberto Permuy Leal
#
#
#

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
case "$1" in
start)
clear
echo "Iniciando configuracion firewall..."
echo "Estableciendo variables"
INTERFAZLAN="eth0"
INTERNET="0.0.0.0/0"
LAN="192.168.10.0/24"
DNS1="212.59.199.2"
DNS2="212.59.199.6"
echo "OK"
echo "Borrando reglas"
iptables -Z
iptables -F
iptables -X
iptables -t nat -F
echo "OK"
echo "Estableciendo politicas por defecto"
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
echo "Politicas por defecto OK"
#
#
echo "Estableciendo reglas"
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#
#Permitimos icmps
iptables -A INPUT -i eth0 -p icmp -j ACCEPT
iptables -A OUTPUT -o eth0 -p icmp -j ACCEPT
#
#
#
echo "Permitiendo Acceso SSH"
iptables -A INPUT -i $INTERFAZLAN -s $LAN -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -o $INTERFAZLAN -s $LAN -p tcp --sport 22 -j ACCEPT
echo "SSH OK"
#
#
echo "Permitiendo Acesso SQUID"
iptables -A INPUT -i $INTERFAZLAN -s $LAN -p tcp --dport 3128 -j ACCEPT
iptables -A OUTPUT -o $INTERFAZLAN -s $LAN -p tcp --sport 3128 -j ACCEPT
echo "SQUID OK"
#
#
echo "Permitiendo consultas DNS"
iptables -A INPUT -i $INTERFAZLAN -s $DNS1 -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -o $INTERFAZLAN -d $DNS1 -p udp --dport 53 -j ACCEPT
echo "DNS OK"
#
#
#
echo "Permitiendo acceso web estándar"
iptables -A INPUT -i $INTERFAZLAN -s $INTERNET -p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -o $INTERFAZLAN -d $INTERNET -p tcp --dport 80 -j ACCEPT
echo "Web Estandar OK"
#
#
#
echo "Permitendo acceso web seguro"
iptables -A INPUT -i $INTERFAZLAN -s $INTERNET -p tcp --sport 443 -j ACCEPT
iptables -A OUTPUT -o $INTERFAZLAN -d $INTERNET -p tcp --dport 443 -j ACCEPT
echo "Web Seguro OK"
#
#
#
echo "Activando bit de forward"
echo 1 > /proc/sys/net/ipv4/ip_forward



;;
stop)
echo "Borrando reglas firewall"
iptables -Z
iptables -F
iptables -X
iptables -t nat -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
echo "Reglas borradas."
echo "Su máquina es vulnerable!"
;;
*)
echo "Opcion Invalida."
echo "Use start-stop."
exit 1
;;
esac