web-dev-qa-db-fra.com

IPTables autorise uniquement l'accès localhost

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é?

64
iptablessuck

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
71
Hyppy

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 :)

30
pepoluan