Installation et mise en œuvre du module AmonPersonnalisation > Personnalisation du serveur à l'aide de Creole > Gestion du pare-feu eole-firewall
page précédentepage suivante

Gestion du pare-feu eole-firewall

Introduction

eole-firewall est conçu pour gérer les flux réseau d'un module EOLE.

Il permet d'autoriser des connexions :

  • de l'extérieur vers le maître ;
  • de l'extérieur vers un conteneur ;
  • d'un conteneur vers le maître ;
  • d'un conteneur vers un autre conteneur ;
  • d'un conteneur vers l'extérieur.

Techniquement, ces autorisations se traduisent par des règles iptables et, si nécessaire, des connexions TCP Wrapper[1] et l'activation de modules noyau.

eole-firewall ne gère que des "autorisations".

Par défaut tous les flux sont bloqués sauf pour le maître qui peut accéder sans restriction à l'extérieur et aux conteneurs.

Si un conteneur possède une seconde interface (variable du type : adresse_ip_link), il n'y aura aucune règle sur cette interface.

eole-firewall et Era

Pour les modules sur lesquels Era est installé (Amon et AmonEcole), eole-firewall s'exécute en complément.

Dans ce cas, il gère uniquement les connexions entre les conteneurs, des conteneurs vers le maître et des conteneurs vers l'extérieur.

Tous les flux entre zones (notamment ceux de l'extérieur vers les conteneurs) sont alors gérés par Era.

Déclaration des règles

La description des autorisations se fait dans un ensemble de fichiers contenus dans le répertoire /usr/share/eole/firewall.

Ces fichiers possèdent l'extension .fw.

Le nom du fichier est important. Il déterminera l'une des extrémités de la règle.

Il faut qu'il soit obligatoirement de la forme :

00_nomduconteneur_commentaire.fw

Par contre, le commentaire n'est pas obligatoire.

Deux types d'autorisation sont possibles :

  • allow_src : permet d'autoriser des adresses à accéder à un service du conteneur indiqué par le nom du fichier ;
  • allow_dest : permet d'autoriser le conteneur indiqué par le nom du fichier à accéder à un service.

Le conteneur "root" indique en réalité le serveur maître.

Il est obligatoire de définir, au minimum, l'interface d'entrée des flux, l'adresse IP extérieure ou le nom du conteneur et le port.

Certains services nécessitent également la configuration de TCP Wrapper[1].

Il faut alors ajouter le nom du démon à l'attribut tcpwrapper (facultatif pour les règles inter-conteneurs).

eole-firewall permet également d'activer des modules noyau.

Pour cela, il faut utiliser l'attribut load_modules auquel doit être affecté une liste au format python.

Par défaut, les règles sont en TCP.

Il est nécessaire d'ajouter l'attribut protocol dans les autres cas (UDP, ICMP).

# Autoriser le ping du serveur (maître) : fichier 10_root.fw

allow_src(interface='eth0', ip="0/0", protocol='icmp', typ='echo-request')

# Autoriser l'accès en SSH au serveur (maître) pour l'adresse 1.1.1.50 : fichier 10_root.fw

allow_src(interface='eth0', ip='1.1.1.50', port='22', tcpwrapper="sshd")

# Autoriser l'adresse 1.1.1.51 à accéder au serveur SMTP du conteneur "mail" : fichier 10_mail.fw

allow_src(interface='eth0', ip='1.1.1.51', port='25')

# Autoriser le conteneur "web" à accéder au serveur EoleSSO du maître : fichier 10_web.fw

allow_dest(ip='<adresse_ip_eth0>', port='8443')

# Autoriser le conteneur "dns" à accéder au serveur DNS distant 1.1.1.53 : fichier 10_dns.fw

allow_dest(interface='eth0', ip='1.1.1.53', protocol='udp', port='53')

# Autoriser le conteneur "fichier" à accéder au serveur LDAP du conteneur "annuaire" 10_fichier.fw :

allow_dest(interface='eth0', container='annuaire', port='389', tcpwrapper='slapd')

Parfois, il n'est pas facile de savoir sur quelle interface une règle sera appliquée.

Dans ce cas, il est possible d'utiliser le paramètre suivant :

interface='auto'

L'interface à utiliser sera calculée automatiquement à partir des résultats de la commande : ip route get

  1. TCP Wrapper
    tcpd

    TCP Wrapper est une technique, propre à Unix, permettant de contrôler les accès à un service (ou démon) suivant la source.

    Il se configure grâce au deux fichiers /etc/hosts.allow et /etc/hosts.deny.

    Tous les démons ne supportent pas la technique TCP Wrapper.

page précédentepage suivante
À propos...Documentation sous licence Creative Commons by-nc-sa - EOLE (http ://eole.orion.education.fr)Réalisé avec Scenari