, , Sécurisation Netserver en V7R5

A partir de la version 7.5, vous avez de nouvelles options pour l’administration de neterver

Vous pouvez par exemple nommer les utilisateurs ayants accès aux partages de votre ibmi.

Vous devez créer une liste d’autorisation, par exemple netserver et pour q’un utilisateur puisse accèder il faut qu’il est le droit *use sur cette liste

Création de la liste d’autorisation

*USE droit de lecture

*CHANGE ou *ALL droit de mise à jour

Association de la liste au service Netserver

.

Arrêt redémarrage du service pour prise en compte

.

Si votre utilisateur n’est pas lister dans votre liste

.

Si votre utilisateur est inscrits dans la liste

Vous pouvez allez puis loin en mettant une liste d’autorisations par partage vous devrez indiquer cette liste au moment ou vous créer le partage

.

le principe est le même mais partage par partage , attention à l’administration qui en découle

Remarque :

donc pour connaitre les utilisateurs qui peuvent faire du netserver vous pouvez utiliser SQL par exemple

SELECT AUTHORIZATION_NAME, OBJECT_AUTHORITY
FROM QSYS2.AUTHORIZATION_LIST_USER_INFO
WHERE AUTHORIZATION_LIST = ‘NETSERVER’
and AUTHORIZATION_NAME <> ‘*PUBLIC’

.

, Installation V7R5 à partir d’une V7R3

On a utiliser la nouvelle version de PRUV que vous pouvez télécharger ici https://www-01.ibm.com/marketing/iwm/iwm/web/dispatcher.do?source=ipvt
le produit est de plus en plus complet et fiable

Par exemple il nous a indiquez quelques PTFs Spécifiques.

.
.

on a choisit de faire la migration par un lecteur optique virtuelle

On appliqué les PTFs de manière permanente
On a fait une sauvegarde 21
On a téléchargé les images à partir de ESS et créer le lecteur optique virtuel

pour comprendre les supports à télécharger rdv ici

https://www.ibm.com/docs/fr/i/7.5?topic=reference-media-labels-their-contents


On a fait tous les contrôles à partir de GO Licpgm puis option 5


vous devez faire option par option


Attention , a bien accepter les licences sur chaque produit pour avoir cet écran
On a fait un dernier contrôle par PRUV qui nous a indiqué que items verts
Vous êtes prêt à faire l’opération

PWRDWNSYS OPTION(IMMED) RESTART(YES) IPLSRC(*IMGCLG) IMGCLG(IMG001)
C’est partie


Attendez que cela ce passe

On a fait Redémarage complet et fait nos tests

On a récupéré les licences sur ESS et nous les avons entré sur notre partition


Nous avons ensuite récupéré puis appliquer les PTFs disponibles pour la 7.5
Nous avons pour finir sauvegardé à nouveau le système

l’opération était alors terminée, on a pas eu de problème, et aucune régression à ce jour

Ps :
On a contrôlé les formats de commandes de sortie des fichiers systèmes quelques modifications, on n’était pas concerné …

Merci à Younes pour son aide

Quand vous lancerez PRUV avant votre passage en V7R5 vous aurez ce message
qui vous indique que le logiciel 5733OPS n’est plus installable, c’était la première mouture de l’open source sur l’IBMi

SELECT PRODUCT_OPTION, TEXT_DESCRIPTION
FROM QSYS2.SOFTWARE_PRODUCT_INFO
WHERE PRODUCT_ID = ‘5733OPS’

Parmi ces produits vous avez par exemple Nodejs, Nginx, ou Git (Vous devriez déjà utiliser ceux ce de Yum)

il est possible que vous ayez encore des applications qui les utilisent

Pour les trouver, ils utilisent des exécutables différents

Pour 5733OPS

/QOpenSys/QIBM/ProdData/OPS/tools/bin/

Pour RPM YUM

/QOpenSys/usr/bin/

Ou les chercher ?


-dans les scriptes sh
-dans les programmes cl utilisant du sh
-dans les paths
-dans les variables d’environnement

Astuce

Pour contrôler après l’installation de votre V7R5
SELECT *
FROM QSYS2.SOFTWARE_PRODUCT_INFO
WHERE LOAD_ERROR = ‘YES’

Vous voulez faire du 5250 sur votre IBMi et que vos informations ne circulent pas en claire sur le réseau.

La première solution est de mettre en œuvre telnets


Vous devez vous connecter sur DCM
Créer un certificat ou utiliser un déjà existant
et l’associer à l’application

.
Ensuite dans votre client, en principe ACS , indiquer que vous vous connectez en sécurisé .

.

La deuxième est de passer par SSH

vous avez un client 5250 (TN5250) installable dans les packages OPEN SOURCES
vous n’avaez rien à faire coté serveur tout va se passer sur le service ssh qui doit être démarré
d’abord vous devez vous connecter par une client SSH , putty ou celui ACS mais en principe si vous faites ca …

.
Une fois connecté il vous suffira de lancer le client 5250 par la commande tn520
par exemple
==>tn5250 env.TERM=IBM-3179-2 ssl:neptune

.

.

Conclusion :

Ce n’est pas parfait mais vous n’avez pas besoin d’installer un client sur votre poste et en principe pas d’intervention à faire coté serveur ibmi

, PRUV pour la 7.5

PRUV (Pre-Upgrade Verification) est désormais disponible, vous pouvez le télécharger ici https://www-01.ibm.com/marketing/iwm/iwm/web/dispatcher.do?source=ipvt


la dernière version disponible est 7.5.0.20220601

il vous suffit de télécharger et de lancer le JAVA

.

vous indiquez contrôle pour mise à jour

.

vous pouvez indiquer désormais la version 7.5

.

le résultat avant exportation html

.

Par exemple dans notre cas

mise à jour du firmware

hardware model (donc on ne peut pas ….)

niveau de PTF

et à faire systématiquement avant une montée de version , application permanente des ptfs et acceptation des licences

L’abandon de ftp (et autres solutions non cryptées) entraine une migration vers des solutions SSH (SCP ou SFTP)

Ces 2 solutions étant sécurisées par l’envoi des données dans un tunnel SSH

Pour des ibmistes la démarche est pas forcément évidente

les , clé publique, clé privée , authorized_keys et known_host ne sont pas naturels pour nous donc , quand on va faire va
notre premier échange il peut être important d’avoir des informations sur l’exécution de notre commande.

Ce qu’il faut savoir c’est que beaucoup de commandes dans le monde linux admettent une option -v, -vv et -vvv (v voulant dire verbose) et que plus vous avez de v
plus vous avez du détail sur votre exécution

donc

==> ssh -vvv plb@as400

Vous donnera les informations nécessaires pour corriger les erreurs d’exécution
Les informations sont généralement assez claires

Vous pouvez l’indiquer sur les commandes scp, sftp, ssh etc …

Astuce
Commencez par un ssh , vous aurez moins de message et c’est plus facile à mettre au point pour la partie connexion.

, , , Gérer les services TCP/IP à Démarrer

Une petite vue synthétique qu’on aime bien dans Navigator for i , qui vous permet en une vue de gérer les services TCP/IP à démarrage automatique

la vue s’accède par la

Vous avez alors la liste des services avec un tableau qui indique ceux qui sont à démarrage automatique

Vous pouvez choisir les services que vous voulez voir démarrer

Remarque

Si un service ne sert pas arrêtez le !

attention particulièrement au REXEC par exemple

Attention, ca n’arrête pas les services, ils ne seront juste plus démarrés

, , , Paramétrer NGINX en SSL sur votre IBMi

Une fois que vous avez installer NGINX , vous voudrez sans doute le sécuriser

Voici comment le sécuriser

Pour notre exemple

nous générerons nous même les clés de cryptographie

Nous allons générer 2 fichiers qui vont contenir vos clés
un fichier .pem et un fichier .key
par convention on les appellera cert
on choisira un certificat de type x509 valable un année

pour cela on va utiliser OPENSSL, vous devrez donc vérifier que le produit est installé

sous qsh voici la commande à passer

openssl req -newkey rsa:2048 -nodes -keyout /home/nginx/cert.key -x509 -days 365 -out /home/nginx/cert.pem

Après avoir répondu aux questions vous obtenez vos 2 certificats

Maintenant vous allez devoir indiquer à nginx qu’il est protégé par ces clés

Vous allez devoir modifier le fichier de configuration de nginx dans notre cas celui par défaut
bien sur vous sauvegardez avant l’ancien /QOpenSys/etc/nginx/nginx.conf

Une fois que vous avez fait votre modification vous devez arrêter le serveur nginx et le redémarrer

nginx -c /QOpenSys/etc/nginx/nginx.conf -s stop
puis
nginx -c /QOpenSys/etc/nginx/nginx.conf

Pour tester vous allez indiquer https://votreserveur:1880
dans notre cas le port est 1880.

Vous allez recevoir une alerte de sécurité , c’est normal votre certificat de n’a pas de racine connue
Vous répondez une fois ou de manière définitive et vous obtenez votre première page et vous voyez le https:

, , Utiliser un USER SPACE en SQL

Depuis la TR6 de la V7R4, vous pouvez manipuler entièrement les objets de type *USRSPC
Rappel depuis la TR4 vous pouviez les lire

voici la liste des commandes à utiliser avec un exemple

Création, procédure, CREATE_USER_SPACE

CALL QSYS2.CREATE_USER_SPACE(USER_SPACE => ‘MONUSRSPC’,
USER_SPACE_LIBRARY => ‘GDATA’,
SIZE => 100,
PUBLIC_AUTHORITY => ‘*CHANGE’);


Ecriture, procédure, CHANGE_USER_SPACE ou CHANGE_USER_SPACE_BINARY

CALL QSYS2.CHANGE_USER_SPACE(USER_SPACE => ‘MONUSRSPC’,
USER_SPACE_LIBRARY => ‘GDATA’,
DATA => ‘Tester c »est douter , corriger c »est adbiquer’,
START_POSITION => 1);

Lecture, fonction table, USER_SPACE

SELECT Substr(DATA , 1 , 100) FROM TABLE(QSYS2.USER_SPACE(
USER_SPACE => ‘MONUSRSPC’,
USER_SPACE_LIBRARY => ‘GDATA’));

il existe d’autres services SQL , pour manipuler les USER SPACE

QSYS2.USER_SPACE_INFO pour avoir les informations du user space

SELECT * FROM TABLE(QSYS2.USER_SPACE_INFO(
USER_SPACE => ‘USRSPC1’,
USER_SPACE_LIBRARY => ‘GDATA’));

mais aussi pour modifier


QSYS2.CHANGE_USER_SPACE_ATTRIBUTES()

vous pouvez facilement intégrer ces requêtes dans du RPGLE par exemple