#!/bin/bash
#  firewall de ejercicio, con NAT, y bloqueo de puertos

IPTABLES="/sbin/iptables"               # ubicacion de iptables
INTERNET="eth0"                            # tarjeta de red que se conecta a Internet
LAN="eth1"                                     # tarjeta de red que se conecta a la red local
IP_INTERNET="192.168.1.3"            # direccion IP de la tarjeta de red que se conecta Internet

#  limpia posibles reglas anteriores

$IPTABLES -F
$IPTABLES -t nat -F

# activo IP forward

echo 1 > /proc/sys/net/ipv4/ip_forward

# Habilito el SNAT

$IPTABLES -t nat -A POSTROUTING -o $INTERNET -j SNAT --to $IP_INTERNET

# Dejo pasar los paquetes ICMP

$IPTABLES -A INPUT -i $INTERNET -p ICMP -j ACCEPT

# Permito conexiones al puerto 80 (HTTP)

$IPTABLES -A INPUT -i $INTERNET -p TCP --dport 80 -m state --state NEW -j ACCEPT

# Permito conexiones al puerto 22 (SSH)

$IPTABLES -A INPUT -i $INTERNET -p TCP --dport 22 -m state --state NEW -j ACCEPT

# Acepto paquetes de conexiones ya establecidas
$IPTABLES -A INPUT -p TCP -m state --state RELATED -j ACCEPT

# Rechazamos paquetes de conexiones nuevas
$IPTABLES -A INPUT -i $INTERNET -m state --state NEW,INVALID -j DROP

# Rechazamos paquetes de forwarding de conexiones no establecidas
$IPTABLES -A FORWARD -i $INTERNET -m state --state NEW,INVALID -j DROP
