TCP/IP : NAT et fonctions de filtrage sur IP.

BoTTom |    Changer de couleur
 
 la version 4.30 permet de configurer un AS/400 comme firewall de premier
   niveau, à condition d'avoir DEUX cartes réseau.
 
 ceci en deux étapes :
 
 1/ NAT va permettre de masquer le réseau interne et va faire jouer à l'AS
     le rôle d'un routeur.
 
 2/ IP-FILTERING va en complément, filtrer au niveau des paquets IP.
 
 
NAT
---
 
cette fonctionnalité peut s'utiliser de deux manières
 
 a/ 1 adresse-ip-lan <--> 1 adresse-ip-externe
 
 il s'agit ici de connecter deux LAN n'ayant pas la même plage d'adresse
 
 (on parle de "masquerade adresses")


|    Changer de couleur
 
 a/ x adresses-ip-lan <--> 1 adresse-ip-externe
 
    dans ce cas de figure, toutes les adresses ip locales sont transformées
     en une seule adresse IP (probablement publique), la distinction se fait
     sur le port source.
 
 exemple (celui de VOLUBIS)
 
 soit deux cartes LAN, sur deux lignes ethernet (INTRANET et INTERNET)
 
 INTRANET a l'adresse 10.x.x.x et tous les PC locaux sont en classe A
 
 INTERNET a l'adresse 212.155.67.210 (c'est l'adresse de www.volubis.fr)
 
on veut masquer toutes les adresses locales (10.*) derriere 212.155.67.210
 ce qui permet aux pc de sortir sur internet en utilisant la ligne d'accès
 au web (LS OU NUMERIS).
 
en effet les requêtes ne peuvent pas sortir avec l'adresse de classe 10
(c'est une adresse privée non routable), et il est impossible d'attribuer
à chaque pc une adresse officelle


|    Changer de couleur
 sous operation navigator vous allez lancer la sécurité IP
 
  + branche "réseau"
 
(client access V3r2m0, vous cliquez bouton droit sur TCP/IP)
(client access express, vous avez une option "sécurité IP")
 
 1/ définir des noms symboliques d'adresses.
 
    NAT ne travaille qu'avec des noms symboliques
 
   une adresse symbolique peut représenter :
 
       - un nom d'interface (PPP uniquement)
 
       - une série d'adresse (vous fournissez la liste)
 
       - une plage d'adressess (vous fournissez début/fin)
 
  vous indiquez s'il s'agit d'un réseau local (TRUSTED)
                             de votre DMZ     (BORDER)
                             d'INTERNET       (UNTRUSTED)



|    Changer de couleur
 
 2/ définir les correspondances d'adresses
 
    + Mapped Adresses  (1 pour 1)
 
    + Hidden Adresses  ( x pour 1)
 
 dans notre exemple, il faut cacher INTRANET (de 10.2.1.1 à 10.3.254.254)
                     derrière INTERNET (212.155.67.210)
 
 Attention, vous ne pouvez pas utiliser NAT sur une seule carte !
 
 la carte en question ne "voit" plus les adresses locales,
 
    vous ne pouvez donc plus accèder à votre AS/400, donc plus enlever
    les règles NAT.Il ne vous reste qu'une solution :
 
    RMVTCPTBL TBL(*ALL | *NAT | *IPFTR)
 
  EN V7 + SI47941, nouvelle commande
 
    LODIPFTR OPTION(*LOAD | *UNLOAD)



|    Changer de couleur
 
 voilà, NAT doit fonctionner !
 
 vous souhaiterez probablement définir en plus des filtres.
 
   qui peut entrer, sortir et pour quel service ?
 
 les filtres peuvent être définis au niveau de votre routeur
 
 ou de vos routeurs (cas d'une DMZ) ou de votre FIREWALL.
 
 
 il s'agit probablement d'une configuration de type :
 
                                  serveur
                                    Web
     !        !         !    __      !        __
   -------------------------(__)-------------(__)----->Internet
         !         !
 
    réseau local                Zone exposée
                               (démilitarisée)


|    Changer de couleur
 
 si votre AS/400 serveur Web ne contient pas de données ultra-sensibles
 
    vous pouvez utiliser le filtrage IP pour en faire un "mini-FIREWALL"
 
Attention suivant les ports ouverts, le risque n'est pas nul :
 
  1/ d'intrustion (TELNET, FTP, SMTP)
 
  2/ de saturation CPU (PING et HTTP)
 
  3/ de saturation disque (SMTP)
 
 
 
Donc, à vous de voir ...
 
 
 ceci étant dit, le filtrage IP obéit aux règles suivantes :
 
 
 


|    Changer de couleur
 
 Si vous commencer à mettre des filtres (au moins un)
 
 ENLEVER TOUT PROTOCOLE NON pur IP, de la carte exposée
 
   SNA
   IPX
   etc ...
 
 TOUT CE QUI n'est pas EXPLICITEMENT autorisé est INTERDIT (automatiquement)
 
 VOUS DEVEZ prévoir les services autorisés en entrée/sortie.
 
      + prenons le WEB, naturellment 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)
 


|    Changer de couleur
 
 il est conseillé, donc, de COMMENCER vos filtres par :
 
 direction  !  port-src  ! port-cible ! protocole !  accord/refus  !
 ------------------------------------------------------------------!
  entrée    !     *      !  >1023     ! tcp/start !    refus       !
 
 
 en effet , le filtrage IP lit vos règles dans L'ORDRE DE SAISIE.
 
 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, ...)
 


|    Changer de couleur
 
 quelques cas particuliers :
 
 messagerie :
 
 - SMTP est utilisé pour envoi/réception de messages
 
 - POP3 pour interrogation de la boite aux lettres
 
  vous pourriez très bien n'autoriser POP3 que sur le LAN
 
(sauf si vous avez des itinérants devant relever leur boite aux lettres
 de l'extérieur, en passant par INTERNET)
 
 FTP :
 
 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
 
 


|    Changer de couleur
 
 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.
 
 
 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, ...
 


|    Changer de couleur
 
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


|    Changer de couleur
 
 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.



|    Changer de couleur
 
 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/.
 








©AF400