Nouveau fichier : sisr1/tp07/files_firewall/current_ruleset_partie_7.nft
This commit is contained in:
		
							
								
								
									
										215
									
								
								sisr1/tp07/files_firewall/current_ruleset_partie_7.nft
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										215
									
								
								sisr1/tp07/files_firewall/current_ruleset_partie_7.nft
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,215 @@
 | 
			
		||||
# Définition des interfaces avec un nom
 | 
			
		||||
define netif = enp0s3
 | 
			
		||||
define dmzif = enp0s8
 | 
			
		||||
define lanif = enp0s9
 | 
			
		||||
 | 
			
		||||
# Définition de l'IP du serveur web
 | 
			
		||||
define srv = 172.16.0.1
 | 
			
		||||
 | 
			
		||||
# Définition du réseau LAN
 | 
			
		||||
define lan-ntw = 10.0.0.0/24
 | 
			
		||||
 | 
			
		||||
# Définition de l'IP du proxy, du DNS, du port du proxy et du réseau DMZ pour ne pas à tout retaper
 | 
			
		||||
define proxy = 10.121.38.1
 | 
			
		||||
define dns = {10.121.38.7 , 10.121.38.8}
 | 
			
		||||
define proxyport = 8080
 | 
			
		||||
define dmznet = 172.16.0.1-172.16.0.254
 | 
			
		||||
 | 
			
		||||
# Définition des IPs des cartes de la machine firewall
 | 
			
		||||
define firewall = 192.168.0.120
 | 
			
		||||
define ipdmz = 172.16.0.254
 | 
			
		||||
define iplan = 10.0.0.254
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
		#Accepte les réponses ping
 | 
			
		||||
		icmp type echo-reply accept
 | 
			
		||||
 | 
			
		||||
		#Accepte les requêtes de ping si elles viennent du LAN, à destination de la DMZ
 | 
			
		||||
		icmp type echo-request iif {$lanif} ip daddr $dmznet accept
 | 
			
		||||
 | 
			
		||||
		#Même chose que plus haut, mais à destination de l'IP de la carte LAN du firewall
 | 
			
		||||
		icmp type echo-request iif {$lanif} ip daddr {$iplan} accept
 | 
			
		||||
 | 
			
		||||
                #Autorise les requêtes ayant pour port de destination les ports FTP
 | 
			
		||||
		tcp dport 20 accept
 | 
			
		||||
                tcp dport 21 accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes HTTP/HTTPS venant de la LAN
 | 
			
		||||
                tcp dport {80, 443} ip saddr $lan-ntw accept
 | 
			
		||||
		tcp sport {80, 443} ip saddr $lan-ntw accept
 | 
			
		||||
 | 
			
		||||
		#Autorise le SSH
 | 
			
		||||
		tcp dport 22 accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes DNS depuis la DMZ et le LAN
 | 
			
		||||
		udp sport 53 iif {$dmzif, $lanif} accept
 | 
			
		||||
		udp dport 53 accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes provenant du proxy avec ports HTTP/HTTPS
 | 
			
		||||
		ip saddr $proxy tcp dport {80, 443} accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes qui vont vers le serveur DNS
 | 
			
		||||
		ip daddr $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
 | 
			
		||||
 | 
			
		||||
		#Accepte les réponses ping
 | 
			
		||||
		icmp type echo-reply accept
 | 
			
		||||
 | 
			
		||||
		#Accepte les requêtes de ping si elles viennent du LAN
 | 
			
		||||
		icmp type echo-request iif {$lanif} accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes ayant pour port de destination les ports FTP
 | 
			
		||||
                tcp dport 20 accept
 | 
			
		||||
                tcp dport 21 accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes HTTP/HTTPS
 | 
			
		||||
                tcp dport {80, 443} accept
 | 
			
		||||
 | 
			
		||||
		#Autorise le SSH
 | 
			
		||||
                tcp dport 22 accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes DNS
 | 
			
		||||
		udp sport 53 accept
 | 
			
		||||
                udp dport 53 accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes provenant du proxy avec ports HTTP/HTTPS
 | 
			
		||||
		ip saddr $proxy tcp dport {80, 443} 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
 | 
			
		||||
        	icmp type echo-request iif {$lanif} oif {$dmzif} accept
 | 
			
		||||
 | 
			
		||||
		#Même chose que plus haut, mais à destination de l'IP de la carte LAN du firewall
 | 
			
		||||
		icmp type echo-reply iif {$dmzif} oif {$lanif} accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes HTTP/HTTPS venant de la LAN
 | 
			
		||||
                tcp dport {80, 443} ip saddr $lan-ntw accept
 | 
			
		||||
		tcp sport {80, 443} ip saddr $lan-ntw accept
 | 
			
		||||
 | 
			
		||||
		#Autorise le port forwarding pour la DMZ pour HTTP/HTTPS
 | 
			
		||||
		tcp dport {80, 443} ip saddr $srv accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes DNS depuis la DMZ et le LAN
 | 
			
		||||
		udp sport 53 iif {$lanif, $dmzif} accept
 | 
			
		||||
		udp dport 53 accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes qui vont vers le serveur DNS
 | 
			
		||||
		ip daddr $dns accept
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 	chain system_out {
 | 
			
		||||
                type filter hook output priority filter; policy drop;
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes qui vont vers le serveur DNS
 | 
			
		||||
                ip daddr $dns accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes provenant du proxy, depuis le port 8080
 | 
			
		||||
                ip daddr $proxy tcp dport $proxyport accept
 | 
			
		||||
 | 
			
		||||
		#Accepte les requêtes de ping si elles viennent du LAN
 | 
			
		||||
		icmp type echo-reply oif {$lanif} accept
 | 
			
		||||
 | 
			
		||||
		#Accepte les requêtes ping
 | 
			
		||||
		icmp type echo-request accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes ayant pour port de destination les ports FTP
 | 
			
		||||
                tcp dport 20 accept
 | 
			
		||||
		tcp sport 20 accept
 | 
			
		||||
                tcp dport 21 accept
 | 
			
		||||
		tcp sport 21 accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes provenant des ports HTTP/HTTPS
 | 
			
		||||
                tcp dport {80, 443} accept
 | 
			
		||||
		tcp sport {80, 443} accept
 | 
			
		||||
 | 
			
		||||
		#Autorise le SSH
 | 
			
		||||
		tcp sport 22 accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes DNS
 | 
			
		||||
                udp sport 53 accept
 | 
			
		||||
                udp dport 53 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 les requêtes qui vont vers le serveur DNS
 | 
			
		||||
		ip daddr $dns accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes allant vers le proxy avec le port 8080
 | 
			
		||||
		ip daddr $proxy tcp dport $proxyport accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes ping venant des cartes LAN, DMZ et la carte en pont du firewall
 | 
			
		||||
		icmp type echo-request ip saddr {$iplan, $ipdmz, $firewall} accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les réponses ping si elles viennent de la DMZ à destination du LAN
 | 
			
		||||
		icmp type echo-reply iif {$dmzif}  oif {$lanif} accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes ping venant de la LAN à destination de la DMZ
 | 
			
		||||
		icmp type echo-request iif {$lanif} oif {$dmzif} accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes ping ayant le LAN pour origine, à destination de la carte LAN du firewall
 | 
			
		||||
		icmp type echo-request ip saddr $iplan oif $lanif accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes FTP
 | 
			
		||||
                tcp dport 20 accept
 | 
			
		||||
                tcp sport 20 accept
 | 
			
		||||
                tcp dport 21 accept
 | 
			
		||||
                tcp sport 21 accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes ayant pour ports HTTP et HTTPS comme ports de destination et de source
 | 
			
		||||
                tcp dport {80, 443} accept
 | 
			
		||||
		tcp sport {80, 443} accept
 | 
			
		||||
 | 
			
		||||
		#Autorise le SSH
 | 
			
		||||
		tcp sport 22 accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes DNS
 | 
			
		||||
                udp sport 53 accept
 | 
			
		||||
                udp dport 53 accept
 | 
			
		||||
 | 
			
		||||
		#Autorise les requêtes provenant du DNS
 | 
			
		||||
		ip daddr $dns accept
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	chain pre_nat {
 | 
			
		||||
                type nat hook prerouting priority filter; policy accept;
 | 
			
		||||
		
 | 
			
		||||
		#Autorise les requêtes HTTP vers la carte LAN du firewall
 | 
			
		||||
		tcp dport 80 ip daddr $firewall dnat $srv:80
 | 
			
		||||
		#Même chose mais pour HTTPS
 | 
			
		||||
		tcp dport 443 ip daddr $firewall dnat $srv:443
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	chain post_nat {
 | 
			
		||||
                type nat hook postrouting priority filter; policy accept;
 | 
			
		||||
 | 
			
		||||
		#Autorise la NAT à destination du firewall si la requête vient du LAN et part vers Internet
 | 
			
		||||
		ip saddr $lan-ntw oif $netif snat $firewall
 | 
			
		||||
 | 
			
		||||
		#Même chose, mais si la requête provient de la DMZ
 | 
			
		||||
		ip saddr $dmznet oif $netif snat $firewall
 | 
			
		||||
	}
 | 
			
		||||
 }
 | 
			
		||||
		Reference in New Issue
	
	Block a user