projet_serveur_krkn/infra/shorewall/shorewall_alpha.md

2.7 KiB

Mise en place du firewall de Alpha

Nous avons une interface eth1 pour le routage de la connexion avec beta, une interface eth2 pour le corosync, une interface virtuelle vmbr0 qui bridge sur eth0 pour l'accès à internet et deux interfaces virtuelles vmbr1 et vmbr2 qui ne bridgent pas vers l'extérieur, le bridge va se faire avec Shorewall.

Installation de Shorewall

apt-get update
apt-get install shorewall
cp /usr/share/doc/shorewall/examples/Universal/* /etc/shorewall/

Shorewall est maintenant installé

Configuration de Shorewall

/etc/shorewall/conntrack

Garder le fichier d'origine

/etc/shorewall/interfaces

Associations des interfaces du système avec les zones du pare-feu

?FORMAT 2
#ZONE	  INTERFACE  OPTIONS
int     eth1       tcpflags,nosmurfs,bridge,logmartians,routefilter
coro    eth2       tcpflags,nosmurfs,logmartians
net     vmbr0	     tcpflags,nosmurfs,bridge,routefilter,logmartians,routeback
krkn    vmbr1      tcpflags,nosmurfs,bridge,routefilter,logmartians,routeback
ext     vmbr2      tcpflags,nosmurfs,bridge,routefilter,logmartians,routeback

/etc/shorewall/policy

Définition de la politique globale du pare-feu

#SOURCE	DEST	POLICY		LOGLEVEL
$FW     net   ACCEPT
$FW     int	  ACCEPT
$FW     coro  ACCEPT
krkn    net   ACCEPT
ext     net   ACCEPT
int     net   ACCEPT

ext     krkn  DROP     	info
net	    all	  DROP	  	info
all	    all	  REJECT		info

/etc/shorewall/rules

Définition des exceptions aux règles définies dans le fichier policy

#ACTION		SOURCE		DEST		PROTO	DEST	SOURCE
?SECTION ALL
?SECTION ESTABLISHED
?SECTION RELATED
?SECTION INVALID
?SECTION UNTRACKED
?SECTION NEW

Invalid(DROP)	  net		all		tcp
DNS(ACCEPT)	    $FW		net
Ping(ACCEPT)    all   $FW

#Connexion SSH vers et depuis Beta et extérieur
SSH(ACCEPT)	    int	  $FW
SSH(ACCEPT)     net   all
SSH(ACCEPT)     $FW   int

#Nécessaire pour l'initialisation du corosync
ACCEPT		coro  $FW		icmp
ACCEPT    $FW   krkn  icmp
ACCEPT    $FW   ext   icmp
ACCEPT    $FW   net   icmp

ACCEPT    krkn  int   tcp   80,443
ACCEPT    krkn  ext   tcp   80,443
ACCEPT    net   $FW   tcp   8006

/etc/shorewall/snat

Configuration SNAT permettant de faire du "masquerading", ainsi les paquets qui sortent des containers ont comme IP source l'IP de l'interface externe eth0.

#ACTION			SOURCE			DEST           
MASQUERADE  vmbr1       vmbr0
MASQUERADE  vmbr1       eth1
MASQUERADE  vmbr2       vmbr0
MASQUERADE	eth1      	vmbr0

/etc/shorewall/zones

Définition des zones et de leurs types.

#ZONE   TYPE
fw      firewall
net     ipv4
krkn    ipv4
ext     ipv4
coro    ipv4
int     ipv4

Le firewall de Alpha est maintenant configuré comme décrit dans le schéma global du réseau.