Mise en place d'un shorewall simple WAN LAN DMZ : Différence entre versions

De WIKI Les fourmis du libre
Aller à : navigation, rechercher
 
(10 révisions intermédiaires par le même utilisateur non affichées)
Ligne 53 : Ligne 53 :
 
DMZ_IF="eth2"
 
DMZ_IF="eth2"
  
WAN="0.0.0.0/0"
 
 
LOC="172.20.0.0/16"
 
LOC="172.20.0.0/16"
 
DMZ="172.31.0.0/16"
 
DMZ="172.31.0.0/16"
Ligne 78 : Ligne 77 :
  
  
On va maintenant activer transfert de paquet:
+
On va maintenant activer forward de paquet:
  
 
On bascule dans le fichier /etc/shorewall/shorewall.conf
 
On bascule dans le fichier /etc/shorewall/shorewall.conf
Ligne 86 : Ligne 85 :
 
</pre>
 
</pre>
  
Puis on va définir le masq pour le nat /etc/shorewall/masq :
+
Puis on va définir le masq: (on indique que si loc essaie de sortir par l'interface wan, son adresse ip source sera remplacée )
  
 
<pre>
 
<pre>
 
$WAN_IF    $LOC
 
$WAN_IF    $LOC
$WAN_IF    $DMZ
 
 
</pre>
 
</pre>
  
Ligne 117 : Ligne 115 :
 
Pour le fichier rules la bonne méthode a appliquer c'est le stocker en variable les différente chose dont on a besoin dans le fichiers params
 
Pour le fichier rules la bonne méthode a appliquer c'est le stocker en variable les différente chose dont on a besoin dans le fichiers params
  
Exemple d'utilisation:
+
==Exemple d'utilisation==
  
 
<pre>  
 
<pre>  
Ligne 142 : Ligne 140 :
 
ACCEPT  loc                net:$SRVMICROSOFT    tcp
 
ACCEPT  loc                net:$SRVMICROSOFT    tcp
 
</pre>
 
</pre>
 +
 +
 +
==== Pour vérifier la conf ====
 +
 +
  shorewall check
 +
 +
==== Pour appliquer la conf ====
 +
 +
  shorewall restart
 +
 +
==== Pour appliquer la conf mais où shorewall demande une vérif a la fin ====
 +
 +
Comme un restart sauf qu'a la fin shorewall demande d'appuyer sur yes pour vérifier si vous êtes toujours là
 +
 +
En cas de non réponse shorewall rappliquera la conf précédente
 +
 +
  shorewall safe-restart
 +
 +
 +
==Coeur de réseau==
 +
 +
Dans l'exemple ci-dessus je fonctionne avec un coeur de réseau
 +
<pre>
 +
|---------------------------------------------------------------|
 +
|                                            OTHER_NET          |
 +
|                                              ^                |
 +
|                                              |                |
 +
|        INTERNET --> LIVEBOX --> FWALL --> COEUR --> NET_SRV  |
 +
|                                    |        |                |
 +
|                                    |        |                |
 +
|                                    v        |                |
 +
|                                  DMZ        v                |
 +
|                                            NET_PEDAGO        |
 +
|                                                              |
 +
|---------------------------------------------------------------|
 +
</pre>
 +
Pour ajouter les route retour sur mon fwall rdv dans /etc/network/interface:
 +
 +
up route add -net 172.28.0.0/16 gw 172.20.0.253 dev eth1
 +
up route add -net 172.30.0.0/16 gw 172.20.0.253 dev eth1
 +
 +
 +
Et également n'oubliez pas d'ajouter le masquerading dans /etc/shorewall/masq
 +
 +
<pre>
 +
$WAN_IF    $NET_PEDAGO
 +
$WAN_IF    $NET_SRV
 +
</pre>
 +
 +
 +
Et bien évidement ajouter les routes dans le cœur de réseau,  si c'est le seul coeur de réseau ce sera donc la route 0.0.0.0/0 vers le fwall
 +
 +
 +
=== Et donc pour utiliser des vlan ===
 +
 +
On a fait un vlan wifi sur le coeur de réseau:
 +
 +
Donc un vlan sur l'id 100:
 +
 +
  auto eth1.100
 +
  iface eth1.100 inet static
 +
  address 172.23.0.254
 +
  netmask 255.255.0.0
 +
 +
Puis on reprend la procédure précédente:
 +
 +
 +
On déclare l'interface et le sous réseau dans le fichiers params
 +
 +
 +
<pre>
 +
WIFI_IF="eth0"
 +
WIFI="172.31.0.0/16"
 +
</pre>
 +
 +
Puis on défini la nouvelle zone wifi (fichiers zones) :
 +
 +
wifi    ipv4
 +
 +
 +
Puis on défini dans quelle zone va être l'interface (fichiers interfaces) :
 +
 +
wifi    $WIFI_IF      detect          routeback
 +
 +
 +
 +
Si on définis le masq :
 +
 +
$WAN_IF  $WIFI

Version actuelle en date du 14 novembre 2018 à 22:20

Dans notre cas nous allons prendre une livebox pour le WAN:


|---------------------------------------------------------------|
|                                                               |
|                                                               |
|         INTERNET --> LIVEBOX --> FWALL --> LAN                |
|                                    |                          |
|                                    |                          |
|                                    v                          |
|                                   DMZ                         |
|                                                               |
|                                                               |
|---------------------------------------------------------------|


Sur la livebox le fwall doit est déclarée en DMZ

A noter que la partie WAN on peut être en dhcp. En effet cela est intéressant lors de remplacement de box orange (la conf est rarement rétablie ...)

Configurer votre fichier interface:


 # WAN
 auto eth0
 iface eth0 inet dhcp

 # LAN LOC
 auto eth1
 iface eth1 inet static
 address 172.20.0.254
 netmask 255.255.0.0

 #DMZ
 auto eth2
 iface eth2 inet static
 address 172.31.0.254
 netmask 255.255.0.0


Installer donc shorewall :

 apt-get update
 apt-get install shorwall

On va avant toute chose renseigner quelques variables dans le fichiers /etc/shorewall/params:

WAN_IF="eth0"
LOC_IF="eth1"
DMZ_IF="eth2"

LOC="172.20.0.0/16"
DMZ="172.31.0.0/16"

Ensuite nous allons déclarer nos zones dans le fichiers /etc/shorewall/zones


fw      firewall
net     ipv4
loc     ipv4
dmz     ipv4


Nous allons ensuite déclarer nos différentes interface et leur zone associée dans /etc/shorewall/interfaces :

net     $WAN_IF       detect          dhcp,tcpflags,nosmurfs,logmartians
dmz     $DMZ_IF       detect          routeback
loc     $LOC_IF       detect          routeback


On va maintenant activer forward de paquet:

On bascule dans le fichier /etc/shorewall/shorewall.conf

    IP_FORWARDING=Yes

Puis on va définir le masq: (on indique que si loc essaie de sortir par l'interface wan, son adresse ip source sera remplacée )

$WAN_IF     $LOC

Puis on définis dans le fichier /etc/shorewall/policy les règles par défaut entre les différente zones (on est très restrictif par défaut):

 
#SOURCE         DEST            POLICY          LOG LEVEL       LIMIT:BURST

fw              all             ACCEPT
loc             fw              ACCEPT
all             all             REJECT         debug


Puis dans le fichier /etc/shorewall/rules on peu définir des choses plus précise.

Le fichiers rules prend le dessus sur le fichier policy


 
ACCEPT  all       fw    icmp


Pour le fichier rules la bonne méthode a appliquer c'est le stocker en variable les différente chose dont on a besoin dans le fichiers params

Exemple d'utilisation

 
SRVPROXY="172.30.1.8"
SRVADS="172.30.1.1"
SRVWEB="172.31.0.10"
NET_PEDAGO="172.28.0.0/16"
NET_SRV="172.30.0.0/16"
NET_DMZ="172.31.0.10"
SRVMICROSOFT="3.6.53.5"


Fichiers rules:

     
ACCEPT  loc                all                  icmp
ACCEPT  loc                net                  icmp
ACCEPT  loc:$SRVPROXY      net                  tcp    80,443
ACCEPT  dmz                loc                  udp    53
ACCEPT  loc:$SRVADS        net                  udp    53
DNAT    net                loc:$SRVWEB:443      tcp    443
DNAT    net                loc:$SRVWEB:80       tcp    80
ACCEPT  loc                net:$SRVMICROSOFT    tcp


Pour vérifier la conf

 shorewall check

Pour appliquer la conf

 shorewall restart

Pour appliquer la conf mais où shorewall demande une vérif a la fin

Comme un restart sauf qu'a la fin shorewall demande d'appuyer sur yes pour vérifier si vous êtes toujours là

En cas de non réponse shorewall rappliquera la conf précédente

 shorewall safe-restart


Coeur de réseau

Dans l'exemple ci-dessus je fonctionne avec un coeur de réseau

|---------------------------------------------------------------|
|                                            OTHER_NET          |
|                                              ^                |
|                                              |                |
|         INTERNET --> LIVEBOX --> FWALL --> COEUR --> NET_SRV  |
|                                    |         |                |
|                                    |         |                |
|                                    v         |                |
|                                   DMZ        v                | 
|                                             NET_PEDAGO        |
|                                                               |
|---------------------------------------------------------------|

Pour ajouter les route retour sur mon fwall rdv dans /etc/network/interface:

up route add -net 172.28.0.0/16 gw 172.20.0.253 dev eth1
up route add -net 172.30.0.0/16 gw 172.20.0.253 dev eth1


Et également n'oubliez pas d'ajouter le masquerading dans /etc/shorewall/masq

$WAN_IF     $NET_PEDAGO
$WAN_IF     $NET_SRV


Et bien évidement ajouter les routes dans le cœur de réseau, si c'est le seul coeur de réseau ce sera donc la route 0.0.0.0/0 vers le fwall


Et donc pour utiliser des vlan

On a fait un vlan wifi sur le coeur de réseau:

Donc un vlan sur l'id 100:

 auto eth1.100
 iface eth1.100 inet static
 address 172.23.0.254
 netmask 255.255.0.0

Puis on reprend la procédure précédente:


On déclare l'interface et le sous réseau dans le fichiers params


WIFI_IF="eth0"
WIFI="172.31.0.0/16"

Puis on défini la nouvelle zone wifi (fichiers zones) :

wifi     ipv4


Puis on défini dans quelle zone va être l'interface (fichiers interfaces) :

wifi     $WIFI_IF       detect          routeback


Si on définis le masq :

$WAN_IF  $WIFI