J'ai eu du mal au fil des ans à acquérir une solide compréhension des iptables. Chaque fois que j'essaie de lire les pages de manuel, mes yeux commencent à devenir glacés.
J'ai un service auquel je veux seulement permettre à l'hôte local d'avoir accès.
Quels termes (ou configuration, si quelqu'un se sent généreux) dois-je Google pour autoriser uniquement l'hôte localhost à avoir accès à un port donné?
Si par service vous voulez dire un port spécifique, alors les deux lignes suivantes devraient fonctionner. Remplacez le "25" par le port que vous essayez de restreindre.
iptables -A INPUT -p tcp -s localhost --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j DROP
Je recommanderais:
iptables -A INPUT -i lo -p tcp --dport $APP_PORT -j ACCEPT
iptables -A INPUT -p tcp --dport $APP_PORT -j DROP
Parce que les paquets auto-adressés n'ont pas nécessairement 127.0.0.1 comme source, mais ils "entrent" tous depuis l'interface lo
.
Maintenant, si vous voulez vraiment comprendre iptables
la première chose que vous devez faire est de télécharger et d'imprimer de bons diagrammes expliquant les relations des netfilter
tables. En voici deux excellentes:
Enfin, lisez beaucoup de iptables
HOWTO. Les exemples pratiques vous aideront à vous mettre à jour très rapidement :)