2 votes

Rediriger les requêtes locales, et non internes, en utilisant SuSEfirewall2 ou une règle iptables

J'ai un serveur qui exécute une application web déployée sur Tomcat et qui se trouve dans un réseau de test. Nous utilisons SuSE 11 sp1 et avons quelques règles de redirection pour les requêtes entrantes. Par exemple, nous ne lions pas le port 80 dans le fichier server.xml de Tomcat, mais nous écoutons sur le port 9600 et avons une ligne de configuration dans SuSEfirewall2 pour rediriger le port 80 vers 9640. Ceci est dû au fait que Tomcat ne fonctionne pas en tant que root et ne peut pas ouvrir le port 80.

Mon application Web doit être en mesure d'effectuer des requêtes sur le port 80, car c'est le port qu'elle utilisera une fois déployée. Quelle règle puis-je ajouter pour que les requêtes locales soient redirigées par iptables ?

J'ai essayé d'examiner cette question : Comment rediriger un port vers un autre sur un ordinateur local en utilisant iptables ? mais les suggestions qui y sont faites ne semblent pas m'aider.

J'ai essayé d'exécuter tcpdump sur eth0 puis de me connecter à mon adresse IP locale (pas 127.0.0.1, mais l'adresse réelle) mais je n'ai vu aucune activité. Je voyais de l'activité si je me connectais depuis une machine externe. J'ai ensuite lancé tcmpdump sur lo, puis j'ai à nouveau essayé de me connecter et cette fois, j'ai vu de l'activité. Cela m'amène à penser que toutes les requêtes adressées localement à ma propre adresse IP ne sont pas traitées par iptables.

Juste pour référence il est ce que ma table NAT ressemble maintenant :

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
REDIRECT   tcp  --  anywhere             anywhere            tcp dpt:http redir ports 9640
REDIRECT   tcp  --  anywhere             anywhere            tcp dpt:xfer redir ports 9640
REDIRECT   tcp  --  anywhere             anywhere            tcp dpt:https redir ports 8443

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

0voto

taho Points 1

Tout d'abord, je tiens à dire que je ne crois pas que Tomcat agissant en tant qu'utilisateurs non privilégiés ne puisse pas lier le port 80. Il est possible que vous ayez des droits insuffisants pour cet utilisateur. Qu'en est-il de la redirection : votre tableau de sortie est incomplet. Pouvez-vous fournir iptables -nvL -t nat ? Je veux dire qu'ici vous pouvez avoir des règles de rejet par interface et votre sortie ne le montre pas. Qu'en est-il des requêtes provenant du terminal local ? Pensez simplement que le choix du routage dépend de la table de routage et que l'interface qui enverra le paquet dépend aussi de la table de routage. Ainsi, si votre application ne lie que l'interface lo, vous obtiendrez du trafic interne de 'lo' à 'lo'.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X