Je commence juste avec iptables et suis tombé sur quelque chose que je ne comprends pas vraiment.
Pour info, j'ai suivi les instructions de IptablesHowTo du wiki d'Ubuntu .
Les tables nat et mangle sont vides, je travaille uniquement avec la table de filtre pour le moment.
Le problème
Si j'ajoute les règles iptables suivantes:
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -j DROP
... alors j'ai toujours accès à ma machine via ssh, cependant toutes les commandes iptables prennent environ une minute ou deux pour s'exécuter. Ce n'est pas un problème DNS, -n
ne le change pas.
La solution
Si je vide la table et ajoute ces trois règles à la place, tout fonctionne bien:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -j DROP
Quelqu'un peut-il m'expliquer pourquoi la première règle a un si grand impact sur iptables? Je comprends qu'il permet aux sessions établies de recevoir du trafic, mais pourquoi en ai-je besoin si ssh est ouvert?
sudo strace …
(à partir d'un shell racine) pour voir sur quoi il bloque.
sudo
recherches DNS sont-elles effectuées et si celles-ci sont bloquées, la commande sera lente. Toutes vos autresiptables
commandes sont-elles préfixéessudo
?