Je souhaite configurer mon VPS de manière à accepter UNIQUEMENT les connexions de l’extérieur sur le port 22 (où sshd est à l’écoute) et les requêtes ICMP. Tout le reste de l'extérieur devrait être rejeté. À l'intérieur du serveur, tout devrait être autorisé. Les règles suivantes créent-elles le comportement souhaité?
iptables -A INPUT --jump ACCEPT --protocol all --source 127.0.0.1
iptables -A INPUT --jump ACCEPT --protocol tcp --dport 22
iptabels -A INPUT --jump ACCEPT --protocol icmp
iptables -A INPUT --jump ACCEPT --match state --state ESTABLISHED,RELATED
iptables -A INPUT --jump REJECT --protocol all
Je ne suis pas tout à fait sûr que les règles ACCEPT "gagneront" le dernier rejet
Vous avez raison.
Les règles seront traitées dans l'ordre du fichier. S'il existe une correspondance pour une règle, aucune autre règle ne sera traitée pour ce paquet IP dans votre cas.
http://en.wikipedia.org/wiki/Iptables
Chaque règle d'une chaîne contient la spécification des paquets auxquels elle correspond. Il peut également contenir une cible (utilisée pour les extensions) ou un verdict (l'une des décisions intégrées). Lorsqu'un paquet traverse une chaîne, chaque règle est examinée à son tour. Si une règle ne correspond pas au paquet, le paquet est passé à la règle suivante. Si une règle correspond au paquet, elle exécute l'action indiquée par la cible/le verdict, ce qui peut permettre au paquet de continuer le long de la chaîne ou ne pas se produire.