[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Ayuda con un sript de iptables.




Tengo un equipo con dos tarjetas de red (eth0=externa, eth1=interna).
Quiero configurar NAT para que puedan salir los demás equipos a través
de este a internet, y sólamente quiero dar acceso a este equipo desde el
exterior mediante ssh. Lo tenía hecho con una politica por defecto
ACCEPT, y funcionaba correctamente. Pero quiero ponerle una política
DROP, para mayor seguridad.

Este es el script que he hecho y que no funciona:

#!/bin/bash

        #Activamos el IP forwarding
        echo "1" > /proc/sys/net/ipv4/ip_forward
#Borrado de reglas.
        echo -n "Borrando reglas.."
        iptables -F
        iptables -X
        iptables -Z
        iptables -t nat -F
        echo -n "Hecho."
#Politica por defecto.
        echo -n "Aplicando politica..."
        iptables -P INPUT DROP
        iptables -P OUTPUT DROP
        iptables -P FORWARD DROP
        echo -n "Hecho."
#Nat
        echo -n "Activando NAT..."
        iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0.0.0.0/0 -o
eth0
-j MASQUERADE
        echo -n "Hecho."
#PING a la máquina
        echo -n "Ping a la máquina..."
        iptables -A INPUT -i eth1 -p ICMP -j ACCEPT
        echo -n "Hecho."
echo -n "Aplicando reglas del firewall ..."
        #ssh.
        iptables -A INPUT -i eth0 -p TCP --dport 22 -m state --state NEW
-j
ACCEPT
iptables -A OUTPUT -o eth0 -j ACCEPT # Aceptamos paquetes de una conexión ya establecida
         iptables -A INPUT -p TCP -m state --state RELATED -j ACCEPT

        # Rechazamos los de conexiones nuevas
         iptables -A INPUT -i eth0 -m state --state NEW,INVALID -j DROP

        # Rechazamos conexiones de forwarding no establecidas
         iptables -A FORWARD -i eth0 -m state --state NEW,INVALID -j
DROP
echo -n "Hecho."
La idea es que al recibir un paquete, el sistema revisa las reglas de iptables, y lo trata deacuerdo a la primer regla que corresponda con las caracteristicas del paquete. Es decir, si desde el principio dices que drop a todo, las temas reglas no se toman en cuenta.
Por eso primero "explicitamente permites" y despues "prohibes lo demas".
Aqui hay un thread donde se discute esto
https://lists.netfilter.org/pipermail/netfilter/2003-December/048709.html
google "iptables default policy"

Una última pregunta. Pese a que mi equipo no es un servidor web, ni de
correo, ¿debo abrir los puertos 80, 25 y 110 para poder accder a
internet y leer mi correo (servidor externo)?.
Supondria yo que si.
De hecho, tal vez sea buena idea restringir el acceso a nivel iptables en el input de la interface externa, y a la interna dejar que entren las cosas (que normalmente seran NATeadas despues) sin restriccion. Al menos que quieras privar a tu red interna de ciertos servicios (msn, kaaza, que se yo)

Salud.



Reply to: