Pause-Café Volubis

pause-café

rendez-vous technique
Pause-Café est une réunion technique
destinée aux informaticiens sur plateforme IBM i.
Elle a lieu 3 à 4 fois par an : en Bretagne et sur internet.

Pause-café #22

Janvier 2001

Politique de sécurité et AS/400


valeurs système liées à la sécurité :

 

  • QMAXSIGN, QMAXSIGNACN

indiquent le nombre de tentatives d'ouverture de session infructueuses admise et l'action à entreprendre :

    • désactiver l'unité (peu intéressant avec TELNET)
    • désactiver le profil
    • les deux

     

  • QDSPSGNINF

affiche des informations sur la dernière ouverture de session et le nombre de tentatives infructueuses :

    • particulièrement intéressant pour QSECOFR
    •  

  • QLMTSECOFR
    indique si un profil de type *SECOFR(*ALLOBJ ou *SERVICE) peut se signer sur n'importe quel écran :

    • oui (valeur 0) : n'importe qui peut être QSECOFR (s'il trouve le mot de passe)
    • non (valeur 1) il faut des droits (*CHANGE) sur l'unité pour pouvoir se signer QSECOFR ce qui ajoute à la sécurité logique (mot de passe) une sécurité physique (il faut pouvoir entrer dans la salle machine, ...)

     

       

  • QINACTITV, QINATCMSGQ
    indique un temps d'inactivé maxi (sans E/S écran), ce paramètre est reconnu par TELNET depuis la V4R20

    • si vous indiqué un temps maxi (l'assistant IBM recommande 15 mn), indiquez alors la valeur *DSCJOB pour la val.système QINACTMSGQ et pensez à paramètrer le temps maxi ou un job peut-être déconnecté à 60 Mn par exemple.

     

  • QPWDEXPITV et tout ce qui a trait à la validité d'un mot de passe
    indique une durée de validité d'un mot de passe.

    • Une bonne politique de mot de passe est reconnu par tous les responsables sécurité comme la méthode encore la plus sure. Sachant qu'une bonne politique de sécurité n'est bonne que si elle est acceptée dons acceptable.
      • Un délai de 60 ou 90 jours semble raisonnable
        (moins c'est difficile, au delà ATTENTION aux "prêts" de mot de passe)
      • on peut raisonnablement imposer 5 ou 6 c. (l'idéal c'est 8)
      • on doit imposer le mot de passe différent des 4 ou 6 précédents (suivant le délai)
      • on peut interdire certains caractères, imposer des chiffres, empêcher des caractères identiques à la même place lors du changement, ....

    • pensez à l'utilitaire Sécurity Toolkit qui permet d'analyser les profils ayant un mort de passe par défaut (cde ANZDFTPWD) et plein d'autres listes très utiles (GO SECTOOLS)

     

  • QRMTIPL

    indique si l'on accepte un IPL à distance (un simple appel téléphonique suffit)

     

  • QALWOBJRST
    indique si des objets sensibles peuvent être restaurés

    • *ALWLSYSSTS : Des objets à l'état système peuvent être restaurés
    • *ALWPGMADP : des pgms adoptants les droits du propriétaires peuvent être restaurés
    • *ALWPTF : des PTFs peuvent être restaurées

    • *ALL toutes les options précédents sont admises (val. par défaut)
    • *NONE aucune option n'est admise (val. conseillée, il faut cependant penser à modifier cette valeur système avant tout changement de version et installation de cumulative)

     

  • QRMTSRVATR
    indique si des opération de service à distance sont admises

    • cela avec le processus d'identification des incidents (ANZPRB)

     

  • QUSEADPAUT
    indique la liste des personnes habilitées à créer des programmes en *OWNER

    • *NONE : toute personne peut créer des programmes avec le paramètre USEADPAUT(*YES)
    • un-nom-de-liste d'autorisation : seuls les profils ayant au moins les doits *USE dans cette liste peuvent créer de tels programmes

    Audit sécurité

        
    
     Le système propose depuis la V2 une fonction d'audit (via un journal)             permettant de garder trace de certaines actions utilisateur.                                                                                  Depuis la V2R30 il est possible de paramétrer cette fonction                                                                                                 ...   . par objet                                                                                          définir les actions entreprises sur cet objet à tracer
                    *NONE   aucune trace                 *CHANGE les modifications                 *ALL    toute utilisation                 *USRPRF suivant le profil utilisant cet objet <---------   . par profil                                                         !                                                                        !         définir le niveau de trace pour les objets ayant *USRPRF <------    Fin                                                                                          définir les actions système à tracer *NONE = suivant QAUDLVL                                                          *xxxx = action à tracer           

                                                                
      valeur système QAUDCTL                   ( *NONE = aucune action de trace)
                                   et/ou
             trace/objet             !           trace/actions du profil            
              *OBJAUD                !            *AUDLVL 
                 !                   !               !                             
                 !                   !      ------------------------------          
                 !                   !      !                            !       ...
            CHGOBJAUD OBJ()          !      !                            !
                                     !      !                            !          
               OBJAUD(*NONE)  =rien  !      !                            !
                     (*CHANGE)=modifs!   CHGUSRAUD USRPRF() !           QAUDLVL 
                     (*ALL)   =tout  !                      !           (sysval)
                     (*USRPRF)= <----!--> OBJAUD(*NONE)     !
                                     !          (*CHANGE)   ! actions à tracer
                                     !          (*ALL)      !  pour tous les
     *USRPRF = suivant indiquations  !                      ! profils du système
                liées au profil.     ! !--AUDLVL(*xxxx)     !
                                     ! !                    !     ^             Fin 
                                     ! ->  actions à tracer !     !                
                                     ! (en plus de QAUDLVL)-!-----!                 
                                     ! pour ce profil       !                      


      Pour les objets :
           La valeur par défaut est *NONE
           Vous pouvez forcer une valeur pour les objets sensibles           (certaines commandes système par exemple)
           ou bien indiquer que cela est fonction du profil
              DANS CE CAS UNIQUEMENT on tiendra compte du paramètre OBJAUD            de la commande CHGUSRAUD.
     Pour les actions utilisateur :
           La valeur système prime avant toutes choses. (dft = *NONE)
           Les actions à auditer indiquées au niveau de l'utilisateur sont         considérées en plus.
           SI QAUDLVL = *CREATE et profil P1 = *DELETE, le système audit toutes         les créations ET pour P1 les créations et les suppressions.

     .............................................................................. 
     :               Audit des actions utilisateur (AUDLVL) - Aide                : 
     :                                                                            : 
     :                                                                            : 
     :  *NONE                                                                     : 
     :      Aucun niveau d'audit n'est indiqué. Le niveau d'audit pour cet        : 
     :      utilisateur provient de la valeur système QAUDLVL.                    : 
     :                                                                            : 
     :  *CMD                                                                      : 
     :      Les chaînes de commande CL, les commandes de contrôle opérateur et    : 
     :      les procédures de l'environnement 36 sont consignées pour cet         : 
     :      utilisateur.                                                          : 
     :                                                                            : 
     :  *CREATE                                                                   : 
     :      Des postes d'audit sont envoyés lorsque des objets sont créés par     : 
     :      cet utilisateur.                                                      : 
     :                                                                            : 
     :  *DELETE                                                                   : 
     :      Des postes d'audit sont envoyés lorsque des objets sont supprimés     : 
     :      par cet utilisateur.                                                  : 
     :                                                                            : 
     :                                                                            : 

     :                                                                            : 
     :  *JOBDTA                                                                   : 
     :      Audit de toutes les données de démarrage et d'arrêt de travail pour   : 
     :      cet utilisateur.                                                      : 
     :                                                                            : 
     :  *OBJMGT                                                                   : 
     :      Audit des modifications de gestion des objets effectuées par cet      : 
     :      utilisateur (un déplacement ou un changement de nom par exemple).     : 
     :                                                                            : 
     :  *OFCSRV                                                                   : 
     :      Audit des modifications des services bureautiques effectuées par cet  : 
     :      utilisateur (sur le répertoire du système ou l'utilisation du         : 
     :      courrier OfficeVision/400 par exemple).                               : 
     :                                                                            : 
     :  *PGMADP                                                                   : 
     :      Audit des droits pour cet utilisateur obtenus via une adoption de     : 
     :      programme.                                                            : 
     :                                                                            : 
     :  *SAVRST                                                                   : 
     :      Audit des actions de sauvegarde et de restauration effectuées par     : 
     :      cet utilisateur.                                                      : 
     :                                                                            : 

     :                                                                            : 
     :                                                                            : 
     :  *SECURITY                                                                 : 
     :      Audit des modifications de sécurité effectuées par cet utilisateur.   : 
     :                                                                            : 
     :  *SERVICE                                                                  : 
     :      Audit de l'utilisation des outils de maintenance du système (SST)     : 
     :      par cet utilisateur.                                                  : 
     :                                                                            : 
     :  *SPLFDTA                                                                  : 
     :      Audit des opérations sur les fichiers spoule effectuées par cet       : 
     :      utilisateur.                                                          : 
     :                                                                            : 
     :  *SYSMGT                                                                   : 
     :      Audit de l'utilisation des fonctions de gestion du système par cet    : 
     :      utilisateur.                                                          : 
     .............................................................................. 
    
     Mise en place 1/ création d'un récepteur de journal                2/ création d'un journal QAUDJRN dans QSYS                3/ renseignement des valeurs système QAUDCTL et QAUDLVL                4/ CHGOBJAUD et CHGUSRAUD , puis DSPJRN pour analyse ....

                        Créer un récepteur de journal (CRTJRNRCV)  
    
     Indiquez vos choix, puis appuyez sur ENTREE. 
     Récepteur de journal . . . . . .    AUDITRCV      Nom    Bibliothèque . . . . . . . . .     *CURLIB     Nom, *CURLIB  ID pool mémoire secondaire . . .   *LIBASP       1-16, *LIBASP  Seuil d'alerte du récepteur  . .   *NONE         1-1919999, *NONE  Texte 'descriptif' . . . . . . .   Récepteur pour journal d'audit        








                                                                                Fin   F3=Exit   F4=Invite   F5=Réafficher   F10=Autres paramètres   F12=Annuler  F13=Mode d'emploi invite              F24=Autres touches                       

                                Créer un journal (CRTJRN)          
    
     Indiquez vos choix, puis appuyez sur ENTREE. 
     Journal  . . . . . . . . . . . .    QAUDJRN       Nom    Bibliothèque . . . . . . . . .     QSYS        Nom, *CURLIB  Récepteur de journal . . . . . .    AUDITRCV      Nom    Bibliothèque . . . . . . . . .     *LIBL       Nom, *LIBL, *CURLIB                                                                                          *LIBL         ID pool mémoire secondaire . . .   *LIBASP       1-16, *LIBASP  File att msg seuil d'alerte  . .   QSYSOPR       Nom    Bibliothèque . . . . . . . . .     *LIBL       Nom, *LIBL, *CURLIB  Texte 'descriptif' . . . . . . .   journal d'audit        



                                                                                Fin   F3=Exit   F4=Invite   F5=Réafficher   F10=Autres paramètres   F12=Annuler  F13=Mode d'emploi invite              F24=Autres touches                       

                              Gestion des valeurs système 
                                                                Système:   S4409790 
     Afficher à partir de . .                Premiers caractères valeur système 
     Sous-ensemble par type     *SEC         F4 pour liste 
    
     Indiquez vos options, puis appuyez sur ENTREE.     2=Modifier   5=Afficher 
             Valeur   Option  système     Type     Description           QALWUSRDMN  *SEC     Admission objets domaine utilisateur dans biblio      5     QAUDCTL     *SEC     Contrôle d'audit                                            QAUDENDACN  *SEC     Action d'arrêt d'audit                                      QAUDFRCLVL  *SEC     Forçage des données d'audit                                 QAUDLVL     *SEC     Niveau d'audit de sécurité                                  QCRTAUT     *SEC     Droits publics par défaut pour objets créés                 QCRTOBJAUD  *SEC     Audit pour objets créés                                                                                                A suivre...   Commande   ===>                                                                             F3=Exit   F4=Invite   F5=Réafficher   F9=Rappel   F11=Noms seuls   F12=Annuler 

                                     Valeur système 
    
     Valeur système . . . . :   QAUDCTL      Description  . . . . . :   Contrôle d'audit                                   

     Contrôle   audit   *OBJAUD    (objet par objet)  *AUDLVL    (profil par profil)                                       




                                                                                Fin   Appuyez sur ENTREE pour continuer. 
     F3=Exit   F12=Annuler 

                              Gestion des valeurs système 
                                                                Système:   S4409790 
     Afficher à partir de . .                Premiers caractères valeur système 
     Sous-ensemble par type     *SEC         F4 pour liste 
    
     Indiquez vos options, puis appuyez sur ENTREE.     2=Modifier   5=Afficher 
             Valeur   Option  système     Type     Description           QALWUSRDMN  *SEC     Admission objets domaine utilisateur dans biblio            QAUDCTL     *SEC     Contrôle d'audit                                            QAUDENDACN  *SEC     Action d'arrêt d'audit                                      QAUDFRCLVL  *SEC     Forçage des données d'audit                           5     QAUDLVL     *SEC     Niveau d'audit de sécurité                                  QCRTAUT     *SEC     Droits publics par défaut pour objets créés                 QCRTOBJAUD  *SEC     Audit pour objets créés                                                                                                A suivre...   Commande   ===>                                                                             F3=Exit   F4=Invite   F5=Réafficher   F9=Rappel   F11=Noms seuls   F12=Annuler 

                                     Valeur système 
    
     Valeur système . . . . :   QAUDLVL      Description  . . . . . :   Niveau d'audit de sécurité                         

     Options                                  Options   audit                                    audit   *AUTFAIL                                 *SERVICE     *CREATE                                  *SPLFDTA     *DELETE                                  *SYSMGT      *JOBDTA                                               *OBJMGT                                               *OFCSRV      *PGMADP      *PGMFAIL     *PRTDTA      *SAVRST      *SECURITY                                                                               Fin   Appuyez sur ENTREE pour continuer.   F3=Exit   F12=Annuler 

                              Gestion des valeurs système 
                                                                Système:   S4409790 
     Afficher à partir de . .                Premiers caractères valeur système 
     Sous-ensemble par type     *SEC         F4 pour liste 
    
     Indiquez vos options, puis appuyez sur ENTREE.     2=Modifier   5=Afficher 
             Valeur   Option  système     Type     Description           QALWUSRDMN  *SEC     Admission objets domaine utilisateur dans biblio            QAUDCTL     *SEC     Contrôle d'audit                                            QAUDENDACN  *SEC     Action d'arrêt d'audit                                      QAUDFRCLVL  *SEC     Forçage des données d'audit                                 QAUDLVL     *SEC     Niveau d'audit de sécurité                                  QCRTAUT     *SEC     Droits publics par défaut pour objets créés           5     QCRTOBJAUD  *SEC     Audit pour objets créés                                                                                                A suivre...   Commande   ===>                                                                             F3=Exit   F4=Invite   F5=Réafficher   F9=Rappel   F11=Noms seuls   F12=Annuler 

                                     Valeur système 
    
     Valeur système . . . . :   QCRTOBJAUD   Description  . . . . . :   Audit pour objets créés                            

     Option d'audit . . . . . . . :   *NONE          *NONE                                                   *USRPRF                                                   *CHANGE                                                   *ALL 








     Appuyez sur ENTREE pour continuer. 
     F3=Exit   F12=Annuler 

                          Modifier l'audit d'objet (CHGOBJAUD)     
    
     Indiquez vos choix, puis appuyez sur ENTREE. 
     Objet  . . . . . . . . . . . . .    *all          Nom, générique*, *ALL    Bibliothèque . . . . . . . . .     af400       Nom, *LIBL, *USRLIBL...  Type d'objet . . . . . . . . . .    *all          *ALL, *ALRTBL, *AUTHLR...  Valeur d'audit d'objet . . . . .    *usrprf       *NONE, *USRPRF, *CHANGE, *ALL  









                                                                                Fin   F3=Exit   F4=Invite   F5=Réafficher   F12=Annuler   F13=Mode d'emploi invite  F24=Autres touches                                                             

                        Modifier audit d'utilisateur (CHGUSRAUD)   
    
     Indiquez vos choix, puis appuyez sur ENTREE. 
     Profil utilisateur . . . . . . .    TOTO         Nom               + si autres valeurs                   Valeur d'audit d'objet . . . . .             <<< *SAME, *NONE, *CHANGE, *ALL  Audit des actions utilisateur  .             <<< *SAME, *NONE, *CMD...               + si autres valeurs                   








                                                                                Fin   F3=Exit   F4=Invite   F5=Réafficher   F12=Annuler   F13=Mode d'emploi invite  F24=Autres touches                                                             

     


    en règle générale ne démarrer que ce qui est utile

  • pour tous les services SNA voyez CHGNETNA , particulèrement :
    • JOBACN
    • DDMACC

     

  • pour IP soyez vigilant et ne démarrez pas (ou sous contrôle) :
    • ROUTED si vous ne vous en servez pas (protocole RIP)
    • REXECD (comandes à distance)
    • DDM sur IP qui lui aussi permet de passer des commandes à distance
      • Surtout ne démarrer par DDM sur IP avec le paramètre PWDRQD(*NO) sur la commande CHGDDMTCPA
    • INETD (le serveur qui démarre ECHO, DAYTIME et autres services assez inutiles sur AS)
    • Attention avec NFS qui utilise les RPC (remote procédures call) très prisées des HACKERS si vous êtes sur le NET

  • avec client access express, vous pouvez utiliser l'administration d'application :

Vous définissez fonction de client acces (Operation navigator compris) par fonction , qui a le droit de les utiliser.

et cela à deux niveaux, Premièrement, les droits par défaut :

vous indiquez 1/ pour operation navigator

2/ pour les applications client access, les droits par défaut

pour indiquer des droits individuels, prenez l'option "utilisateurs et groupe", pour l'utilisateur concerné, choisissez "propriété".

puis fonctions

 

Indiquez alors quelles sont les fonctions pour lesquelles, cet utilisateur ne respecte pas la règle générale.

 

Si vous souhaitez aller plus loin, voyez les points d'exit

 Registration Facility 

 Nouvelles fonction de l'OS permettant d'associer à une fonction logiciel   un pgm de contrôle entreprise chargé de valider une action.

 DEUX NOTIONS :

 

- Exit POINT : association d'un point d'appel de programme à une                     action logiciel.
                   ce point d'appel est nommé sur 20 caractères.
      Exemple : QIBM_QPWSF_File_Serveur la fonction serveur de fichier                   de Client/Access est reconnue, il est possible de lui                   associer un pgm de validation.

 

- Exit program : programme associé à un point d'exit.                        l'écriture est à votre charge

           il reçoit deux paramètres               1/ 1 alpha renvoyé par le programme '0' = refus                                                   '1' = validation               2/ données reçues (description suivant le format)

    - Commandes : WRKREGINF  (ADDEXITPGM / RMVEXITPGM)


                              Attributs du réseau 
                                                            Système:   S4409790 
 Nombre maximal d'étapes  . . . . . . . . . . . . :   16  
 Accès aux demandes DDM . . . . . . . . . . . . . :   *OBJAUT    
 Accès aux demandes Client Access . . . . . . . . :   *REGFAC  <--
 Type du réseau RNIS par défaut . . . . . . . . . :                
 Liste de connexion RNIS par défaut . . . . . . . :   QDCCNNLANY 
 Support ANYNET admis . . . . . . . . . . . . . . :   *NO  
 Domaine du serveur de réseau . . . . . . . . . . :   S4409790 

 ########################################################################   #                                                                      #     #  Pour utiliser ces concepts avec Client/Access vous devez saisir :   #    #       CHGNETA PCSACC(*REGFAC)                                        #     #                                                                      #   #  ce qui permet d'avoir un pgm de contrôle par fonction               #     #   (et non un pgm général comme en V2R30)                             #   #                                                                      #   ########################################################################   Fin   Appuyez sur ENTREE pour continuer. 
 F3=Exit   F12=Annuler 

                     Work with Registration Info (WRKREGINF)   

 Indiquez vos choix, puis appuyez sur ENTREE. 
 Exit point . . . . . . . . . . . EXITPNT        *REGISTERED                 Exit point format  . . . . . . . FORMAT         *ALL       Output . . . . . . . . . . . . . OUTPUT         *      


 #########################################################################   #                                                                       #   # Puis utilisez WRKREGINF qui affiche tous les points d'exit définis.   #   #                                                                       #   ######################################################################### 



                                                                            Fin   F3=Exit   F4=Invite   F5=Réafficher   F12=Annuler   F13=Mode d'emploi invite  F24=Autres touches                                                             


                       Work with Registration Information 

 Type options, press Enter.     5=Display exit point   8=Work with exit programs   <-- 
                            Exit        Exit                  Point   Opt  Point                 Format    Registered  Text        QIBM_QHQ_DTAQ         DTAQ0100     *YES     Original Data Queue Server           QIBM_QLZP_LICENSE     LICM0100     *YES     Original License Mgmt Server         QIBM_QMF_MESSAGE      MESS0100     *YES     Original Message Server              QIBM_QNPS_ENTRY       ENTR0100     *YES     Network Print Server - entry         QIBM_QNPS_SPLF        SPLF0100     *YES     Network Print Server - spool         QIBM_QOE_OV_USR_ADM   UADM0100     *YES     OfficeVision/400 Administrati        QIBM_QOK_SUPPLIER     SUPL0100     *YES     System Directory Supplier Exi        QIBM_QOK_VERIFY       VRFY0100     *YES     System Directory Verify Exit     8   QIBM_QPWFS_FILE_SERV  PWFS0100     *YES     File Server                          QIBM_QRQ_SQL          RSQL0100     *YES     Original Remote SQL Server                                                                         A suivre...   Command   ===>                                                                             F3=Exit   F4=Prompt   F9=Retrieve   F12=Cancel 

                            Work with Exit Programs 

 Exit point:   QIBM_QPWFS_FILE_SERV     Format:   PWFS0100 
 Type options, press Enter.     1=Add   4=Remove   5=Display   10=Replace 
               Exit               Program     Exit   Opt          Number     Program        Library   1                                                 
   (No exit programs found.)                                                      ##########################################################################   #  #  # Sur cet écran 1 = ADDEXITPGM : ajout d'un pgm d'exit                   #    #               4 = RMVEXITPGM : retrait d'un pgm d'exit #  #  #  ########################################################################## Fin   Command   ===>                                                                             F3=Exit   F4=Prompt   F5=Refresh   F9=Retrieve   F12=Cancel 


 Quelques précisions :
  un point d'exit peut avoir plusieurs "formats".
     il s'agit de la définition de plusieurs actions pouvant être réalisées       par la même fonction.
      exemple du point d'exit QIBM_QZDA_NDB1 serveur de données (ODBC)
      format ZDAD0100 : gestion de la base (CREATE, DROP, etc...)              ZDAD0200 : Gestion de la liste de bibliothèques (ADDLIBLE)
     chaque format définit la structure des données envoyées au pgm.
     pour connaitre le détail d'un format voir la documentation
     SC41-374 : "OS/400 server concept and administration "

  Ci-dessous, un exemple :


PGM PARM(&APPLI   &WUSER &USERLG + 
         &WPWD    &PWDLG         + 
         &WADR    &ADRLG         + 
         &CODERETOUR             + 
         &PROFIL  &PASSWORD &CURLIB) 

DCL VAR(&APPLI)  TYPE(*CHAR) LEN(4) 
DCL VAR(&WUSER)  TYPE(*CHAR) LEN(50) 
DCL VAR(&USERLG) TYPE(*CHAR) LEN(4) 
DCL VAR(&WPWD)   TYPE(*CHAR) LEN(50) 
DCL VAR(&PWDLG)  TYPE(*CHAR) LEN(4) 
DCL VAR(&WADR)   TYPE(*CHAR) LEN(50)
DCL VAR(&ADRLG)  TYPE(*CHAR) LEN(4) 
DCL VAR(&CODERETOUR) TYPE(*CHAR) LEN(4)
DCL VAR(&PROFIL) TYPE(*CHAR) LEN(10) 
DCL VAR(&PASSWORD) TYPE(*CHAR) LEN(10)
DCL VAR(&CURLIB) TYPE(*CHAR) LEN(10) 
DCL VAR(&USER)   TYPE(*CHAR) LEN(10)
DCL VAR(&POS)    TYPE(*DEC) LEN(3 0) 

 /*********************************************************************/
 /*QIBM_QTMF_SVR_LOGON : serveur FTP                                  */
 /*                                                                   */
 /*Format TCPL0100 :  - APPLICATION     1 = FTP                       */
 /*                   - IDENTIFIANT                                   */
 /*                   - LG DE IDENTIFIANT                             */
 /*                   - MOT DEPASSE                                   */
 /*                   - LG DE MOT DE PASSE                            */
 /*                   - ADRESSE IP                                    */
 /*                   - LG DE ADRESSE IP                              */
 /*  EN RETOUR                                                        */
 /*                   - CODE RETOUR     0 = 1 REJET                   */
 /*                                     >0 = OK                       */
 /*                   - PROFIL A UTILISER                             */
 /*                   - MOT DE PASSE A UTILISER                       */
 /*                   - CURLIB A UTILISER                             */
 /*                                                                   */
 /*********************************************************************/
 /*  EXTRACTION                                                       */
              CHGVAR &POS %BIN(&USERLG)                                 
              CHGVAR &USER %SST(&WUSER 1 &POS)                          
 /*  TEST DU PROFIL                                                   */

                IF (&USER = 'QUSER') (DO)                                    
                   CHGVAR     %bin(&CODERETOUR) 0                                
                   SNDMSG     MSG('FTP : connexion QUSER refusée !') +       
                               TOUSR(*SYSOPR)                                
                ENDDO                                                        
                ELSE                 (CHGVAR %bin(&CODERETOUR) 1)            
                ENDPGM                                                       

 

Dernier point le filtrage IP permettant de définit (adresse IP par adresse IP) qui a le droit d'utiliser ceratins services IP

(le test se fait sur le n° de port)

 

ATTENTION

TOUT CE QUI n'est pas EXPLICITEMENT autorisé est INTERDIT (automatiquement)

Le filtrage IP lit vos règles dans L'ORDRE DE SAISIE.

(si vous êtes trompé, passez à la console RMVTCPTBL *IPFTR qui enlève tous les filtres)

 


 VOUS DEVEZ prévoir les services autorisés en entrée/sortie.


      + prenons le WEB, naturellement tout le monde pense à autoriser         en sortie, les  ports source > 1023 (client) vers 80 (serveur www).


        mais il faut aussi prévoir en entrée (les réponses) de 80 vers > à 1023.


 pour cela on peut tester sur TCP, s'il s'agit de la première trame        (demande de connexion), ou d'une autre trame (dialogue déja établit)



 Si vous êtes connectés directement sur le NET, il est conseillé, de COMMENCER vos filtres par :
 direction  !  port-src  ! port-cible ! protocole !  accord/refus  !  ------------------------------------------------------------------!   entrée    !     *      !  >1023     ! tcp/start !    refus       !
ATTENTION, client access utilise les ports 6000 pour ses serveurs en IP.   Si vous acceptez une connexion sur un port > 1023, vous acceptez de fait   les transferts de fichiers, l'utilisation d'operation navigator, ...
   ce qui permet de placer ensuite :
 direction  !  port-src  ! port-cible ! protocole !  accord/refus  !  ------------------------------------------------------------------!   entrée    !     *      !  >1023     ! tcp/start !    refus       !   sortie    !  >1023     !    80      ! tcp       !    accord      !   entrée    !    80      !  >1023     ! tcp       !    accord      !
 et ainsi de suite pour tous les services que vous souhaitez autoriser
 (SMTP, TELNET, DNS, ICMP (Ping et tracert), HTTPS, ...)


FTP est un cas plus complèxe à gérer.

 1/ il utilise deux ports 21 pour le mode commande                           20 pour le transfert de données  2/ FTP  traditionellement utilise le scénario suivant :
    le client se connecte (port > 1023) sur le port 21
 on peut gérer par :
 direction  !  port-src  ! port-cible ! protocole !  accord/refus  !  ------------------------------------------------------------------!   sortie    !  >1023     !    21      ! tcp       !    accord      !   entrée    !    21      !  >1023     ! tcp       !    accord      !
    mais le client s'alloue un deuxième n° de port alléatoire (> 1023) et      demande au serveur de LE contacter sur ce port (commande PORT).
    cas typique d'une connexion en entrée sur un port > 1023.
 


la seule solution acceptable est d'utiliser un FTP en mode passif
  - le début de connexion est le même (sur le port 21)
  - mais le client utilise la commande FTP PASV (et non port) demandant au      serveur de choisir un n° de port aléatoire (> 1023) pour le canal data.
  - c'est alors le client qui initialisera cette deuxieme connexion.

 L'AS/400 essai le mode passif, s'il recoit une erreur, il envoi alors la    commande PORT
 DNS   :
 + port d'écoute 53, port client > 1023
         en fait la règle est la suivante :
         source >1023, cible = 53 ==> client vers serveur (et inversement)          source = 53 , cible = 53 ==> serveur DNS à serveur DNS


 Nous avons implémenté les règles suivantes :
 direction  !  port-src  ! port-cible ! protocole !  accord/refus  !  ------------------------------------------------------------------!--------   entrée    !     *      !  >1023     ! tcp/start !    refus       !   sortie    !  >1023     !    80      ! tcp       !    accord      ! http   entrée    !    80      !  >1023     ! tcp       !    accord      !   sortie    !  >1023     !    443     ! tcp       !    accord      ! https   entrée    !    443     !  >1023     ! tcp       !    accord      !   sortie    !  >1023     !    25      ! tcp       !    accord      ! smtp   entrée    !    25      !  >1023     ! tcp       !    accord      !     *       !    53      !    53      ! udp       !    accord      !dns/dns   sortie    !  >1023     !    53      ! udp       !    accord      !host/dns   entrée    !    53      !  >1023     ! udp       !    accord      !   sortie    !  >1023     !    21      ! tcp       !    accord      !ftp/cde   entrée    !    21      !  >1023     ! tcp       !    accord      !   sortie    !  >1023     !  >1023     ! tcp       !    accord      !ftp/data   entrée    !  >1023     !  >1023     ! tcp       !    accord      !ftp/data     *       !    *       !    *       ! icmp      !    accord      ! ping
* = colonne non testée.


 pour implémenter ces règles :
 a/ (optionnel) attribuez des noms symboliques aux services
     + indiquez un protocole        port source / port cible pour TCP
 b/ définissez des règles, avec les élements suivants
     - un nom symbolique à la règle      - une direction      - des adresses (entrante/sortante)      - journalisation oui/non      - un service : en indiquant + soit un nom symbolique ( vu en a/ )                                  + soit un protocole                                         (port source / port cible)
 c/ attibuez à une interface des filtres
     en indiquant, dans le bon ordre , les noms des règles vues en b/.



Nouveautés SMTP et messagerie en V4R50




 Apport de la V4R50 en ce qui concerne SMTP
 (certaines de ces fonctionnalités sont disponibles en V4R40 vai PTF)

Utilisation d'un FIREWALL :

 indiquez MAILROUTEUR(adresse-ip) si vous utilisez un relai de messagerie            (host dans la DMZ qui retransmet les messages pour vous)

 indiquez aussi FIREWALL(*YES) si ce relai de messagerie est un FIREWALL

 ces paramètres sont obligatoire si vous utilisiez le FIREWALL sur IPCS.

 ces deux paramètres étaient déja disponibles en V4R40.



le paramètre RTYRMTSVR(*YES) est nouveau, il permet de demander à ce que  l'on réessaie de trouver le serveur si on ne le trouve pas la 1ère fois.
vous envoyez un message à info@volubis.fr
  et soit la DNS de volubis.fr, soit le serveur de messagerie ne répondent    pas, il est possible de réessayer plus tard.

les paramètres RTYMIN(), RTYHOUR() et RTYDAY() permettent d'indiquer le   nombre de tentatives.

 RTYMIN(3 5) indique que l'on réessaie 3 fois à 5 minutes d'intervalle.
 RTYHOUR(2 4) indique que l'in essaie deux fois à 4 heures d'intervalle   si RTYMIN a échoué.
 RTYDAY(2 2) indique un réessai au bout de deux jours (et deux fois) si   RTYMIN et RTYHOUR ont échoué.


le paramètre DIALSCD est nouveau, il permet de demander à ce que l'on     utilise une liaison sur RTC (PPP ou SLIP) afin de connecter le     serveur de messagerie local à une messagerie externe.
    (probablement chez un fournisseur d'accès)

DIALCDS(*no) désactive cette fonctionnalité
DIALSCD(*YES profilPPP 120)
 Indique que le planificateur de mail doit démarrer en même temps que SMTP   (il s'agit d'un JOB à part)
 il effectue alors un connexion RTC en utilisant "profilPPP" qui est le   nom d'un profil de connexion PPP (voir ce cours) et envoi tous les mails   en attente.
 puis il attend 2 heures (120 minutes) et recommence.



Une fonction anti-spaming a été ajoutée à SMTP en V4R50.
 pour l'implémenter il vous faut créer un fichier source :
  CRTSRCPF QUSRSYS/QTMSADRLST CCSID(500)
pour n'accepter que certaines adresse ip en origine SMTP
 créez un membre ACCEPTRLY 
puis par SEU ajoutez des lignes   "adresse-ip masque"
10.3.10.10 255.255.255.255    -> indique que seule l'origine 10.3.10.10                                   est admise.
10.3.0.0 255.255.0.0          -> indique que toute adresse commencant                                   par 10.3.* est admise.
 les lignes peuvent être multiples.



 pour refuser certaines adresse ip douteuses:
  créez un membre REJECTNN 
 puis par SEU ajoutez des lignes   "adresse-ip masque"
 192.168.0.0 255.255.0.0       -> indique que tout ce qui vient de 192.168*                                    doit être refusé.
 Bind IP :  Vous pouvez demander à SMTP de ne travailler que sur certaines adresses IP
 -pour les utilisateurs de DOMINO sur AS/400, celui-ci possédant déja    un serveur SMTP.
 -pour choisir avec quelle adresse IP les mails vont partir.   (cas du multihomming)
 il vous faut installer les PTFs  SF60787 + SF60764 pour une V4R40
                                  SF60827 + SF61136 pour une V4R50.


Pour la fonction serveur :
 créez une dataarea de 16 de long contenant l'adresse ip serveur
  CRTDTAARA QUSRSYS/QTMSSBNDIP type(*char) len(32) value('xxx.xxx.xxx.xxx')
le serveur SMTP n'écoute plus que sur cette adresse ip.    (les autres peuvent donc être utilisées par NOTES/DOMINO)
Pour la fonction cliente (émission) :
 créez une dataarea de 16 de long contenant l'adresse ip serveur
  CRTDTAARA QUSRSYS/QTMSCBNDIP type(*char) len(32) value('xxx.xxx.xxx.xxx')
le serveur SMTP utilise cette adresse ip lors des envois.
d'autre part, la paramètre PCTRTGCHR(*YES) demande à ce que SMTP (comme NOTES) considère  le caractère % comme un caractère de routage.


 et enfin une autre fonctionnalité est en cours d'écriture (APAR SA90552)
 le filtrage SMTP permettant d'éviter les virus majeurs (connus)
 il faut créer un fichier QUSRSYS/QATMVRSLST
 puis ajouter 4 membres :
  +  FTRORIGIN : permet de filtrer suivant l'émetteur.
  +  FTRSUBJECT: filtre sur le contenu du sujet.
  +  FTRFILNAM : sur le nom du fichier attaché.
  +  FTRTYPE   : sur le type/sous-type mime du fichier attaché.
une dataarea (QUSRSYS/QTMSVRSCHK) active ou non cette fonctionalité :
    - 'D' filtre et détruit le mail     - 'K' filtre et conserve (keep) le mail dans /QTCPTMM/FTRFILES     - 'N' ne filtre pas.                                       (à suivre...)

©AF400