IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tomcat et TomEE Java Discussion :

Blocage Acces Extérieur Tomcat Derrière Frontal Apache


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 123
    Points : 77
    Points
    77
    Par défaut Blocage Acces Extérieur Tomcat Derrière Frontal Apache
    Bonjour à jour,

    J'ai mis en en place mon serveur Tomcat, avec un frontal apache.
    J'ai utilisé pour cela le module JK qui permet d'utiliser le connector AJP

    Tout fonctionne bien, mais je voudrait configurer Tomcat pour qu'il n'accepte que les connexion local.

    En effet, par le port 80, tout marche bien, l'utilisateur passe par Apache et est ensuite redirigé vers Tomcat.
    Mais rien ne l'empeche d'attaquer directement Tomcat par le port 8080.

    J'ai pensé utilisé les valves pour bloquer, mais je pense être sur une mauvaise piste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1"/>
    <Valve className="org.apache.catalina.valves.RemoteHostValve" allow="localhost"/>
    Apparemment,cette solution aurait fonctionné si j'avais utilisé mod_proxy. (C'est le header X-Forwarded-For je crois)
    En effet, le mod_proxy renvoie son adresse à Tomcat, et Tomcat connait l'adresse localhost
    En revanche, le module JK transfére l'adresse du client, et Tomcat ne sait pas que les requêtes sont transférés par un apache entre les 2. Du coup, cette solution empeche Tomcat de fonctionner même derrière le frontal.


    Pouvez-vous m'aider, je veux juste bloquer Tomcat pour tous les accès venant d'un autre pc. d'avance merci.

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Meme souci...
    Bonjour ttropardy,

    J'ai exactement la même préoccupation que toi : j'ai un frontal Apache qui loadbalance sur 2 tomcats (des jboss en fait, mais jboss intègre tomcat) qui tournent sur la même machine.

    Tout fonctionne parfaitement sur les port 80 et 443.

    Mais, comme pour toi, il est possible d'atteindre les tomcat sans passer par Apache si on précise dans l'url le port utilisé par tomcat (ex: http://domaine.net:8180/context/index.html)

    Contrairement à toi, j'ai choisi Mod_proxy. J'ai donc testé ta solution, qui me parait correcte, mais lorsque je la mets en place, j'ai une erreur "403 - accès interdit", y compris lorsque l'appel provient d'Apache.

    Il faut noter aussi que dans mon fichier de conf Apache, j'ai la directive "ProxyPreserveHost On": je pense que c'est pour ça que la RemoteHostAddress qui est transférée n'est pas celle du proxy mais celle du client. J'ai besoin de cette directive car dans mon appli, je loggue l'adresse IP du visiteur. Donc finalement, je suis dans la même situation que toi.

    Est-ce que, depuis, tu as trouvé une solution pour empecher d'attaquer directement tomcat sans passer par le loadbalancer ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 79
    Points : 48
    Points
    48
    Par défaut
    Bonjour,

    Pour moi, la meilleur solution est de bloquer le port 8080 avec iptables (= firewall) à part pour les appels en local.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    iptables -P INPUT DROP
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
    iptables -I INPUT 2 -i lo -j ACCEPT
    Attention, si tu redémarres ton serveur ta config est perdu. Mais tu peux faire un script qui exécute ces commandes à chaque démarrage. Il y a documentation d'ubuntu qui est très bien faite sur Ubuntu : http://doc.ubuntu-fr.org/iptables

Discussions similaires

  1. HTTPS : Tomcat derrière Apache httpd
    Par archer dans le forum Apache
    Réponses: 2
    Dernier message: 11/06/2015, 12h45
  2. Réponses: 0
    Dernier message: 06/10/2014, 10h20
  3. Apache + Tomcat derrière un proxy
    Par Louve-69 dans le forum Tomcat et TomEE
    Réponses: 0
    Dernier message: 04/11/2013, 09h05
  4. Apache + Tomcat, desactiver l'accés a tomcat
    Par MrEddy dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 02/04/2007, 17h58
  5. [Struts][Tomcat5]Blocage du serveur tomcat ...
    Par gysmovoile dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 20/10/2004, 17h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo