Palouma,
Iptables fonctionnent en 3 parties :
Le trafic INPUT : de l'exterieur vers le serveur
le trafic OUPTPUT : du serveur vers l'exterieur
Le trafic FORWARD : Gestion des paquets pour du routage entre 2 cartes par exemple.
Ces 3 compartiments de ton firewall sont en ACCEPT par defaut, c'est a dire que tout le trafic entrant, sortant, et forwarde ne sont pas filtres.
Si tu dis
INPUT (ACCEPT)
iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
cela se traduit par :
J'accepte tout le trafic entrant (INPUT ACCEPT) ET j'autorise le trafic http (ta regle --dport 80 ACCEPT). Il y a donc double autorisation.
si tu dis a ton firewall
INPUT (DROP)
iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
Alors cela se traduit part, j'accepte le trafic http (--dport 80 ACCEPT), mais j'interdis tout le reste (INPUT DROP)
Avec cette deuxieme regle, aucun autre trafic que le http ne rentrera dans ton serveur.
ATTENTION :
Il n'est absoluement pas conseille de n'autorise que le trafic http (ou https), car ton serveur a egalement besoin d'information DNS, de SSH (si tu l'administres a distance), FTP le cas echeant etc...
Fait donc bien attention avant de passer ta regle INPUT en drop.
Enfin, prefere :
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
a
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
Si tu n'es pas habitue a gerer des ACL, ecris d'abord sur papier ce dont tu as besoin comme trafic pour ensuite le retranscrire en regles sur ton systeme.
iptables ubuntu