Se protéger des attaques et sécuriser l'IFS
Branché au réseau, un IBM i ne se limite plus à l'écran de connexion : FTP, ODBC, partages de fichiers et commandes à distance passent à côté des menus. Ce qu'il faut fermer, surveiller et protéger, dont les répertoires de l'IFS, démontré sur un IBM i 7.5.
En une phrase
Contre les attaques, on réduit ce qui écoute sur le réseau, on chiffre ce qui reste (SSH, TLS), on surveille les tentatives dans le journal d'audit ; dans l'IFS, on ferme chaque répertoire au public dès sa création, car il hérite sinon des droits de son parent, et la racine est livrée ouverte à tous.
Réduire ce qui écoute sur le réseau
Au démarrage de TCP/IP, STRTCP lance tous les serveurs réglés en
AUTOSTART(*YES). Voici les valeurs de livraison que donne IBM pour les principaux :
| Serveur | AUTOSTART livré | Rôle |
|---|---|---|
| Telnet | *YES | Session 5250 ; mot de passe en clair sans TLS. |
| FTP | *YES | Transfert de fichiers ; mot de passe en clair sans TLS. |
| SMTP | *YES | Courrier. |
| LPD | *YES | Réception d'impressions. |
| SNMP | *YES | Supervision réseau. |
| REXEC | *NO | Exécution de commandes à distance. |
| TFTP | *NO | Transfert sans authentification. |
| HTTP | *NO | Serveur web (réglé par CHGHTTPA). |
Ne laissez démarrer que les serveurs utiles, avec CHGTCPSVR :
CHGTCPSVR SVRSPCVAL(*LPD) AUTOSTART(*NO)
CHGCMDDFT CMD(ENDTCP) NEWDFT('CONFIRM(*YES)')
La seconde commande, conseillée par IBM, fait demander confirmation avant d'arrêter TCP/IP. IBM
recommande aussi de donner avec soin le droit spécial *IOSYSCFG, qui permet de changer
ces réglages, et d'auditer CHGTCPSVR pour voir qui les modifie.
Pour voir les ports réellement en écoute, une requête SQL, exécutée sur notre IBM i 7.5 :
SELECT DISTINCT LOCAL_PORT, LOCAL_PORT_NAME
FROM QSYS2.NETSTAT_INFO
WHERE TCP_STATE = 'LISTEN'
ORDER BY LOCAL_PORT
Chaque port doit correspondre à un service voulu. Un port inconnu peut être un serveur oublié… ou une porte dérobée. ADDTCPPORT réserve un port à des profils donnés, pour qu'aucun autre programme ne s'y installe.
Chiffrer : SSH et TLS
IBM le rappelle : Telnet et FTP transmettent les données et les mots de passe en clair ; n'importe qui sur le chemin peut les lire. Les remèdes :
- SSH (sftp, scp, ssh), livré avec IBM i, remplace FTP et Telnet : client et serveur s'authentifient, et tout circule chiffré, identifiants compris.
- TLS chiffre Telnet, FTP et les serveurs hôtes d'IBM i Access, une fois un certificat attribué à chaque application dans le gestionnaire de certificats (DCM).
- Les valeurs QSSLPCL et QSSLCSLCTL à
*OPSYSlaissent le système retirer les protocoles et chiffrements devenus faibles à chaque version.
Les accès à distance passent à côté des menus
Un utilisateur limité à un menu, avec LMTCPB(*YES), peut quand même lancer des commandes depuis son PC : IBM cite la commande à distance par un fichier DDM, les appels de programmes distribués (DPC) d'IBM i Access, ODBC et le SQL distant. Une commande à distance équivaut à une ligne de commande, et IBM précise qu'une commande reçue par DDM ne tient pas compte de LMTCPB.
Les parades, de la plus large à la plus fine :
- Les droits sur les objets d'abord, la seule protection valable pour toutes les interfaces (voir les droits sur les objets).
- Les attributs réseau, par CHGNETA :
DDMACC(*REJECT),JOBACN(*REJECT),PCSACC(*REJECT).DDMACC(*REJECT)refuse les demandes DDM et DRDA entrantes : ne l'appliquez pas si d'autres systèmes lisent vos fichiers ainsi.JOBACN(*REJECT)refuse les travaux envoyés par le réseau ;PCSACCne concerne plus que d'anciens clients DOS et OS/2. - Les programmes d'exit des serveurs (FTP, ODBC, commande à distance…), enregistrés par WRKREGINF et listés par QSYS2.EXIT_PROGRAM_INFO. IBM prévient qu'ils sont difficiles à écrire, rarement infaillibles, et ne remplacent pas les droits sur les objets. Vérifiez aussi ceux qui sont déjà enregistrés : un programme d'exit inconnu est suspect.
- Les fonctions d'utilisation (WRKFCNUSG, CHGFCNUSG) décident qui peut utiliser certaines fonctions, par exemple la base de données par un client. Elles n'empêchent pas d'accéder à un objet par une autre interface.
Deux valeurs système ferment encore deux portes : QRMTSIGN à
*FRCSIGNON impose l'écran de connexion aux sessions à distance, et
QAUTOVRT limite la création automatique d'unités virtuelles pour Telnet.
Repérer les tentatives de connexion
Un robot qui essaie des mots de passe laisse des traces. Avec QMAXSIGN à 3 et
QMAXSGNACN à 3, le profil et l'unité sont désactivés au troisième mot de passe
faux. Avec l'audit actif (*AUTFAIL, voir l'audit),
chaque échec écrit une entrée PW dans QAUDJRN, que l'on lit en SQL :
SELECT ENTRY_TIMESTAMP, USER_NAME, VIOLATION_TYPE_DETAIL, REMOTE_ADDRESS
FROM TABLE(SYSTOOLS.AUDIT_JOURNAL_PW(STARTING_TIMESTAMP => CURRENT TIMESTAMP - 7 DAYS))
ORDER BY ENTRY_TIMESTAMP DESC
La requête donne l'heure, le profil visé, le type d'erreur (mot de passe faux, profil inconnu…) et l'adresse d'origine. Beaucoup de profils inconnus essayés depuis la même adresse : c'est un balayage, à bloquer en amont, sur le pare-feu ou par les règles de filtrage IP d'IBM i (packet rules). Sur un système exposé à Internet, ne laissez de toute façon ouverts que les ports indispensables, et jamais Telnet ni FTP en clair.
L'IFS : la racine est livrée ouverte
L'IFS (integrated file system) contient les fichiers « à la PC » : la racine
/, /home, QOpenSys… et même les bibliothèques, vues comme
/QSYS.LIB. Deux règles font sa sécurité :
- À la livraison, le droit public de la racine
/est*ALL: tout utilisateur peut y créer un répertoire, comme sur son PC. - Un nouveau répertoire hérite par défaut des droits de son parent immédiat
(
CRTDIR … DTAAUT(*INDIR) OBJAUT(*INDIR)), droits privés et liste d'autorisation compris. Créé dans la racine, il est donc ouvert à tous.
IBM propose trois façons de s'y prendre : apprendre aux utilisateurs à préciser les droits en créant
leurs répertoires ; créer un répertoire principal, protégé comme il faut, sous lequel chacun crée les
siens, qui en hériteront ; ou retirer au public de la racine les droits de création
(*W et les droits sur l'objet), après avoir vérifié qu'aucune application n'en a besoin.
RVKPUBAUT ramène la racine à *USE.
Les droits sur les données de l'IFS
L'IFS parle en droits « à la Unix » ; chacun correspond à des droits IBM i :
| Droit IFS | Permet de | Droits IBM i |
|---|---|---|
*R | lire | *OBJOPR + *READ |
*W | écrire, modifier, supprimer le contenu | *OBJOPR + *ADD + *UPD + *DLT |
*X | exécuter, traverser un répertoire | *OBJOPR + *EXECUTE |
*RX | lire et traverser | *USE |
*RWX | tout faire sur les données | *CHANGE |
*EXCLUDE | aucun accès | *EXCLUDE |
*X sur chaque répertoire du chemin, et la plupart des opérations demandent
*RX sur chaque composant, racine comprise. Et les droits adoptés ne servent
pas dans la racine, QOpenSys, QDLS ni les systèmes de fichiers utilisateur : un programme
USRPRF(*OWNER) n'ouvre pas un fichier de l'IFS.
Démonstration : un répertoire fermé au public
Sur notre IBM i 7.5, un répertoire /home/jobidemo créé avec des droits explicites, un
sous-répertoire créé sans rien préciser, un fichier copié dedans, puis une lecture tentée par
JOBIUSER, un profil sans droit spécial :
CRTDIR DIR('/home/jobidemo') DTAAUT(*EXCLUDE) OBJAUT(*NONE)
CRTDIR DIR('/home/jobidemo/projets')
CPYTOSTMF FROMMBR('/QSYS.LIB/JOBIPRF.LIB/QCLSRC.FILE/LIRESECR.MBR') +
TOSTMF('/home/jobidemo/projets/note.txt') STMFCCSID(1208)
SBMJOB CMD(QSH CMD('cat /home/jobidemo/projets/note.txt')) +
JOB(LIREIFS) USER(JOBIUSER)

DSPAUT du sous-répertoire projets : créé sans préciser de droits, il a hérité du *EXCLUDE de son parent.Le fichier note.txt, créé par CPYTOSTMF, est lui aussi en
*PUBLIC *EXCLUDE. Le travail de JOBIUSER se termine avec ce message dans sa sortie :
cat: 001-0023 Error found opening file /home/jobidemo/projets/note.txt. Permission denied.
Pour ouvrir l'accès à une équipe, on donne le droit à son groupe (ici un groupe GRPCOMPTA fictif), sur le chemin et sur le répertoire :
CHGAUT OBJ('/home/jobidemo') USER(GRPCOMPTA) DTAAUT(*X)
CHGAUT OBJ('/home/jobidemo/projets') USER(GRPCOMPTA) DTAAUT(*RWX)
| CRTDIR | Créer un répertoire ; DTAAUT et OBJAUT fixent ses droits (*INDIR par défaut : hérités du parent). |
|---|---|
| CHGAUT | Donner ou retirer un droit à un utilisateur, un groupe ou *PUBLIC. |
| DSPAUT | Afficher les droits d'un fichier ou d'un répertoire. |
| WRKAUT | Gérer les droits à l'écran. |
| CHGOWN | Changer le propriétaire. |
| CHGPGP | Changer le groupe principal. |
| CHGATR | Changer un attribut, comme la lecture seule ou l'analyse antivirus. |
Pour trouver les répertoires de /home où le public peut écrire (requête exécutée sur
notre IBM i 7.5) :
SELECT S.PATH_NAME, P.DATA_AUTHORITY
FROM TABLE(QSYS2.IFS_OBJECT_STATISTICS(
START_PATH_NAME => '/home', SUBTREE_DIRECTORIES => 'NO')) S,
TABLE(QSYS2.IFS_OBJECT_PRIVILEGES(PATH_NAME => S.PATH_NAME)) P
WHERE S.OBJECT_TYPE = '*DIR'
AND P.AUTHORIZATION_NAME = '*PUBLIC'
AND P.DATA_AUTHORITY IN ('*RWX', '*WX', '*RW', '*W')
Bibliothèques, partages et antivirus
QSYS.LIB et la liste QPWFSERVER
Vues depuis un PC, les bibliothèques sont un répertoire comme un autre : un utilisateur peut faire
glisser une bibliothèque dans la corbeille si les droits sur les objets le lui permettent. La liste
d'autorisation QPWFSERVER est la porte de /QSYS.LIB pour les clients
distants : livrée en *PUBLIC *USE, porte ouverte. IBM indique que la plupart des
utilisateurs n'en ont pas besoin et qu'on voudra sans doute la passer à *EXCLUDE, en
ajoutant un à un ceux qui en ont besoin :
EDTAUTL AUTL(QPWFSERVER)
Limite signalée par IBM : elle ne contrôle que le serveur de fichiers (NetServer et fichiers entre serveurs), pas FTP ni ODBC.
Les partages NetServer
Chaque partage expose un répertoire au réseau Windows. Listez-les avec leurs droits, et ne gardez que ceux qui servent, en lecture seule quand c'est possible :
SELECT SERVER_SHARE_NAME, PATH_NAME, PERMISSIONS
FROM QSYS2.SERVER_SHARE_INFO
L'antivirus
IBM le précise : IBM i lui-même ne peut pas être infecté par les virus des PC. Mais l'IFS peut
stocker un fichier infecté et le transmettre aux postes qui l'ouvrent par un partage. Un antivirus
s'enregistre aux points d'exit QIBM_QP0L_SCAN_OPEN et QIBM_QP0L_SCAN_CLOSE,
et la valeur système QSCANFS (*ROOTOPNUD) décide quels systèmes de
fichiers il analyse ; QSCANFSCTL règle le comportement en cas d'erreur.
À retenir
- Seuls les serveurs utiles en
AUTOSTART(*YES); vérifiez les ports en écoute. - SSH ou TLS : jamais de mot de passe en clair sur le réseau.
- ODBC, FTP et DDM ignorent les menus : les droits sur les objets protègent, les programmes d'exit complètent.
- Les échecs de connexion se lisent dans
SYSTOOLS.AUDIT_JOURNAL_PW. - Dans l'IFS, créez chaque répertoire avec des droits explicites ; il faut
*Xsur tout le chemin ; les droits adoptés n'y servent pas.
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.5 Files and file systems : Integrated file system, IBM (PDF). Droits sur les données *R, *W, *X et leur équivalence en droits IBM i ; héritage des droits par les nouveaux répertoires ; QPWFSERVER dans QSYS.LIB ; analyse antivirus par points d'exit.
- 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
Faut-il désactiver Telnet et FTP sur IBM i ?
Telnet et FTP transmettent le mot de passe en clair. Préférez SSH (sftp, scp) ou leurs versions TLS, ne laissez démarrer automatiquement que les serveurs utiles (CHGTCPSVR AUTOSTART(*NO)), et vérifiez les ports en écoute avec QSYS2.NETSTAT_INFO.
Le menu restreint protège-t-il des accès ODBC ou FTP ?
Non. Une connexion ODBC, DDM ou FTP n'affiche aucun menu, et la commande à distance équivaut à une ligne de commande ; IBM précise que DDM ignore LMTCPB. Seuls les droits sur les objets protègent vraiment les données, complétés au besoin par des programmes d'exit.
Comment voir les tentatives de connexion échouées ?
Avec l'audit actif (*AUTFAIL), chaque mot de passe ou profil invalide écrit une entrée PW dans QAUDJRN. La fonction SYSTOOLS.AUDIT_JOURNAL_PW les lit en SQL, avec l'utilisateur, le type d'erreur et l'adresse distante. QMAXSIGN et QMAXSGNACN désactivent le profil après trois essais.
Quel droit public mettre sur un répertoire de l'IFS ?
Un nouveau répertoire hérite par défaut des droits de son parent, et la racine est livrée avec *PUBLIC *ALL. Créez vos répertoires avec un droit explicite, par exemple CRTDIR DTAAUT(*EXCLUDE) OBJAUT(*NONE), puis donnez les droits aux groupes avec CHGAUT. Pour traverser un chemin, il faut *X sur chaque répertoire, et la plupart des opérations demandent *RX sur chaque composant.
Les droits adoptés fonctionnent-ils dans l'IFS ?
Non : la plupart des systèmes de fichiers (racine, QOpenSys, QDLS, systèmes définis par l'utilisateur) ignorent les droits adoptés. Un programme USRPRF(*OWNER) ne donne donc pas accès à un fichier de l'IFS ; il faut un droit privé ou de groupe sur le fichier.
IBM i a-t-il besoin d'un antivirus ?
Les objets IBM i eux-mêmes ne sont pas infectables comme des exécutables PC, mais l'IFS peut stocker des fichiers infectés pour les postes qui y accèdent par un partage. Un antivirus s'enregistre aux points d'exit QIBM_QP0L_SCAN_OPEN et QIBM_QP0L_SCAN_CLOSE ; la valeur système QSCANFS décide quels systèmes de fichiers sont analysés.