Modifications aux fichiers de règles, reflétées dans le README #22

Merged
guillaume.emorine merged 1 commits from test into main 2024-05-06 08:10:39 +02:00
7 changed files with 9 additions and 551 deletions

View File

@ -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.
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.

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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
}

View File

@ -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
}

View File

@ -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;