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

Filtrando mediante IPtables



¡Hola!

He montado para una asociacion de mi universidad un
servidor (acceso mediante SSH, con HTTP, SMTP y POP3,
de momento) en Debian. Para protegerlo lo maximo
posible le he instalado el IPtables con el siguiente
filtrado:

---CUT---

iptables -t nat -A POSTROUTING -o lo -j SNAT
--to-source MI_IP
iptables -A FORWARD -p tcp ! --syn -m state --state
NEW -j LOG --log-prefix "New not syn:"
iptables -A FORWARD -p tcp ! --syn -m state --state
NEW -j DROP
iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A FORWARD -m state --state
ESTABLISHED,RELATED -j ACCEPT 
iptables -A FORWARD -m limit --limit 3/minute
--limit-burst 3 -j LOG --log-level DEBUG --log-prefix
"IPT FORWARD packet died: "
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -N icmp_packets
iptables -N tcp_packets
iptables -N udpincoming_packets
iptables -N allowed
iptables -A allowed -p TCP --syn -j ACCEPT
iptables -A allowed -p TCP -m state --state
ESTABLISHED,RELATED -j ACCEPT
iptables -A allowed -p TCP -j DROP
iptables -A icmp_packets -p ICMP -s 0/0 --icmp-type 0
-j ACCEPT
iptables -A icmp_packets -p ICMP -s 0/0 --icmp-type 3
-j ACCEPT
iptables -A icmp_packets -p ICMP -s 0/0 --icmp-type 5
-j ACCEPT
iptables -A icmp_packets -p ICMP -s 0/0 --icmp-type 11
-j ACCEPT
iptables -A tcp_packets -p TCP -s IP_PERMITIDA --dport
22 -j allowed
iptables -A tcp_packets -p TCP -s OTRA_IP_PERMITIDA
--dport 22 -j allowed
iptables -A tcp_packets -p TCP -s X.Y.0.0/16 --dport
25 -j allowed
iptables -A tcp_packets -p TCP -s 0/0 --dport 80 -j
allowed
iptables -A tcp_packets -p TCP -s 0/0 --dport 110 -j
allowed
iptables -A udpincoming_packets -p UDP -s 0/0
--source-port 53 -j ACCEPT
iptables -A udpincoming_packets -p UDP -s 0/0
--source-port 2074 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -s
192.168.0.0/16 -j DROP
iptables -t nat -A PREROUTING -i eth0 -s 10.0.0.0/8 -j
DROP
iptables -t nat -A PREROUTING -i eth0 -s 172.16.0.0/12
-j DROP
iptables -A INPUT -p tcp ! --syn -m state --state NEW
-j LOG --log-prefix "New not syn:"
iptables -A INPUT -p tcp ! --syn -m state --state NEW
-j DROP
iptables -A INPUT -p ICMP -i eth0 -j icmp_packets
iptables -A INPUT -p TCP -i eth0 -j tcp_packets
iptables -A INPUT -p UDP -i eth0 -j
udpincoming_packets
iptables -A INPUT -p ALL -i lo -d 127.0.0.1 -j ACCEPT
iptables -A INPUT -p ALL -d MI_IP -m state --state
ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m limit --limit 3/minute
--limit-burst 3 -j LOG --log-level DEBUG --log-prefix
"IPT INPUT packet died: "
iptables -A OUTPUT -p tcp ! --syn -m state --state NEW
-j LOG --log-prefix "New not syn:"
iptables -A OUTPUT -p tcp ! --syn -m state --state NEW
-j DROP
iptables -A OUTPUT -p ALL -s 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -p ALL -s MI_IP -j ACCEPT
iptables -A OUTPUT -m limit --limit 3/minute
--limit-burst 3 -j LOG --log-level DEBUG --log-prefix
"IPT OUTPUT packet died: "

---CUT---

Notas:
MI_IP es la IP del servidor.
X.Y.0.0/16 esta para que desde cualquier ordenador de
la universidad se puedan enviar mails mediante el SMTP
de mi servidor.
IP_PERMITIDA es la IP del ordenador desde el que
quiero que se pueda acceder mediante SSH.

Las cadenas estas os sonaran pq me las he copiado del
IPtables HOWTO, adaptandolas a mis necesidades.

¿Que os parece este filtrado? Parece estar bastante
bien, ¿no? Se lo he enseñado a un par de amigos que
dominan el tema minimamente y me han dicho que no
parece tener ningun fallo descomunal...

El "problema" es el que el servidor no se deja ni
pingear ni scannear (un scanner de puertos desde fuera
me devuelve que no hay ninguno abierto). ¿Esto es
seguridad o *paranoia*? O:-)

Bueno, nada mas :-) Es mi primer msj a la lista asi
que sirva de presentacion :-) Si me pudierais echar
una mano y decirme que os parece el filtrado os
estaria muy agradecida :-)

Un beso a todos!

__________________________________________________
Do You Yahoo!?
Send your FREE holiday greetings online!
http://greetings.yahoo.com



Reply to: