Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- echo -n " * Iniciando el Firewall..."
- ## Primero solo permitimos toda conexion que solo yo he creado
- iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
- iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
- ## Politica por defecto, todo cerrado
- iptables -P INPUT DROP
- iptables -P OUTPUT DROP
- iptables -P FORWARD DROP
- ## Permisos interfaz loopback
- # Permitir todo acceso loopback
- iptables -A INPUT -i lo -j ACCEPT
- iptables -A OUTPUT -o lo -j ACCEPT
- ## Permisos eth0 (Internet)
- # Minecraft (Si me haces mas de 10 conexiones al puerto de Minecraft, no podras entrar. Ayuda para DoS. Para DDoS no)
- iptables -A INPUT -p tcp --syn --dport 25565 -m connlimit --connlimit-above 10 -j DROP
- iptables -A INPUT -p tcp --dport 25565 -j ACCEPT
- # TeamSpeak3
- iptables -A INPUT -p udp --dport 9987 -j ACCEPT
- # HTTP
- iptables -A INPUT -p tcp --dport 80 -j ACCEPT
- # HTTPS
- iptables -A INPUT -p tcp --dport 443 -j ACCEPT
- # SSH
- iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- ## Reglas para aumentar seguridad
- # Protegemos ante inundacion de tramas SYN
- iptables -N syn_flood
- iptables -A INPUT -p tcp --syn -j syn_flood
- iptables -A syn_flood -m limit --limit 1/s --limit-burst 3 -j RETURN
- iptables -A syn_flood -j DROP
- # Proteger contra PINGS masivos, y logearlo (En Debian se puede ver con el comando "dmesg")
- iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 1 -j ACCEPT
- iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 1 -j LOG --log-prefix PING-DROP:
- iptables -A INPUT -p icmp -j DROP
- # Checkeo de paquetes SYN, solo pueden ser state NEW, si no, que estan haciendo?
- iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
- # Comprobar paquetes Force Fragment
- iptables -A INPUT -f -j DROP
- # Bloquear paquetes XMAS
- iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
- # Bloquear paquetes NULL
- iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
- # Bloquear paquetes invalidos
- iptables -A INPUT -m state --state INVALID -j DROP
- # Bloquear paquetes SYN invalidos
- iptables -A INPUT -p tcp --tcp-flags ALL ACK,RST,SYN,FIN -j DROP
- iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
- iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
- # Evitar ataques de tipo "Tiny Fragment Attack"
- iptables -A INPUT -f -m length --length 0:40 -j DROP
- echo " [ OK ]"
- exit 0
- # Fin
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement