# IPTABLES
Pour commencer voici un script que je met par défaut sur tout serveur neuf. Après et au besoin, je le modifie.
#!/bin/bash
## Règles iptables.
## On flush iptables.
iptables -F
## On supprime toutes les chaînes utilisateurs.
iptables -X
## On drop tout le trafic entrant.
iptables -P INPUT DROP
## On drop tout le trafic sortant.
iptables -P OUTPUT DROP
## On drop le forward.
iptables -P FORWARD DROP
## On drop les scans XMAS et NULL.
iptables -A INPUT -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
## Dropper silencieusement tous les paquets broadcastés.
iptables -A INPUT -m pkttype --pkt-type broadcast -j DROP
## Permettre à une connexion ouverte de recevoir du trafic en entrée.
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
## Permettre à une connexion ouverte de recevoir du trafic en sortie.
iptables -A OUTPUT -m state ! --state INVALID -j ACCEPT
## On accepte la boucle locale en entrée.
iptables -I INPUT -i lo -j ACCEPT
#on accepte le port 22 si on veut pouvoir se reconnecter
iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT
#on accepte le ping si on le souhaite
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
exit 0
Exemple d'autres lignes trés utiles:
#on accepte le port 80 pour le web/http
iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
#on accepte le port 443 pour le ssl/https
iptables -A INPUT -p tcp -i eth0 --dport 443 -j ACCEPT
Des regles pour la mise en place d'un teamspeak
# Teamspeak Licence
iptables -t filter -A INPUT -p tcp --dport 2008 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 2008 -j ACCEPT
# Teamspeak Voix par défaut
iptables -t filter -A INPUT -p udp --dport 9987 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 9987 -j ACCEPT
# Teamspeak ServerQuery
iptables -t filter -A INPUT -p tcp --dport 10011 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 10011 -j ACCEPT
# Teamspeak File Transfer
iptables -t filter -A INPUT -p tcp --dport 30033 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 30033 -j ACCEPT
Et comment faire pour que ce script se lance au démarrage?
Et bien sous Debian en tout cas, je copie mon script firewall.sh
dans le repertoire
/etc/network/if-pre-up.d
tout en lui donnait les droits d'execution avec chmod +x firewall.sh
.
Attention, avec cette méthode il se met en place avant le "up" de la carte réseau, donc faites un test de votre script avant en l’exécutant simplement suivi d'un déco/reco. Cela vous permettra de récupérer votre serveur avec un simple reboot dans votre interface de gestion.
source: https://doc.ubuntu-fr.org/iptables