I/ FIREWALL, Préambule. ------------------------ Un Firewall est un élément matériel ou logiciel (souvent les deux) empéchant un intrus d'investir votre réseau quand ce dernier est connecté à un réseau publique (Internet par ex.) Quels sont les risques : + intrusion : on accède à vos ressources + refus de service : on empèche vos serveurs de fonctionner (surchage de connexions ou surcharge de mails) + vol d'informations : on accède à des données sensibles ou on détruit des données |
******************************** * Quelques principes de base * ******************************** 1/ le moindre privilège. il est très simple : Tout ce qui n'est pas explicitement autorisé est interdit. (donc , interdiction par défaut, absence de droits par défaut, etc...) 2/ position de panne sans danger un élément qui tombe (en panne ou sous les attaques) doit empécher le réseau de fonctionner et non laisser passer tout le monde. 3/ goulet d'étranglement le Firewall doit être le SEUL POINT DE PASSAGE (pas de modem sur les bureaux) ce qui nous ammenera aux PROXYs et serveurs SOCKS 4/ faire simple Il est souvent plus efficace de ne PAS démarrer certains services. |
II/ architectures de Firewall ----------------------------- 1/ Hôte à deux réseaux INTERNET | | | +----------+ | | il s'agit ici d'une machine à deux | | interfaces dont on a désactivé la | | fonction 'IP data Fowarding" +----------+ | | | réseau privé |
avantage : il suffit d'installer deux interfaces réseau sur le serveur WEB (il faudra néenmoins compléter cette architecture par un soft de filtrage . Firewall One de chez SUN, par exemple) inconvénient : toute la sécurité est concentrée sur une seule machine, tous les services aussi. |
2/ Hôte à écran INTERNET | | | | | °---------° ! ! routeur (filtrage de paquets) °---------° | | réseau ------------------------------------------------------ interne | | | +--------+ client client ! ! ! ! bastion +--------+ |
avantage : -ce filtrage est réalisé par un routeur nettement plus difficile à pirater qu'un ordinnateur -en cas d'attaque par refus de service seul le routeur est surchagé inconvénient : -si un intrus rentre sur votre serveur bastion, il n'existe plus de barrière avec votre réseau privé. |
3/ Sous réseau à écran (c'est l'architecture la plus répendue, et l'une des plus sures) INTERNET | | | +----------+ | ! ! Bastion | ! ! (serveur WWW) °---------° routeur ! ! ! ! externe +----------+ °---------° | réseau périphérique |----------------------------------------------------------- | °---------° routeur ! ! interne °---------° | | réseau ------------------------------------------------------ interne | | sécurisé client client |
les deux routeurs appliquent des règles de filtrage de paquets le bastion contient les services "publiques", www, smtp et DNS. sur le réseau privé, vous utiliserez des ADRESSES IP PRIVEES (non routables) comme la classe A 10, ou la classe C 192.168.x vous configurerez un autre nom de domaine que le domaine publique vous installerez donc probablement une autre DNS. le routeur "interne" peut être un host avec un logiciel de filtrage et de logging, plus un proxy ou serveur SOCKS (ou les deux). Avantages : -le fait d'avoir deux filtres multiplie la sécurité (si une règle est mal configurée) si un intrus "crack" votre premier filtre, il n'a accès qu'à un réseau de moindre importance (réseau périphérique). -Inconvénients : il est plus compliqué d'intégrer vos données entreprise à vos pages Web. |
variantes de cette architecture avec un FIREWALL IBM sur IPCS : INTERNET | +----------+ | ! ! Bastion | ! ! (serveur WWW) °---------° routeur ! ! ! ! externe +----------+ °---------° | réseau périphérique |----------------------------------------------------------- | +------+---------+ IPCS (fsiop) AS/400 + ! ! à deux interfaces contient: ! ! FIRE- ! > DNS externe DNS interne ! ! WALL ! > routeur de Mail serveurs FTP, ! +---------+ > Proxy et/ou Mail interne ! | ! serveur SOCKS ! AS400 | ! > Filtrage de paquets +-----------|----! réseau ---------------------------------|-------------------- interne | | sécurisé client client |
III/ Filtrage ------------- Le firewall possède un certain nombre d'informations + l'adresse IP source et cible + les ports source et cible (21 = FTP, 23 = Telnet, 80 = HTTP) on peut refuser les paquets pour le port 21 ==> FTP ne passe pas + l'interface d'arrivée par exemple une adresse IP source privée (interne) sur l'interface externe représente cetainement quelqu'un de l'extérieur qui a épié vos trames et qui essaie de ce faire passer pour quelqu'un de l'intérieur. + le Bit d'acquitement (ACK) ce bit est à zéro sur le premier paquet (la demande de conexion) et à UN sur tous les autres, on peut donc imaginer la règle qui suit |
! Adr. ! Adr. ! ! port ! port ! ! ! direction ! source ! cible ! protocole ! source ! cible ! = 1 ? ! Action! ------------------------------------------------------------------------------ 1 sortie ! interne ! - ! TCP ! >1023 ! 23 ! - ! OK ! 2 entrée ! - !interne ! TCP ! 23 ! >1023 ! Oui ! OK ! 3 sortie ! - ! - ! - ! - ! - ! - ! refus ! 4 entrée ! - ! - ! - ! - ! - ! - ! refus ! les lignes 3 & 4 sont un refus par défaut (règle du moindre privilège) la ligne 1 correspond à un paquet Telnet sortant ==> OK la ligne 2 correspond à une réponse Telnet entrante ==> OK en effet le premier paquet TELNET (ACK = 0) étant refusé, la session Telnet ne pourra jamais être initialisée venant de l'extérieur. |
Quelques remarques service par service : SMTP : + port d'écoute 25, port client > 1023 + comme Telnet le premier paquet a le bit ACK à 0, les autres paquets à 1 + le protocole étant par définition redirigable, utiliser un enregistrement dans la DNS du réseau privé indiquant la bastion comme passerelle SMTP qui lui même redirigera (avec SON adresse IP) le courrier sortant vers l'internet. POP3 : + port d'écoute 110 (109 pour POP2) , port client > 1023 + comme Telnet le premier paquet a le bit ACK à 0, les autres à 1 |
FTP : + port d'écoute 21 pour le canal commandes 20 pour le canal données clients, deux ports > 1023. en effet le FTP de base fonctionne de la manière suivante : - au début de la session le CLIENT s'alloue deux ports pour lui-même(> 1023) - il communique avec le serveur sur le port 21 en mode commande - puis lance la commande FTP "PORT" pour indiquer au serveur quel numéro de port utiliser pour le transfert des données. - le serveur ouvre alors une connexion sur le port demandé. ==> la dernière ligne constitue donc une exeption puisque l'on a une connexion (paquet ayant ACK à 0) venant du serveur sur un n° de port > à 1023 Dans le monde UNIX certains services utilisent des ports 6xxx pour le serveur X Sur AS/400, Client Accès utilise de tels ports. |
Certaines versions de FTP autorisent le 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 TELNET : + port d'écoute 23 , port client > 1023 + premier paquet a le bit ACK à 0, les autres à 1 Attention aux mots de passe de l'ouverture de session qui circulent en CLAIR sur la ligne et qui peuvent donc être "sniffer". Cela rend particulièrement délicat les sessions TELNET entrantes. |
REXEC : commandes à distance entrantes ==> à déactiver ! + port d'écoute 512 , port client > 1023 + premier paquet a le bit ACK à 0, les autres à 1 NNTP : ou serveur de new, non présent sur AS/400 (voir RENDEZ-VOUS/400) + port d'écoute 119 , port client > 1023 + premier paquet a le bit ACK à 0, les autres à 1 |
DNS : + port d'écoute 53, port client > 1023 en fait la règle est la suivante : source >1023, cible = 53 ==> client vers serveur source = 53 , cible = 53 ==> réponse d'un serveur en UDP ou dialogue de serveur à serveur en UDP + sur UDP, il n'y a pas de bits ACK - mais certains systèmes utilisent TCP si une requête UDP n'aboutit pas. (en TCP le port client est TOUJOURS > 1023) |
HTTP : + port d'écoute par défaut 80, client > 1023 mais le port d'écoute peut être indiqué par le client (dans une URL, tapez "www.as400.ibm.com:81" pour dialoguer avec le serveur www.as400.ibm.com sur le port 81) + premier paquet a le bit ACK à 0, les autres à 1 c'est LE service qu'il faut mandater en sortie (c'est à dire utiliser un proxy, situé sur le réseau périhérique) - tous les navigateurs WEB l'admettent - il est inclus dans le FIREWALL pour AS/400 - sur NT, Microsoft en propose un, sinon essayez WINGATE de Deerfield. |
autres services : service ! port ! remarques --------------------------------------------------------------------------- TFTP ! 69 ! Trivial FTP (FTP sans connexion) ! ! LPR ! 515 ! transfert de spools ! ! UUCP ! 540 ! Unix to Unix (transfert de fichiers) ! ! rlogin ! 513 ! conenxion à distance du monde Unix ! ! rsh ! 514 ! commandes à distance (type Rexec) ! ! TFTP ! 69 ! Trivial FTP (FTP sans connexion) ! ! Gopher ! 70 ! Accès hiérarchique à des fichiers ! ! WAIS ! 210 ! serveur de recherche ! ! Archie ! 1525 ! indexs de serveurs FTP ! ! |
Finger ! 79 ! recherche de renseignements sur des utilisateurs Internet ! ! whois ! 43 ! recherche de renseignemts Internet (users, serveurs, réseau) ! ! TALK ! 517/ ! service de conférence en temps réel ! 518 ! ! ! IRC ! 6667 ! service de conférence mais en mode texte ! ! SNMP ! 161 ! service de surveillance et centralisation ! ! d'informations réseau ! ! RIP ! 520 ! routage dynamique ! ! NTP ! 123 ! réglage de l'horloge (UDP) ! ! NFS !(2049) ! accès à des fichiers éloignés en UDP ! ! (le n° de port n'est pas normalisé) ! ! X11 !>6000 ! serveur de terminaux X (nombreuses failles possibles) ----------------------------------------------------------------------- |
enfin pensez au requêtes ICMP, particulièrement celles générées par Ping et Traceroute =========================================================================== ATTENTION sur AS/400 à WSG (port 5061) et aux services Client Access sur IP (ports 84xx, ==> netstat *cnn) ============================================================================ proposition de tableau de filtrage pour une architecture à sous réseau : routeur interne (c'est à dire FIREWALL sur IPCS) + un " - " indique que l'on applique pas de test sur cette colonne + pour les adresses le jeux des masques (subnet mask) permet d'indiquer une adresse précise (le bastion,le serveur SMTP interne) ou une plage d'adresse (le réseau interne) |
! Adr. ! Adr. ! ! port ! port ! ! ! direction ! source ! cible ! protocole ! source ! cible ! = 1 ? ! Action! ------------------------------------------------------------------------------ * Adresse falsifiée ! ! ! ! ! ! ! 01 entrée ! interne ! - ! - ! - ! - ! - ! refus ! ! ! ! ! ! ! ! ! * Telnet ! ! ! ! ! ! ! ! 02 sortie ! interne ! - ! TCP ! >1023 ! 23 ! - ! OK ! 03 entrée ! - !interne ! TCP ! 23 ! >1023 ! Oui ! OK ! ! ! ! ! ! ! ! ! * FTP (canal commandes)! ! ! ! ! ! ! 04 sortie ! interne ! - ! TCP ! >1023 ! 21 ! - ! OK ! 05 entrée ! - !interne ! TCP ! 21 ! >1023 ! Oui ! OK ! ! ! ! ! ! ! ! ! * FTP (canal données) en mode passif [connexion due au client] ! ! 06 sortie ! interne ! - ! TCP ! >1023 ! >1023 ! - ! OK ! 07 entrée ! - !interne ! TCP ! >1023 ! >1023 ! Oui ! OK ! ! ! ! ! ! ! ! ! * SMTP sortant vers le bastion ! ! ! ! ! ! 08 sortie ! interne ! bastion! TCP ! >1023 ! 25 ! - ! OK ! 09 entrée ! bastion ! serveur! TCP ! 25 ! >1023 ! Oui ! OK ! ! !SMTP int! ! ! ! ! ! |
! ! ! ! ! ! ! * HTTP ! ! ! ! ! ! ! 10 sortie ! interne ! bastion! TCP ! >1023 ! 80 ! - ! OK ! 11 entrée ! bastion !interne ! TCP ! 80 ! >1023 ! Oui ! OK ! ! ! ! ! ! ! ! * DNS requêtes entre DNS interne et DNS du bastion ! ! ! 12 sortie ! DNS int.! bastion! UDP ! 53 ! 53 ! ! OK ! 13 entrée ! bastion ! DNS int! UDP ! 53 ! 53 ! ! OK ! ! ! ! ! ! ! ! * DNS requêtes clients et vers DNS du BASTION ! ! ! 14 sortie ! DNS int.! bastion! UDP ! >1023 ! 53 ! ! OK ! 15 entrée ! bastion ! DNS int! UDP ! 53 ! >1023 ! ! OK ! ! ! ! ! ! ! ! * DNS requêtes TCP (réessai) ! ! ! ! ! 12 sortie ! DNS int.! bastion! UDP ! >1023 ! 53 ! ! OK ! 13 entrée ! bastion ! DNS int! UDP ! 53 ! >1023 ! ! OK ! ! ! ! ! ! ! ! * refus par défaut ! ! ! ! ! ! 98 sortie ! - ! - ! - ! - ! - ! - ! refus ! 99 entrée ! - ! - ! - ! - ! - ! - ! refus ! |