Sto appena iniziando con iptables e mi sono imbattuto in qualcosa che non capisco davvero.
Cordiali saluti, ho seguito le istruzioni di IptablesHowTo del wiki di Ubuntu .
Le tabelle nat e mangle sono vuote, sto lavorando solo con la tabella dei filtri in questo momento.
Il problema
Se aggiungo le seguenti regole iptables:
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -j DROP
... poi ho ancora accesso alla mia macchina tramite ssh, tuttavia tutti i comandi di iptables impiegano circa un minuto o due per essere eseguiti. Non è un problema DNS, -n
non lo cambia.
La soluzione
Se svuoto la tabella e aggiungo invece queste tre regole, tutto funziona bene:
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
Qualcuno può spiegarmi, perché la prima regola ha un impatto così grande su iptables? Comprendo che consente alle sessioni stabilite di ricevere traffico, ma perché ne ho bisogno se ssh è aperto?
sudo strace …
(da una shell di root) per vedere su cosa sta bloccando.
sudo
esegue ricerche DNS e se questi sono bloccati, il comando sarà lento. Tutti gli altri tuoiiptables
comandi hanno il prefissosudo
?