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

Re: Guia Servidor Wheezy



> Hola a todos.
>
> Guia para montar Servidor Wheezy seguro y privado: correo, dokuwiki,
> mailman, ftp anonimo y sshd. (incompleta)
>

Con respecto al NetFilter (IPTables), se podria empezar con:

#!/bin/sh

IPTABLES=/sbin/iptables

# (1) FLUSH de Reglas,Limpiar reglas anteriores:
iptables -F
iptables -X
iptables -Z
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
iptables -F -t mangle
iptables -X -t mangle
iptables -Z -t mangle
iptables -F -t filter
iptables -X -t filter
iptables -Z -t filter

# (2) Definir regla/cadena/tabla FILTER:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

ip6tables -P INPUT DROP
ip6tables -P FORWARD DROP
ip6tables -P OUTPUT DROP

# (3) Aceptar todo para localhost:
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# (4) evitamos ataques syn-flood limitando el acceso de paquetes nuevos
# desde internet a solo 4 por segundo y los demas se descartan
#iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 4 -j DROP

# (5) evitamos paquetes tcp que sean nuevos y que no tengan el flag SYN
# es decir, hay ataques o escaneos que llegan como conexiones nuevas
# pero sin ser paquetes syn, definitivamente no nos interesan
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

# (6) todo lo que sea icmp (ping) y que intente entrar, se descarta
# con esto bloqueamos cualquier tipo de paquetes con protocolo icmp
# evitando ataques como el del ping de la muerte, aunque esta regla
# podria provocar problemas de comunicacion con algunos ISP.
iptables -A INPUT -p icmp -j DROP
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED -j ACCEPT

# (7) Aceptar ssh -p 22:
iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j
ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m state --state NEW,ESTABLISHED -j
ACCEPT

# (8) Aceptar www -p 80:
iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j
ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

# (9) Y tambien a webs seguras -p 443:
iptables -A INPUT -p tcp -m tcp --dport 443 -m state --state
NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 443 -m state --state RELATED,ESTABLISHED
-j ACCEPT

# (10) Aceptar ftp -p 21 20 21000:
iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j
ACCEPT
#iptables -A INPUT -p tcp --dport 20 -m state --state ESTABLISHED,RELATED
-j ACCEPT
#iptables -A OUTPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED
-j ACCEPT
iptables -A INPUT -p tcp --dport 21000 -m state --state ESTABLISHED -j ACCEPT

#(11) Aceptar Mail SMTP -p 25:
iptables -A INPUT -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j
ACCEPT
iptables -A OUTPUT -p tcp --sport 25 -m state --state NEW,ESTABLISHED -j
ACCEPT

# (12) Aceptar Mail -p 110 pop3,111 rpcbind,143 imap,993 imaps,995 ssl/po3:
iptables -A INPUT -p tcp --dport 110 -m state --state NEW,ESTABLISHED  -j
ACCEPT
iptables -A OUTPUT -p tcp --sport 110 -m state --state NEW,ESTABLISHED -j
ACCEPT
iptables -A INPUT -p tcp --dport 111 -m state --state NEW,ESTABLISHED -j
ACCEPT
iptables -A OUTPUT -p tcp --sport 111 -m state --state NEW,ESTABLISHED -j
ACCEPT
iptables -A INPUT -p tcp --dport 143 -m state --state NEW,ESTABLISHED -j
ACCEPT
iptables -A OUTPUT -p tcp --sport 143 -m state --state NEW,ESTABLISHED -j
ACCEPT
iptables -A INPUT -p tcp --dport 993 -m state --state NEW,ESTABLISHED -j
ACCEPT
iptables -A OUTPUT -p tcp --sport 993 -m state --state NEW,ESTABLISHED -j
ACCEPT
iptables -A INPUT -p tcp --dport 995 -m state --state NEW,ESTABLISHED -j
ACCEPT
iptables -A OUTPUT -p tcp --sport 995 -m state --state NEW,ESTABLISHED -j
ACCEPT

# (13) Permitimos la consulta a un primer DNS:
#iptables -A OUTPUT -d 192.168.1.1 -p udp -m udp --dport 53 -j ACCEPT
#iptables -A INPUT -s 192.168.1.1 -p udp -m udp --sport 53 -j ACCEPT

# (13a) Permitimos la consulta a un segundo DNS:
iptables -A OUTPUT -d 208.67.222.222 -p udp -m udp --dport 53 -j ACCEPT
iptables -A INPUT -s 208.67.222.222 -p udp -m udp --sport 53 -j ACCEPT

# (14) por ultimo las dos siguientes reglas permiten salir del equipo
# (output) conexiones nuevas que nosotros solicitamos, conexiones
establecidas
# y conexiones relacionadas, y deja entrar (input) solo conexiones
establecidas
# y relacionadas.
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# (15) Optativo: Registrar paquetes que van a ser desechados
#iptables -A INPUT -j LOG --log-level 2 --log-prefix "ENTRAR::"
#iptables -A OUTPUT -j LOG --log-level 2 --log-prefix "SALIR::"

# Aceptar paquetes en estado nuevo, excepto en eth0
#iptables -A INPUT -m state --state NEW -i ! wlan0 -j ACCEPT

# Reglas de cierre:
# iptables -A INPUT -p tcp --dport 1:1024
# iptables -A INPUT -p udp --dport 1:1024

# Cerrar otros puertos abiertos:
# iptables -A INPUT -p tcp --dport xxxx -j DROP

echo "firewall activado"
#echo "Verifique con iptables -L -n"
#echo "Slackware /etc/rc.d/rc.firewall start"
#echo "Debian /etc/network/if-up.d/firewall start"
#echo "/etc/rsyslog.conf  kern.warning /var/log/iptables.log"



Reply to: