All pastes #164280 Raw Edit

Untitled

public text v1 · immutable
·published 2006-09-08 13:55 UTC
rendered paste body
#!/bin/sh
## SCRIPT de IPTABLES - ejemplo del manual de iptables
## Ejemplo de script para proteger la propia máquina con DROP por defecto
## Pello Xabier Altadill Izura
## www.pello.info - pello@pello.info
## Actualizado 08-09-2006

# Borrado de reglas anteriores
#
echo "Borrando reglas anteriores ..."
## FLUSH de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

## Establecemos politica por defecto: DROP
#
echo "Estableciendo politica por defecto: DROP"
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP


## Empezamos a filtrar? no! empezamos a abrir! porque ahora esta TODO denegado.
## Debemos decir de manera explicita qué es lo que queremos abrir
#
echo "Abriendo todo para el localhost"
# Operar en localhost sin limitaciones
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Al firewall tenemos acceso desde la red local
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.1.0/24 -j ACCEPT

## WAN 
# Permitimos que la maquina conecte a puertos de correo
# SMTP 25
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
# POP3 110
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 110 -j ACCEPT

# ADMINISTRACION REMOTA
# Abrimos el puerto ssh 22
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
# Abrimos el puerto vnc-http-1 5801
iptables -A INPUT -p tcp --dport 5801 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 5801 -j ACCEPT
# Abrimos el puerto vnc-1 5900
iptables -A INPUT -p tcp --dport 5900 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 5900 -j ACCEPT

## Abrimos el acceso a otros puertos

# Abrimos el puerto del apache es un servidor web
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
#iptables -A INPUT -p tcp --dport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables -A OUTPUT -p tcp --dport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Abrimos el puerto del ftp 20 y 21 es un servidor ftp
iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 20:21 -j ACCEPT

# Abrimos el puerto del NTPD
iptables -A INPUT -p tcp --dport 123 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 123 -j ACCEPT
iptables -A INPUT -p udp --dport 123 -j ACCEPT
iptables -A OUTPUT -p udp --dport 123 -j ACCEPT

# Abrimos el puerto del P2P (aMule) 4662 tcp y 4665, 4672 udp
# 4662 tcp
iptables -A INPUT -p tcp --dport 4662 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 4662 -j ACCEPT
# 4665 udp
iptables -A INPUT -p udp --dport 4665 -j ACCEPT
iptables -A OUTPUT -p udp --dport 4665 -j ACCEPT
# 4672 udp
iptables -A INPUT -p udp --dport 4672 -j ACCEPT
iptables -A OUTPUT -p udp --dport 4672 -j ACCEPT

# Abrimos el puerto del P2P (Azureus) 59250 tcp y udp
# 59250 tcp
iptables -A INPUT -p tcp --dport 59250 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 59250 -j ACCEPT
# 59250 udp
iptables -A INPUT -p udp -m udp --dport 59250 -j ACCEPT
iptables -A OUTPUT -p udp -m udp --dport 59250 -j ACCEPT


# Y abrimos el puerto pptpd para la ip del adsl de casa del jefe
#iptables -A INPUT -s 231.45.134.23 -p tcp --dport 1723 -j ACCEPT
#iptables -A OUTPUT -d 231.45.134.23 -p tcp --sport 1723 -j ACCEPT


# Permitimos que la maquina pueda salir a la web
# si le ponemos la opcion  "-m state --state ESTABLISHED,RELATED -j ACCEPT"  no navegara
iptables -A INPUT -p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT

# Y tambien a webs seguras
iptables -A INPUT -p tcp --sport 443 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

# Reglas necesarias para FTP pasivo y activo. Se permiten conexiones entrantes YA establecidas
iptables -A INPUT -p tcp --sport 20:21 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 20:21 -j ACCEPT
iptables -A INPUT -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 1024:65535 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

# Permitimos la consulta a un primer DNS
iptables -A INPUT -s 200.13.224.8 -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -d 200.13.224.8 -p udp --dport 53 -j ACCEPT

# Permitimos la consulta a un segundo DNS
iptables -A INPUT -s 200.75.78.78 -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -d 200.75.78.78 -p udp --dport 53 -j ACCEPT

# Permitimos consultar el reloj de ch.pool.ntp.org (Switzerland) para sincronizarse
iptables -A INPUT -s 217.150.242.8 -p udp --dport 123 -j ACCEPT
iptables -A OUTPUT -d 217.150.242.8 -p udp --sport 123 -j ACCEPT

## MENSAJERIA INSTANTANEA
# Aceptamos conexiones AOL
#iptables -A INPUT -p tcp --sport 9898 -j ACCEPT
#iptables -A OUTPUT -p tcp --dport 9898 -j ACCEPT
# Aceptamos conexiones ICQ
#iptables -A INPUT -p tcp --sport 5190:5193 -j ACCEPT
#iptables -A OUTPUT -p tcp --dport 5190:5193 -j ACCEPT
# Aceptamos conexiones Jabber
#iptables -A INPUT -p tcp --sport 5222:5223 -j ACCEPT
#iptables -A OUTPUT -p tcp --dport 5222:5223 -j ACCEPT
# Aceptamos conexiones Yahoo! Messenger
#iptables -A INPUT -p tcp --sport 5000:5010 -j ACCEPT
#iptables -A OUTPUT -p tcp --dport 5000:5010 -j ACCEPT
# Aceptamos conexiones MSN Messenger
#iptables -A INPUT -p tcp --sport 1863 -j ACCEPT
#iptables -A OUTPUT -p tcp --dport 1863 -j ACCEPT


## LAN
## Ahora con regla FORWARD filtramos el acceso de la red local
## al exterior. Como se explica antes, a los paquetes que no van dirigidos al
## propio firewall se les aplican reglas de FORWARD

# Aceptamos que vayan a puertos 80 http
iptables -A FORWARD -d 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -p tcp --sport 80 -j ACCEPT

# Aceptamos que vayan a puertos 443 https
iptables -A FORWARD -d 192.168.1.0/24 -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -p tcp --sport 443 -j ACCEPT

# Aceptamos que vayan a puertos SMTP correo
iptables -A FORWARD -d 192.168.1.0/24 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -p tcp --sport 25 -j ACCEPT
# Aceptamos que vayan a puertos POP3 correo
iptables -A FORWARD -d 192.168.1.0/24 -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -p tcp --sport 110 -j ACCEPT

# Aceptamos que vayan a puertos 20 y 21 Data ftp
iptables -A FORWARD -d 192.168.1.0/24 -p tcp --dport 20:21 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -p tcp --sport 20:21 -j ACCEPT

# Aceptamos que consulten los DNS
iptables -A FORWARD -d 192.168.1.0/24 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -p tcp --sport 53 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -p udp --sport 53 -j ACCEPT

# Aceptamos conexiones SAMBA 137 y 139
iptables -A FORWARD -d 192.168.1.0/24 -p tcp --dport 137 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -p tcp --sport 137 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -p tcp --dport 139 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -p tcp --sport 139 -j ACCEPT

# Aceptamos conexiones 68 DHCP
iptables -A FORWARD -d 192.168.1.0/24 -p tcp --dport 68 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -p tcp --sport 68 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -p udp --dport 68 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -p udp --sport 68 -j ACCEPT

# Aceptamos conexiones NTPD
iptables -A FORWARD -d 192.168.1.0/24 -p tcp --dport 123 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -p tcp --sport 123 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -p udp --dport 123 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -p udp --sport 123 -j ACCEPT

## MENSAJERIA INSTANTANEA
# Aceptamos conexiones AOL
#iptables -A FORWARD -d 192.168.1.0/24 -p tcp --dport 9898 -j ACCEPT
#iptables -A FORWARD -s 192.168.1.0/24 -p tcp --sport 9898 -j ACCEPT
# Aceptamos conexiones ICQ
#iptables -A FORWARD -d 192.168.1.0/24 -p tcp --dport 5190:5193 -j ACCEPT
#iptables -A FORWARD -s 192.168.1.0/24 -p tcp --sport 5190:5193 -j ACCEPT
# Aceptamos conexiones Jabber
#iptables -A FORWARD -d 192.168.1.0/24 -p tcp --dport 5222:5223 -j ACCEPT
#iptables -A FORWARD -s 192.168.1.0/24 -p tcp --sport 5222:5223 -j ACCEPT
# Aceptamos conexiones Yahoo! Messenger
#iptables -A FORWARD -d 192.168.1.0/24 -p tcp --dport 5000:5010 -j ACCEPT
#iptables -A FORWARD -s 192.168.1.0/24 -p tcp --sport 5000:5010 -j ACCEPT
# Aceptamos conexiones MSN Messenger
#iptables -A FORWARD -d 192.168.1.0/24 -p tcp --dport 1863 -j ACCEPT
#iptables -A FORWARD -s 192.168.1.0/24 -p tcp --sport 1863 -j ACCEPT


# Ahora hacemos enmascaramiento de la red local
# y activamos el BIT DE FORWARDING (imprescindible!!!!!)
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE


# Con esto permitimos hacer forward de paquetes en el firewall, o sea
# que otras máquinas puedan salir a traves del firewall.
echo 1 > /proc/sys/net/ipv4/ip_forward

# Activamos el redireccionamiento del puerto 80 -> 3128 para hacerlo transparente
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128


# Barrera de backup por si cambiamos a modo ACCEPT temporalmente
# Con esto protegemos los puertos reservados y otros well-known
iptables -A INPUT -p tcp --dport 1:1024 -j DROP
iptables -A INPUT -p udp --dport 1:1024 -j DROP
iptables -A INPUT -p tcp --dport 1723 -j DROP
iptables -A INPUT -p tcp --dport 3306 -j DROP
iptables -A INPUT -p tcp --dport 5432 -j DROP

echo " OK . Verifique reglas con: iptables -L -n"

# Fin del script


# iptables -L -t nat -v -n
Chain PREROUTING (policy ACCEPT 825 packets, 113K bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 REDIRECT   tcp  --  *      *       192.168.1.0/24       0.0.0.0/0           tcp dpt:80 redir ports 3128

Chain POSTROUTING (policy ACCEPT 1354 packets, 86626 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 MASQUERADE  all  --  *      eth0    192.168.1.0/24       0.0.0.0/0

Chain OUTPUT (policy ACCEPT 1271K packets, 79M bytes)
 pkts bytes target     prot opt in     out     source               destination
alpha:/home/angel/HPProliantML370G4/firewall #