Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
tech:hypervisor-01 [29/09/2023 17:56] – [Topologie] LibertAdmin | tech:hypervisor-01 [09/01/2025 22:50] (Version actuelle) – [Topologie] LibertAdmin |
---|
* [[tech:mail-01|mail-01]] : Debian stable, services mail Postfix, Dovecot, Amavis, Spamassassin, ClamAV, Sieve (déploiement à venir) | * [[tech:mail-01|mail-01]] : Debian stable, services mail Postfix, Dovecot, Amavis, Spamassassin, ClamAV, Sieve (déploiement à venir) |
* <del>[[tech:proxy-01|proxy-01]] : Debian stable, proxy frontal Nginx et pare-feu iptables, bannissement par Fail2Ban</del> Serveur supprimé le 30 janvier 2022. | * <del>[[tech:proxy-01|proxy-01]] : Debian stable, proxy frontal Nginx et pare-feu iptables, bannissement par Fail2Ban</del> Serveur supprimé le 30 janvier 2022. |
* [[tech:sql-01|sql-01]] : Debian stable, services MySQL et PostgreSQL | * [[tech:sql-01|sql-01]] : Debian stable, services MySQL, PostgreSQL et Redis |
* <del>[[tech:video-01|video-01]] : Debian stable, Nginx, application Peertube, ffmpeg</del> Serveur supprimé en 2023. | * <del>[[tech:video-01|video-01]] : Debian stable, Nginx, application Peertube, ffmpeg</del> Serveur supprimé en 2023. |
* <del>[[tech:visio-01|visio-01]] : Debian stable, Nginx, application Jitsi Meet</del> Serveur supprimé en 2022. | * <del>[[tech:visio-01|visio-01]] : Debian stable, Nginx, application Jitsi Meet</del> Serveur supprimé en 2022. |
* [[tech:web-01|web-01]] : Debian stable, Nginx, ffmpeg, services web, sites, blogs, sites internes | * [[tech:web-01|web-01]] : Debian stable, Nginx, ffmpeg, services web, sites, blogs, sites internes |
| |
Toutes les requêtes venant d'internet sont pré-routées et redirigées via iptables vers la ou les machines virtuelles concernées. L'infrastructure interne est protégée par un pare-feu et un système de bannissement. | Toutes les requêtes venant d'internet sont pré-routées et redirigées via iptables en IPv4 vers la ou les machines virtuelles concernées. L'infrastructure interne est protégée par un pare-feu et un système de bannissement. En IPv6, chaque machine a son IP routable sur internet. |
| |
===== Configuration ===== | ===== Configuration ===== |
==== Système d'exploitation ==== | ==== Système d'exploitation ==== |
Debian stable (Debian 11 « Bullseye » au moment de la rédaction de cette page) | * Debian stable (Debian 12 « Bookworm ») |
| |
==== Adressage IP ==== | ==== Adressage IP ==== |
Hetzner offre une IP publique. Nous avons modifié l'adressage pour créer 2 réseaux internes : un pour les machines virtuelles et un pour notre administration, puis on bridgé le réseau des VM sur le réseau adressé avec l'IP publique. L'interface enp0trucmachin est devenue br0. La ligne « pre-up » corrige notamment un problème connu d'instabilité de connexion sur la carte réseau de ce serveur. | Hetzner offre une IP publique. Nous avons modifié l'adressage pour créer 2 réseaux internes : un pour les machines virtuelles et un pour notre administration, puis on bridgé le réseau des VM sur le réseau adressé avec l'IP publique. L'interface enp0trucmachin est devenue br0. La ligne « pre-up » corrige notamment un problème connu d'instabilité de connexion sur la carte réseau de ce serveur. |
| |
L'adressage du réseau d'administration (10.X.X.X) a été masqué pour des raisons de sécurité. | L'adressage du réseau d'administration sur l'interface ''br1'' a été masqué pour des raisons de sécurité. |
| |
L'adressage en IPv6 est une adaptation du réseau IPv4 vers IPv6. À terme, il sera judicieux qu'on utilise le réseau /64 qu'Hetzner nous offre, ça fait quand même 2^64 adresses IP disponibles, à savoir 18 446 744 073 709 551 616 adresses ! | L'adressage en IPv6 utilise le réseau /64 qu'Hetzner nous offre, ça fait quand même 2^64 adresses IP disponibles, à savoir 18 446 744 073 709 551 616 adresses ! |
| |
<code> | <code> |
iface br0 inet6 static | iface br0 inet6 static |
bridge_ports enp0s31f6 | bridge_ports enp0s31f6 |
bridge_hz enp0s31f6 | bridge_hw enp0s31f6 |
bridge_fd 0 | bridge_fd 0 |
bridge_stp off | bridge_stp off |
bridge_fd 0 | bridge_fd 0 |
bridge_stp off | bridge_stp off |
address 10.X.Y.Z | address XXX |
netmask 255.X.Y.Z | netmask 255.255.255.0 |
| |
iface br1 inet6 static | iface br1 inet6 static |
bridge_fd 0 | bridge_fd 0 |
bridge_stp off | bridge_stp off |
address ::ffff:a0a:a01 | address XXX |
netmask 120 | netmask 120 |
| |
bridge_fd 0 | bridge_fd 0 |
bridge_stp off | bridge_stp off |
address ::ffff:c0a8:a01 | address 2a01:4f8:231:aa6::1 |
netmask 120 | netmask 120 |
| |
</code> | </code> |
| |
| ==== Paramètres réseau et swap dans sysctl ==== |
| |
| Dans ''/etc/sysctl.d/99-liberta.conf'' nous avons dû activer les paramètres réseau pour permettre au bridge de router les paquets et passer également la « swappiness » à 0. La mémoire doit être donc complètement saturée avant de commencer à « swapper » sur le disque dur (c'est un SSD) : |
| |
| <code> |
| net.ipv4.conf.all.accept_redirects = 0 |
| net.ipv4.conf.all.rp_filter=1 |
| net.ipv4.conf.default.rp_filter=1 |
| net.ipv4.icmp_echo_ignore_broadcasts=1 |
| net.ipv4.ip_forward=1 |
| net.ipv6.conf.all.accept_dad=0 |
| net.ipv6.conf.all.accept_ra=0 |
| net.ipv6.conf.all.accept_ra_defrtr=0 |
| net.ipv6.conf.all.accept_ra_pinfo=0 |
| net.ipv6.conf.all.accept_ra_rtr_pref=0 |
| net.ipv6.conf.all.accept_redirects = 0 |
| net.ipv6.conf.all.accept_redirects=0 |
| net.ipv6.conf.all.accept_source_route=0 |
| net.ipv6.conf.all.autoconf=0 |
| net.ipv6.conf.all.forwarding=1 |
| net.ipv6.conf.default.accept_dad=0 |
| net.ipv6.conf.default.accept_ra=0 |
| net.ipv6.conf.default.accept_ra_defrtr=0 |
| net.ipv6.conf.default.accept_ra_pinfo=0 |
| net.ipv6.conf.default.accept_ra_rtr_pref=0 |
| net.ipv6.conf.default.accept_redirects=0 |
| net.ipv6.conf.default.accept_source_route=0 |
| net.ipv6.conf.default.autoconf=0 |
| vm.swappiness=0 |
| </code> |
==== Routage et filtrage avec iptables ==== | ==== Routage et filtrage avec iptables ==== |
| |
| |
Le paquet ''iptables-persistent'' doit avoir été installé pour conserver les modifications du pare-feu entre chaque redémarrage. | Le paquet ''iptables-persistent'' doit avoir été installé pour conserver les modifications du pare-feu entre chaque redémarrage. |
Le port SSH a été masqué. | |
| |
Il est bien sûr extrêmement important de sécuriser SSH : interdire le login root avec mot de passe, utiliser de bons algorithmes de chiffrement, changer le port, n'autoriser qu'une IP distante (ou mieux, ne rien autoriser depuis internet et utiliser un VPN) et mettre en place un faux serveur SSH pour que les attaquants perdent leur temps à essayer de se connecter, sans vous faire perdre le vôtre (et ajouter un Fail2Ban évidemment). La recette reste secrète, désolé ! ;-) | Il est bien sûr extrêmement important de sécuriser SSH : interdire le login root avec mot de passe, utiliser de bons algorithmes de chiffrement, changer le port, n'autoriser qu'une IP distante (ou mieux, ne rien autoriser depuis internet et utiliser un VPN) et mettre en place un faux serveur SSH pour que les attaquants perdent leur temps à essayer de se connecter, sans vous faire perdre le vôtre (et ajouter un Fail2Ban évidemment). La recette reste secrète, désolé ! ;-) |
| |
Les règles concernant le réseau d'administration n'apparaissent pas non plus ici. | Cela dit, pour information une configuration similaire à la suivante est en place : |
| |
Pour IPv4, dans ''/etc/iptables-persistent/rules.v4'' : | |
| |
<code bash> | <code bash> |
| # /etc/ssh/sshd_config.d/liberta.conf |
| |
*nat | # Common parameters: |
| Port <un_port> |
| Port <un_autre_port> |
| AcceptEnv LANG LC_* |
| ChallengeResponseAuthentication no |
| KbdInteractiveAuthentication no |
| PrintMotd no |
| PasswordAuthentication no |
| Subsystem sftp /usr/lib/openssh/sftp-server |
| UsePAM yes |
| X11Forwarding no |
| |
# Router le trafic Web vers le serveur web : | # Port <un_port> configuration for IPv4/IPv6: |
-A PREROUTING -d 159.69.59.13/32 -p tcp -m tcp --syn -m multiport --dports 80,443 -j DNAT --to-destination 192.168.10.5 | Match Address="<adresse_ipv4_de_confiance>,127.0.0.0/8,<adresse_ipv6_de_confiance>,fd00::/8" LocalPort=<un_port> |
| AllowUsers root <utilisateurice_de_confiance> |
| |
# Router le mail envoi/réception vers le serveur mail : | # Port <un_autre_port> configuration for IPv4/IPv6: |
-A PREROUTING -d 159.69.59.13/32 -p tcp -m tcp --syn -m multiport --dports 587,993,25 -j DNAT --to-destination 192.168.10.7 | Match LocalPort=<un_autre_port> |
| AllowUsers <utilisateurice_de_confiance> |
| </code> |
| |
# Tests | Les règles concernant le réseau d'administration n'apparaissent pas non plus ici. |
## Router les ports des applications vers le serveur web : | |
#-A PREROUTING -d 159.69.59.13/32 -p tcp -m tcp --syn -m multiport --dports 1935,1936,3000,3001,9000,9001 -j DNAT --to-destination 192.168.10.5 | |
# | |
## Router le port 5868 vers le serveur audio pour Funkwhale : | |
#-A PREROUTING -d 159.69.59.13/32 -p tcp -m tcp --syn -m multiport --dports 5868 -j DNAT --to-destination 192.168.10.9 | |
| |
# Router le 8484 pour Zabbix vers le serveur monitoring : | Pour IPv4, dans ''/etc/iptables-persistent/rules.v4'' : |
-A PREROUTING -d 159.69.59.13/32 -p tcp -m tcp --syn -m multiport --dports 8484 -j DNAT --to-destination 192.168.10.250 | |
| |
# Ne pas appliquer le masquerading sur le broadcast/multicast : | |
-A POSTROUTING -s 192.168.10.0/24 -d 224.0.0.0/24 -j RETURN | |
-A POSTROUTING -s 192.168.10.0/24 -d 255.255.255.255/32 -j RETURN | |
| |
# Masquerading sur tous les ports dans le sens sortant (VM -> Internet) | |
-A POSTROUTING -s 192.168.10.0/24 ! -d 192.168.10.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535 | |
-A POSTROUTING -s 192.168.10.0/24 ! -d 192.168.10.0/24 -p udp -j MASQUERADE --to-ports 1024-65535 | |
-A POSTROUTING -s 192.168.10.0/24 ! -d 192.168.10.0/24 -j MASQUERADE | |
| |
| <code bash> |
| *nat |
| -A PREROUTING -d 159.69.59.13/32 -p tcp -m tcp --syn -m multiport --dports 80,443 -m comment --comment "Router le trafic Web vers le serveur web" -j DNAT --to-destination 192.168.10.5 |
| -A PREROUTING -d 159.69.59.13/32 -p tcp -m tcp --syn -m multiport --dports 587,993,25 -m comment --comment "Router le mail envoi/réception vers le serveur mail" -j DNAT --to-destination 192.168.10.7 |
| -A PREROUTING -d 159.69.59.13/32 -p tcp -m tcp --syn -m multiport --dports 8484 -m comment --comment "Router le 8484 pour Zabbix vers le serveur monitoring" -j DNAT --to-destination 192.168.10.250 |
| -A POSTROUTING -s 192.168.10.0/24 -d 224.0.0.0/24 -m comment --comment "Ne pas appliquer le masquerading sur le broadcast/multicast" -j RETURN |
| -A POSTROUTING -s 192.168.10.0/24 -d 255.255.255.255/32 -m comment --comment "Ne pas appliquer le masquerading sur le broadcast/multicast" -j RETURN |
| -A POSTROUTING -s 192.168.10.0/24 ! -d 192.168.10.0/24 -p tcp -m comment --comment "Masquerading sur tous les ports dans le sens sortant (VM -> Internet)" -j MASQUERADE --to-ports 1024-65535 |
| -A POSTROUTING -s 192.168.10.0/24 ! -d 192.168.10.0/24 -p udp -m comment --comment "Masquerading sur tous les ports dans le sens sortant (VM -> Internet)" -j MASQUERADE --to-ports 1024-65535 |
| -A POSTROUTING -s 192.168.10.0/24 ! -d 192.168.10.0/24 -m comment --comment "" -j MASQUERADE |
COMMIT | COMMIT |
| |
*filter | *filter |
| -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -m comment --comment "Accepter le trafic des connexions établies, en entrée" -j ACCEPT |
# Accepter le trafic basique : ICMP, boucle locale et connexions établies, en entrée : | -A INPUT -i lo -m comment --comment "Accepter le trafic basique depuis la boucle locale, en entrée"-j ACCEPT |
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT | -A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NEW -m comment --comment "Accepter le trafic basique ICMP, en entrée" -j ACCEPT |
-A INPUT -i lo -j ACCEPT | -A INPUT -p tcp -m tcp --syn -m conntrack --ctstate NEW --dport 22 -m comment --comment "Accepter le SSH" -j ACCEPT |
-A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT | -A INPUT -p tcp -m tcp --syn -m conntrack --ctstate NEW --dport 1984 -m comment --comment "Accepter le SSH" -j ACCEPT |
| -A INPUT -p tcp -m tcp --syn -m conntrack --ctstate NEW -m multiport --dports 587,993,25 -m comment --comment "Accepter les connexions pour le mail" -j ACCEPT |
# Accepter le SSH : | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 52365 -m comment --comment "Accepter le tunnel SSH vers le serveur web-01 sur le port 52365" -j ACCEPT |
-A INPUT -p tcp -m tcp --syn -m conntrack --ctstate NEW --dport 22 -j ACCEPT | -A INPUT -i br2 -p udp -m udp -m multiport --dports 53 -m comment --comment "Accepter les requêtes DNS (port 53) depuis les VM" -j ACCEPT |
-A INPUT -p tcp -m tcp --syn -m conntrack --ctstate NEW --dport 1984 -j ACCEPT | -A INPUT -i br2 -p tcp -m tcp -m multiport --dports 53 -m comment --comment "Accepter les requêtes DNS (port 53) depuis les VM" -j ACCEPT |
| -A INPUT -i br2 -p tcp -m multiport --dport 2049 -m comment --comment "Bloquer les requêtes rpcbind/portmap en entrée depuis l'extérieur" -j ACCEPT |
# Accepter les connexions pour le mail : | -A INPUT -i br2 -p tcp -m multiport --dport 111 -m comment --comment "Bloquer les requêtes rpcbind/portmap en entrée depuis l'extérieur" -j ACCEPT |
-A INPUT -p tcp -m tcp --syn -m conntrack --ctstate NEW -m multiport --dports 587,993,25 -j ACCEPT | -A INPUT -p tcp -s 127.0.0.1 --dport 111 -m comment --comment "Bloquer les requêtes rpcbind/portmap en entrée depuis l'extérieur" -j ACCEPT |
| -A INPUT -p udp --dport 111 -m comment --comment "Bloquer les requêtes rpcbind/portmap en entrée depuis l'extérieur" -j DROP |
# Accepter le tunnel SSH vers le serveur web-01 sur le port 52365 : | -A INPUT -p tcp --dport 111 -m comment --comment "Bloquer les requêtes rpcbind/portmap en entrée depuis l'extérieur" -j DROP |
-A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 52365 -j ACCEPT | -A INPUT -i br2 -p tcp -m tcp -m multiport --dports 10050 -m comment --comment "Accepter les requêtes Zabbix passives (port 10050) depuis les VM" -j ACCEPT |
| -A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NEW -m limit --limit 1/s --limit-burst 1 -m comment --comment "On refuse les trop nombreux ping" -j ACCEPT |
# Accepter les requêtes DNS (port 53) depuis les VM : | -A INPUT -p icmp -m comment --comment "On refuse les trop nombreux ping" -j DROP |
-A INPUT -i br2 -p udp -m udp -m multiport --dports 53 -j ACCEPT | -A INPUT -m conntrack --ctstate INVALID -m comment --comment "On refuse tout le reste" -j DROP |
-A INPUT -i br2 -p tcp -m tcp -m multiport --dports 53 -j ACCEPT | -A INPUT -p tcp -m tcp -m comment --comment "On refuse tout le reste" -j REJECT --reject-with tcp-reset |
| -A INPUT -m comment --comment "On refuse tout le reste" -j REJECT --reject-with icmp-port-unreachable |
# Bloquer les requêtes rpcbind/portmap en entrée ***depuis l'extérieur*** : | -A FORWARD -d 192.168.10.0/24 -o br2 -m conntrack --ctstate RELATED,ESTABLISHED -m comment --comment "Accepter les connexions établies sur le LAN" -j ACCEPT |
-A INPUT -i br2 -p tcp -m multiport --dport 2049 -j ACCEPT | -A FORWARD -s 192.168.10.0/24 -i br2 -m comment --comment "Accepter le trafic sortant depuis le LAN" -j ACCEPT |
-A INPUT -i br2 -p tcp -m multiport --dport 111 -j ACCEPT | -A FORWARD -i br2 -o br2 -m comment --comment "Accepter le trafic interne entre les VM" -j ACCEPT |
-A INPUT -p tcp -s 127.0.0.1 --dport 111 -j ACCEPT | -A FORWARD -d 192.168.10.5/32 -o br2 -p tcp -m tcp --syn -m conntrack --ctstate NEW -m multiport --dports 80,443,8484 -m comment --comment "Accepter les paquets redirigés vers des ports particuliers pour le Web vers le serveur web" -j ACCEPT |
-A INPUT -p udp --dport 111 -j DROP | -A FORWARD -d 192.168.10.7/32 -o br2 -p tcp -m tcp --syn -m conntrack --ctstate NEW -m multiport --dports 587,993,25 -m comment --comment "Accepter les paquets redirigés vers des ports particuliers pour le mail vers le serveur mail" -j ACCEPT |
-A INPUT -p tcp --dport 111 -j DROP | -A FORWARD -d 192.168.10.250/32 -o br2 -p tcp -m tcp -m conntrack --ctstate NEW -m multiport --dports 8484 -m comment --comment "Accepter les paquets redirigés vers des ports particuliers pour le monitoring vers le serveur de monitoring" -j ACCEPT |
| -A INPUT -s 102.132.96.0/20 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
# Accepter les requêtes Zabbix passives (port 10050) depuis les VM : | -A INPUT -s 103.4.96.0/22 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -i br2 -p tcp -m tcp -m multiport --dports 10050 -j ACCEPT | -A INPUT -s 129.134.0.0/17 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
| -A INPUT -s 129.134.160.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
# On refuse les trop nombreux ping : | -A INPUT -s 129.134.25.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NEW -m limit --limit 1/s --limit-burst 1 -j ACCEPT | -A INPUT -s 129.134.26.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -p icmp -j DROP | -A INPUT -s 129.134.27.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
| -A INPUT -s 129.134.28.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
# On refuse tout le reste : | -A INPUT -s 129.134.29.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -m conntrack --ctstate INVALID -j DROP | -A INPUT -s 129.134.30.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -p tcp -m tcp -j REJECT --reject-with tcp-reset | -A INPUT -s 129.134.31.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -j REJECT --reject-with icmp-port-unreachable | -A INPUT -s 139.223.200.130/32 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
| -A INPUT -s 157.240.0.0/17 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
# Accepter les connexions établies sur le LAN : | -A INPUT -s 157.240.192.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A FORWARD -d 192.168.10.0/24 -o br2 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT | -A INPUT -s 157.240.195.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
| -A INPUT -s 157.240.196.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
# Accepter le trafic sortant depuis le LAN : | -A INPUT -s 157.240.197.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A FORWARD -s 192.168.10.0/24 -i br2 -j ACCEPT | -A INPUT -s 157.240.198.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
| -A INPUT -s 157.240.199.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
# Accepter le trafic interne entre les VM : | -A INPUT -s 157.240.200.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A FORWARD -i br2 -o br2 -j ACCEPT | -A INPUT -s 157.240.201.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
| -A INPUT -s 157.240.202.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
# Accepter les paquets redirigés vers des ports particuliers pour le Web vers le serveur web : | -A INPUT -s 157.240.203.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A FORWARD -d 192.168.10.5/32 -o br2 -p tcp -m tcp --syn -m conntrack --ctstate NEW -m multiport --dports 80,443,8484 -j ACCEPT | -A INPUT -s 157.240.204.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
| -A INPUT -s 157.240.205.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
# Accepter les paquets redirigés vers des ports particuliers pour le mail vers le serveur mail : | -A INPUT -s 157.240.207.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A FORWARD -d 192.168.10.7/32 -o br2 -p tcp -m tcp --syn -m conntrack --ctstate NEW -m multiport --dports 587,993,25 -j ACCEPT | -A INPUT -s 157.240.208.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
| -A INPUT -s 157.240.209.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
# Accepter les paquets redirigés vers des ports particuliers pour le monitoring vers le serveur de monitoring : | -A INPUT -s 157.240.210.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A FORWARD -d 192.168.10.250/32 -o br2 -p tcp -m tcp -m conntrack --ctstate NEW -m multiport --dports 8484 -j ACCEPT | -A INPUT -s 157.240.211.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
| -A INPUT -s 157.240.212.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
# Tests | -A INPUT -s 157.240.214.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
## Accepter les paquets redirigés vers des ports particuliers vers le serveur web : | -A INPUT -s 157.240.215.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
#-A FORWARD -d 192.168.10.5/32 -o br2 -p tcp -m tcp --syn -m conntrack --ctstate NEW -m multiport --dports 1935,1936,3000,3001,9000,9001 -j ACCEPT | -A INPUT -s 157.240.216.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
# | -A INPUT -s 157.240.217.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
## Accepter les paquets redirigés vers des ports particuliers pour funkwhale service 5868 vers le serveur audio : | -A INPUT -s 157.240.218.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
#-A FORWARD -d 192.168.10.9/32 -o br2 -p tcp -m tcp --syn -m conntrack --ctstate NEW -m multiport --dports 5868 -j ACCEPT | -A INPUT -s 157.240.22.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
| -A INPUT -s 157.240.221.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
# On bloque TOUT le trafic en provenance de Meta/Facebook/Instagram/Threads : | -A INPUT -s 157.240.222.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 102.132.96.0/20 -j DROP | -A INPUT -s 157.240.223.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 103.4.96.0/22 -j DROP | -A INPUT -s 157.240.224.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 129.134.0.0/17 -j DROP | -A INPUT -s 157.240.225.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 129.134.160.0/24 -j DROP | -A INPUT -s 157.240.226.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 129.134.25.0/24 -j DROP | -A INPUT -s 157.240.227.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 129.134.26.0/24 -j DROP | -A INPUT -s 157.240.228.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 129.134.27.0/24 -j DROP | -A INPUT -s 157.240.229.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 129.134.28.0/24 -j DROP | -A INPUT -s 157.240.23.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 129.134.29.0/24 -j DROP | -A INPUT -s 157.240.231.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 129.134.30.0/24 -j DROP | -A INPUT -s 157.240.232.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 129.134.31.0/24 -j DROP | -A INPUT -s 157.240.233.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 139.223.200.130/32 -j DROP | -A INPUT -s 157.240.234.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.0.0/17 -j DROP | -A INPUT -s 157.240.235.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.192.0/24 -j DROP | -A INPUT -s 157.240.236.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.195.0/24 -j DROP | -A INPUT -s 157.240.237.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.196.0/24 -j DROP | -A INPUT -s 157.240.238.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.197.0/24 -j DROP | -A INPUT -s 157.240.239.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.198.0/24 -j DROP | -A INPUT -s 157.240.240.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.199.0/24 -j DROP | -A INPUT -s 157.240.24.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.200.0/24 -j DROP | -A INPUT -s 157.240.241.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.201.0/24 -j DROP | -A INPUT -s 157.240.242.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.202.0/24 -j DROP | -A INPUT -s 157.240.243.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.203.0/24 -j DROP | -A INPUT -s 157.240.244.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.204.0/24 -j DROP | -A INPUT -s 157.240.245.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.205.0/24 -j DROP | -A INPUT -s 157.240.247.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.207.0/24 -j DROP | -A INPUT -s 157.240.249.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.208.0/24 -j DROP | -A INPUT -s 157.240.250.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.209.0/24 -j DROP | -A INPUT -s 157.240.25.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.210.0/24 -j DROP | -A INPUT -s 157.240.251.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.211.0/24 -j DROP | -A INPUT -s 157.240.252.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.212.0/24 -j DROP | -A INPUT -s 157.240.253.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.214.0/24 -j DROP | -A INPUT -s 157.240.254.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.215.0/24 -j DROP | -A INPUT -s 157.240.26.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.216.0/24 -j DROP | -A INPUT -s 157.240.27.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.217.0/24 -j DROP | -A INPUT -s 157.240.28.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.218.0/24 -j DROP | -A INPUT -s 157.240.29.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.22.0/24 -j DROP | -A INPUT -s 157.240.30.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.221.0/24 -j DROP | -A INPUT -s 157.240.3.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.222.0/24 -j DROP | -A INPUT -s 157.240.31.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.223.0/24 -j DROP | -A INPUT -s 157.240.5.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.224.0/24 -j DROP | -A INPUT -s 157.240.6.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.225.0/24 -j DROP | -A INPUT -s 157.240.7.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.226.0/24 -j DROP | -A INPUT -s 157.240.8.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.227.0/24 -j DROP | -A INPUT -s 157.240.9.0/24 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.228.0/24 -j DROP | -A INPUT -s 162.254.207.51/32 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.229.0/24 -j DROP | -A INPUT -s 162.255.119.207/32 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.23.0/24 -j DROP | -A INPUT -s 172.67.135.213/32 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.231.0/24 -j DROP | -A INPUT -s 173.252.64.0/18 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.232.0/24 -j DROP | -A INPUT -s 179.60.192.0/22 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.233.0/24 -j DROP | -A INPUT -s 185.199.108.153/32 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.234.0/24 -j DROP | -A INPUT -s 185.199.111.153/32 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.235.0/24 -j DROP | -A INPUT -s 185.60.216.0/22 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.236.0/24 -j DROP | -A INPUT -s 198.54.117.211/32 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.237.0/24 -j DROP | -A INPUT -s 204.15.20.0/22 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.238.0/24 -j DROP | -A INPUT -s 27.124.125.189/32 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.239.0/24 -j DROP | -A INPUT -s 31.13.24.0/21 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.240.0/24 -j DROP | -A INPUT -s 31.13.64.0/18 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.24.0/24 -j DROP | -A INPUT -s 34.117.168.233/32 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.241.0/24 -j DROP | -A INPUT -s 37.9.175.187/32 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.242.0/24 -j DROP | -A INPUT -s 45.130.41.7/32 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.243.0/24 -j DROP | -A INPUT -s 45.64.40.0/22 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.244.0/24 -j DROP | -A INPUT -s 45.91.92.164/32 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.245.0/24 -j DROP | -A INPUT -s 54.81.116.232/32 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.247.0/24 -j DROP | -A INPUT -s 61.9.242.43/32 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.249.0/24 -j DROP | -A INPUT -s 64.225.91.73/32 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.250.0/24 -j DROP | -A INPUT -s 66.220.144.0/20 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.25.0/24 -j DROP | -A INPUT -s 69.171.224.0/19 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.251.0/24 -j DROP | -A INPUT -s 74.119.76.0/22 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.252.0/24 -j DROP | -A INPUT -s 89.223.68.248/32 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -s 157.240.253.0/24 -j DROP | -A FORWARD -i br2 -m comment --comment "Rejeter tout le reste" -j REJECT --reject-with icmp-port-unreachable |
-A INPUT -s 157.240.254.0/24 -j DROP | -A FORWARD -o br2 -m comment --comment "Rejeter tout le reste" -j REJECT --reject-with icmp-port-unreachable |
-A INPUT -s 157.240.26.0/24 -j DROP | |
-A INPUT -s 157.240.27.0/24 -j DROP | |
-A INPUT -s 157.240.28.0/24 -j DROP | |
-A INPUT -s 157.240.29.0/24 -j DROP | |
-A INPUT -s 157.240.30.0/24 -j DROP | |
-A INPUT -s 157.240.3.0/24 -j DROP | |
-A INPUT -s 157.240.31.0/24 -j DROP | |
-A INPUT -s 157.240.5.0/24 -j DROP | |
-A INPUT -s 157.240.6.0/24 -j DROP | |
-A INPUT -s 157.240.7.0/24 -j DROP | |
-A INPUT -s 157.240.8.0/24 -j DROP | |
-A INPUT -s 157.240.9.0/24 -j DROP | |
-A INPUT -s 162.254.207.51/32 -j DROP | |
-A INPUT -s 162.255.119.207/32 -j DROP | |
-A INPUT -s 172.67.135.213/32 -j DROP | |
-A INPUT -s 173.252.64.0/18 -j DROP | |
-A INPUT -s 179.60.192.0/22 -j DROP | |
-A INPUT -s 185.199.108.153/32 -j DROP | |
-A INPUT -s 185.199.111.153/32 -j DROP | |
-A INPUT -s 185.60.216.0/22 -j DROP | |
-A INPUT -s 198.54.117.211/32 -j DROP | |
-A INPUT -s 204.15.20.0/22 -j DROP | |
-A INPUT -s 27.124.125.189/32 -j DROP | |
-A INPUT -s 31.13.24.0/21 -j DROP | |
-A INPUT -s 31.13.64.0/18 -j DROP | |
-A INPUT -s 34.117.168.233/32 -j DROP | |
-A INPUT -s 37.9.175.187/32 -j DROP | |
-A INPUT -s 45.130.41.7/32 -j DROP | |
-A INPUT -s 45.64.40.0/22 -j DROP | |
-A INPUT -s 45.91.92.164/32 -j DROP | |
-A INPUT -s 54.81.116.232/32 -j DROP | |
-A INPUT -s 61.9.242.43/32 -j DROP | |
-A INPUT -s 64.225.91.73/32 -j DROP | |
-A INPUT -s 66.220.144.0/20 -j DROP | |
-A INPUT -s 69.171.224.0/19 -j DROP | |
-A INPUT -s 74.119.76.0/22 -j DROP | |
-A INPUT -s 89.223.68.248/32 -j DROP | |
| |
# Rejeter tout le reste : | |
-A FORWARD -i br2 -j REJECT --reject-with icmp-port-unreachable | |
-A FORWARD -o br2 -j REJECT --reject-with icmp-port-unreachable | |
COMMIT | COMMIT |
| |
</code> | </code> |
| |
| |
<code bash> | <code bash> |
| |
*nat | |
| |
# Router le Web vers le serveur web : | |
-A PREROUTING -d 2a01:4f8:231:aa6::13 -p tcp -m tcp --syn -m multiport --dports 80,443 -j DNAT --to-destination ::ffff:c0a8:a05 | |
| |
# Router le mail envoi/réception vers le serveur mail : | |
-A PREROUTING -d 2a01:4f8:231:aa6::13 -p tcp -m tcp --syn -m multiport --dports 587,993,25 -j DNAT --to-destination ::ffff:c0a8:a07 | |
| |
# Tests | |
## Router les ports des applications vers le serveur web : | |
#-A PREROUTING -d 2a01:4f8:231:aa6::13 -p tcp -m tcp --syn -m multiport --dports 1935,1936,3000,3001,9000,9001 -j DNAT --to-destination ::ffff:c0a8:a05 | |
# | |
## Router le port 5868 pour Funkwhale vers le serveur audio : | |
#-A PREROUTING -d 2a01:4f8:231:aa6::13 -p tcp -m tcp --syn -m multiport --dports 5868 -j DNAT --to-destination ::ffff:c0a8:a09 | |
| |
## Router le 8484 pour Zabbix vers le serveur monitoring (inactif, pas d'IPv6 pour l'instant sur ce serveur) : | |
#-A PREROUTING -d 2a01:4f8:231:aa6::13 -p tcp -m tcp --syn -m multiport --dports 8484 -j DNAT --to-destination ::ffff:c0a8:XYZ | |
| |
# Masquerading sur tous les ports dans le sens sortant (VM -> Internet) | |
-A POSTROUTING -s ::ffff:c0a8:a00/64 ! -d ::ffff:c0a8:0a00/64 -p tcp -j MASQUERADE --to-ports 1024-65535 | |
-A POSTROUTING -s ::ffff:c0a8:a00/64 ! -d ::ffff:c0a8:0a00/64 -p udp -j MASQUERADE --to-ports 1024-65535 | |
-A POSTROUTING -s ::ffff:c0a8:a00/64 ! -d ::ffff:c0a8:0a00/64 -j MASQUERADE | |
| |
COMMIT | |
| |
*filter | *filter |
| -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -m comment --comment "Accepter le trafic basique : ICMP, boucle locale et connexions établies, en entrée" -j ACCEPT |
# Accepter le trafic basique : ICMP, boucle locale et connexionx établies, en entrée : | -A INPUT -i lo -m comment --comment "Accepter le trafic basique : ICMP, boucle locale et connexions établies, en entrée" -j ACCEPT |
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT | -A INPUT ! -i lo -d ::1/128 -m comment --comment "Accepter le trafic basique : ICMP, boucle locale et connexions établies, en entrée" -j REJECT |
-A INPUT -i lo -j ACCEPT | -A INPUT -p tcp -m tcp --syn -m conntrack --ctstate NEW --dport 22 -m comment --comment "Accepter le SSH" -j ACCEPT |
-A INPUT ! -i lo -d ::1/128 -j REJECT | -A INPUT -p tcp -m tcp --syn -m conntrack --ctstate NEW --dport 1984 -m comment --comment "Accepter le SSH" -j ACCEPT |
| -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 52365 -m comment --comment "Accepter le tunnel SSH vers le serveur web-01 sur le port 52365" -j ACCEPT |
# Accepter le SSH : | -A INPUT -i br2 -p udp -m udp -m multiport --dports 53 -m comment --comment "Accepter les requêtes DNS (port 53) depuis les VM" -j ACCEPT |
-A INPUT -p tcp -m tcp --syn -m conntrack --ctstate NEW --dport 22 -j ACCEPT | -A INPUT -i br2 -p tcp -m tcp -m multiport --dports 53 -m comment --comment "Accepter les requêtes DNS (port 53) depuis les VM" -j ACCEPT |
-A INPUT -p tcp -m tcp --syn -m conntrack --ctstate NEW --dport 1984 -j ACCEPT | -A INPUT -i br2 -p tcp -m multiport --dport 2049 -m comment --comment "Bloquer les requêtes rpcbind/portmap en entrée depuis l'extérieur" -j ACCEPT |
| -A INPUT -i br2 -p tcp -m multiport --dport 111 -m comment --comment "Bloquer les requêtes rpcbind/portmap en entrée depuis l'extérieur" -j ACCEPT |
# Accepter le tunnel SSH vers le serveur web-01 sur le port 52365 : | -A INPUT -p tcp -s ::1/128 --dport 111 -m comment --comment "Bloquer les requêtes rpcbind/portmap en entrée depuis l'extérieur" -j ACCEPT |
-A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 52365 -j ACCEPT | -A INPUT -p udp --dport 111 -m comment --comment "Bloquer les requêtes rpcbind/portmap en entrée depuis l'extérieur" -j DROP |
| -A INPUT -p tcp --dport 111 -m comment --comment "Bloquer les requêtes rpcbind/portmap en entrée depuis l'extérieur" -j DROP |
# Accepter les requêtes DNS (port 53) depuis les VM : | -A INPUT -i br2 -p tcp -m tcp -m multiport --dports 10050 -m comment --comment "Accepter les requêtes Zabbix passives (port 10050) depuis les VM" -j ACCEPT |
-A INPUT -i br2 -p udp -m udp -m multiport --dports 53 -j ACCEPT | -A INPUT -p icmpv6 --icmpv6-type parameter-problem -m comment --comment "On accepte l'ICMPv6 indispensable au fonctionnement d'IPv6" -j ACCEPT |
-A INPUT -i br2 -p tcp -m tcp -m multiport --dports 53 -j ACCEPT | -A INPUT -p icmpv6 --icmpv6-type echo-request -m comment --comment "On accepte l'ICMPv6 indispensable au fonctionnement d'IPv6" -j ACCEPT |
| -A INPUT -p icmpv6 --icmpv6-type echo-reply -m comment --comment "On accepte l'ICMPv6 indispensable au fonctionnement d'IPv6" -j ACCEPT |
# Bloquer les requêtes rpcbind/portmap en entrée ***depuis l'extérieur*** : | -A INPUT -p icmpv6 --icmpv6-type router-advertisement -m hl --hl-eq 255 -m comment --comment "On accepte l'ICMPv6 indispensable au fonctionnement d'IPv6" -j ACCEPT |
-A INPUT -i br2 -p tcp -m multiport --dport 2049 -j ACCEPT | -A INPUT -p icmpv6 --icmpv6-type router-solicitation -m hl --hl-eq 255 -m comment --comment "On accepte l'ICMPv6 indispensable au fonctionnement d'IPv6" -j ACCEPT |
-A INPUT -i br2 -p tcp -m multiport --dport 111 -j ACCEPT | -A INPUT -p icmpv6 --icmpv6-type neighbour-advertisement -m hl --hl-eq 255 -m comment --comment "On accepte l'ICMPv6 indispensable au fonctionnement d'IPv6" -j ACCEPT |
-A INPUT -p tcp -s ::1/128 --dport 111 -j ACCEPT | -A INPUT -p icmpv6 --icmpv6-type neighbour-solicitation -m hl --hl-eq 255 -m comment --comment "On accepte l'ICMPv6 indispensable au fonctionnement d'IPv6" -j ACCEPT |
-A INPUT -p udp --dport 111 -j DROP | -A INPUT -p icmpv6 --icmpv6-type echo-request -m conntrack --ctstate NEW -m limit --limit 1/s --limit-burst 1 -m comment --comment "On refuse les trop nombreux ping" -j ACCEPT |
-A INPUT -p tcp --dport 111 -j DROP | -A INPUT -p icmpv6 --icmpv6-type echo-request -m comment --comment "On refuse les trop nombreux ping" -j DROP |
| -A INPUT -m conntrack --ctstate INVALID -m comment --comment "On refuse tout le reste en entrée" -j DROP |
# Accepter les requêtes Zabbix passives (port 10050) depuis les VM : | -A INPUT -m comment --comment "On refuse tout le reste en entrée" -j REJECT |
-A INPUT -i br2 -p tcp -m tcp -m multiport --dports 10050 -j ACCEPT | -A FORWARD -d 2a01:4f8:231:aa6::/64 -o br2 -m conntrack --ctstate RELATED,ESTABLISHED -m comment --comment "Accepter les connexions établies sur le LAN" -j ACCEPT |
| -A FORWARD -s 2a01:4f8:231:aa6::/64 -i br2 -m comment --comment "Accepter le trafic sortant depuis le LAN" -j ACCEPT |
# On accepte l'ICMPv6 indispensable au fonctionnement d'IPv6 : | -A FORWARD -i br2 -o br2 -m comment --comment "Accepter le trafic interne entre les VM" -j ACCEPT |
-A INPUT -p icmpv6 --icmpv6-type parameter-problem -j ACCEPT | -A FORWARD -d 2a01:4f8:231:aa6::5/128 -o br2 -p tcp -m tcp --syn -m conntrack --ctstate NEW -m multiport --dports 80,443,1935 -m comment --comment "Accepter les paquets redirigés vers des ports particuliers pour le Web vers le serveur web (inutile, mais au cas où)" -j ACCEPT |
-A INPUT -p icmpv6 --icmpv6-type echo-request -j ACCEPT | -A FORWARD -d 2a01:4f8:231:aa6::7/128 -o br2 -p tcp -m tcp --syn -m conntrack --ctstate NEW -m multiport --dports 587,993,25 -m comment --comment "Accepter les paquets redirigés vers des ports particuliers pour le mail vers le serveur mail (inutile, mais au cas où)" -j ACCEPT |
-A INPUT -p icmpv6 --icmpv6-type echo-reply -j ACCEPT | -A FORWARD -d 2a01:4f8:231:aa6::250/128 -o br2 -p tcp -m tcp --syn -m conntrack --ctstate NEW -m multiport --dports 8484 -m comment --comment "Accepter les paquets redirigés vers des ports particuliers pour Zabbix tcp 8484 vers le serveur monitoring (inutile, mais au cas où)" -j ACCEPT |
-A INPUT -p icmpv6 --icmpv6-type router-advertisement -m hl --hl-eq 255 -j ACCEPT | -A INPUT -s 2620:0:1c00::/40 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -p icmpv6 --icmpv6-type router-solicitation -m hl --hl-eq 255 -j ACCEPT | -A INPUT -s 2620:10d:c090::/44 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -p icmpv6 --icmpv6-type neighbour-advertisement -m hl --hl-eq 255 -j ACCEPT | -A INPUT -s 2a03:2880::/32 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -p icmpv6 --icmpv6-type neighbour-solicitation -m hl --hl-eq 255 -j ACCEPT | -A INPUT -s 2a03:2887:ff02::/47 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
| -A INPUT -s 2a03:2887:ff19::/48 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
# On refuse les trop nombreux ping : | -A INPUT -s 2a03:2887:ff1b::/48 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -p icmpv6 --icmpv6-type echo-request -m conntrack --ctstate NEW -m limit --limit 1/s --limit-burst 1 -j ACCEPT | -A INPUT -s 2a03:2887:ff1c::/46 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -p icmpv6 --icmpv6-type echo-request -j DROP | -A INPUT -s 2a03:2887:ff23::/48 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
| -A INPUT -s 2a03:2887:ff25::/48 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
# On refuse tout le reste en entrée : | -A INPUT -s 2a03:2887:ff27::/48 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -m conntrack --ctstate INVALID -j DROP | -A INPUT -s 2a03:2887:ff28::/46 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A INPUT -j REJECT | -A INPUT -s 2a03:2887:ff2f::/48 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
| -A INPUT -s 2a03:2887:ff30::/48 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
# Accepter les connexions établies sur le LAN : | -A INPUT -s 2a03:2887:ff35::/48 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A FORWARD -d ::ffff:c0a8:a00/64 -o br2 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT | -A INPUT -s 2a03:2887:ff37::/48 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
| -A INPUT -s 2a03:2887:ff38::/46 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
# Accepter le trafic sortant depuis le LAN : | -A INPUT -s 2a03:2887:ff3f::/48 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A FORWARD -s ::ffff:c0a8:a00/64 -i br2 -j ACCEPT | -A INPUT -s 2a03:2887:ff40::/48 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
| -A INPUT -s 2a03:2887:ff43::/48 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
# Accepter le trafic interne entre les VM : | -A INPUT -s 2a03:2887:ff44::/47 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A FORWARD -i br2 -o br2 -j ACCEPT | -A INPUT -s 2a03:2887:ff48::/46 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
| -A INPUT -s 2a03:2887:ff4d::/48 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
# Accepter les paquets redirigés vers des ports particuliers pour le Web vers le serveur web : | -A INPUT -s 2a03:2887:ff4e::/47 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A FORWARD -d ::ffff:c0a8:a05 -o br2 -p tcp -m tcp --syn -m conntrack --ctstate NEW -m multiport --dports 80,443 -j ACCEPT | -A INPUT -s 2a03:2887:ff50::/47 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
| -A INPUT -s 2a03:2887:ff52::/48 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
# Accepter les paquets redirigés vers des ports particuliers pour le mail vers le serveur mail : | -A INPUT -s 2a03:2887:ff58::/47 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
-A FORWARD -d ::ffff:c0a8:a05 -o br2 -p tcp -m tcp --syn -m conntrack --ctstate NEW -m multiport --dports 587,993,25 -j ACCEPT | -A INPUT -s 2c0f:ef78:3::/48 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
| -A INPUT -s 2c0f:ef78:5::/48 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
# Tests | -A INPUT -s 2c0f:ef78:6::/48 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
## Accepter les paquets redirigés vers des ports particuliers vers le serveur web : | -A INPUT -s 2c0f:ef78:9::/48 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
#-A FORWARD -d ::ffff:c0a8:a05 -o br2 -p tcp -m tcp --syn -m conntrack --ctstate NEW -m multiport --dports 1935,1936,3000,3001,9000,9001 -j ACCEPT | -A INPUT -s 2c0f:ef78:d::/48 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
# | -A INPUT -s 2c0f:ef78:e::/47 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
## Accepter les paquets redirigés vers des ports particuliers pour funkwhale service 5868 vers le serveur audio : | -A INPUT -s 2c0f:ef78:11::/48 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
#-A FORWARD -d ::ffff:c0a8:a09 -o br2 -p tcp -m tcp --syn -m conntrack --ctstate NEW -m multiport --dports 5868 -j ACCEPT | -A INPUT -s 2c0f:ef78:12::/48 -m comment --comment "Meta/Facebook/Instagram/Threads Adios!" -j DROP |
| -A FORWARD -i br2 -m comment --comment "Rejeter tout le reste" -j REJECT |
# Pas d'IPv6 pour le moment, inactif : | -A FORWARD -o br2 -m comment --comment "Rejeter tout le reste" -j REJECT |
## Accepter les paquets redirigés vers des ports particuliers pour Zabbix tcp 8484 vers le serveur monitoring : | |
#-A FORWARD -d ::ffff:c0a8:XYZ -o br2 -p tcp -m tcp --syn -m conntrack --ctstate NEW -m multiport --dports 8484 -j ACCEPT | |
| |
# On bloque TOUT le trafic en provenance de Meta/Facebook/Instagram/Threads : | |
-A INPUT -s 2620:0:1c00::/40 -j DROP | |
-A INPUT -s 2620:10d:c090::/44 -j DROP | |
-A INPUT -s 2a03:2880::/32 -j DROP | |
-A INPUT -s 2a03:2887:ff02::/47 -j DROP | |
-A INPUT -s 2a03:2887:ff19::/48 -j DROP | |
-A INPUT -s 2a03:2887:ff1b::/48 -j DROP | |
-A INPUT -s 2a03:2887:ff1c::/46 -j DROP | |
-A INPUT -s 2a03:2887:ff23::/48 -j DROP | |
-A INPUT -s 2a03:2887:ff25::/48 -j DROP | |
-A INPUT -s 2a03:2887:ff27::/48 -j DROP | |
-A INPUT -s 2a03:2887:ff28::/46 -j DROP | |
-A INPUT -s 2a03:2887:ff2f::/48 -j DROP | |
-A INPUT -s 2a03:2887:ff30::/48 -j DROP | |
-A INPUT -s 2a03:2887:ff35::/48 -j DROP | |
-A INPUT -s 2a03:2887:ff37::/48 -j DROP | |
-A INPUT -s 2a03:2887:ff38::/46 -j DROP | |
-A INPUT -s 2a03:2887:ff3f::/48 -j DROP | |
-A INPUT -s 2a03:2887:ff40::/48 -j DROP | |
-A INPUT -s 2a03:2887:ff43::/48 -j DROP | |
-A INPUT -s 2a03:2887:ff44::/47 -j DROP | |
-A INPUT -s 2a03:2887:ff48::/46 -j DROP | |
-A INPUT -s 2a03:2887:ff4d::/48 -j DROP | |
-A INPUT -s 2a03:2887:ff4e::/47 -j DROP | |
-A INPUT -s 2a03:2887:ff50::/47 -j DROP | |
-A INPUT -s 2a03:2887:ff52::/48 -j DROP | |
-A INPUT -s 2a03:2887:ff58::/47 -j DROP | |
-A INPUT -s 2c0f:ef78:3::/48 -j DROP | |
-A INPUT -s 2c0f:ef78:5::/48 -j DROP | |
-A INPUT -s 2c0f:ef78:6::/48 -j DROP | |
-A INPUT -s 2c0f:ef78:9::/48 -j DROP | |
-A INPUT -s 2c0f:ef78:d::/48 -j DROP | |
-A INPUT -s 2c0f:ef78:e::/47 -j DROP | |
-A INPUT -s 2c0f:ef78:11::/48 -j DROP | |
-A INPUT -s 2c0f:ef78:12::/48 -j DROP | |
| |
# Rejeter tout le reste : | |
-A FORWARD -i br2 -j REJECT | |
-A FORWARD -o br2 -j REJECT | |
COMMIT | COMMIT |
| |
</code> | </code> |
==== Paquets installés ==== | ==== Paquets installés ==== |