Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Debian GNU/Linux
  3. Outils réseau
Extrait - Debian GNU/Linux Maîtrisez la sécurité du système
Extraits du livre
Debian GNU/Linux Maîtrisez la sécurité du système Revenir à la page d'achat du livre

Outils réseau

Protection des flux réseau

1. Présentation du réseau

Si jusqu’ici, il n’a été question que de machines ou de serveurs isolés, il faut bien comprendre qu’en entreprise, il n’en est rien. Les ordinateurs sont interconnectés entre eux grâce à un réseau. Il n’est peut-être pas inutile de rappeler de quoi il s’agit, puisque nous allons chercher à sécuriser celui-ci ainsi que les communications qui s’y échangent. Un réseau, au sens étymologique, représente un ensemble de points entrelacés par des relations. Par extension, cela désigne un ensemble d’équipements interconnectés et leurs relations systématiques, autorisant la circulation en continu ou discontinu des informations. On trouve alors plusieurs catégories de réseaux :

  • Réseaux en anneau

  • Réseaux en arbre

  • Réseaux en bus

  • Réseaux en étoile

  • Réseaux maillés

La plupart du temps, dans les entreprises, le réseau le plus utilisé est TCP/IP. Il s’agit d’un réseau maillé, issu d’un projet appelé ARPANET, de l’institut américain DARPA (Defense Advanced Research Project Agency), dans les années 1970. Les adresses réseau référencées sont distribuées par le NIC (Network Information Center) et en France, par l’INRIA (Institut National des Recherches en Informatique et des Automatismes). L’ensemble des protocoles TCP/IP est décrit au sein de documents appelés RFC (Request For Comments), et plus particulièrement de la RFC973. La pile TCP/IP est le plus souvent représentée sous forme d’un empilement de quatre couches que l’on compare au modèle OSI à sept couches :

  • couche ACCES RESEAU

  • couche INTERNET

  • couche TRANSPORT

  • couche APPLICATION

images/I04EP01.png

L’actuelle version du protocole IP d’adressage est IPv4 (même si IPv6 a déjà commencé à faire son apparition). Afin de pouvoir délivrer les paquets transmis sur le réseau, ce dernier a besoin de se repérer. En ce sens, au niveau de la couche Internet, le protocole fournit ainsi une identification unique pour chaque extrémité de la communication initiée. C’est...

Sécurisation d’accès aux services

En vue de protéger mieux les services et leurs accès, depuis la version Debian 8 (Jessie), en lieu et place de la commande iptables, il nous faut utiliser firewall-cmd, piloté par le daemon firewalld. Même si l’ancienne commande continue de fonctionner, il est fortement conseillé d’utiliser la nouvelle, plus structurée et surtout protégeant mieux les services d’éventuelles attaques. On pourrait représenter les interactions de la façon suivante :

images/I04EP06.png

Nous constatons ainsi que le sous-système firewalld est beaucoup plus large que ce que l’on a décrit pour iptables. Pour pouvoir mettre en place cette nouvelle fonctionnalité, il suffit d’installer le package firewalld :


# apt-get install firewalld
 

Dès son installation, le service est d’ores et déjà actif. Pour s’en assurer, il suffit d’exécuter l’instruction suivante :

images/C04EP07.png
Les règles précédemment conçues avec iptables peuvent toujours être utilisées avec la nouvelle interface firewall-cmd.

Depuis l’apparition de ce nouveau service, un nouveau concept est également mis en place : la gestion de zones. Toutes les interfaces réseau peuvent être localisées, par défaut, dans la même zone, ou réparties sur différentes zones, permettant d’accorder les niveaux de confiance prédéfinis. À terme, cela permet de restreindre les flux basés sur une zone source et de les cloisonner. Sans configuration particulière, le mode par défaut prévoit une simple zone publique. Mais, si le serveur dispose de plusieurs interfaces réseau ou que l’on utilise des sources, on devrait pouvoir limiter le trafic réseau entre les différentes zones.

1. Gestion des zones

Comme il a été vu précédemment, nous pouvons facilement limiter le flux entre différentes zones réseau d’un serveur. Pour connaître la zone par défaut, il faut interroger le service firewalld de la façon suivante :


# firewall-cmd --get-default-zone 
public
 

Ensuite, nous pouvons interroger le système afin de connaître la liste complète des zones configurées...

Système de proxy mandataire

Nous venons de voir comment filtrer les ports de services et les zones réseau, afin de contrôler les flux de communication entre les machines. Il existe également une autre approche, consistant à forcer l’activité du réseau et les échanges associés, à s’effectuer au travers d’un serveur mandataire, également appelé proxy.

1. Présentation

Il existe de nombreux logiciels remplissant cette fonction. Mais il en est un qui est particulièrement intéressant : squid, capable d’être utilisé en tant que mandataire inverse et capable d’utiliser à la fois les protocoles FTP, HTTP, Gopher et HTTPS. En effet, contrairement aux serveurs mandataires standards, le serveur squid gère toutes les requêtes avec un seul processus d’entrées/sorties, sans blocage. Il s’agit d’un logiciel libre distribué sous licence GNU GPL. Le projet a été inspiré par Harvest et il est totalement compatible avec le protocole IPv6, depuis sa version 3.

La fondation Wikimedia qui supporte le projet Wikipedia utilise squid pour sécuriser le trafic depuis ou vers ses sites de documentation.

De façon pragmatique, un serveur mandataire est une machine, physiquement située entre un réseau d’entreprise et son accès Internet. Il fait office à la fois de passerelle, mais également de cache de pages web. La fonction de passerelle semble évidente, puisque tous les accès vers Internet (et depuis l’extérieur) transitent par cette machine. Mais, le fait d’utiliser un mandataire comme serveur de cache l’est peut-être moins. Comme le proxy conserve en mémoire (ou en cache), une copie des pages consultées par les utilisateurs du réseau, cela peut faciliter le trafic et éviter de devoir systématiquement télécharger l’information depuis son site d’origine, grâce à l’utilisation de ce cache. Dans son mode de fonctionnement élémentaire, lorsqu’un hôte du réseau effectue une requête vers une adresse d’un nœud distant (pouvant être situé sur un autre brin réseau ou sur Internet), la demande est alors redirigée obligatoirement...

Protection du réseau

1. Introduction

Ce qui est réalisable par un service de proxy (ou de serveur mandataire), tel qu’on l’a vu précédemment, peut aussi être envisagé au niveau du réseau d’entreprise. En effet, la suite Free RADIUS (Remote Authentication Dial-In User Service) est un programme complet effectuant les tâches suivantes :

  • Authentification d’un utilisateur distant, avec des méthodes sécurisées distinctes (selon les cas), en s’appuyant sur une base de connaissance, allant du fichier texte simple à l’annuaire LDAP, en passant par l’intégration à une base de données type SQL.

  • L’enregistrement des informations concernant chaque compte de connexion.

  • Renvoi à l’émetteur des paramètres tels que l’adresse IP ou sa configuration, un numéro de réseau virtuel (ou VLAN), etc.

Le protocole Radius permet de se connecter via un échange de paquets UDP (la plupart du temps sur le port 1812), et intègre également un module d’accounting. Ce dernier permet d’envisager, par exemple un mode de facturation, très prisé par les entreprises leur permettant d’établir des SLA (Service Level Agreement). Les moyens d’authentifications sont multiples :

  • via une authentification en clair

  • via une authentification par adresse MAC.

  • via une base MySQL ou PostgreSQL

  • via le protocole MSCHAPv1 ou MSCHAPv2

  • via un annuaire LDAP

Ce genre de suite logicielle est particulièrement intéressant dans les cas où l’on souhaite :

  • Effectuer une authentification avec un certificat de type X.509 (nous verrons ultérieurement comment constituer de tels éléments), sur un réseau Wi-Fi via des protocoles de type EAP-TLS.

EAP ou le protocole 802.1X ne propose pas une seule méthode d’authentification, mais un canevas pour lequel il existe plusieurs types d’authentification. La méthode EAP s’appuie sur différents éléments pour identifier un client : login/password, certificat électronique, biométrie, puce SIM, etc.

  • Effectuer une authentification, depuis l’adresse MAC de stations connues, sur le réseau filaire d’entreprise, en utilisant un challenge Login/Password via le protocole CHAP...

Réseau privé virtuel

L’outil OpenVPN permet également d’authentifier deux sites distants, au travers d’un tunnel sécurisé entre eux, en utilisant indifféremment :

  • une clé privée partagée à l’avance,

  • des certificats électroniques,

  • des couples compte utilisateur/mot de passe.

Pour cela, il utilise la bibliothèque openssl et le protocole SSL/TLS afin de construire des tunnels VPN, site à site. Les données sont transportées de façon chiffrée au travers de ce tunnel communiquant avec un seul port TCP/UDP. Toutefois, l’outil n’est pas compatible avec les autres logiciels du marché comme IPsec ou les serveurs VPN commerciaux. Généralement, dans une architecture standard, sur les deux routeurs VPN en communication, l’un est automatiquement déclaré client et l’autre devient tout naturellement le serveur. Le port source et destination du tunneling est le port UDP/1194.

images/I04EP12.png

Généralement, sur les deux routeurs VPN, il en est un qui est le client et l’autre le serveur. Le port source et destination du tunneling est le port UDP/1194. Il est préférable d’utiliser les ports UDP, car les ports TCP peuvent conduire à des dégradations de performances réseau.

En effet, la majorité des applications sont transportées via TCP, en cas d’utilisation d’un tunnel TCP, on effectue alors un tunnel TCP sur TCP. Mais, si des retransmissions de paquets sont à opérer, à l’intérieur du tunnel, il est nécessaire de recalculer un certain nombre d’éléments, pouvant alors amener à une augmentation des temps de réponse. Par conséquent, on préfère les ports UDP, car les ports TCP peuvent conduire à des dégradations de performance réseau. Toutefois, la majorité des applications sont transportées via TCP. Par ailleurs, il existe deux modes de tunnel :

  • le tunnel IP, dont le pilote réseau s’appelle tun

  • le tunnel Ethernet, dont le pilote réseau est tap

Dans le premier cas, on parle alors de tunneling en mode routage, alors que l’autre est appelé tunneling en mode pont (ou bridging). Sauf si vous souhaitez faire passer du trafic NetBIOS dans...