Sécuriser le port 8005 de Tomcat
I. Présentation
Dans ce tutoriel, nous allons étudier le fonction et la sécurisation du port 8005 de Tomcat. Par défaut sur Tomcat, trois ports sont paramétrés : le port 8080 pour les connexions clients depuis le navigateur, le port 8009 qui sert au protocole AJP pour la liaison entre Tomcat et Apache ainsi que le port 8005 qui sert à l'extinction du serveur.
II. Extinction par le port 8005
Les scripts d'extinction du serveur utilisent cet élément qui est configuré dans le fichier "conf/server.xml" :
Il faut se connecter en telnet en local depuis une connexion SSH pour pouvoir l'utiliser. En effet, le port 8005 n'est accessible uniquement en local. Quiconque aura une connexion en local sur le serveur (type SSH) pourra avoir accès au port 8005 :
Si nous saisissons ici n'importe quelle commande, la connexion se fermera :
Nous aurons alors le message suivant dans le fichier "logs/catalina.out" qui contient les logs du serveur Tomcat :
La commande reçue par le serveur Tomcat n'est pas interprétable par le serveur. En revanche si on entre la bonne commande qui est "SHUTDOWN" :
Nous aurons une extinction du serveur ainsi que ces différentes lignes dans le fichiers "logs/catalina.out" :
On voit donc bien que le serveur a reçu la commande "shutdown" valide et qu'il va donc se fermer.
III. Sécuriser le port shutdown
Pour sécuriser ce port et ainsi notre serveur Tomcat, nous allons dans un premier temps changer son port d'écoute. Il faut pour cela éteindre notre serveur Tomcat :
%Chemin_vers_Tomcat%/bin.shutdown.sh
Nous allons ensuite nous rendre dans le fichier de configuration de Tomcat pour aller modifier la ligne de l'élément serveur "shutdown". On changera cet élément pour y mettre le numéro de port que l'on souhaite lui allouer. Mettons par exemple "10005" :
Nous allons également changer la commande qui lancera l'extinction du serveur. Le principal objectif est de ne plus avoir les valeurs par défaut qui sont les premières visées par les attaquants. Nous changeons donc "SHUTDOWN" en "$hU7D0wn" (par exemple) :
Nous allons ensuite démarrer notre serveur Tomcat :
%Chemin_vers_Tomcat%/bin.shutdown.sh
Note : Cela peut mettre plus de temps que d'habitude étant donné que les paramètres ont changés.
Nous allons ensuite tenter à nouveau de fermer notre serveur depuis une connexion SSH faite sur le serveur.
Le port 8005 est donc bien devenu injoignable même en local. On va tenter une connexion maintenant sur le nouveau port "10005" et lancer la commande "SHUTDOWN" :
Nous aurons alors le message suivant dans nos logs :
On voit donc bien que les paramètres par défauts ne sont plus utilisables et que, pour un attaquant, il sera plus difficile de fermer le serveur car les paramètres de base ont été modifiés. Pour fermer notre serveur dans le cas présent, il faudra saisir "$hU7D0wn" en connexion sur le port "10005".