Modifié : sisr1/tp08_evolution_infrastructure/rules_progressive/firewall_8-9 #19

Merged
guillaume.emorine merged 1 commits from test into main 2024-05-02 13:53:21 +02:00

View File

@ -1,12 +1,12 @@
# Définition des interfaces avec un nom # Définition des interfaces avec un nom
define netif = enp0s3 define netif = enp0s3 # Interface avec accès internet extérieur
define dmzif = enp0s8 define dmzif = enp0s8 # Interface branchée à la DMZ
define lanif = enp0s9 define lanif = enp0s9 # Interface branchée au LAN
# Définition des réseaux # Définition des réseaux
define dmz-ntw = 172.17.0.0/24 define dmz-ntw = 172.17.0.0/24 # Plage réseau de la DMZ
define lan-ntw = 172.16.0.0/24 define lan-ntw = 172.16.0.0/24 # Plage réseau du LAN
define net-ntw = 192.168.0.0/24 define net-ntw = 192.168.0.0/24 # Plage réseau, accès internet
# Définition des IPs du pare-feu # Définition des IPs du pare-feu
define firewall-net = 192.168.0.120 define firewall-net = 192.168.0.120
@ -29,116 +29,116 @@ table ip ipfilter {
chain prerouting { chain prerouting {
type filter hook prerouting priority filter; policy drop; type filter hook prerouting priority filter; policy drop;
#Permet le passage des réponses aux requêtes acceptées # Permet le passage des réponses aux requêtes acceptées
ct state established, related accept ct state established, related accept
#Autorise le SSH, étape 2 # Autorise le SSH, étape 2
tcp dport 22 iif $firewall-net accept tcp dport 22 iif $firewall-net accept
#Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ, étape 4 # 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 icmp type echo-request iif {$lanif} oif {$dmzif} accept
#Accepte les réponses ping pour l'étape 4 # Accepte les réponses ping pour l'étape 4
icmp type echo-reply accept 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 - A vérifier
tcp dport {$portproxy} ip saddr $lan-ntw ip daddr $proxy-dns accept 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 - A vérifier
udp dport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept udp dport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept
udp sport 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 # 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 dport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept
udp sport 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) # 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 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 # Autorise les requêtes vers internet si elles viennent du serveur proxy (étape 7) - A vérifier
ip saddr $proxy-dns daddr $router accept ip saddr $proxy-dns daddr $router accept
} }
chain system_in { chain system_in {
type filter hook input priority filter; policy drop; type filter hook input priority filter; policy drop;
#Permet le passage des réponses aux requêtes acceptées # Permet le passage des réponses aux requêtes acceptées
ct state established, related accept ct state established, related accept
#Refuse les paquets sans états/qui viennent d'une connexion inconnue # Refuse les paquets sans états/qui viennent d'une connexion inconnue
ct state invalid, untracked drop ct state invalid, untracked drop
#Autorise le SSH, étape 2 # Autorise le SSH, étape 2
tcp dport 22 iif $firewall-net accept tcp dport 22 iif $firewall-net accept
#Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ, étape 4 # 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 icmp type echo-request iif {$lanif} oif {$dmzif} accept
#Accepte les réponses ping pour l'étape 4 # Accepte les réponses ping pour l'étape 4
icmp type echo-reply accept icmp type echo-reply accept
#Autorise les requêtes HTTP/HTTPS venant de la LAN (étape 5) - A vérifier # 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 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 # 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 dport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept
udp sport 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 # 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 dport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept
udp sport 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 vers internet si elles viennent du serveur proxy (étape 7) - A vérifier # Autorise les requêtes vers internet si elles viennent du serveur proxy (étape 7) - A vérifier
ip saddr $proxy-dns daddr $router accept ip saddr $proxy-dns daddr $router accept
} }
chain routing { chain routing {
type filter hook forward priority filter; policy drop; type filter hook forward priority filter; policy drop;
#Permet le passage des réponses aux requêtes acceptées # Permet le passage des réponses aux requêtes acceptées
ct state established, related accept ct state established, related accept
#Refuse les paquets sans états/qui viennent d'une connexion inconnue # Refuse les paquets sans états/qui viennent d'une connexion inconnue
ct state invalid, untracked drop ct state invalid, untracked drop
#Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ, étape 4 # 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 icmp type echo-request iif {$lanif} oif {$dmzif} accept
#Autorise les requêtes HTTP/HTTPS venant de la LAN (étape 5) - A vérifier # 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 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 # 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 dport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept
udp sport 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 # 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 dport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept
udp sport 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) # 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 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 # Autorise les requêtes vers internet si elles viennent du serveur proxy (étape 7) - A vérifier
ip saddr $proxy-dns daddr $router accept ip saddr $proxy-dns daddr $router accept
} }
chain system_out { chain system_out {
type filter hook output priority filter; policy drop; 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 # 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 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 # 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 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 # 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 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 # 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 dport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept
udp sport 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 # 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 dport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept
udp sport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept udp sport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept
} }
@ -146,36 +146,36 @@ table ip ipfilter {
chain postrouting { chain postrouting {
type filter hook postrouting priority filter; policy drop; type filter hook postrouting priority filter; policy drop;
#Permet le passage des réponses aux requêtes acceptées # Permet le passage des réponses aux requêtes acceptées
ct state established, related accept ct state established, related accept
#Refuse les paquets sans états/qui viennent d'une connexion inconnue # Refuse les paquets sans états/qui viennent d'une connexion inconnue
ct state invalid, untracked drop ct state invalid, untracked drop
#Autorise le SSH à destination de srv-dmz et srv-service si la requête vient du firewall, étape 3 - A vérifier # 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 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 # 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 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 # 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 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 # 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 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 # 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 dport 53 ip saddr $lan-ntw ip daddr $proxy-dns accept
udp sport 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 # 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 dport 53 ip daddr $lan-ntw ip saddr $proxy-dns accept
udp sport 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) # 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 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 # Autorise les requêtes vers internet si elles viennent du serveur proxy (étape 7) - A vérifier
ip saddr $proxy-dns daddr $router accept ip saddr $proxy-dns daddr $router accept
} }
@ -183,11 +183,11 @@ table ip ipfilter {
# Chaînes pour la NAT - étape 8 et 9. # Chaînes pour la NAT - étape 8 et 9.
chain nat_prerouting { chain nat_prerouting {
type nat hook prerouting priority filter; policy accept;* type nat hook prerouting priority filter; policy accept;
# Port Forwarding pour le DNS, entre pare-feu et DMZ (étape 9) # Port Forwarding pour le DNS, entre pare-feu et DMZ (étape 9)
iif eth0 udp dport 53 dnat to $proxy-dns iif $netif udp dport 53 dnat to $proxy-dns
iif eth0 tcp dport 53 dnat to $proxy-dns iif $netif tcp dport 53 dnat to $proxy-dns
} }