Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
27 novembre 2010 6 27 /11 /novembre /2010 11:19

 

Sécuriser le Listener Oracle.

Les informations les plus sensibles d’une entreprise sont généralement stockées dans des serveurs de bases de données comme Oracle.

Pour de nombreuses bonnes raisons, la sécurisation de ces serveurs est souvent paradoxalement sous-estimée. En effet, la complexité et la richesse d'Oracle rend difficile le travail des DBA et des développeurs.  Au final les risques associés a un serveur Oracle sont ignorés. En effet, la configuration par défaut d’un serveur Oracle comporte de nombreuses vulnérabilités importantes dont un attaquant averti peut facilement tirer profit.

L'accès aux bases par le réseau passe par un protocole propriétaire sur TCP/IP, nommé SQL*Net ou OracleNet suivant les versions d’Oracle. C'est le module TNS Listener (Transparent Network Substrate) qui est chargé de gérer les connexions réseaux vers les bases à travers ce protocole. Le port TCP par défaut est 1521. Sur le poste client, l'utilisateur emploie le client Oracle.

Chaque base Oracle sur le serveur est accessible grâce à un identificateur appelé SID. Lorsqu'un client se connecte à une base, il doit connaitre le serveur, le port TCP du TNS Listener, le SID de la base, ainsi que le login et le mot de passe.

Quelques règles de sécurités.

• Installer et activer uniquement les fonctionnalités indispensables. Même si l’installation est plus complexe et plus longue, c'est un gain de temps et d'argent à moyen et long terme : tout module non installé n’aura pas besoin d'être mis à jour, n'aura pas besoin d'être sécurisé, et surtout ne pourra jamais être attaqué

• Pour un serveur web Oracle HTTP Server ou Oracle Application Server, supprimer toutes les pages d'exemple, et désactiver les modules inutiles.

• Sécuriser le système d’exploitation des serveurs Oracle, ainsi que tous les postes clients employés par les administrateurs.

• Appliquer régulièrement tous les correctifs de sécurité publiés par Oracle.

• A la création de toute nouvelle base Oracle, désactiver tous les comptes utilisateurs non indispensables.

• Modifier les mots de passe de tous les comptes actifs.

• Appliquer des contraintes sur les mots de passe : durée de vie, verrouillage, complexité.

Sécuriser le TNS Listener, en lui appliquant un mot de passe d’administration et en ajoutant le paramètre ADMIN RESTRICTIONS.

• Eviter de laisser un serveur Oracle accessible à tout le monde sur un réseau ouvert, surtout s’il s’agit d’Internet. Eventuellement protéger son accès via le TNS Listener pour n'autoriser qu’une liste d’adresses IP pour les clients.

• Surveiller régulièrement la sécurité des bases Oracle sensibles, ainsi que tous les journaux d'évènements pouvant mettre en évidence des actions malveillantes.

• Envisager le chiffrement des connexions réseau, qu’il s’agisse d’OracleNet avec SSL ou SSH, ou de HTTPS pour les applications web.

• Pour une application web, vérifier que toutes les données saisies par les utilisateurs sont bien filtrées pour éviter les risques d'injection SQL.

• Sur les postes clients Windows, vérifier les ACLs sur les répertoires du PATH.

• Protéger correctement les sauvegardes des bases de données.

 

Les fichiers en rapport avec le LISTENER.

• $ORACLE_HOME/bin/lsnrctl                             Utilitaire de contrôle Listener.
• $ORACLE_HOME/network/admin/listener.ora  Fichier de Configuration pour le Listener.
• $ORACLE_HOME/network/admin/sqlnet.ora    Fichier de Configuration pour le Listener.
• $ORACLE_HOME/bin/tnslnsr                            Module d'écoute serveur Listener.

 

Sécurisation du LISTENER avec un PASSWORD.

 

 
 C:\>LSNRCTL LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 27-NOV-2010 19:01:34 Copyright (c) 1991, 2005, Oracle. All rights reserved. LSNRCTL> set password ( or change_password) Old password: New password: Reenter new password: Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))) Password changed for LISTENER The command completed successfully LSNRCTL> save_config Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))) Saved LISTENER configuration parameters. Listener Parameter File C:\oracle\product\10.2.0\dba_ora\network\admin\listener.ora Old Parameter File C:\oracle\product\10.2.0\dba_ora\network\admin\listener.bak The command completed successfully LSNRCTL> exit 

Dans votre fichier LISTENER.ORA vous verrez apparaître cette ligne

 

PASSWORDS_LISTENER= 54670B53985ADB21

 

Sécurisation du LISTENER avec ADMIN_RESTRICTIONS_LISTENER.

ADMIN_RESTRICTIONS empêche l'exécution de toute les commandes SET de LSNRCTL en local ou à distance.Les changements doivent impérativement être fait dans le fichier Listener.ora suivi d'un RELOAD ou STOP/START

 

PASSWORDS_LISTENER= 54670B53985ADB21
ADMIN_RESTRICTIONS_LISTENER= ON

 

Sécurisation du LISTENER avec tcp.validnode_checking.

 

 

Voir cet article

• Connexions clientes indélicates ??

 

Liens en rapport avec l'article et qui sont susceptibles de vous intéresser
• Description Listener Oracle
• Messages Erreurs LISTENER (ORA-TNS)
• Connection impossible Limite Ressource Processes TNS-12518

Partager cet article

Repost 0
Published by Daniel Roesch - dans LISTENER - ORACLE NET
commenter cet article

commentaires