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") |
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 |
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) |
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) |
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) |
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 : |
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) |
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, ...) |
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 |
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, ... |
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/. |