Sécuriser IBM i : niveau, valeurs système, profils et audit
IBM i est réputé sûr, mais il est livré ouvert : à vous de fermer les portes. Le niveau de sécurité, les 43 valeurs système que recommande IBM, les outils fournis, les profils à surveiller et le journal d'audit, vérifiés sur un IBM i 7.5.
En une phrase
Sécuriser IBM i, c'est choisir un niveau de sécurité
(QSECURITY 40), régler les valeurs système qui encadrent mots de
passe, sessions et restaurations, ne laisser aux profils que les droits utiles, et
auditer pour savoir ce qui se passe ; les
droits sur les objets font le reste.
Les niveaux de sécurité
La valeur système QSECURITY fixe le niveau de protection que le système impose. Chaque niveau ajoute des contrôles au précédent :
- 10 et 20 ne peuvent plus être choisis. Au niveau 20, tous les utilisateurs ont
*ALLOBJ: chacun accède à tout. - 30 contrôle les droits sur les objets, mais IBM ne le considère pas comme un niveau sûr : la protection de l'intégrité n'y est pas active.
- 40 protège le système contre les utilisateurs : un programme ne peut plus appeler une interface non documentée ou manipuler des pointeurs pour atteindre des blocs de contrôle. C'est le niveau de toute nouvelle installation, recommandé pour la plupart d'entre elles.
- 50 ajoute une protection renforcée, par exemple sur les messages entre programmes système et programmes utilisateur, et ne laisse voir que les données, pas les informations sur le système. IBM le présente comme le niveau recommandé pour la plupart des entreprises, car c'est le plus sûr.
Notre conseil : le niveau 40
IBM et l'outil PRTSYSSECA poussent vers 50, mais pour une entreprise nous recommandons 40 : il apporte déjà la protection de l'intégrité, et le niveau 50 est difficile à mettre en place. La documentation d'IBM en donne elle-même les raisons :
- il ne se teste pas à l'avance : ses contrôles supplémentaires ne laissent ni message ni entrée d'audit aux niveaux inférieurs, on ne découvre les erreurs qu'une fois passé en 50 ;
- les espaces, index et files utilisateur du domaine utilisateur ne sont permis que dans les bibliothèques de QALWUSRDMN : il faut y recenser celles des applications et des logiciels qui en créent ;
- aucun travail ne peut plus atteindre la QTEMP d'un autre travail ;
- certains anciens programmes RPG et COBOL doivent être recompilés.
Le changement prend effet à l'IPL suivant. Pour passer de 30 à 40, IBM conseille
d'activer d'abord l'audit avec *AUTFAIL et *PGMFAIL, de faire tourner toutes
les applications, puis de corriger les programmes qui laissent des entrées AF dans le
journal (instruction interdite, interface non prise en charge…) avant de changer la valeur :
CHGSYSVAL SYSVAL(QSECURITY) VALUE('40')
PWRDWNSYS OPTION(*IMMED) RESTART(*YES)
Les valeurs système conseillées
La commande PRTSYSSECA imprime chaque valeur système de sécurité avec sa valeur actuelle et la valeur que recommande IBM. Voici la colonne « recommandée » relevée sur notre IBM i 7.5, regroupée par thème, sauf pour QSECURITY où nous gardons 40. Chaque nom mène à sa fiche détaillée ; la mention à tester signale un réglage qui peut bloquer une application ou un usage.
Niveau de sécurité et intégrité
| Valeur | Conseillée | Effet |
|---|---|---|
| QSECURITY | 40 |
Protection de l'intégrité, niveau livré. PRTSYSSECA indique 50, le plus protégé, mais difficile à mettre en place : nous conseillons 40 (voir les niveaux ci-dessus). |
| QALWOBJRST | *NONE |
Refuse la restauration des objets sensibles (état système, droits adoptés). À remettre à *ALL le temps d'installer une version ou un logiciel. à tester |
| QVFYOBJRST | 3 |
Vérifie la signature des objets restaurés : les objets non signés passent, les objets signés seulement si la signature est valide. C'est la valeur livrée. |
| QFRCCVNRST | 4 |
Reconvertit à la restauration les programmes sans signature valide qui peuvent l'être ; un objet qui paraît altéré est reconverti ou refusé. |
| QALWUSRDMN | QTEMP |
N'autorise les espaces, index et files utilisateur du domaine utilisateur que dans QTEMP. à tester |
| QSHRMEMCTL | 0 |
Interdit aux utilisateurs d'écrire dans la mémoire partagée ou mappée. |
| QUSEADPAUT | une liste d'autorisation |
Réserve aux membres d'une liste *PUBLIC *EXCLUDE la création de programmes qui utilisent les droits adoptés de leurs appelants. |
| QCRTAUT | *CHANGE |
Droit public des nouveaux objets. PRTSYSSECA conseille de le régler bibliothèque par bibliothèque (CRTAUT) ; la valeur système reste à *CHANGE, comme le recommande IBM. |
| QSRVDMP | *NONE |
Ne crée pas de vidage de service pour les messages d'échappement non surveillés. |
| QATNPGM | *NONE |
Aucun programme sur la touche Attention. |
Mots de passe
| Valeur | Conseillée | Effet |
|---|---|---|
| QPWDLVL | 4 |
Mots de passe jusqu'à 128 caractères, stockés avec PBKDF2 HMAC SHA-512 (nouveau en 7.5). Pris en compte à l'IPL suivant. à tester |
| QPWDRULES | *ALLCRTCHG *LMTPRFNAME *MINLEN15 |
15 caractères au moins, sans le nom du profil, règles appliquées aussi par CRTUSRPRF et CHGUSRPRF. |
| QPWDEXPITV | 90 |
Le mot de passe expire au bout de 90 jours. |
| QPWDEXPWRN | 14 |
Prévient l'utilisateur 14 jours avant l'expiration. |
| QPWDCHGBLK | 24 |
Interdit de rechanger son mot de passe dans les 24 heures, pour ne pas revenir à l'ancien. |
| QPWDRQDDIF | 1 |
Refuse les 32 derniers mots de passe. |
| QPWDVLDPGM | *NONE |
Aucun programme maison de validation des mots de passe. |
Ouverture de session
| Valeur | Conseillée | Effet |
|---|---|---|
| QMAXSIGN | 3 |
Trois mots de passe faux de suite au plus. |
| QMAXSGNACN | 3 |
Puis désactive le profil et l'unité. |
| QLMTSECOFR | 1 |
Les profils *ALLOBJ et *SERVICE ne se connectent que sur les écrans autorisés pour eux. |
| QLMTDEVSSN | 1 |
Une seule session écran à la fois par utilisateur. |
| QDSPSGNINF | 1 |
Affiche la dernière connexion et les tentatives ratées après l'ouverture de session. |
| QINACTITV | 15 |
Un travail interactif inactif depuis 15 minutes déclenche QINACTMSGQ. |
| QINACTMSGQ | *DSCJOB |
Le travail inactif est déconnecté ; il retrouve sa session à la reconnexion. |
| QDSCJOBITV | 60 |
Un travail déconnecté depuis 60 minutes est terminé. |
| QRMTSIGN | *FRCSIGNON |
Une session à distance (passthrough, Telnet) passe toujours par l'écran de connexion. |
Communications et IFS
| Valeur | Conseillée | Effet |
|---|---|---|
| QAUTOCFG | 0 |
Pas de configuration automatique des nouvelles unités locales. |
| QAUTORMT | 0 |
Pas de configuration automatique des unités distantes. |
| QAUTOVRT | 0 |
Pas de création automatique d'unités virtuelles : à n'appliquer que si vous créez vos unités Telnet vous-même. à tester |
| QRMTIPL | 0 |
Pas de redémarrage à distance par ligne téléphonique. |
| QRMTSRVATR | 0 |
Pas d'analyse des incidents à distance. |
| QCMNRCYLMT | 0 0 |
Pas de reprise automatique des liaisons en panne. |
| QDEVRCYACN | *DSCMSG |
Après une erreur de l'écran, déconnecte le travail ; à la reconnexion, l'application reçoit un message d'erreur. |
| QSSLPCL | *OPSYS |
Le système choisit les versions de TLS acceptées, selon la version d'IBM i. |
| QSSLCSLCTL | *OPSYS |
Le système gère la liste des suites de chiffrement. |
| QSCANFS | *ROOTOPNUD |
Fait analyser les fichiers de l'IFS par les programmes d'exit enregistrés (un antivirus). |
| QSCANFSCTL | *ERRFAIL *NOWRTUPG |
Échec de l'accès si l'analyse échoue ; pas d'élévation des droits d'écriture pour l'antivirus. |
Audit
| Valeur | Conseillée | Effet |
|---|---|---|
| QAUDCTL | *AUDLVL *OBJAUD *NOQTEMP |
Active l'audit des actions et des objets, sans les objets de QTEMP. |
| QAUDLVL | *AUDLVL2 |
Renvoie à QAUDLVL2 pour la liste des événements. |
| QAUDLVL2 | *AUTFAIL *CREATE *DELETE *OBJMGT *PGMFAIL *SAVRST *SECURITY *SERVICE *SYSMGT |
Échecs de droits et de programmes, créations, suppressions, déplacements, sauvegardes et restaurations, sécurité, outils de service, gestion du système. |
| QAUDENDACN | *NOTIFY |
Si l'audit ne peut plus écrire, prévient et continue. |
| QAUDFRCLVL | *SYS |
Le système décide quand écrire les entrées d'audit sur disque. |
| QCRTOBJAUD | par bibliothèque |
Audit des nouveaux objets : PRTSYSSECA conseille de le régler bibliothèque par bibliothèque (paramètre CRTOBJAUD de la bibliothèque). |
PRTSYSSECA contrôle aussi trois attributs réseau (commande CHGNETA), détaillés avec les accès à distance :
DDMACC |
*REJECT |
Refuse les demandes DDM et DRDA entrantes. À ne pas appliquer si d'autres systèmes lisent vos fichiers par DDM ou SQL distant. à tester |
|---|---|---|
JOBACN |
*REJECT |
Refuse les travaux soumis par le réseau (SNADS). |
PCSACC |
*REJECT |
Ne concerne que les anciens clients DOS et OS/2. |
QSECURITY 50, si vous voulez quand même y aller, ne se teste pas à l'avance : essayez-le sur une partition de test avec toutes vos applications.QPWDLVL 4se prépare : il faut passer par le niveau 2 ou 3 avant ; le niveau 3 supprime les anciens mots de passe des niveaux 0 et 1, dont d'anciens clients ou systèmes peuvent encore avoir besoin. Chaque changement attend l'IPL.QALWOBJRST *NONEpeut faire échouer l'installation d'une nouvelle version ou d'un logiciel et une reprise du système : IBM demande*ALLle temps de l'opération, puis le retour à la valeur habituelle. La valeur*ALWPTFlaisse passer les PTF.DDMACC *REJECTcoupe le DDM et le SQL distant entrants ;QAUTOVRT 0empêche les sessions Telnet si les unités virtuelles ne sont pas créées à l'avance.
Pour comparer vos valeurs à ces recommandations, sans imprimer, une requête :
SELECT SYSTEM_VALUE_NAME, CURRENT_CHARACTER_VALUE, CURRENT_NUMERIC_VALUE
FROM QSYS2.SYSTEM_VALUE_INFO
WHERE SYSTEM_VALUE_NAME IN ('QSECURITY', 'QPWDLVL', 'QMAXSIGN', 'QMAXSGNACN',
'QLMTSECOFR', 'QINACTITV', 'QALWOBJRST', 'QVFYOBJRST', 'QAUDCTL')
ORDER BY SYSTEM_VALUE_NAME
Enfin, la plupart des valeurs de sécurité ne peuvent être changées que par un profil
*ALLOBJ et *SECADM. Pour empêcher même ces profils de les modifier en
exploitation, on les verrouille par les outils de service (SST, DST) ou la commande
CHGSSTSECA.
Les outils d'IBM : GO SECTOOLS
Le menu des outils de sécurité, livré avec le système, regroupe les commandes de contrôle :
GO SECTOOLS.

SECTOOLS, première page : la gestion des profils.
| ANZDFTPWD | Liste les profils dont le mot de passe est égal au nom, et peut les désactiver ou faire expirer leur mot de passe. |
|---|---|
| ANZPRFACT | Désactive les profils restés inactifs plus de n jours. |
| CHGACTPRFL | Exclut des profils de ANZPRFACT (DSPACTPRFL pour les voir). |
| CHGACTSCDE | Ouvre un profil seulement à certaines heures (DSPACTSCD pour les voir). |
| CHGEXPSCDE | Fait expirer un profil à une date : désactivé ou supprimé (DSPEXPSCD). |
| PRTPRFINT | Imprime le nombre d'entrées internes des profils (objets possédés, droits privés), pour repérer ceux qui approchent la limite. |
| CHGSECAUD | Démarre ou règle l'audit de sécurité (DSPSECAUD pour l'afficher). |
| CPYAUDJRNE | Copie les entrées du journal d'audit dans des fichiers. |
| PRTSYSSECA | Imprime les valeurs système de sécurité : actuelle et recommandée. |
| PRTADPOBJ | Imprime les objets qui adoptent les droits d'un profil. |
| PRTPUBAUT | Imprime les objets dont le droit public n'est pas *EXCLUDE. |
| CFGSYSSEC | Applique en une fois une configuration de sécurité. |
| RVKPUBAUT | Retire le droit public d'un ensemble de commandes et d'API sensibles, et ramène la racine de l'IFS à *USE. |
CFGSYSSEC mérite une précaution : elle règle d'un coup les valeurs système, met à
*NONE le mot de passe des profils fournis par IBM et démarre l'audit. Elle demande
*ALLOBJ, *SECADM et *AUDIT. Pour l'adapter, IBM indique de
récupérer la source de son programme, QSYS/QSECCFGS, par RTVCLSRC,
puis de la modifier et de la compiler sous un autre nom.
Les profils : fermer les portes connues
Les premiers essais d'un intrus visent les profils dont le mot de passe est publié. La documentation d'IBM donne la liste à vérifier :
| Profil fourni par IBM | Mot de passe recommandé |
|---|---|
QSECOFR | Une valeur non triviale, connue du seul responsable de la sécurité. Livré avec mot de passe expiré. |
QSYSOPR | *NONE |
QPGMR | *NONE |
QUSER | *NONE ; il doit rester activé pour IBM i Access en TCP/IP. |
QSRV | *NONE |
QSRVBAS | *NONE |
QPGMR_NC, QSECOFR_NC, QSYSOPR_NC, QUSER_NC | Nouveaux en 7.6 : pas de mot de passe, non modifiables (voir le MFA plus bas). |
- Aucun profil avec un mot de passe égal à son nom. ANZDFTPWD les trouve, et peut les désactiver.
- Les outils de service aussi. Les identifiants DST
QSECOFRetQSRVont des mots de passe publiés : changez-les, et rechangez celui de QSRV après chaque intervention d'un technicien. - Pas de connexion par simple Entrée. Essayez, sur plusieurs écrans, d'ouvrir
une session sans rien taper. Si cela marche, passez en niveau 40 ou 50, ou mettez
USER(*RQD)dans les descriptions de travail des postes écran. - Peu de
*ALLOBJ. Chaque profil qui l'a peut tout lire et tout modifier (voir les droits spéciaux). - Pas de profil oublié. Désactivez les profils inutilisés avec ANZPRFACT, et faites expirer ceux des intérimaires (CHGEXPSCDE).
- Un mot de passe à changer dès la première connexion :
PWDEXP(*YES)à la création du profil (voir les profils utilisateurs).
Deux requêtes de contrôle, exécutées sur notre IBM i 7.5 (nous n'en publions pas le résultat). Les profils actifs, avec un mot de passe, sans connexion depuis 90 jours :
SELECT AUTHORIZATION_NAME, PREVIOUS_SIGNON, USER_CLASS_NAME
FROM QSYS2.USER_INFO_BASIC
WHERE STATUS = '*ENABLED'
AND (PREVIOUS_SIGNON IS NULL OR PREVIOUS_SIGNON < CURRENT TIMESTAMP - 90 DAYS)
AND NO_PASSWORD_INDICATOR = 'NO'
AND AUTHORIZATION_NAME NOT LIKE 'Q%'
ORDER BY PREVIOUS_SIGNON
Les profils actifs qui ont *ALLOBJ en propre (ajoutez ceux qui l'héritent d'un groupe
avec QSYS2.GROUP_PROFILE_ENTRIES) :
SELECT AUTHORIZATION_NAME, USER_CLASS_NAME, SPECIAL_AUTHORITIES
FROM QSYS2.USER_INFO_BASIC
WHERE SPECIAL_AUTHORITIES LIKE '%*ALLOBJ%'
AND STATUS = '*ENABLED'
IBM i 7.6 : activez le MFA
Depuis IBM i 7.6, le système intègre l'authentification multifacteur (MFA). En plus du mot de passe, l'utilisateur saisit un code à usage unique (TOTP, norme RFC 6238), calculé par une application d'authentification sur son téléphone, sa montre ou un jeton physique. Un mot de passe volé ou deviné ne suffit plus. Nous conseillons de l'activer, en commençant par les profils qui ont des droits spéciaux.
Notre système de démonstration est en 7.5 : cette partie s'appuie sur la documentation d'IBM i 7.6, sans démonstration.
Les prérequis
- QSECURITY à 40 ou plus : notre niveau conseillé suffit.
- QPWDLVL à 4 : on y passe par le niveau 2 ou 3, chaque changement attendant l'IPL (voir l'encadré plus haut).
- Des horloges à l'heure : le code dépend de l'heure, le système et les téléphones doivent être
synchronisés à quelques secondes près. IBM conseille le client NTP
(
STRTCPSVR SERVER(*NTP), valeur système QTIMADJ).
Bon à savoir : sur une nouvelle installation en 7.6, QPWDLVL est livré à 3 et
QPWDRULES à *ALLCRTCHG *LMTPRFNAME *MINLEN15 *REQANY3. Un système
mis à niveau garde ses valeurs.
La mise en place, pas à pas
/* 1. Administrateur : activer le facteur supplémentaire, puis IPL */
CHGSECA ADLSGNFAC(*ENABLED)
/* 2 et 3. Chaque utilisateur, sous son propre profil */
CHGTOTPKEY
CHKTOTP
/* 4. Administrateur : exiger le code pour ce profil */
CHGUSRPRF USRPRF(DUPONTJ) AUTHMTH(*TOTP) TOTPOPTITV(*NONE)
- Activer le système ne suffit pas. L'attribut ajoute un champ « facteur
supplémentaire » à l'écran de connexion, mais seuls les profils en
AUTHMTH(*TOTP)doivent le remplir. Tous les profils existants ou créés restent en*NONE. - Si
CHGSECArefuse, l'attribut est verrouillé dans les outils de service :CHGSSTSECA CHGADLSGN(*YES)le déverrouille, etCHGADLSGN(*NO)le reverrouille une fois réglé. L'attribut n'est ni sauvegardé ni restauré. - Chacun crée sa propre clé : l'administrateur ne peut pas le faire à sa place. IBM Navigator for i propose aussi un QR code à scanner (Manage My MFA Key).
- La clé de secours remplace le code si le téléphone est perdu. Elle ne vaut que
10 minutes après sa première utilisation, le temps de créer une nouvelle clé. Passé ce délai, la
clé est supprimée et seul l'administrateur peut débloquer le profil en retirant
*TOTP. - Écran de connexion personnalisé ? Refaites-le à partir du format
QDSIGNON3avant l'IPL, sinon le champ du code n'apparaîtra pas. - Sur une interface sans champ pour le code, on tape
motdepasse:123456dans le champ du mot de passe. Cela ne marche pas avec IBM i Access Client Solutions, Navigator ni DCM, qui ont leur propre champ.
TOTPOPTITV (1 à 720 minutes) dispense de code
pendant un intervalle après une connexion réussie avec code : réglez-le au plus court. Les profils
qui servent aux programmes d'exit de cluster, le serveur IWS en accès direct ou le proxy de IBM
Toolbox for Java ne supportent pas le MFA, et une commande ACS lancée en batch par un profil
*TOTP reste bloquée. Les outils de service (SST et DST) ont leur propre MFA, avec des
clés distinctes.
Les profils _NC et QIBM_RUN_UNDER_USER_NO_AUTH
Le MFA protège la connexion, mais un profil *ALLOBJ peut encore agir sous le nom d'un
autre sans connaître ni son mot de passe ni son code : SBMJOB USER(DUPONTJ), ou un
« profile handle » obtenu avec *NOPWD. La 7.6 ferme cette porte par la fonction
d'utilisation QIBM_RUN_UNDER_USER_NO_AUTH : un profil mis en *DENIED ne peut
plus être la cible de ces opérations, qui échouent avec CPF4AF1.
/* D'abord observer : entrées d'audit GR-F *USAGEWARN */
CHGUSRAUD USRPRF(DUPONTJ) AUDLVL(*AUTWARN)
/* Puis protéger le profil */
CHGFCNUSG FCNID(QIBM_RUN_UNDER_USER_NO_AUTH) USER(DUPONTJ) USAGE(*DENIED)
IBM la réserve aux profils interactifs, qui s'authentifient : ne la refusez pas aux profils qui ne servent qu'en batch. Elle fonctionne même sans MFA, mais elle le complète.
C'est là qu'interviennent les quatre nouveaux profils fournis par IBM, suffixés _NC
(not changeable) : QPGMR_NC, QSECOFR_NC, QSYSOPR_NC
et QUSER_NC. Ils ont les mêmes droits que QPGMR, QSECOFR, QSYSOPR et QUSER, mais
n'ont pas de mot de passe, ne peuvent pas être modifiés, et ne peuvent pas se voir
refuser QIBM_RUN_UNDER_USER_NO_AUTH. Le système les utilise là où il prenait les
profils d'origine : travaux soumis, profile handles, profil sous lequel tourne un serveur. IBM
demande aux applications de faire de même : une chaîne qui lance SBMJOB USER(QPGMR)
doit passer à QPGMR_NC si QPGMR est un jour protégé. Après la mise à niveau, vérifiez
aussi les droits privés donnés aux profils d'origine sur vos objets : les profils _NC en ont
peut-être besoin.
L'audit : savoir ce qui se passe
Le journal d'audit QSYS/QAUDJRN enregistre les événements de sécurité choisis par
QAUDLVL et QAUDLVL2 : tentatives refusées, créations,
suppressions, changements de droits ou de profils, restaurations. Une seule commande le met en
route :
CHGSECAUD QAUDCTL(*AUDLVL) QAUDLVL(*DFTSET)
CHGSECAUD crée le journal et son récepteur s'ils n'existent pas, met
QAUDCTL à *AUDLVL et, avec *DFTSET, active les
événements *AUTFAIL, *CREATE, *DELETE,
*SECURITY et *SAVRST. Elle demande *ALLOBJ et
*AUDIT. IBM conseille d'aller plus loin : la liste de QAUDLVL2 du tableau
ci-dessus ajoute *OBJMGT, *PGMFAIL, *SERVICE et
*SYSMGT.
Trois réglages complètent l'audit : QAUDENDACN dit quoi faire si le journal ne peut plus être écrit, QAUDFRCLVL quand écrire sur disque, et QCRTOBJAUD l'audit des nouveaux objets. Les entrées se lisent avec SYSTOOLS.AUDIT_JOURNAL_PW (mots de passe), SYSTOOLS.AUDIT_JOURNAL_CA (droits), SYSTOOLS.AUDIT_JOURNAL_CP (profils) : un exemple suit sur la page des attaques. Prévoyez la place et la purge des récepteurs : un audit complet produit beaucoup d'entrées.
À retenir
- QSECURITY 40 : la protection de l'intégrité sans les contraintes du 50 ; changement à l'IPL.
- PRTSYSSECA compare vos valeurs système aux recommandations d'IBM ; appliquez-les par étapes.
- Mots de passe de 15 caractères, QPWDLVL 3 ou 4, trois essais au plus.
- Profils fournis par IBM sans mot de passe, peu de
*ALLOBJ, profils inactifs désactivés. - En 7.6, MFA activé (QPWDLVL 4,
CHGSECA ADLSGNFAC,AUTHMTH(*TOTP)) ; applications et SBMJOB passés sur les profils_NC. - Audit actif :
CHGSECAUD, puis lecture en SQL.
Sources
Les exemples ont été créés et relevés sur un IBM i 7.5 (voir la méthode). Les définitions et les règles viennent de ces sources, consultées le 15 octobre 2026 :
- IBM i 7.5 Security : Planning and setting up system security, IBM (PDF). Niveaux de sécurité (10 et 20 abandonnés, 30 jugé non sûr, 40 livré et recommandé pour la plupart des installations, 50 recommandé pour la plupart des entreprises) ; mots de passe connus des profils fournis par IBM et des outils de service (tables 33 et 34), QUSER pour IBM i Access, connexion par simple Entrée ; verrouillage des valeurs système par SST, DST ou CHGSSTSECA ; risques de Telnet et FTP, serveurs démarrés automatiquement, commandes à distance, DDMACC, JOBACN, PCSACC ; droit public de la racine (*ALL à la livraison), répertoire principal, QPWFSERVER (*USE à la livraison, *EXCLUDE conseillé, limites), droits adoptés ignorés par l'IFS, *RX sur chaque composant du chemin.
- IBM i 7.5 Security : Security reference, IBM (PDF, 1 060 pages). Valeurs système de sécurité, de mot de passe et d'audit, avec leurs recommandations (QPWDMINLEN 15 dès le niveau 2, QPWDRQDDIF, QVFYOBJRST, QFRCCVNRST, QSCANFSCTL, QDEVRCYACN, QPWDRULES *ALLCRTCHG et *LMTPRFNAME) ; niveaux de mot de passe QPWDLVL 0 à 4 ; CHGSECAUD et *DFTSET ; CFGSYSSEC, ANZPRFACT, PRTSYSSECA ; RVKPUBAUT et la racine ; droits adoptés et IFS.
- IBM i 7.6 Security : Multi-factor authentication (MFA), IBM (PDF). MFA intégré par TOTP (RFC 6238), prérequis QSECURITY 40 et QPWDLVL 4, attribut Additional sign-on factor (CHGSECA ADLSGNFAC, CHGSSTSECA CHGADLSGN, IPL, QDSIGNON3), CHGTOTPKEY et CHKTOTP, clé de secours (10 minutes), AUTHMTH et TOTPOPTITV, saisie mot de passe:code, applications incompatibles, NTP, QIBM_RUN_UNDER_USER_NO_AUTH (CPF4AF1, *AUTWARN, GR-F *USAGEWARN), profils _NC.
- IBM i 7.6 Security : Security reference, IBM (PDF). Nouveautés 7.6 : paramètres AUTHMTH et TOTPOPTITV, profils QPGMR_NC, QSECOFR_NC, QSYSOPR_NC et QUSER_NC (mêmes droits que les profils d'origine), nouvelles valeurs livrées de QPWDLVL (3) et QPWDRULES (*ALLCRTCHG *LMTPRFNAME *MINLEN15 *REQANY3) pour les nouvelles installations.
- L'aide en ligne des commandes citées, livrée avec IBM i 7.5 et reprise en français dans les fiches des commandes CL de ce site. Paramètres de PRTSYSSECA, CFGSYSSEC, CHGSECAUD, ANZPRFACT, ANZDFTPWD, CHGTCPSVR, CHGNETA, CRTDIR et CHGAUT.
Questions fréquentes
Quel niveau de sécurité choisir sur IBM i ?
Nous conseillons 40, le niveau livré : il protège l'intégrité du système, et IBM le recommande pour la plupart des installations. IBM et PRTSYSSECA poussent vers 50, le plus protégé, mais il est difficile à mettre en place : il ne se teste pas à l'avance, limite les objets du domaine utilisateur aux bibliothèques de QALWUSRDMN et peut demander de recompiler d'anciens programmes. Les niveaux 10 et 20 ne peuvent plus être choisis, et 30 n'est pas considéré comme sûr. Le changement prend effet à l'IPL suivant.
Comment connaître les valeurs de sécurité recommandées ?
La commande PRTSYSSECA imprime, pour chaque valeur système de sécurité et pour les attributs réseau, la valeur actuelle et la valeur recommandée par IBM. Elle demande *ALLOBJ ou *AUDIT. Le service SQL QSYS2.SECURITY_INFO donne aussi les réglages de sécurité en une ligne.
Que fait la commande CFGSYSSEC ?
Elle applique d'un coup une configuration de sécurité : valeurs système, mots de passe *NONE pour les profils fournis par IBM, démarrage de l'audit. Elle exige *ALLOBJ, *SECADM et *AUDIT. On peut l'adapter en récupérant la source de son programme QSYS/QSECCFGS par RTVCLSRC. Testez-la avant : elle change le comportement du système.
Comment désactiver automatiquement les profils inutilisés ?
Avec ANZPRFACT, qui désactive les profils restés inactifs plus d'un nombre de jours donné ; CHGACTPRFL exclut les profils à ne jamais désactiver. En SQL, QSYS2.USER_INFO_BASIC donne la dernière ouverture de session (PREVIOUS_SIGNON) de chaque profil.
Comment activer le MFA sur IBM i 7.6 ?
Il faut QSECURITY 40 ou plus et QPWDLVL 4. L'administrateur active l'attribut Additional sign-on factor (CHGSECA ADLSGNFAC(*ENABLED)) puis fait un IPL ; chaque utilisateur crée sa clé TOTP avec CHGTOTPKEY (ou par QR code dans IBM Navigator for i), l'enregistre dans son application et la vérifie avec CHKTOTP ; l'administrateur passe enfin le profil en CHGUSRPRF AUTHMTH(*TOTP). Synchronisez les horloges avec NTP.
À quoi servent les profils QPGMR_NC, QSECOFR_NC, QSYSOPR_NC et QUSER_NC ?
Ce sont des profils fournis par IBM depuis la 7.6, « not changeable » : mêmes droits que QPGMR, QSECOFR, QSYSOPR et QUSER, mais sans mot de passe, non modifiables, et on ne peut pas leur refuser la fonction QIBM_RUN_UNDER_USER_NO_AUTH. Le système les utilise pour soumettre des travaux, obtenir des profile handles ou faire tourner des serveurs, et IBM demande aux applications de les utiliser si le profil d'origine est protégé par cette fonction.
Comment activer l'audit de sécurité ?
Le plus simple est CHGSECAUD QAUDCTL(*AUDLVL) QAUDLVL(*DFTSET) : la commande crée le journal QSYS/QAUDJRN et son récepteur s'ils n'existent pas, et active les événements *AUTFAIL, *CREATE, *DELETE, *SECURITY et *SAVRST. Il faut les droits spéciaux *ALLOBJ et *AUDIT. Les entrées se lisent ensuite avec les fonctions SYSTOOLS.AUDIT_JOURNAL_xx.