Comme j’interdis tout, j’autorise ce qui concerne lo.
# Vider les tables actuelles
iptables -t filter -F
# Vider les règles personnelles
iptables -t filter -X
# Interdire toute connexion entrante et sortante
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
# Ne pas casser les connexions etablies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# Autoriser loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
# ICMP (Ping)
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT
# --- Logiciels à autoriser
# SSH Out
iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT
...
C’est le script d’initialisation des règles, pour automatiser j’utilise iptable-save/iptable-restore lorsque les règles me semble bonne.
En fait j’autorise les flux sortant suivant mes besoins lorsque je coince (app-get qui lit les sources en ipV6 par exemple). Et pour les flux entrant lorsque j’installe un serveur que je souhaite accessible de l’extérieur.
Le port smtp par exemple est ouvert en sortie, mais pas en entrée pour pouvoir envoyer des mails, mais pas en recevoir ou servir de relais.
Pour ssh, serveur utilisé ponctuellement, j’utilise knockd pour ouvrir/fermer le port entrant pendant 10 secondes. Juste le temps de me connecté. Mais je pense changer pour l’ouvrir pour mon adresse perso pour pouvoir faire des transferts de fichier plus facilement.