#!/bin/sh
#Francisco José García Rico
#Juan Fernando López Gimenez

# Condiciones de partida e inicio de las reglas de iptables

## SCRIPT de IPTABLES
## FIREWALL PARA LA PRACTICA FINAL

## INSTALANDO MODULOS
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp

## DEFINICION DE VARIABLES
IPTABLES=iptables
EXTIF="eth1" #INTERFAZ EXTERNA
INTIF="eth0" #INTERFAZ INTERNA
LOCALNET="192.168.1.0/24" #DIRECCIONES DE RED INTERNAS
ADDFIREWALL="192.168.1.1" #DIRECCION IP DEL FIREWALL
ADDWEBSERVER="192.169.1.2:80" #DIRECCION IP DEL SERVIDOR WEB
ADDEXTERNAL="80.233.125.251" #DIRECCION IP EXTERNA

#INICIALIZACION DE IPTABLES
$IPTABLES -F #Vaciado de Reglas
$IPTABLES -X #Borrado de reglas
$IPTABLES -Z # puesta a cero de contadores y de paquetes 

#POLITICAS POR DEFECTO
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT


#REDIRECCIONO LAS CONEXIONES AL SERVIDOR WEB (192.168.1.2)
$IPTABLES -t NAT -A PREROUTING -i $EXTIF -p tcp --dport 80 -j DNAT --to $ADDWEBSERVER
$IPTABLES -t NAT -A POSTROUTING -s $LOCALNET -o $EXTIF -j MASQUERADE


#ABRIMOS LOS PUERTOS PARA EL SERVIDOR DE CORREO DESDE EL EXTERIOR
$IPTABLES -A INPUT -i $EXTIF -s 0.0.0.0/0 -p tcp --dport 25 -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -s 0.0.0.0/0 -p tcp --dport 110 -j ACCEPT


#ABRIMOS EL PUERTO PARA EL SERVICIO SSH DESDE EL EXTERIOR
$IPTABLES -A INPUT -i $EXTIF -s 0.0.0.0/0 -p tcp --dport 22 -j LOG -log-prefix "CONEXION SSH EXTERNA:"
$IPTABLES -A INPUT -i $EXTIF -s 0.0.0.0/0 -p tcp --dport 22 -j ACCEPT


#ABRIMOS EL PUERTO PARA EL SERVICIO SSH DESDE EL INTERIOR
$IPTABLES -A INPUT -i $INTIF -s $LOCALNET -p tcp --dport 22 -j LOG -log-prefix "CONEXION SSH INTERNA:"
$IPTABLES -A INPUT -i $INTIF -s $LOCALNET -p tcp --dport 22 -j ACCEPT


#ABRIMOS EL PUERTO TELNET PARA LAS CONEXIONES INTERNAS Y REDIRECCIONO A LA MAQUINA CORRECTA
$IPTABLES -A INPUT -i $INTIF -s $LOCALNET -p tcp --dport 23 -j LOG -log-prefix "CONEXION TELNET INTERNA:"
$IPTABLES -A INPUT -I $INTIF -s $LOCALNET -p tcp --dport 23 -j REDIRECT -to $ADDWEBSERVER


#ABRIMOS LAS CONEXIONES PING
$IPTABLES -A INPUT -i $INTIF -s $LOCALNET -p icmp -j ACCEPT


#PERMITIMOS LA NAVEGACION POR INTERNET DE LOS ORDENADORES DE NUESTRA RED
$IPTABLES -t NAT -A POSTROUTING -O $EXTIF -s $LOCALNET -j LOG -log-prefix "CONEXION A INTERNET:"
$IPTABLES -t NAT -A POSTROUTING -o $EXTIF -s $LOCALNET -j MASQUERADE


#ACTIVO EL FORWARDING
echo 1 > /proc/sys/net/ipv4/ip_forward


#PARA EL REPLICADO DE LOGS EN LA MAQUINA 192.168.1.3, ESTA DEBERIA TAMBIEN EJECUTAR SYSLOGD Y EN EL FIREWALL 
#UTILIZAR UN FICHERO DE CONFIGURACION PARA PODER REALIZAR ESTA REPLICA DE LOGS. QUEDARIA ALGO ASI:

#*.debug		@192.168.1.3
