renommé : TP04/Scripts/.bash_history -> sio1/TP04/Scripts/.bash_history

renommé :         TP04/Scripts/.bashrc -> sio1/TP04/Scripts/.bashrc
	renommé :         TP04/Scripts/.lesshst -> sio1/TP04/Scripts/.lesshst
	renommé :         TP04/Scripts/.profile -> sio1/TP04/Scripts/.profile
	renommé :         TP04/Scripts/.ssh/id_rsa -> sio1/TP04/Scripts/.ssh/id_rsa
	renommé :         TP04/Scripts/.ssh/id_rsa.pub -> sio1/TP04/Scripts/.ssh/id_rsa.pub
	renommé :         TP04/Scripts/.ssh/known_hosts -> sio1/TP04/Scripts/.ssh/known_hosts
	renommé :         TP04/Scripts/.ssh/known_hosts.old -> sio1/TP04/Scripts/.ssh/known_hosts.old
	renommé :         TP04/Scripts/LeScript.sh -> sio1/TP04/Scripts/LeScript.sh
	renommé :         TP04/Scripts/Users.csv -> sio1/TP04/Scripts/Users.csv
	renommé :         TP04/Scripts/createLogins.sh -> sio1/TP04/Scripts/createLogins.sh
	renommé :         TP04/Scripts/createUsers.sh -> sio1/TP04/Scripts/createUsers.sh
	renommé :         TP04/Scripts/logins.csv -> sio1/TP04/Scripts/logins.csv
	renommé :         TP04/Scripts/testlogin.csv -> sio1/TP04/Scripts/testlogin.csv
	renommé :         siotp/sisr1/TP7/scriptsnft/current_ruleset.nft -> sio1/siotp/sisr1/TP7/scriptsnft/current_ruleset.nft
	renommé :         siotp/sisr1/TP7/scriptsnft/fw_part1.nft -> sio1/siotp/sisr1/TP7/scriptsnft/fw_part1.nft
	renommé :         siotp/sisr1/TP7/scriptsnft/fw_part2.nft -> sio1/siotp/sisr1/TP7/scriptsnft/fw_part2.nft
	renommé :         siotp/sisr1/TP7/scriptsnft/fw_part3.nft -> sio1/siotp/sisr1/TP7/scriptsnft/fw_part3.nft
	renommé :         siotp/sisr1/TP7/scriptsnft/fw_part4.nft -> sio1/siotp/sisr1/TP7/scriptsnft/fw_part4.nft
	renommé :         siotp/sisr1/TP7/scriptsnft/fw_part5.nft -> sio1/siotp/sisr1/TP7/scriptsnft/fw_part5.nft
	renommé :         siotp/sisr1/TP7/scriptsnft/fw_part6.nft -> sio1/siotp/sisr1/TP7/scriptsnft/fw_part6.nft
	renommé :         siotp/sisr1/TP7/scriptsnft/fw_part7.nft -> sio1/siotp/sisr1/TP7/scriptsnft/fw_part7.nft
	renommé :         siotp/sisr1/TP7/scriptsnft/old-current_ruleset.nft -> sio1/siotp/sisr1/TP7/scriptsnft/old-current_ruleset.nft
	renommé :         siotp/sisr1/TP7/scriptsnft/refresh_firewall.sh -> sio1/siotp/sisr1/TP7/scriptsnft/refresh_firewall.sh
	renommé :         siotp/sisr1/tp01-02/srv-dhcp/dhcpd.conf -> sio1/siotp/sisr1/tp01-02/srv-dhcp/dhcpd.conf
	renommé :         siotp/sisr1/tp01-02/srv-dhcp/hosts -> sio1/siotp/sisr1/tp01-02/srv-dhcp/hosts
	renommé :         siotp/sisr1/tp01-02/srv-dhcp/interfaces -> sio1/siotp/sisr1/tp01-02/srv-dhcp/interfaces
	renommé :         siotp/sisr1/tp01-02/srv-dhcp/isc-dhcp-server -> sio1/siotp/sisr1/tp01-02/srv-dhcp/isc-dhcp-server
	renommé :         siotp/sisr1/tp01-02/srv-dhcp/nat.sh -> sio1/siotp/sisr1/tp01-02/srv-dhcp/nat.sh
	renommé :         siotp/sisr1/tp01-02/srv-dns1/db.sio1lab.lan -> sio1/siotp/sisr1/tp01-02/srv-dns1/db.sio1lab.lan
	renommé :         siotp/sisr1/tp01-02/srv-dns1/db.sio1lab.lan.rev -> sio1/siotp/sisr1/tp01-02/srv-dns1/db.sio1lab.lan.rev
	renommé :         siotp/sisr1/tp01-02/srv-dns1/named.conf -> sio1/siotp/sisr1/tp01-02/srv-dns1/named.conf
	renommé :         siotp/sisr1/tp01-02/srv-dns1/named.conf.local -> sio1/siotp/sisr1/tp01-02/srv-dns1/named.conf.local
	renommé :         siotp/sisr1/tp01-02/srv-dns1/named.conf.options -> sio1/siotp/sisr1/tp01-02/srv-dns1/named.conf.options
	renommé :         siotp/sisr1/tp01-02/srv-dns2/db.sio1lab.lan -> sio1/siotp/sisr1/tp01-02/srv-dns2/db.sio1lab.lan
	renommé :         siotp/sisr1/tp01-02/srv-dns2/db.sio1lab.lan.rev -> sio1/siotp/sisr1/tp01-02/srv-dns2/db.sio1lab.lan.rev
	renommé :         siotp/sisr1/tp01-02/srv-dns2/named.conf.default-zones -> sio1/siotp/sisr1/tp01-02/srv-dns2/named.conf.default-zones
	renommé :         siotp/sisr1/tp01-02/srv-dns2/named.conf.local -> sio1/siotp/sisr1/tp01-02/srv-dns2/named.conf.local
	renommé :         siotp/sisr1/tp01-02/srv-dns2/named.conf.options -> sio1/siotp/sisr1/tp01-02/srv-dns2/named.conf.options
	renommé :         siotp/sisr1/tp03/srv-admin/interfaces -> sio1/siotp/sisr1/tp03/srv-admin/interfaces
	renommé :         siotp/sisr1/tp03/srv-admin/nat.sh -> sio1/siotp/sisr1/tp03/srv-admin/nat.sh
	renommé :         siotp/sisr1/tp03/srv-dns2/bind/db.monlabo.lan -> sio1/siotp/sisr1/tp03/srv-dns2/bind/db.monlabo.lan
	renommé :         siotp/sisr1/tp03/srv-dns2/bind/db.monlabo.lan.rev -> sio1/siotp/sisr1/tp03/srv-dns2/bind/db.monlabo.lan.rev
	renommé :         siotp/sisr1/tp03/srv-dns2/bind/named.conf.local -> sio1/siotp/sisr1/tp03/srv-dns2/bind/named.conf.local
	renommé :         siotp/sisr1/tp03/srv-dns2/bind/named.conf.options -> sio1/siotp/sisr1/tp03/srv-dns2/bind/named.conf.options
	renommé :         siotp/sisr1/tp03/srv-service/bind/db.monlabo.lan -> sio1/siotp/sisr1/tp03/srv-service/bind/db.monlabo.lan
	renommé :         siotp/sisr1/tp03/srv-service/bind/db.monlabo.lan.rev -> sio1/siotp/sisr1/tp03/srv-service/bind/db.monlabo.lan.rev
	renommé :         siotp/sisr1/tp03/srv-service/bind/named.conf.local -> sio1/siotp/sisr1/tp03/srv-service/bind/named.conf.local
	renommé :         siotp/sisr1/tp03/srv-service/bind/named.conf.options -> sio1/siotp/sisr1/tp03/srv-service/bind/named.conf.options
	renommé :         siotp/sisr1/tp03/srv-service/dhcp/dhcpd.conf -> sio1/siotp/sisr1/tp03/srv-service/dhcp/dhcpd.conf
	renommé :         siotp/sisr1/tp4/Users.csv -> sio1/siotp/sisr1/tp4/Users.csv
	renommé :         siotp/sisr1/tp4/createLogins.sh -> sio1/siotp/sisr1/tp4/createLogins.sh
	renommé :         siotp/sisr1/tp4/logins.csv -> sio1/siotp/sisr1/tp4/logins.csv
	renommé :         squid/conf.d/debian.conf -> sio1/squid/conf.d/debian.conf
	renommé :         squid/errorpage.css -> sio1/squid/errorpage.css
	renommé :         squid/passwords -> sio1/squid/passwords
	renommé :         squid/squid.conf -> sio1/squid/squid.conf
	renommé :         squid/squid.conf.old -> sio1/squid/squid.conf.old
	renommé :         squid/users -> sio1/squid/users
This commit is contained in:
Jarod Pauchet
2024-09-09 17:49:54 +02:00
parent ee2d9a9ef2
commit 3009bf1f9b
59 changed files with 0 additions and 0 deletions

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

View File

@@ -0,0 +1,18 @@
define netif = enp0s3
define dmzif = enp0s8
define lanif = enp0s9
table ip ipfilter {
chain routing {
type filter hook forward priority filter; policy accept;
icmp type echo-request iif { "$netif", "$dmzif" } drop
icmp type { echo-reply, echo-request } accept
drop
}
chain system_in {
type filter hook input priority filter; policy accept;
icmp type echo-request iif { "$netif", "$dmzif" } drop
}
}

View File

@@ -0,0 +1,34 @@
define netif = enp0s3
define dmzif = enp0s8
define lanif = enp0s9
table ip ipfilter {
chain prerouting {
type filter hook prerouting priority filter; policy drop;
tcp dport 22 accept
}
chain routing {
type filter hook forward priority filter; policy drop;
icmp type echo-request iif { $netif, $dmzif } drop
icmp type { echo-reply, echo-request } accept
}
chain system_in {
type filter hook input priority filter; policy drop;
icmp type echo-request iif { $netif, $dmzif } drop
tcp dport 22 accept
}
chain system_out {
type filter hook output priority filter; policy drop;
tcp sport 22 accept
}
chain postrouting {
type filter hook postrouting priority filter; policy drop;
tcp sport 22 accept
}
}

View File

@@ -0,0 +1,41 @@
define netif = enp0s3
define dmzif = enp0s8
define lanif = enp0s9
define netip = 192.168.0.140
define dmzip = 172.16.0.254
define lanip = 10.0.0.254
table ip ipfilter{
chain prerouting {
type filter hook prerouting priority filter; policy drop;
icmp type echo-request iif $lanif ip daddr 172.16.0.1-172.16.0.254 accept
icmp type echo-request iif $lanif ip daddr $lanip accept
icmp type echo-reply accept
tcp dport 22 accept
}
chain system_in {
type filter hook input priority filter; policy drop;
icmp type echo-request iif $lanif accept
icmp type echo-reply accept
tcp dport 22 accept
}
chain routing {
type filter hook forward priority filter; policy drop;
icmp type echo-request iif $lanif oif $dmzif accept
icmp type echo-reply iif $dmzif oif $lanif accept
}
chain system_out {
type filter hook output priority filter; policy drop;
icmp type echo-request accept
icmp type echo-reply oif $lanif accept
tcp sport 22 accept
}
chain postrouting {
type filter hook postrouting priority filter; policy drop;
icmp type echo-request ip saddr {$lanip , $dmzip , $netip } accept
icmp type echo-request iif $lanif oif $dmzif accept
icmp type echo-reply iif $dmzif oif $lanif accept
icmp type echo-reply ip saddr $lanip oif $lanif accept
tcp sport 22 accept
}
}

View File

@@ -0,0 +1,68 @@
define netif = enp0s3
define dmzif = enp0s8
define lanif = enp0s9
define firewall = 192.168.0.140
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;
icmp type echo-reply accept
ct state established, related accept
icmp type echo-request iif {$lanif} ip daddr 172.16.0.1-172.16.0.254 accept
icmp type echo-request iif {$lanif} ip daddr {$iplan} accept
tcp dport 20 accept
tcp dport 21 accept
tcp dport {80, 443} accept
tcp dport 22 accept
ip saddr 10.121.38.1 tcp dport {80, 443} accept
}
chain system_in {
type filter hook input priority filter; policy drop;
icmp type echo-reply accept
icmp type echo-request iif {$lanif} accept
ct state established, related accept
tcp dport 20 accept
tcp dport 21 accept
tcp dport {80, 443} accept
tcp dport 22 accept
ip saddr 10.121.38.1 tcp dport {80, 443} accept
}
chain routing {
type filter hook forward priority filter; policy drop;
icmp type echo-request iif {$lanif} oif {$dmzif} accept
icmp type echo-reply iif {$dmzif} oif {$lanif} accept
}
chain system_out {
type filter hook output priority filter; policy drop;
ip daddr 10.121.38.7-10.121.38.8 accept
ip daddr 10.121.38.1 tcp dport 8080 accept
icmp type echo-reply oif {$lanif} accept
icmp type echo-request accept
tcp dport 20 accept
tcp sport 20 accept
tcp dport 21 accept
tcp sport 21 accept
tcp dport {80, 443} accept
tcp sport {80, 443} accept
tcp sport 22 accept
}
chain postrouting {
type filter hook postrouting priority filter; policy drop;
ip daddr 10.121.38.7-10.121.38.8 accept
ip daddr 10.121.38.1 tcp dport 8080 accept
icmp type echo-request ip saddr {$iplan, $ipdmz, $firewall} accept
icmp type echo-reply iif {$dmzif} oif {$lanif} accept
icmp type echo-request iif {$lanif} oif {$dmzif} accept
icmp type echo-request ip saddr $iplan oif $lanif accept
tcp dport 20 accept
tcp sport 20 accept
tcp dport 21 accept
tcp sport 21 accept
tcp dport {80, 443} accept
tcp sport {80, 443} accept
tcp sport 22 accept
}
}

View File

@@ -0,0 +1,94 @@
define netif = enp0s3
define dmzif = enp0s8
define lanif = enp0s9
define firewall = 192.168.0.140
define ipdmz = 172.16.0.254
define iplan = 10.0.0.254
define lan-ntw = 10.0.0.0/24
define dns-server = {10.121.38.7 , 10.121.38.8}
define proxy-lyc = 10.121.38.1
define proxy-port = 8080
table ip ipfilter{
chain prerouting {
type filter hook prerouting priority filter; policy drop;
icmp type echo-reply accept
ct state established, related accept
icmp type echo-request iif {$lanif} ip daddr 172.16.0.1-172.16.0.254 accept
icmp type echo-request iif {$lanif} ip daddr {$iplan} accept
tcp dport 20 accept
tcp dport 21 accept
tcp dport {80, 443} accept
tcp dport 22 accept
ip saddr $proxy-lyc tcp dport {80, 443} accept
ct state {established,related} accept
tcp sport {80,443} ip saddr $lan-ntw accept
tcp dport {80,443} ip saddr $lan-ntw accept
}
chain system_in {
type filter hook input priority filter; policy drop;
icmp type echo-reply accept
icmp type echo-request iif {$lanif} accept
ct state established, related accept
tcp dport 20 accept
tcp dport 21 accept
tcp dport {80, 443} accept
tcp dport 22 accept
ip saddr $proxy-lyc tcp dport {80, 443} accept
}
chain routing {
type filter hook forward priority filter; policy drop;
icmp type echo-request iif {$lanif} oif {$dmzif} accept
icmp type echo-reply iif {$dmzif} oif {$lanif} accept
ct state {established,related} accept
tcp sport {80,443} ip saddr $lan-ntw accept
tcp dport {80,443} ip saddr $lan-ntw accept
}
chain system_out {
type filter hook output priority filter; policy drop;
ip daddr $dns-server accept
ip daddr $proxy-lyc tcp dport $proxy-port accept
icmp type echo-reply oif {$lanif} accept
icmp type echo-request accept
tcp dport 20 accept
tcp sport 20 accept
tcp dport 21 accept
tcp sport 21 accept
tcp dport {80, 443} accept
tcp sport {80, 443} accept
tcp sport 22 accept
}
chain postrouting {
type filter hook postrouting priority filter; policy drop;
ip daddr $dns-server accept
ip daddr $proxy-lyc tcp dport $proxy-port accept
icmp type echo-request ip saddr {$iplan, $ipdmz, $firewall} accept
icmp type echo-reply iif {$dmzif} oif {$lanif} accept
icmp type echo-request iif {$lanif} oif {$dmzif} accept
icmp type echo-request ip saddr $iplan oif $lanif accept
tcp dport 20 accept
tcp sport 20 accept
tcp dport 21 accept
tcp sport 21 accept
tcp dport {80, 443} accept
tcp sport {80, 443} accept
tcp sport 22 accept
ct state {established,related} accept
}
}
table ip nat {
chain prerouting {
type nat hook prerouting priority filter; policy accept;
}
chain postrouting {
type nat hook postrouting priority filter; policy accept;
ip saddr $lan-ntw oif $netif snat $firewall
}
}

View File

@@ -0,0 +1,200 @@
# Définition des interfaces avec un nom
define netif = enp0s3
define dmzif = enp0s8
define lanif = enp0s9
# 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.140
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 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;
}
chain post_nat {
type nat hook postrouting priority filter; policy accept;
ip saddr $lan-ntw oif $netif snat $firewall
ip saddr $dmznet oif $netif snat $firewall
}
}

View 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.140
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
}
}

View File

@@ -0,0 +1,106 @@
define netif = enp0s3
define dmzif = enp0s8
define lanif = enp0s9
define firewall = 192.168.0.140
define ipdmz = 172.16.0.254
define iplan = 10.0.0.254
define ipsrvweb = 172.16.0.1
define dmznet = 172.16.0.1-172.16.0.254
define lan-ntw = 10.0.0.0/24
define dns-server = {10.121.38.7 , 10.121.38.8}
define proxy-lyc = 10.121.38.1
define proxy-port = 8080
table ip ipfilter{
chain prerouting {
type filter hook prerouting priority filter; policy drop;
icmp type echo-reply accept
ct state established, related accept
icmp type echo-request iif {$lanif} ip daddr 172.16.0.1-172.16.0.254 accept
icmp type echo-request iif {$lanif} ip daddr {$iplan} accept
tcp dport 20 accept
tcp dport 21 accept
tcp dport {80, 443} accept
tcp dport 22 accept
ip saddr $proxy-lyc tcp dport {80, 443} accept
ct state {established,related} accept
tcp sport {80,443} ip saddr $lan-ntw accept
tcp dport {80,443} ip saddr $lan-ntw accept
udp dport 53 accept
}
chain system_in {
type filter hook input priority filter; policy drop;
icmp type echo-reply accept
icmp type echo-request iif {$lanif} accept
ct state established, related accept
tcp dport 20 accept
tcp dport 21 accept
tcp dport {80, 443} accept
tcp dport 22 accept
ip saddr $proxy-lyc tcp dport {80, 443} accept
}
chain routing {
type filter hook forward priority filter; policy drop;
icmp type echo-request iif {$lanif} oif {$dmzif} accept
icmp type echo-reply iif {$dmzif} oif {$lanif} accept
ct state {established,related} accept
tcp sport {80,443} ip saddr $lan-ntw accept
tcp dport {80,443} ip saddr $lan-ntw accept
udp dport 53 iif {$lanif, $dmzif} accept
# http et https vers srvweb
tcp dport {80, 443} ip daddr $ipsrvweb accept
}
chain system_out {
type filter hook output priority filter; policy drop;
ip daddr $dns-server accept
ip daddr $proxy-lyc tcp dport $proxy-port accept
icmp type echo-reply oif {$lanif} accept
icmp type echo-request accept
tcp dport 20 accept
tcp sport 20 accept
tcp dport 21 accept
tcp sport 21 accept
tcp dport {80, 443} accept
tcp sport {80, 443} accept
tcp sport 22 accept
udp dport 53 accept
}
chain postrouting {
type filter hook postrouting priority filter; policy drop;
ip daddr $dns-server accept
ip daddr $proxy-lyc tcp dport $proxy-port accept
icmp type echo-request ip saddr {$iplan, $ipdmz, $firewall} accept
icmp type echo-reply iif {$dmzif} oif {$lanif} accept
icmp type echo-request iif {$lanif} oif {$dmzif} accept
icmp type echo-request ip saddr $iplan oif $lanif accept
tcp dport 20 accept
tcp sport 20 accept
tcp dport 21 accept
tcp sport 21 accept
tcp dport {80, 443} accept
tcp sport {80, 443} accept
tcp sport 22 accept
ct state {established,related} accept
udp dport 53 accept
}
}
table ip nat {
chain prerouting {
type nat hook prerouting priority filter; policy accept;
# http et https du firewall vers srvweb
tcp dport 80 ip daddr $firewall dnat $ipsrvweb:80
tcp dport 443 ip daddr $firewall dnat $ipsrvweb:443
}
chain postrouting {
type nat hook postrouting priority filter; policy accept;
ip saddr $lan-ntw oif $netif snat $firewall
ip saddr $dmznet oif $netif snat $firewall
}
}

View File

@@ -0,0 +1,7 @@
#!/bin/bash
# active le routage entre les interfaces réseau du firewall
echo "1" > /proc/sys/net/ipv4/ip_forward
#vide les règles actuelles du pare-feu
nft flush ruleset
#charge les règles du pare-feu présentes dans le fichier
nft -f /root/scriptsnft/current_ruleset.nft