Gestion plusieurs lignes Internet via Shorewall (Multi ISP)

Nous allons voir en quelques étapes la gestion de plusieurs lignes Internet via le pare-feu logiciel Shorewall, autrement appelé Multi ISP.

La documentation à ce sujet est complète mais, de ce fait, assez indigeste.
C’est pourquoi nous vous proposons un résumé des actions à réaliser pour pouvoir utiliser deux lignes Internet sur un même pare-feu Shorewall 5, installé sur un serveur Linux Debian 9.

Gestion plusieurs lignes Internet via Shorewall (Multi ISP)

Pour tout complément voici la documentation complète :

http://shorewall.org/MultiISP.html

Configuration réseau

Voici un exemple de configuration réseau pour 2 lignes Internet et un réseau interne.

Le réseau interne correspond à l’interface ens192.
L’interface ens224 correspond à notre 1ère ligne Internet ayant pour adresse IP 66.66.66.66.
Et enfin notre seconde ligne Internet est sur l’interface ens256, avec pour adresse IP 88.88.88.88.

vim /etc/network/interfaces
auto lo ens192 ens224 ens256
iface lo inet loopback

allow-hotplug ens192
iface ens192 inet static
        address 192.168.66.254
        netmask 255.255.255.0

allow-hotplug ens224
iface ens224 inet static
        address 66.66.66.66
        netmask 255.255.255.248
        gateway 66.66.66.70
        network 66.66.66.64
        broadcast       66.66.66.71

allow-hotplug ens256
iface ens256 inet static
        address 88.88.88.88
        netmask 255.255.255.248

Configuration Shorewall

Shorewall.conf

Pensez à vérifier que les lignes suivantes sont configurées de la sorte dans « shorewall.conf ».

MANGLE_ENABLED=Yes

USE_DEFAULT_RT=Yes

###################################
# P A C K E T  M A R K  L A Y O U T
###################################

TC_BITS=8
PROVIDERS_BITS=8
PROVIDER_OFFSET=8
MASK_BITS=8
ZONE_BITS=0

La configuration de la partie « Packet Mark Layout » est faite pour notre exemple, vous pouvez toujours vous référer à cet article pour faire selon vos besoins. http://shorewall.org/PacketMarking.html#Values

Providers

La première étape consiste en la création d’un nouveau fichier de configuration « providers » dans le répertoire de Shorewall.

vim /etc/shorewall/providers

Dans votre fichier il faut déclarer vos deux lignes Internet, ici nommées ISP1 et ISP2.

ISP1        1    0x100 -     ens224   66.66.66.70  balance,track  -
ISP2        2    0x200 -     ens256   88.88.88.94  fallback,track -

On indique donc en fonction de la ligne, quelle interface et via quelle adresse de passerelle on doit passer.
Sur la seconde ligne, l’option « fallback » est indiquée afin que ce soit la ligne ISP1 qui soit utilisée, sauf en cas de panne.

Masq

On crée à présent le fichier « masq ».

vim /etc/shorewall/masq
ens224  0.0.0.0/0       66.66.66.66
ens256  0.0.0.0/0       88.88.88.88

Pour nos deux interfaces on indique les adresses IP publiques correspondantes.

Interfaces

Il faut également modifier le fichier « interfaces ».

vim /etc/shorewall/interfaces
loc    ens192  detect  routeback
net    ens224  detect  
net    ens256  detect

Policy

On ajoutera dans le fichier « policy » la ligne suivante.

vim /etc/shorewall/policy
net      net      DROP

Rtrules

Le fichier « rtrules » permet la gestion du trafic.

vim /etc/shorewall/rtrules
ens224    -      ISP1      11997

Pour notre exemple, nous lui indiquerons de faire passer tout le trafic sur l’interface ens224, sur la ligne Internet ISP1.

Il est également possible d’indiquer une adresse ou plage d’adresse afin de faire des exceptions.

ens224  -     ISP1       11997
192.168.66.42  -     ISP2    1000

Ainsi, tout le trafic de l’adresse 192.168.66.42 de notre réseau interne passera par la ligne ISP2, car sa priorisation est supérieure (moins le nombre est grand plus la priorisation est haute).

Vous pouvez afficher les règles en court via la commande suivante :

# ip rule ls

0:      from all lookup local
999:    from all lookup main
10000:  from all fwmark 0x100/0xff00 lookup ISP1
10001:  from all fwmark 0x200/0xff00 lookup ISP2
11997:  from all iif ens224 lookup ISP1
20000:  from 66.66.66.66 lookup ISP1
20000:  from 88.88.88.88 lookup ISP2

Rules

Via le fichier « rules », en modifiant légèrement vos règle DNAT déjà en place, vous pouvez effectuer du port forwarding sur l’interface qui vous sied.

DNAT           net:ens256           loc:192.168.66.3   tcp       25

OU

DNAT           net                loc:192.168.66.3   tcp       25               -            88.88.88.88

Mangle

Le fichier « mangle » permet de rediriger des ports particuliers par une ligne Internet spécifique.

vim /etc/shorewall/mangle

Dans l’exemple suivant on redirige tout le flux des ports tcp 80 et 443 (http et https) venant du réseau local (ens192) par la ligne ISP2.

MARK(0x200)      ens192   0.0.0.0/0     tcp     80,443

Vous maîtrisez à présent la gestion plusieurs lignes Internet via Shorewall (Multi ISP).

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *