All pastes #817408 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-12-15 15:37 UTC
rendered paste body
#!/bin/sh
clear
echo -e "CONFIGURACION PARA CORTAFUEGOS EN PRUEBAS"
echo -e "Version 1.2. - AdS. Enmanuel Llanos"
EXTIF="eth0"
INTIFA="eth1"

## FLUSH de Reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

echo "Permitir todas las conexiones OUT y solo existen y se especifican algunos IN"

iptables -F INPUT
iptables -P INPUT DROP
iptables -F OUTPUT
iptables -P OUTPUT ACCEPT
iptables -F FORWARD
iptables -P FORWARD DROP
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

# eldispositivo local tiene permiso de conexion

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#########################################################################################

# Se permiten consultas DNS (udp)

iptables -A INPUT -i $EXTIF -p udp --dport 53  -j ACCEPT
iptables -A OUTPUT -o $EXTIF -p udp --dport 53  -j ACCEPT

#iptables -A INPUT -i $INTIFA -m mac --mac-source 00:08:02:C5:40:3F -j ACCEPT
#iptables -A INPUT -i $INTIFA -p tcp -m mac --mac-source 00:12:79:C7:87:AE -j ACCEPT
#iptables -A INPUT -i $INTIFA -p udp -m mac --mac-source 00:12:79:C7:87:AE -j ACCEPT

iptables -A INPUT -i $EXTIF -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

##########################################################################################

# Reglas para bloqueo de servicios de mensajeria (MSN)

iptables -A INPUT -s 172.17.3.0/24 -p tcp -m tcp --dport 1863 -j DROP
iptables -A FORWARD -s 172.17.3.0/24 -p tcp -m tcp --dport 1863 -j DROP
iptables -A FORWARD -s 172.17.3.0/24 -p tcp -m tcp --dport 1863 -j LOG --log-prefix "MESSENGER MSN > "
iptables -A FORWARD -s 172.17.3.44 -p tcp -m tcp --dport 1863 -j ACCEPT
#iptables -A INPUT -p tcp --dport 6891:6900 -j DROP
#iptables -A INPUT -p tcp --dport 1863 -j DROP

# Bloquear La Mula en sus puertos Basicos
iptables -A FORWARD -p tcp --dport 4661:4662 -j DROP
iptables -A FORWARD -p udp --dport 4665 -j DROP

iptables -A FORWARD -i $INTIFA -o $EXTIF -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $EXTIF -o $INTIFA -m state --state ESTABLISHED,RELATED -j ACCEPT

##########################################################################################
# Trafico de entrada solo para los puertos: SSH, SMTP, DNS(tcp), HTTP, POP, HTTPS, IMAP
for i in 21 22 25 53 80 110 143 443
do
        iptables -A INPUT -i $EXTIF -p tcp --dport $i  -j ACCEPT
done

# Trafico de salida solo para los puertos: SSH, SMTP, DNS(tcp), HTTP, POP, HTTPS, IMAP
#for i in 21 22 25 53 80 110 143 443
#do
#        iptables -A OUTPUT -o $EXTIF -p tcp --dport $i  -j ACCEPT
#done

#######################################################################################

iptables -A INPUT -i $INTIFA -j ACCEPT
#iptables -A OUTPUT -o $INTIFA -j ACCEPT

#iptables -A FORWARD -i $EXTIF -o $INTIFA -m mac --mac-source 00:08:02:C5:40:3F -m state --state ESTABLISHED,RELATED -j ACCE$iptables -A FORWARD -i $INTIFA -o $EXTIF -j ACCEPT
#iptables -A FORWARD -i $INTIFA -m mac --mac-source 00:08:02:C5:40:3F -o $EXTIF -j ACCEPT
#iptables -A FORWARD -i $INTIFA -m mac --mac-source 00:12:79:C7:87:AE -o $EXTIF -j ACCEPT
iptables -A FORWARD -j LOG

###########################################################################################

echo "  Disponiendo SNAT (MASQUERADE) funcional sobre $EXTIF"
iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

## Reenvio de paquetes para alcanzar los servidores semipublicos

#iptables -t nat -A PREROUTING -i $EXTIF -p tcp --dport 80 -j DNAT --to-destination 172.17.0.2:80
#iptables -t nat -A PREROUTING -i $EXTIF -p tcp --dport 25 -j DNAT --to-destination 172.17.0.5:25
#iptables -t nat -A PREROUTING -i $EXTIF -p tcp --dport 110 -j DNAT --to-destination 172.17.0.5:110
#iptables -t nat -A PREROUTING -i $EXTIF -p tcp --dport 143 -j DNAT --to-destination 172.17.0.5:143

##########################################################################################
# Parametro para que nuestro Firewall haga Proxy Transparente

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
#iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 1863 -j REDIRECT --to-port 3128
#iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 -j REDIRECT --to-port 8080
#iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j REDIRECT --to-port 8080
#iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 443 -j REDIRECT --to-port 8080

##########################################################################################

## Reglas de prueba para evitar Denegacion de Servicios (DoS)

iptables -A FORWARD -p tcp --syn -m limit --limit 1/s --limit-burst 1 -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s --limit-burst 1 -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 1 -j ACCEPT

#########################################################################################

echo "1" > /proc/sys/net/ipv4/ip_forward
echo -e "Firewall listo.  Chequee las opciones con: iptables -L"