From 46f42a0d0d6ba6418ece316842103eed2ab4b401 Mon Sep 17 00:00:00 2001 From: "guillaume.emorine" Date: Mon, 6 May 2024 08:07:26 +0200 Subject: [PATCH] =?UTF-8?q?=09Modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20?= =?UTF-8?q?=20sisr1/tp08=5Fevolution=5Finfrastructure/rules=5Fprogressive/?= =?UTF-8?q?README.md=20=09Modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20=20si?= =?UTF-8?q?sr1/tp08=5Fevolution=5Finfrastructure/rules=5Fprogressive/firew?= =?UTF-8?q?all=5F3=20=09Modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20=20sisr?= =?UTF-8?q?1/tp08=5Fevolution=5Finfrastructure/rules=5Fprogressive/firewal?= =?UTF-8?q?l=5F4=20=09Modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20=20sisr1/?= =?UTF-8?q?tp08=5Fevolution=5Finfrastructure/rules=5Fprogressive/firewall?= =?UTF-8?q?=5F5=20=09Modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20=20sisr1/t?= =?UTF-8?q?p08=5Fevolution=5Finfrastructure/rules=5Fprogressive/firewall?= =?UTF-8?q?=5F6=20=09Modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20=20sisr1/t?= =?UTF-8?q?p08=5Fevolution=5Finfrastructure/rules=5Fprogressive/firewall?= =?UTF-8?q?=5F7=20=09Modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20=20sisr1/t?= =?UTF-8?q?p08=5Fevolution=5Finfrastructure/rules=5Fprogressive/firewall?= =?UTF-8?q?=5F8-9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rules_progressive/README.md | 4 +- .../rules_progressive/firewall_3 | 55 +------ .../rules_progressive/firewall_4 | 41 +---- .../rules_progressive/firewall_5 | 79 +-------- .../rules_progressive/firewall_6 | 111 +------------ .../rules_progressive/firewall_7 | 120 +------------- .../rules_progressive/firewall_8-9 | 150 +----------------- 7 files changed, 9 insertions(+), 551 deletions(-) diff --git a/sisr1/tp08_evolution_infrastructure/rules_progressive/README.md b/sisr1/tp08_evolution_infrastructure/rules_progressive/README.md index a49ba1f..293f590 100755 --- a/sisr1/tp08_evolution_infrastructure/rules_progressive/README.md +++ b/sisr1/tp08_evolution_infrastructure/rules_progressive/README.md @@ -1,3 +1 @@ -Ce dossier contient l'ensemble des règles du pare-feu, étape par étape pour l'implémentation. - -Il faut prendre les règles de chaque étape UNIQUEMENT, pour éviter les problèmes. \ No newline at end of file +Ce dossier contient le fichier de base (firewall_1-2), ainsi que des fichiers numérotés qui contiennent les règles à rajouter de chaque étape suivante. \ No newline at end of file diff --git a/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_3 b/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_3 index 9fa90dc..59d8a7d 100644 --- a/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_3 +++ b/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_3 @@ -1,60 +1,7 @@ -# Définition des interfaces avec un nom -define netif = enp0s3 # Interface avec accès internet extérieur -define dmzif = enp0s8 # Interface branchée à la DMZ -define lanif = enp0s9 # Interface branchée au LAN - -# Définition des réseaux -define dmz-ntw = 172.17.0.0/24 # Plage réseau de la DMZ -define lan-ntw = 172.16.0.0/24 # Plage réseau du LAN -define net-ntw = 192.168.0.0/24 # Plage réseau, accès internet - -# Définition des IPs du pare-feu -define firewall-net = 192.168.0.120 -define firewall-lan = 172.16.0.254 -define firewall-dmz = 172.17.0.254 - -# Définition des choses importantes - Vérifier comment les commentaires en fin de ligne fonctionnent -define proxy-dns = 172.17.0.1 # IP de srv-dmz -define dns-school = {10.121.38.7 , 10.121.38.8} # Serveurs DNS du lycée -define portproxy = 1080 # Port utilisé par le proxy qu'on va configurer -define dhcp = 172.16.0.1 # IP de srv-service -define pcsecure = 172.16.0.10 # IP de pc-secure -define router = 192.168.0.1 # IP de GWSIO -define lan-dhcp = 172.16.0.100-172.16.0.200 # IPs utilisées en plage DHCP - -# Début des tables et des chaînes +# Ajouts pour l'étape 3 table ip ipfilter { - chain prerouting { - type filter hook prerouting priority filter; policy drop; - - # Permet le passage des réponses aux requêtes acceptées - ct state established, related accept - - # Autorise le SSH, étape 2 - tcp dport 22 iif $firewall-net accept - - } - - chain system_in { - type filter hook input priority filter; policy drop; - - # Permet le passage des réponses aux requêtes acceptées - ct state established, related accept - - # Autorise le SSH, étape 2 - tcp dport 22 iif $firewall-net accept - } - - chain routing { - type filter hook forward priority filter; policy drop; - - # Permet le passage des réponses aux requêtes acceptées - ct state established, related accept - - } - chain system_out { type filter hook output priority filter; policy drop; diff --git a/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_4 b/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_4 index 51c2921..f86c75c 100644 --- a/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_4 +++ b/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_4 @@ -1,28 +1,4 @@ -# Définition des interfaces avec un nom -define netif = enp0s3 # Interface avec accès internet extérieur -define dmzif = enp0s8 # Interface branchée à la DMZ -define lanif = enp0s9 # Interface branchée au LAN - -# Définition des réseaux -define dmz-ntw = 172.17.0.0/24 # Plage réseau de la DMZ -define lan-ntw = 172.16.0.0/24 # Plage réseau du LAN -define net-ntw = 192.168.0.0/24 # Plage réseau, accès internet - -# Définition des IPs du pare-feu -define firewall-net = 192.168.0.120 -define firewall-lan = 172.16.0.254 -define firewall-dmz = 172.17.0.254 - -# Définition des choses importantes - Vérifier comment les commentaires en fin de ligne fonctionnent -define proxy-dns = 172.17.0.1 # IP de srv-dmz -define dns-school = {10.121.38.7 , 10.121.38.8} # Serveurs DNS du lycée -define portproxy = 1080 # Port utilisé par le proxy qu'on va configurer -define dhcp = 172.16.0.1 # IP de srv-service -define pcsecure = 172.16.0.10 # IP de pc-secure -define router = 192.168.0.1 # IP de GWSIO -define lan-dhcp = 172.16.0.100-172.16.0.200 # IPs utilisées en plage DHCP - -# Début des tables et des chaînes +# Chaînes à ajouter dans l'étape 4 table ip ipfilter { @@ -32,9 +8,6 @@ table ip ipfilter { # Permet le passage des réponses aux requêtes acceptées ct state established, related accept - # Autorise le SSH, étape 2 - tcp dport 22 iif $firewall-net accept - # Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ, étape 4 icmp type echo-request iif {$lanif} oif {$dmzif} accept @@ -46,12 +19,6 @@ table ip ipfilter { chain system_in { type filter hook input priority filter; policy drop; - # Permet le passage des réponses aux requêtes acceptées - ct state established, related accept - - # Autorise le SSH, étape 2 - tcp dport 22 iif $firewall-net accept - # Accepte les réponses ping pour l'étape 4 icmp type echo-reply accept } @@ -71,9 +38,6 @@ table ip ipfilter { chain system_out { type filter hook output priority filter; policy drop; - - # Autorise le SSH à destination de srv-dmz et srv-service si la requête vient du firewall, étape 3 - A vérifier - tcp sport 22 ip saddr {$firewall-dmz, $firewall-lan} ip daddr {$proxy-dns, $dhcp} accept # Autorise le pare-feu à faire des pings vers toutes les machines, étape 4 - A vérifier icmp type echo-request accept @@ -85,9 +49,6 @@ table ip ipfilter { # Permet le passage des réponses aux requêtes acceptées ct state established, related accept - # Autorise le SSH à destination de srv-dmz et srv-service si la requête vient du firewall, étape 3 - A vérifier - tcp sport 22 ip saddr {$firewall-dmz, $firewall-lan} ip daddr {$proxy-dns, $dhcp} accept - # Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ, étape 4 icmp type echo-request iif {$lanif} oif {$dmzif} accept diff --git a/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_5 b/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_5 index ee7073c..4a9a655 100644 --- a/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_5 +++ b/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_5 @@ -1,28 +1,4 @@ -# Définition des interfaces avec un nom -define netif = enp0s3 # Interface avec accès internet extérieur -define dmzif = enp0s8 # Interface branchée à la DMZ -define lanif = enp0s9 # Interface branchée au LAN - -# Définition des réseaux -define dmz-ntw = 172.17.0.0/24 # Plage réseau de la DMZ -define lan-ntw = 172.16.0.0/24 # Plage réseau du LAN -define net-ntw = 192.168.0.0/24 # Plage réseau, accès internet - -# Définition des IPs du pare-feu -define firewall-net = 192.168.0.120 -define firewall-lan = 172.16.0.254 -define firewall-dmz = 172.17.0.254 - -# Définition des choses importantes - Vérifier comment les commentaires en fin de ligne fonctionnent -define proxy-dns = 172.17.0.1 # IP de srv-dmz -define dns-school = {10.121.38.7 , 10.121.38.8} # Serveurs DNS du lycée -define portproxy = 1080 # Port utilisé par le proxy qu'on va configurer -define dhcp = 172.16.0.1 # IP de srv-service -define pcsecure = 172.16.0.10 # IP de pc-secure -define router = 192.168.0.1 # IP de GWSIO -define lan-dhcp = 172.16.0.100-172.16.0.200 # IPs utilisées en plage DHCP - -# Début des tables et des chaînes +# Chaînes à ajouter pour l'étape 5 table ip ipfilter { @@ -32,19 +8,10 @@ table ip ipfilter { # Permet le passage des réponses aux requêtes acceptées ct state established, related accept - # Autorise le SSH, étape 2 - tcp dport 22 iif $firewall-net accept - - # Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ, étape 4 - icmp type echo-request iif {$lanif} oif {$dmzif} accept - - # Accepte les réponses ping pour l'étape 4 - icmp type echo-reply accept - - # Autorise les requêtes HTTP/HTTPS venant de la LAN - A vérifier + # Autorise les requêtes HTTP/HTTPS venant de la LAN (étape 5) tcp dport {$portproxy} ip saddr $lan-ntw ip daddr $proxy-dns accept - # Autorise les requêtes DNS venant de la LAN - A vérifier + # Autorise les requêtes DNS venant de la LAN (étape 5) udp dport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept udp sport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept @@ -53,32 +20,12 @@ table ip ipfilter { udp sport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept } - chain system_in { - type filter hook input priority filter; policy drop; - - # Permet le passage des réponses aux requêtes acceptées - ct state established, related accept - - # Autorise le SSH, étape 2 - tcp dport 22 iif $firewall-net accept - - # Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ, étape 4 - icmp type echo-request iif {$lanif} oif {$dmzif} accept - - # Accepte les réponses ping pour l'étape 4 - icmp type echo-reply accept - - } - chain routing { type filter hook forward priority filter; policy drop; # Permet le passage des réponses aux requêtes acceptées ct state established, related accept - # Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ, étape 4 - icmp type echo-request iif {$lanif} oif {$dmzif} accept - # Autorise les requêtes HTTP/HTTPS venant de la LAN (étape 5) - A vérifier tcp dport {$portproxy} ip saddr $lan-ntw ip daddr $proxy-dns accept @@ -92,32 +39,12 @@ table ip ipfilter { } - chain system_out { - type filter hook output priority filter; policy drop; - - # Autorise le SSH à destination de srv-dmz et srv-service si la requête vient du firewall, étape 3 - A vérifier - tcp sport 22 ip saddr {$firewall-dmz, $firewall-lan} ip daddr {$proxy-dns, $dhcp} accept - - # Autorise le pare-feu à faire des pings vers toutes les machines, étape 4 - A vérifier - icmp type echo-request accept - - } - chain postrouting { type filter hook postrouting priority filter; policy drop; # Permet le passage des réponses aux requêtes acceptées ct state established, related accept - # Autorise le SSH à destination de srv-dmz et srv-service si la requête vient du firewall, étape 3 - A vérifier - tcp sport 22 ip saddr {$firewall-dmz, $firewall-lan} ip daddr {$proxy-dns, $dhcp} accept - - # Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ, étape 4 - icmp type echo-request iif {$lanif} oif {$dmzif} accept - - # Autorise le pare-feu à faire des pings vers toutes les machines, étape 4 - A vérifier - icmp type echo-request ip saddr {$firewall-net, $firewall-lan, $firewall-dmz} accept - # Autorise les requêtes HTTP/HTTPS venant de la LAN (étape 5) - A vérifier tcp dport {$portproxy} ip saddr $lan-ntw ip daddr $proxy-dns accept diff --git a/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_6 b/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_6 index 43ff73f..e509e18 100644 --- a/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_6 +++ b/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_6 @@ -1,139 +1,30 @@ -# Définition des interfaces avec un nom -define netif = enp0s3 # Interface avec accès internet extérieur -define dmzif = enp0s8 # Interface branchée à la DMZ -define lanif = enp0s9 # Interface branchée au LAN - -# Définition des réseaux -define dmz-ntw = 172.17.0.0/24 # Plage réseau de la DMZ -define lan-ntw = 172.16.0.0/24 # Plage réseau du LAN -define net-ntw = 192.168.0.0/24 # Plage réseau, accès internet - -# Définition des IPs du pare-feu -define firewall-net = 192.168.0.120 -define firewall-lan = 172.16.0.254 -define firewall-dmz = 172.17.0.254 - -# Définition des choses importantes - Vérifier comment les commentaires en fin de ligne fonctionnent -define proxy-dns = 172.17.0.1 # IP de srv-dmz -define dns-school = {10.121.38.7 , 10.121.38.8} # Serveurs DNS du lycée -define portproxy = 1080 # Port utilisé par le proxy qu'on va configurer -define dhcp = 172.16.0.1 # IP de srv-service -define pcsecure = 172.16.0.10 # IP de pc-secure -define router = 192.168.0.1 # IP de GWSIO -define lan-dhcp = 172.16.0.100-172.16.0.200 # IPs utilisées en plage DHCP - -# Début des tables et des chaînes +# Chaînes à rajouter pour l'étape 6 table ip ipfilter { chain prerouting { type filter hook prerouting priority filter; policy drop; - # Permet le passage des réponses aux requêtes acceptées - ct state established, related accept - - # Autorise le SSH, étape 2 - tcp dport 22 iif $firewall-net accept - - # Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ, étape 4 - icmp type echo-request iif {$lanif} oif {$dmzif} accept - - # Accepte les réponses ping pour l'étape 4 - icmp type echo-reply accept - - # Autorise les requêtes HTTP/HTTPS venant de la LAN - A vérifier - tcp dport {$portproxy} ip saddr $lan-ntw ip daddr $proxy-dns accept - - # Autorise les requêtes DNS venant de la LAN - A vérifier - udp dport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept - udp sport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept - - # Autorise les réponses DNS allant vers la LAN (étape 5) - A vérifier, expérimental - udp dport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept - udp sport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept - # Autorise les requêtes DNS depuis le serveur proxy vers sio.lan (gwsio) (étape 6) tcp dport 53 ip saddr $proxy-dns ip daddr $router accept } - chain system_in { - type filter hook input priority filter; policy drop; - - # Permet le passage des réponses aux requêtes acceptées - ct state established, related accept - - # Autorise le SSH, étape 2 - tcp dport 22 iif $firewall-net accept - - # Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ, étape 4 - icmp type echo-request iif {$lanif} oif {$dmzif} accept - - # Accepte les réponses ping pour l'étape 4 - icmp type echo-reply accept - - } - chain routing { type filter hook forward priority filter; policy drop; # Permet le passage des réponses aux requêtes acceptées ct state established, related accept - # Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ, étape 4 - icmp type echo-request iif {$lanif} oif {$dmzif} accept - - # Autorise les requêtes HTTP/HTTPS venant de la LAN (étape 5) - A vérifier - tcp dport {$portproxy} ip saddr $lan-ntw ip daddr $proxy-dns accept - - # Autorise les requêtes DNS venant de la LAN (étape 5) - A vérifier - udp dport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept - udp sport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept - - # Autorise les réponses DNS allant vers la LAN (étape 5) - A vérifier, expérimental - udp dport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept - udp sport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept - # Autorise les requêtes DNS depuis le serveur proxy vers sio.lan (gwsio) (étape 6) tcp dport 53 ip saddr $proxy-dns ip daddr $router accept } - chain system_out { - type filter hook output priority filter; policy drop; - - # Autorise le SSH à destination de srv-dmz et srv-service si la requête vient du firewall, étape 3 - A vérifier - tcp sport 22 ip saddr {$firewall-dmz, $firewall-lan} ip daddr {$proxy-dns, $dhcp} accept - - # Autorise le pare-feu à faire des pings vers toutes les machines, étape 4 - A vérifier - icmp type echo-request ip saddr {$firewall-net, $firewall-lan, $firewall-dmz} accept - - } - chain postrouting { type filter hook postrouting priority filter; policy drop; # Permet le passage des réponses aux requêtes acceptées ct state established, related accept - # Autorise le SSH à destination de srv-dmz et srv-service si la requête vient du firewall, étape 3 - A vérifier - tcp sport 22 ip saddr {$firewall-dmz, $firewall-lan} ip daddr {$proxy-dns, $dhcp} accept - - # Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ, étape 4 - icmp type echo-request iif {$lanif} oif {$dmzif} accept - - # Autorise le pare-feu à faire des pings vers toutes les machines, étape 4 - A vérifier - icmp type echo-request ip saddr {$firewall-net, $firewall-lan, $firewall-dmz} accept - - # Autorise les requêtes HTTP/HTTPS venant de la LAN (étape 5) - A vérifier - tcp dport {$portproxy} ip saddr $lan-ntw ip daddr $proxy-dns accept - - # Autorise les requêtes DNS venant de la LAN (étape 5) - A vérifier - udp dport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept - udp sport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept - - # Autorise les réponses DNS allant vers la LAN (étape 5) - A vérifier, expérimental - udp dport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept - udp sport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept - # Autorise les requêtes DNS depuis le serveur proxy vers sio.lan (gwsio) (étape 6) tcp dport 53 ip saddr $proxy-dns ip daddr $router accept } diff --git a/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_7 b/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_7 index cf11af6..f624db1 100644 --- a/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_7 +++ b/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_7 @@ -1,28 +1,4 @@ -# Définition des interfaces avec un nom -define netif = enp0s3 # Interface avec accès internet extérieur -define dmzif = enp0s8 # Interface branchée à la DMZ -define lanif = enp0s9 # Interface branchée au LAN - -# Définition des réseaux -define dmz-ntw = 172.17.0.0/24 # Plage réseau de la DMZ -define lan-ntw = 172.16.0.0/24 # Plage réseau du LAN -define net-ntw = 192.168.0.0/24 # Plage réseau, accès internet - -# Définition des IPs du pare-feu -define firewall-net = 192.168.0.120 -define firewall-lan = 172.16.0.254 -define firewall-dmz = 172.17.0.254 - -# Définition des choses importantes - Vérifier comment les commentaires en fin de ligne fonctionnent -define proxy-dns = 172.17.0.1 # IP de srv-dmz -define dns-school = {10.121.38.7 , 10.121.38.8} # Serveurs DNS du lycée -define portproxy = 1080 # Port utilisé par le proxy qu'on va configurer -define dhcp = 172.16.0.1 # IP de srv-service -define pcsecure = 172.16.0.10 # IP de pc-secure -define router = 192.168.0.1 # IP de GWSIO -define lan-dhcp = 172.16.0.100-172.16.0.200 # IPs utilisées en plage DHCP - -# Début des tables et des chaînes +# Chaînes à rajouter pour l'étape 7 table ip ipfilter { @@ -32,117 +8,23 @@ table ip ipfilter { # Permet le passage des réponses aux requêtes acceptées ct state established, related accept - # Autorise le SSH, étape 2 - tcp dport 22 iif $firewall-net accept - - # Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ, étape 4 - icmp type echo-request iif {$lanif} oif {$dmzif} accept - - # Accepte les réponses ping pour l'étape 4 - icmp type echo-reply accept - - # Autorise les requêtes HTTP/HTTPS venant de la LAN - A vérifier - tcp dport {$portproxy} ip saddr $lan-ntw ip daddr $proxy-dns accept - - # Autorise les requêtes DNS venant de la LAN - A vérifier - udp dport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept - udp sport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept - - # Autorise les réponses DNS allant vers la LAN (étape 5) - A vérifier, expérimental - udp dport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept - udp sport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept - - # Autorise les requêtes DNS depuis le serveur proxy vers sio.lan (gwsio) (étape 6) - tcp dport 53 ip saddr $proxy-dns ip daddr $router accept - # Autorise les requêtes vers internet si elles viennent du serveur proxy (étape 7) - A vérifier tcp dport {80,443} ip saddr $proxy-dns daddr $router accept } - chain system_in { - type filter hook input priority filter; policy drop; - - # Permet le passage des réponses aux requêtes acceptées - ct state established, related accept - - # Autorise le SSH, étape 2 - tcp dport 22 iif $firewall-net accept - - # Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ, étape 4 - icmp type echo-request iif {$lanif} oif {$dmzif} accept - - # Accepte les réponses ping pour l'étape 4 - icmp type echo-reply accept - - } - chain routing { type filter hook forward priority filter; policy drop; - # Permet le passage des réponses aux requêtes acceptées - ct state established, related accept - - # Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ, étape 4 - icmp type echo-request iif {$lanif} oif {$dmzif} accept - - # Autorise les requêtes HTTP/HTTPS venant de la LAN (étape 5) - A vérifier - tcp dport {$portproxy} ip saddr $lan-ntw ip daddr $proxy-dns accept - - # Autorise les requêtes DNS venant de la LAN (étape 5) - A vérifier - udp dport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept - udp sport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept - - # Autorise les réponses DNS allant vers la LAN (étape 5) - A vérifier, expérimental - udp dport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept - udp sport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept - - # Autorise les requêtes DNS depuis le serveur proxy vers sio.lan (gwsio) (étape 6) - tcp dport 53 ip saddr $proxy-dns ip daddr $router accept - # Autorise les requêtes vers internet si elles viennent du serveur proxy (étape 7) - A vérifier tcp dport {80,443} ip saddr $proxy-dns daddr $router accept } - chain system_out { - type filter hook output priority filter; policy drop; - - # Autorise le SSH à destination de srv-dmz et srv-service si la requête vient du firewall, étape 3 - A vérifier - tcp sport 22 ip saddr {$firewall-dmz, $firewall-lan} ip daddr {$proxy-dns, $dhcp} accept - - # Autorise le pare-feu à faire des pings vers toutes les machines, étape 4 - A vérifier - icmp type echo-request ip saddr {$firewall-net, $firewall-lan, $firewall-dmz} accept - - } - chain postrouting { type filter hook postrouting priority filter; policy drop; # Permet le passage des réponses aux requêtes acceptées ct state established, related accept - # Autorise le SSH à destination de srv-dmz et srv-service si la requête vient du firewall, étape 3 - A vérifier - tcp sport 22 ip saddr {$firewall-dmz, $firewall-lan} ip daddr {$proxy-dns, $dhcp} accept - - # Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ, étape 4 - icmp type echo-request iif {$lanif} oif {$dmzif} accept - - # Autorise le pare-feu à faire des pings vers toutes les machines, étape 4 - A vérifier - icmp type echo-request ip saddr {$firewall-net, $firewall-lan, $firewall-dmz} accept - - # Autorise les requêtes HTTP/HTTPS venant de la LAN (étape 5) - A vérifier - tcp dport {$portproxy} ip saddr $lan-ntw ip daddr $proxy-dns accept - - # Autorise les requêtes DNS venant de la LAN (étape 5) - A vérifier - udp dport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept - udp sport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept - - # Autorise les réponses DNS allant vers la LAN (étape 5) - A vérifier, expérimental - udp dport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept - udp sport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept - - # Autorise les requêtes DNS depuis le serveur proxy vers sio.lan (gwsio) (étape 6) - tcp dport 53 ip saddr $proxy-dns ip daddr $router accept - # Autorise les requêtes vers internet si elles viennent du serveur proxy (étape 7) - A vérifier tcp dport {80,443} ip saddr $proxy-dns daddr $router accept } diff --git a/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_8-9 b/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_8-9 index 50f4eec..e8b4001 100644 --- a/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_8-9 +++ b/sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_8-9 @@ -1,155 +1,7 @@ -# Définition des interfaces avec un nom -define netif = enp0s3 # Interface avec accès internet extérieur -define dmzif = enp0s8 # Interface branchée à la DMZ -define lanif = enp0s9 # Interface branchée au LAN - -# Définition des réseaux -define dmz-ntw = 172.17.0.0/24 # Plage réseau de la DMZ -define lan-ntw = 172.16.0.0/24 # Plage réseau du LAN -define net-ntw = 192.168.0.0/24 # Plage réseau, accès internet - -# Définition des IPs du pare-feu -define firewall-net = 192.168.0.120 -define firewall-lan = 172.16.0.254 -define firewall-dmz = 172.17.0.254 - -# Définition des choses importantes - Vérifier comment les commentaires en fin de ligne fonctionnent -define proxy-dns = 172.17.0.1 # IP de srv-dmz -define dns-school = {10.121.38.7 , 10.121.38.8} # Serveurs DNS du lycée -define portproxy = 1080 # Port utilisé par le proxy qu'on va configurer -define dhcp = 172.16.0.1 # IP de srv-service -define pcsecure = 172.16.0.10 # IP de pc-secure -define router = 192.168.0.1 # IP de GWSIO -define lan-dhcp = 172.16.0.100-172.16.0.200 # IPs utilisées en plage DHCP - -# Début des tables et des chaînes +# Chaînes à rajouter dans les étapes 8 et 9 table ip ipfilter { - chain prerouting { - type filter hook prerouting priority filter; policy drop; - - # Permet le passage des réponses aux requêtes acceptées - ct state established, related accept - - # Autorise le SSH, étape 2 - tcp dport 22 iif $firewall-net accept - - # Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ, étape 4 - icmp type echo-request iif {$lanif} oif {$dmzif} accept - - # Accepte les réponses ping pour l'étape 4 - icmp type echo-reply accept - - # Autorise les requêtes HTTP/HTTPS venant de la LAN - A vérifier - tcp dport {$portproxy} ip saddr $lan-ntw ip daddr $proxy-dns accept - - # Autorise les requêtes DNS venant de la LAN - A vérifier - udp dport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept - udp sport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept - - # Autorise les réponses DNS allant vers la LAN (étape 5) - A vérifier, expérimental - udp dport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept - udp sport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept - - # Autorise les requêtes DNS depuis le serveur proxy vers sio.lan (gwsio) (étape 6) - tcp dport 53 ip saddr $proxy-dns ip daddr $router accept - - # Autorise les requêtes vers internet si elles viennent du serveur proxy (étape 7) - A vérifier - tcp dport {80,443} ip saddr $proxy-dns daddr $router accept - } - - chain system_in { - type filter hook input priority filter; policy drop; - - # Permet le passage des réponses aux requêtes acceptées - ct state established, related accept - - # Autorise le SSH, étape 2 - tcp dport 22 iif $firewall-net accept - - # Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ, étape 4 - icmp type echo-request iif {$lanif} oif {$dmzif} accept - - # Accepte les réponses ping pour l'étape 4 - icmp type echo-reply accept - - } - - chain routing { - type filter hook forward priority filter; policy drop; - - # Permet le passage des réponses aux requêtes acceptées - ct state established, related accept - - # Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ, étape 4 - icmp type echo-request iif {$lanif} oif {$dmzif} accept - - # Autorise les requêtes HTTP/HTTPS venant de la LAN (étape 5) - A vérifier - tcp dport {$portproxy} ip saddr $lan-ntw ip daddr $proxy-dns accept - - # Autorise les requêtes DNS venant de la LAN (étape 5) - A vérifier - udp dport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept - udp sport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept - - # Autorise les réponses DNS allant vers la LAN (étape 5) - A vérifier, expérimental - udp dport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept - udp sport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept - - # Autorise les requêtes DNS depuis le serveur proxy vers sio.lan (gwsio) (étape 6) - tcp dport 53 ip saddr $proxy-dns ip daddr $router accept - - # Autorise les requêtes vers internet si elles viennent du serveur proxy (étape 7) - A vérifier - tcp dport {80,443} ip saddr $proxy-dns daddr $router accept - } - - chain system_out { - type filter hook output priority filter; policy drop; - - # Autorise le SSH à destination de srv-dmz et srv-service si la requête vient du firewall, étape 3 - A vérifier - tcp sport 22 ip saddr {$firewall-dmz, $firewall-lan} ip daddr {$proxy-dns, $dhcp} accept - - # Autorise le pare-feu à faire des pings vers toutes les machines, étape 4 - A vérifier - icmp type echo-request ip saddr {$firewall-net, $firewall-lan, $firewall-dmz} accept - - } - - chain postrouting { - type filter hook postrouting priority filter; policy drop; - - # Permet le passage des réponses aux requêtes acceptées - ct state established, related accept - - # Autorise le SSH à destination de srv-dmz et srv-service si la requête vient du firewall, étape 3 - A vérifier - tcp sport 22 ip saddr {$firewall-dmz, $firewall-lan} ip daddr {$proxy-dns, $dhcp} accept - - # Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ, étape 4 - icmp type echo-request iif {$lanif} oif {$dmzif} accept - - # Autorise le pare-feu à faire des pings vers toutes les machines, étape 4 - A vérifier - icmp type echo-request ip saddr {$firewall-net, $firewall-lan, $firewall-dmz} accept - - # Autorise les requêtes HTTP/HTTPS venant de la LAN (étape 5) - A vérifier - tcp dport {$portproxy} ip saddr $lan-ntw ip daddr $proxy-dns accept - - # Autorise les requêtes DNS venant de la LAN (étape 5) - A vérifier - udp dport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept - udp sport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept - - # Autorise les réponses DNS allant vers la LAN (étape 5) - A vérifier, expérimental - udp dport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept - udp sport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept - - # Autorise les requêtes DNS depuis le serveur proxy vers sio.lan (gwsio) (étape 6) - tcp dport 53 ip saddr $proxy-dns ip daddr $router accept - - # Autorise les requêtes vers internet si elles viennent du serveur proxy (étape 7) - A vérifier - tcp dport {80,443} ip saddr $proxy-dns daddr $router accept - } - - -# Chaînes pour la NAT - étape 8 et 9. - chain nat_prerouting { type nat hook prerouting priority filter; policy accept; -- 2.47.2