🔍 Le défi : Sur IBM i, comment bloquer ou autoriser des connexions à la base de données sans modifier vos applications, en fonction :
✅ Du profil utilisateur (ex : APP_SERV1, BATCH_USER)
✅ De l’adresse IP source (ex : 192.168.10.5, 10.50.*.*)
✅ Avec une journalisation automatique des tentatives ?
La solution : Les Exit Points IBM i (ex : QIBM_QZDA_INIT), combinés à un programme RPG de contrôle (exemple générique ci-dessous).
💡 Pourquoi utiliser les Exit Points ?
1️⃣ Contrôle fin et dynamique :
- Interception avant la connexion à la base (pas de traitement post-connexion).
- Exemple : Autoriser APP_SERV1 uniquement depuis 10.50.0.0/16, bloquer les autres IPs.
2️⃣ Sécurité proactive :
- Journalisation des tentatives (succès/échecs) dans une table dédiée.
- Réaction immédiate (pas de délai comme avec des audits batch).
3️⃣ Intégration transparente :
- Zéro modification des applications existantes (ERP, outils métiers, etc.).
- Compatible avec SQL, ILE RPG, et les APIs système (QUSRJOBI).
4️⃣ Flexibilité :
- Les règles sont stockées en base de données, modifiables sans recompilation.
- Exemple : Ajouter une nouvelle IP autorisée via un simple INSERT.
🔧 Fonctionnement technique (exemple générique)
Le programme de contrôle (ex : SEC_FILTER_PGM) :
- Intercepte la demande via l’Exit Point QIBM_QZDA_INIT.
- Récupère : Le profil utilisateur (depuis les paramètres de l’Exit Point). L’IP source (via l’API QUSRJOBI).
- Vérifie en base si l’IP est autorisée pour ce profil (table ACCESS_RULES).
- Décide : STATUS = '1' → Accès autorisé. STATUS = '0' → Connexion bloquée (avec log dans ACCESS_LOGS).
📌 Configuration requise :
-- Enregistrer l'Exit Point (à exécuter une seule fois) ADDEXITPGM EXITPNT(QIBM_QZDA_INIT) FORMAT(ZDAI0100) PGM(YOUR_LIB/SEC_FILTER_PGM)
📊 Cas d’usage concrets
| Scénario | Solution avec Exit Points |
|---|---|
| Attaque par force brute | Bloquer les IPs après X tentatives échouées |
| Accès partenaires (API/EDI) | Restreindre aux IPs contractualisées |
| Conformité (RGPD, SOX) | Traçabilité complète des accès |
| Migration vers le cloud | Contrôler les accès depuis des sous-réseaux spécifiques |
🛠 Outils associés
- WRKREGINF : Lister les Exit Points actifs.
- DSPLOG : Analyser les logs (journal QAUDJRN).
- ACS (IBM i Access Client Solutions) : Gérer les tables de règles en SQL.
🔄 Exit Points vs. Solutions classiques
| Approche traditionnelle | Exit Points + RPG |
|---|---|
| Modification du code applicatif | Aucune modification nécessaire |
| Vérification en batch | Temps réel (avant la connexion) |
| Règles codées en dur | Règles dynamiques (base de données) |
| Logs manuels | Journalisation automatique |



0 commentaire