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.

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.

Remarque

eole-firewall ne gère que des "autorisations", des règles en INPUT sur un port déterminé.

Les flux sont bloqués en entrée depuis l'extérieur. En interne (entre le maître et les conteneurs et entre conteneurs) il n'y a pas de restriction.

Si un conteneur possède une seconde interface (variable du type : adresse_ip_link), les flux sont bloqués en entrée.

eole-firewall avec ERA

Pour les modules avec ERA, Amon et AmonEcole, les règles d'eole-firewall ne s'appliquent pas. Seules les règles ERA du modèle choisi s'appliquent.

eole-firewall sans ERA

eole-firewall ne gère que des "autorisations", des règles en INPUT sur un port déterminé. Ces autorisations peuvent être affinées avec des "restrictions".

Complément

Les flux sont bloqués en entrée depuis l'extérieur. En interne (entre le maître et les conteneurs et entre conteneurs) il n'y a pas de restriction.

Si un conteneur possède une seconde interface (variable du type : adresse_ip_link), les flux sont bloqués en entrée.

Pour gérer les "autorisations" il faut créer des dictionnaires personnalisés. Pour cela il faut se référer à la rubrique traitant des dictionnaires dans la personnalisation du module à l'aide de Creole.

Pour des cas particuliers et exceptionnels il est possible de décrire des règles de pare-feu dans des fichiers placés dans le répertoire /usr/share/eole/bastion/data/.

Ces fichiers de règles doivent respecter les critères suivants :

  • commencer par #!/bin/bash ;

  • être exécutable ;

  • ne pas contenir d'extension ;

  • son code retour doit être 0.

Attention

La création de règles par cette méthode doit rester exceptionnelle.

ExempleFichier /usr/share/eole/bastion/data/40-icmp_static_rules sur le module Scribe

1
#!/bin/bash
2
/sbin/iptables -A eth0-root -p icmp --icmp-type destination-unreachable -j ACCEPT
3
/sbin/iptables -A eth0-root -p icmp --icmp-type network-unreachable -j ACCEPT
4
/sbin/iptables -A eth0-root -p icmp --icmp-type source-quench -j ACCEPT
5
/sbin/iptables -A eth0-root -p icmp --icmp-type fragmentation-needed -j ACCEPT
6
/sbin/iptables -A eth0-root -p icmp --icmp-type time-exceeded -j ACCEPT
7
/sbin/iptables -A eth0-root -p icmp --icmp-type parameter-problem -j ACCEPT
8
/sbin/iptables -A eth0-root -p icmp --icmp-type echo-reply -j ACCEPT
9
/sbin/iptables -A eth0-root -p icmp --icmp-type echo-request -j ACCEPT