Différences
Ci-dessous, les différences entre deux révisions de la page.
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:58] – [Système d'exploitation] LibertAdmin | tech:hypervisor-01 [17/09/2025 23:23] (Version actuelle) – [Paquets installés] LibertAdmin | ||
---|---|---|---|
Ligne 19: | Ligne 19: | ||
* 1 hyperviseur KVM exposé sur Internet sur 159.69.59.13/ | * 1 hyperviseur KVM exposé sur Internet sur 159.69.59.13/ | ||
* plusieurs machines virtuelles KVM/QEMU pour les services, pilotées par libvirt, sur 192.168.10.0/ | * plusieurs machines virtuelles KVM/QEMU pour les services, pilotées par libvirt, sur 192.168.10.0/ | ||
- | * [[tech: | + | |
* [[tech: | * [[tech: | ||
* < | * < | ||
- | * [[tech: | + | * [[tech: |
* < | * < | ||
* < | * < | ||
- | * [[tech: | + | * [[tech: |
- | Toutes les requêtes venant d' | + | Toutes les requêtes venant d' |
===== Configuration ===== | ===== Configuration ===== | ||
==== Système d' | ==== Système d' | ||
* Debian stable (Debian 12 « Bookworm ») | * Debian stable (Debian 12 « Bookworm ») | ||
- | * Debian oldstable pour le serveur web-01 (Debian 11 « Bullseye ») | ||
==== Adressage IP ==== | ==== Adressage IP ==== | ||
- | Hetzner offre une IP publique. Nous avons modifié l' | + | Hetzner offre une IP publique. Nous avons modifié l' |
- | L' | + | L' |
- | + | ||
- | L' | + | |
< | < | ||
Ligne 65: | Ligne 62: | ||
iface br0 inet6 static | iface br0 inet6 static | ||
bridge_ports enp0s31f6 | bridge_ports enp0s31f6 | ||
- | bridge_hz | + | bridge_hw |
bridge_fd 0 | bridge_fd 0 | ||
bridge_stp off | bridge_stp off | ||
Ligne 73: | Ligne 70: | ||
gateway fe80::1 | gateway fe80::1 | ||
- | # Management | + | # Management |
- | auto br1 | + | #auto br1 |
- | iface br1 inet static | + | #iface br1 inet static |
- | bridge_ports none | + | # bridge_ports none |
- | bridge_fd 0 | + | # bridge_fd 0 |
- | bridge_stp off | + | # bridge_stp off |
- | address 10.X.Y.Z | + | # address 10.10.10.1 |
- | netmask 255.X.Y.Z | + | # netmask 255.255.255.0 |
- | + | # | |
- | iface br1 inet6 static | + | #iface br1 inet6 static |
- | bridge_ports none | + | # bridge_ports none |
- | bridge_fd 0 | + | # bridge_fd 0 |
- | bridge_stp off | + | # bridge_stp off |
- | address :: | + | # address :: |
- | netmask 120 | + | # netmask 120 |
# VM-LAN | # VM-LAN | ||
Ligne 102: | Ligne 99: | ||
bridge_fd 0 | bridge_fd 0 | ||
bridge_stp off | bridge_stp off | ||
- | address ::ffff:c0a8:a01 | + | address |
netmask 120 | netmask 120 | ||
</ | </ | ||
+ | ==== Paramètres réseau et swap dans sysctl ==== | ||
+ | Dans ''/ | ||
+ | |||
+ | < | ||
+ | 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 | ||
+ | </ | ||
==== Routage et filtrage avec iptables ==== | ==== Routage et filtrage avec iptables ==== | ||
Ligne 113: | Ligne 139: | ||
Le paquet '' | Le paquet '' | ||
- | 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, | 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, | ||
- | Les règles concernant le réseau d' | + | Cela dit, pour information une configuration similaire à la suivante est en place : |
- | + | ||
- | Pour IPv4, dans ''/ | + | |
<code bash> | <code bash> | ||
+ | # / | ||
- | *nat | + | # Common parameters: |
+ | Port < | ||
+ | Port < | ||
+ | AcceptEnv LANG LC_* | ||
+ | ChallengeResponseAuthentication no | ||
+ | KbdInteractiveAuthentication no | ||
+ | PrintMotd no | ||
+ | PasswordAuthentication no | ||
+ | Subsystem sftp / | ||
+ | UsePAM yes | ||
+ | X11Forwarding no | ||
- | # Router le trafic Web vers le serveur web : | + | # Port < |
- | -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="< |
+ | AllowUsers root < | ||
- | # Router le mail envoi/réception vers le serveur mail : | + | # Port < |
- | -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=< |
+ | AllowUsers < | ||
+ | </code> | ||
- | # Tests | + | Les règles concernant |
- | ## 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, | + | |
- | # | + | |
- | ## Router le port 5868 vers le serveur audio pour Funkwhale : | + | |
- | #-A PREROUTING -d 159.69.59.13/ | + | |
- | # Router le 8484 pour Zabbix vers le serveur monitoring : | + | Pour IPv4, dans '' |
- | -A PREROUTING -d 159.69.59.13/ | + | |
- | + | ||
- | # Ne pas appliquer le masquerading sur le broadcast/ | + | |
- | -A POSTROUTING -s 192.168.10.0/ | + | |
- | -A POSTROUTING -s 192.168.10.0/ | + | |
- | + | ||
- | # 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/ | + | |
+ | <code bash> | ||
+ | *nat | ||
+ | -A PREROUTING -d 159.69.59.13/ | ||
+ | -A PREROUTING -d 159.69.59.13/ | ||
+ | -A PREROUTING -d 159.69.59.13/ | ||
+ | -A POSTROUTING -s 10.10.10.0/ | ||
+ | -A POSTROUTING -s 192.168.10.0/ | ||
+ | -A POSTROUTING -s 192.168.10.0/ | ||
+ | -A POSTROUTING -s 192.168.10.0/ | ||
+ | -A POSTROUTING -s 192.168.10.0/ | ||
+ | -A POSTROUTING -s 192.168.10.0/ | ||
COMMIT | COMMIT | ||
- | |||
*filter | *filter | ||
- | + | -A INPUT -m conntrack --ctstate RELATED, | |
- | # Accepter le trafic basique : ICMP, boucle locale et connexions établies, en entrée : | + | -A INPUT -i lo -m comment --comment " |
- | -A INPUT -m conntrack --ctstate RELATED, | + | -A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NEW -m comment --comment "Accepter le trafic basique ICMP, en entrée" |
- | -A INPUT -i lo -j ACCEPT | + | -A INPUT -p tcp -m tcp --syn -m conntrack --ctstate NEW -m multiport |
- | -A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT | + | -A INPUT -p tcp -m tcp --syn -m conntrack --ctstate NEW -m multiport |
- | + | -A INPUT -p udp --dport 51510 -m comment | |
- | # Accepter le SSH : | + | -A INPUT -i br2 -p udp -m udp -m multiport |
- | -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 " |
- | -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/ |
- | + | -A INPUT -i br2 -p tcp -m multiport --dport 111 -m comment --comment " | |
- | # Accepter les connexions pour le mail : | + | -A INPUT -p tcp -s 127.0.0.1 --dport 111 -m comment --comment " |
- | -A INPUT -p tcp -m tcp --syn -m conntrack | + | -A INPUT -p udp --dport 111 -m comment --comment " |
- | + | -A INPUT -p tcp --dport 111 -m comment --comment " | |
- | # Accepter le tunnel SSH vers le serveur web-01 sur le port 52365 : | + | -A INPUT -i br2 -p tcp -m tcp -m multiport --dports 10050 -m comment --comment " |
- | -A INPUT -p tcp -m tcp -m conntrack | + | -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" |
- | + | -A INPUT -p icmp -m comment --comment "On refuse les trop nombreux ping" | |
- | # Accepter les requêtes DNS (port 53) depuis les VM : | + | -A INPUT -m conntrack --ctstate INVALID |
- | -A INPUT -i br2 -p udp -m udp -m multiport --dports 53 -j ACCEPT | + | -A INPUT -p tcp -m tcp -m comment --comment "On refuse tout le reste" |
- | -A INPUT -i br2 -p tcp -m tcp -m multiport --dports 53 -j ACCEPT | + | -A INPUT -m comment --comment "On refuse tout le reste" |
- | + | -A FORWARD -d 192.168.10.0/ | |
- | # Bloquer les requêtes rpcbind/ | + | -A FORWARD -s 192.168.10.0/ |
- | -A INPUT -i br2 -p tcp -m multiport --dport 2049 -j ACCEPT | + | -A FORWARD -i br2 -o br2 -m comment --comment "Accepter le trafic interne entre les VM" -j ACCEPT |
- | -A INPUT -i br2 -p tcp -m multiport --dport 111 -j ACCEPT | + | -A FORWARD -i wg0 -o br2 -m comment --comment " |
- | -A INPUT -p tcp -s 127.0.0.1 --dport 111 -j ACCEPT | + | -A FORWARD -i br2 -o wg0 -m comment --comment "Accepter |
- | -A INPUT -p udp --dport 111 -j DROP | + | -A FORWARD -d 192.168.10.5/ |
- | -A INPUT -p tcp --dport 111 -j DROP | + | -A FORWARD -d 192.168.10.7/ |
- | + | -A FORWARD -d 192.168.10.250/ | |
- | # Accepter | + | -A INPUT -s 102.132.96.0/20 -m comment |
- | -A INPUT -i br2 -p tcp -m tcp -m multiport --dports 10050 -j ACCEPT | + | -A INPUT -s 103.4.96.0/ |
- | + | -A INPUT -s 129.134.0.0/ | |
- | # On refuse les trop nombreux ping : | + | -A INPUT -s 129.134.160.0/ |
- | -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.25.0/ |
- | -A INPUT -p icmp -j DROP | + | -A INPUT -s 129.134.26.0/ |
- | + | -A INPUT -s 129.134.27.0/ | |
- | # On refuse tout le reste : | + | -A INPUT -s 129.134.28.0/ |
- | -A INPUT -m conntrack --ctstate INVALID -j DROP | + | -A INPUT -s 129.134.29.0/ |
- | -A INPUT -p tcp -m tcp -j REJECT --reject-with tcp-reset | + | -A INPUT -s 129.134.30.0/ |
- | -A INPUT -j REJECT --reject-with icmp-port-unreachable | + | -A INPUT -s 129.134.31.0/ |
- | + | -A INPUT -s 139.223.200.130/ | |
- | # Accepter les connexions établies sur le LAN : | + | -A INPUT -s 157.240.0.0/ |
- | -A FORWARD -d 192.168.10.0/ | + | -A INPUT -s 157.240.192.0/ |
- | + | -A INPUT -s 157.240.195.0/ | |
- | # Accepter | + | -A INPUT -s 157.240.196.0/ |
- | -A FORWARD -s 192.168.10.0/ | + | -A INPUT -s 157.240.197.0/ |
- | + | -A INPUT -s 157.240.198.0/ | |
- | # Accepter le trafic interne entre les VM : | + | -A INPUT -s 157.240.199.0/ |
- | -A FORWARD -i br2 -o br2 -j ACCEPT | + | -A INPUT -s 157.240.200.0/ |
- | + | -A INPUT -s 157.240.201.0/ | |
- | # Accepter les paquets redirigés | + | -A INPUT -s 157.240.202.0/ |
- | -A FORWARD -d 192.168.10.5/ | + | -A INPUT -s 157.240.203.0/ |
- | + | -A INPUT -s 157.240.204.0/ | |
- | # Accepter les paquets redirigés vers des ports particuliers pour le mail vers le serveur | + | -A INPUT -s 157.240.205.0/ |
- | -A FORWARD -d 192.168.10.7/ | + | -A INPUT -s 157.240.207.0/ |
- | + | -A INPUT -s 157.240.208.0/ | |
- | # Accepter les paquets redirigés vers des ports particuliers pour le monitoring | + | -A INPUT -s 157.240.209.0/ |
- | -A FORWARD -d 192.168.10.250/ | + | -A INPUT -s 157.240.210.0/ |
- | + | -A INPUT -s 157.240.211.0/ | |
- | # Tests | + | -A INPUT -s 157.240.212.0/ |
- | ## Accepter les paquets redirigés vers des ports particuliers vers le serveur web : | + | -A INPUT -s 157.240.214.0/ |
- | #-A FORWARD -d 192.168.10.5/ | + | -A INPUT -s 157.240.215.0/ |
- | # | + | -A INPUT -s 157.240.216.0/ |
- | ## Accepter les paquets redirigés vers des ports particuliers pour funkwhale service 5868 vers le serveur | + | -A INPUT -s 157.240.217.0/ |
- | #-A FORWARD | + | -A INPUT -s 157.240.218.0/ |
- | + | -A INPUT -s 157.240.22.0/ | |
- | # On bloque TOUT le trafic en provenance de Meta/ | + | -A INPUT -s 157.240.221.0/ |
- | -A INPUT -s 102.132.96.0/ | + | -A INPUT -s 157.240.222.0/ |
- | -A INPUT -s 103.4.96.0/ | + | -A INPUT -s 157.240.223.0/ |
- | -A INPUT -s 129.134.0.0/ | + | -A INPUT -s 157.240.224.0/ |
- | -A INPUT -s 129.134.160.0/ | + | -A INPUT -s 157.240.225.0/ |
- | -A INPUT -s 129.134.25.0/ | + | -A INPUT -s 157.240.226.0/ |
- | -A INPUT -s 129.134.26.0/ | + | -A INPUT -s 157.240.227.0/ |
- | -A INPUT -s 129.134.27.0/ | + | -A INPUT -s 157.240.228.0/ |
- | -A INPUT -s 129.134.28.0/ | + | -A INPUT -s 157.240.229.0/ |
- | -A INPUT -s 129.134.29.0/ | + | -A INPUT -s 157.240.23.0/ |
- | -A INPUT -s 129.134.30.0/ | + | -A INPUT -s 157.240.231.0/ |
- | -A INPUT -s 129.134.31.0/ | + | -A INPUT -s 157.240.232.0/ |
- | -A INPUT -s 139.223.200.130/ | + | -A INPUT -s 157.240.233.0/ |
- | -A INPUT -s 157.240.0.0/ | + | -A INPUT -s 157.240.234.0/ |
- | -A INPUT -s 157.240.192.0/ | + | -A INPUT -s 157.240.235.0/ |
- | -A INPUT -s 157.240.195.0/ | + | -A INPUT -s 157.240.236.0/ |
- | -A INPUT -s 157.240.196.0/ | + | -A INPUT -s 157.240.237.0/ |
- | -A INPUT -s 157.240.197.0/ | + | -A INPUT -s 157.240.238.0/ |
- | -A INPUT -s 157.240.198.0/ | + | -A INPUT -s 157.240.239.0/ |
- | -A INPUT -s 157.240.199.0/ | + | -A INPUT -s 157.240.240.0/ |
- | -A INPUT -s 157.240.200.0/ | + | -A INPUT -s 157.240.24.0/ |
- | -A INPUT -s 157.240.201.0/ | + | -A INPUT -s 157.240.241.0/ |
- | -A INPUT -s 157.240.202.0/ | + | -A INPUT -s 157.240.242.0/ |
- | -A INPUT -s 157.240.203.0/ | + | -A INPUT -s 157.240.243.0/ |
- | -A INPUT -s 157.240.204.0/ | + | -A INPUT -s 157.240.244.0/ |
- | -A INPUT -s 157.240.205.0/ | + | -A INPUT -s 157.240.245.0/ |
- | -A INPUT -s 157.240.207.0/ | + | -A INPUT -s 157.240.247.0/ |
- | -A INPUT -s 157.240.208.0/ | + | -A INPUT -s 157.240.249.0/ |
- | -A INPUT -s 157.240.209.0/ | + | -A INPUT -s 157.240.250.0/ |
- | -A INPUT -s 157.240.210.0/ | + | -A INPUT -s 157.240.25.0/ |
- | -A INPUT -s 157.240.211.0/ | + | -A INPUT -s 157.240.251.0/ |
- | -A INPUT -s 157.240.212.0/ | + | -A INPUT -s 157.240.252.0/ |
- | -A INPUT -s 157.240.214.0/ | + | -A INPUT -s 157.240.253.0/ |
- | -A INPUT -s 157.240.215.0/ | + | -A INPUT -s 157.240.254.0/ |
- | -A INPUT -s 157.240.216.0/ | + | -A INPUT -s 157.240.26.0/ |
- | -A INPUT -s 157.240.217.0/ | + | -A INPUT -s 157.240.27.0/ |
- | -A INPUT -s 157.240.218.0/ | + | -A INPUT -s 157.240.28.0/ |
- | -A INPUT -s 157.240.22.0/ | + | -A INPUT -s 157.240.29.0/ |
- | -A INPUT -s 157.240.221.0/ | + | -A INPUT -s 157.240.30.0/ |
- | -A INPUT -s 157.240.222.0/ | + | -A INPUT -s 157.240.3.0/ |
- | -A INPUT -s 157.240.223.0/ | + | -A INPUT -s 157.240.31.0/ |
- | -A INPUT -s 157.240.224.0/ | + | -A INPUT -s 157.240.5.0/ |
- | -A INPUT -s 157.240.225.0/ | + | -A INPUT -s 157.240.6.0/ |
- | -A INPUT -s 157.240.226.0/ | + | -A INPUT -s 157.240.7.0/ |
- | -A INPUT -s 157.240.227.0/ | + | -A INPUT -s 157.240.8.0/ |
- | -A INPUT -s 157.240.228.0/ | + | -A INPUT -s 157.240.9.0/ |
- | -A INPUT -s 157.240.229.0/ | + | -A INPUT -s 162.254.207.51/ |
- | -A INPUT -s 157.240.23.0/ | + | -A INPUT -s 162.255.119.207/ |
- | -A INPUT -s 157.240.231.0/ | + | -A INPUT -s 172.67.135.213/ |
- | -A INPUT -s 157.240.232.0/ | + | -A INPUT -s 173.252.64.0/ |
- | -A INPUT -s 157.240.233.0/ | + | -A INPUT -s 179.60.192.0/ |
- | -A INPUT -s 157.240.234.0/ | + | -A INPUT -s 185.199.108.153/ |
- | -A INPUT -s 157.240.235.0/ | + | -A INPUT -s 185.199.111.153/ |
- | -A INPUT -s 157.240.236.0/ | + | -A INPUT -s 185.60.216.0/ |
- | -A INPUT -s 157.240.237.0/ | + | -A INPUT -s 198.54.117.211/ |
- | -A INPUT -s 157.240.238.0/ | + | -A INPUT -s 204.15.20.0/ |
- | -A INPUT -s 157.240.239.0/ | + | -A INPUT -s 27.124.125.189/ |
- | -A INPUT -s 157.240.240.0/ | + | -A INPUT -s 31.13.24.0/ |
- | -A INPUT -s 157.240.24.0/ | + | -A INPUT -s 31.13.64.0/ |
- | -A INPUT -s 157.240.241.0/ | + | -A INPUT -s 34.117.168.233/ |
- | -A INPUT -s 157.240.242.0/ | + | -A INPUT -s 37.9.175.187/ |
- | -A INPUT -s 157.240.243.0/ | + | -A INPUT -s 45.130.41.7/ |
- | -A INPUT -s 157.240.244.0/ | + | -A INPUT -s 45.64.40.0/ |
- | -A INPUT -s 157.240.245.0/ | + | -A INPUT -s 45.91.92.164/ |
- | -A INPUT -s 157.240.247.0/ | + | -A INPUT -s 54.81.116.232/ |
- | -A INPUT -s 157.240.249.0/ | + | -A INPUT -s 61.9.242.43/ |
- | -A INPUT -s 157.240.250.0/ | + | -A INPUT -s 64.225.91.73/ |
- | -A INPUT -s 157.240.25.0/ | + | -A INPUT -s 66.220.144.0/ |
- | -A INPUT -s 157.240.251.0/ | + | -A INPUT -s 69.171.224.0/ |
- | -A INPUT -s 157.240.252.0/ | + | -A INPUT -s 74.119.76.0/ |
- | -A INPUT -s 157.240.253.0/ | + | -A INPUT -s 89.223.68.248/ |
- | -A INPUT -s 157.240.254.0/ | + | -A FORWARD -i br2 -m comment --comment " |
- | -A INPUT -s 157.240.26.0/ | + | -A FORWARD -o br2 -m comment --comment " |
- | -A INPUT -s 157.240.27.0/ | + | |
- | -A INPUT -s 157.240.28.0/ | + | |
- | -A INPUT -s 157.240.29.0/ | + | |
- | -A INPUT -s 157.240.30.0/ | + | |
- | -A INPUT -s 157.240.3.0/ | + | |
- | -A INPUT -s 157.240.31.0/ | + | |
- | -A INPUT -s 157.240.5.0/ | + | |
- | -A INPUT -s 157.240.6.0/ | + | |
- | -A INPUT -s 157.240.7.0/ | + | |
- | -A INPUT -s 157.240.8.0/ | + | |
- | -A INPUT -s 157.240.9.0/ | + | |
- | -A INPUT -s 162.254.207.51/ | + | |
- | -A INPUT -s 162.255.119.207/ | + | |
- | -A INPUT -s 172.67.135.213/ | + | |
- | -A INPUT -s 173.252.64.0/ | + | |
- | -A INPUT -s 179.60.192.0/ | + | |
- | -A INPUT -s 185.199.108.153/ | + | |
- | -A INPUT -s 185.199.111.153/ | + | |
- | -A INPUT -s 185.60.216.0/ | + | |
- | -A INPUT -s 198.54.117.211/ | + | |
- | -A INPUT -s 204.15.20.0/ | + | |
- | -A INPUT -s 27.124.125.189/ | + | |
- | -A INPUT -s 31.13.24.0/ | + | |
- | -A INPUT -s 31.13.64.0/ | + | |
- | -A INPUT -s 34.117.168.233/ | + | |
- | -A INPUT -s 37.9.175.187/ | + | |
- | -A INPUT -s 45.130.41.7/ | + | |
- | -A INPUT -s 45.64.40.0/ | + | |
- | -A INPUT -s 45.91.92.164/ | + | |
- | -A INPUT -s 54.81.116.232/ | + | |
- | -A INPUT -s 61.9.242.43/ | + | |
- | -A INPUT -s 64.225.91.73/ | + | |
- | -A INPUT -s 66.220.144.0/ | + | |
- | -A INPUT -s 69.171.224.0/ | + | |
- | -A INPUT -s 74.119.76.0/ | + | |
- | -A INPUT -s 89.223.68.248/ | + | |
- | + | ||
- | # 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 | ||
- | |||
</ | </ | ||
Ligne 338: | Ligne 328: | ||
<code bash> | <code bash> | ||
- | |||
- | *nat | ||
- | |||
- | # Router le Web vers le serveur web : | ||
- | -A PREROUTING -d 2a01: | ||
- | |||
- | # Router le mail envoi/ | ||
- | -A PREROUTING -d 2a01: | ||
- | |||
- | # Tests | ||
- | ## Router les ports des applications vers le serveur web : | ||
- | #-A PREROUTING -d 2a01: | ||
- | # | ||
- | ## Router le port 5868 pour Funkwhale vers le serveur audio : | ||
- | #-A PREROUTING -d 2a01: | ||
- | |||
- | ## Router le 8484 pour Zabbix vers le serveur monitoring (inactif, pas d'IPv6 pour l' | ||
- | #-A PREROUTING -d 2a01: | ||
- | |||
- | # Masquerading sur tous les ports dans le sens sortant (VM -> Internet) | ||
- | -A POSTROUTING -s :: | ||
- | -A POSTROUTING -s :: | ||
- | -A POSTROUTING -s :: | ||
- | |||
- | COMMIT | ||
- | |||
*filter | *filter | ||
- | + | -A INPUT -m conntrack --ctstate RELATED, | |
- | # Accepter le trafic basique : ICMP, boucle locale et connexionx | + | -A INPUT -i lo -m comment --comment " |
- | -A INPUT -m conntrack --ctstate RELATED, | + | -A INPUT ! -i lo -d :: |
- | -A INPUT -i lo -j ACCEPT | + | -A INPUT -p tcp -m tcp --syn -m conntrack --ctstate NEW --dport 22 -m comment --comment " |
- | -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" |
- | + | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 52365 -m comment --comment " | |
- | # Accepter le SSH : | + | -A INPUT -i br2 -p udp -m udp -m multiport --dports 53 -m comment --comment " |
- | -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 " |
- | -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 " |
- | + | -A INPUT -i br2 -p tcp -m multiport --dport 111 -m comment --comment " | |
- | # Accepter le tunnel | + | -A INPUT -p tcp -s :: |
- | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 52365 -j ACCEPT | + | -A INPUT -p udp --dport 111 -m comment --comment " |
- | + | -A INPUT -p tcp --dport 111 -m comment --comment " | |
- | # 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 " |
- | -A INPUT -i br2 -p udp -m udp -m multiport --dports 53 -j ACCEPT | + | -A INPUT -p icmpv6 --icmpv6-type parameter-problem |
- | -A INPUT -i br2 -p tcp -m tcp -m multiport --dports 53 -j ACCEPT | + | -A INPUT -p icmpv6 --icmpv6-type echo-request |
- | + | -A INPUT -p icmpv6 --icmpv6-type echo-reply | |
- | # Bloquer | + | -A INPUT -p icmpv6 --icmpv6-type router-advertisement -m hl --hl-eq 255 -m comment --comment "On accepte l' |
- | -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' |
- | -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' |
- | -A INPUT -p tcp -s :: | + | -A INPUT -p icmpv6 --icmpv6-type neighbour-solicitation -m hl --hl-eq 255 -m comment --comment "On accepte l' |
- | -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" |
- | -A INPUT -p tcp --dport 111 -j DROP | + | -A INPUT -p icmpv6 --icmpv6-type echo-request -m comment --comment "On refuse |
- | + | -A INPUT -m conntrack --ctstate INVALID | |
- | # Accepter | + | -A INPUT -m comment --comment "On refuse tout le reste en entrée" |
- | -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, |
- | + | -A FORWARD -s 2a01:4f8:231:aa6::/64 -i br2 -m comment --comment "Accepter le trafic | |
- | # On accepte l' | + | -A FORWARD -i br2 -o br2 -m comment --comment " |
- | -A INPUT -p icmpv6 --icmpv6-type parameter-problem -j ACCEPT | + | -A FORWARD -i wg0 -o br2 -m comment |
- | -A INPUT -p icmpv6 --icmpv6-type echo-request -j ACCEPT | + | -A FORWARD |
- | -A INPUT -p icmpv6 --icmpv6-type echo-reply -j ACCEPT | + | -A FORWARD -d 2a01:4f8:231:aa6:: |
- | -A INPUT -p icmpv6 --icmpv6-type router-advertisement -m hl --hl-eq 255 -j ACCEPT | + | -A FORWARD -d 2a01:4f8:231:aa6:: |
- | -A INPUT -p icmpv6 --icmpv6-type router-solicitation -m hl --hl-eq 255 -j ACCEPT | + | -A FORWARD -d 2a01:4f8:231:aa6:: |
- | -A INPUT -p icmpv6 --icmpv6-type neighbour-advertisement -m hl --hl-eq 255 -j ACCEPT | + | -A INPUT -s 2620:0:1c00::/40 -m comment |
- | -A INPUT -p icmpv6 --icmpv6-type neighbour-solicitation -m hl --hl-eq 255 -j ACCEPT | + | -A INPUT -s 2620: |
- | + | -A INPUT -s 2a03: | |
- | # On refuse les trop nombreux ping : | + | -A INPUT -s 2a03: |
- | -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: |
- | -A INPUT -p icmpv6 --icmpv6-type echo-request -j DROP | + | -A INPUT -s 2a03: |
- | + | -A INPUT -s 2a03: | |
- | # On refuse | + | -A INPUT -s 2a03: |
- | -A INPUT -m conntrack --ctstate INVALID -j DROP | + | -A INPUT -s 2a03: |
- | -A INPUT -j REJECT | + | -A INPUT -s 2a03: |
- | + | -A INPUT -s 2a03: | |
- | # Accepter les connexions établies sur le LAN : | + | -A INPUT -s 2a03: |
- | -A FORWARD -d ::ffff:c0a8:a00/64 -o br2 -m conntrack --ctstate RELATED, | + | -A INPUT -s 2a03: |
- | + | -A INPUT -s 2a03: | |
- | # Accepter | + | -A INPUT -s 2a03: |
- | -A FORWARD -s ::ffff:c0a8:a00/64 -i br2 -j ACCEPT | + | -A INPUT -s 2a03: |
- | + | -A INPUT -s 2a03: | |
- | # Accepter le trafic | + | -A INPUT -s 2a03: |
- | -A FORWARD -i br2 -o br2 -j ACCEPT | + | -A INPUT -s 2a03: |
- | + | -A INPUT -s 2a03: | |
- | # Accepter les paquets redirigés vers des ports particuliers pour le Web vers le serveur web : | + | -A INPUT -s 2a03: |
- | -A FORWARD -d :: | + | -A INPUT -s 2a03: |
- | + | -A INPUT -s 2a03: | |
- | # Accepter les paquets redirigés | + | -A INPUT -s 2a03: |
- | -A FORWARD -d ::ffff:c0a8:a05 -o br2 -p tcp -m tcp --syn -m conntrack --ctstate NEW -m multiport --dports | + | -A INPUT -s 2a03: |
- | + | -A INPUT -s 2a03: | |
- | # Tests | + | -A INPUT -s 2c0f: |
- | ## Accepter les paquets redirigés vers des ports particuliers vers le serveur web : | + | -A INPUT -s 2c0f: |
- | #-A FORWARD -d ::ffff:c0a8:a05 -o br2 -p tcp -m tcp --syn -m conntrack --ctstate NEW -m multiport --dports | + | -A INPUT -s 2c0f: |
- | # | + | -A INPUT -s 2c0f: |
- | ## Accepter les paquets redirigés vers des ports particuliers pour funkwhale service 5868 vers le serveur | + | -A INPUT -s 2c0f: |
- | #-A FORWARD -d ::ffff:c0a8:a09 -o br2 -p tcp -m tcp --syn -m conntrack --ctstate NEW -m multiport --dports | + | -A INPUT -s 2c0f: |
- | + | -A INPUT -s 2c0f: | |
- | # Pas d'IPv6 pour le moment, inactif : | + | -A INPUT -s 2c0f: |
- | ## Accepter les paquets redirigés vers des ports particuliers pour Zabbix tcp 8484 vers le serveur monitoring | + | -A FORWARD -i br2 -m comment --comment " |
- | #-A FORWARD | + | -A FORWARD -o br2 -m comment --comment " |
- | + | ||
- | # On bloque TOUT le trafic en provenance de Meta/ | + | |
- | -A INPUT -s 2620: | + | |
- | -A INPUT -s 2620: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2a03: | + | |
- | -A INPUT -s 2c0f: | + | |
- | -A INPUT -s 2c0f: | + | |
- | -A INPUT -s 2c0f: | + | |
- | -A INPUT -s 2c0f: | + | |
- | -A INPUT -s 2c0f: | + | |
- | -A INPUT -s 2c0f: | + | |
- | -A INPUT -s 2c0f: | + | |
- | -A INPUT -s 2c0f: | + | |
- | + | ||
- | # Rejeter tout le reste : | + | |
- | -A FORWARD -i br2 -j REJECT | + | |
- | -A FORWARD -o br2 -j REJECT | + | |
COMMIT | COMMIT | ||
- | |||
</ | </ | ||
==== Paquets installés ==== | ==== Paquets installés ==== | ||
- | Pour virtualiser, | + | Pour virtualiser, |
La liste des paquets : | La liste des paquets : | ||
Ligne 493: | Ligne 416: | ||
aptitude | aptitude | ||
aptitude-common | aptitude-common | ||
+ | apt-transport-https | ||
apt-utils | apt-utils | ||
at | at | ||
Ligne 518: | Ligne 442: | ||
cpio | cpio | ||
cpp | cpp | ||
- | cpp-10 | ||
cpp-12 | cpp-12 | ||
cron | cron | ||
Ligne 540: | Ligne 463: | ||
debianutils | debianutils | ||
diffutils | diffutils | ||
+ | dirmngr | ||
discover | discover | ||
discover-data | discover-data | ||
Ligne 565: | Ligne 489: | ||
fonts-dejavu-core | fonts-dejavu-core | ||
gcc | gcc | ||
- | gcc-10 | ||
- | gcc-10-base: | ||
- | gcc-11-base: | ||
gcc-12 | gcc-12 | ||
gcc-12-base: | gcc-12-base: | ||
- | gcc-9-base: | ||
gdisk | gdisk | ||
+ | genisoimage | ||
gettext-base | gettext-base | ||
+ | gnupg | ||
+ | gnupg-l10n | ||
+ | gnupg-utils | ||
+ | gpg | ||
+ | gpg-agent | ||
+ | gpgconf | ||
+ | gpgsm | ||
gpgv | gpgv | ||
+ | gpg-wks-client | ||
+ | gpg-wks-server | ||
grep | grep | ||
groff-base | groff-base | ||
Ligne 617: | Ligne 547: | ||
libapt-pkg6.0: | libapt-pkg6.0: | ||
libargon2-1: | libargon2-1: | ||
- | libasan6: | ||
libasan8: | libasan8: | ||
libasound2: | libasound2: | ||
libasound2-data | libasound2-data | ||
+ | libassuan0: | ||
libasyncns0: | libasyncns0: | ||
libatk1.0-0: | libatk1.0-0: | ||
Ligne 633: | Ligne 563: | ||
libavahi-common-data: | libavahi-common-data: | ||
libbinutils: | libbinutils: | ||
+ | libblas3: | ||
libblkid1: | libblkid1: | ||
libboost-iostreams1.74.0: | libboost-iostreams1.74.0: | ||
Ligne 712: | Ligne 643: | ||
libfuse3-3: | libfuse3-3: | ||
libgbm1: | libgbm1: | ||
- | libgcc-10-dev: | ||
libgcc-12-dev: | libgcc-12-dev: | ||
libgcc-s1: | libgcc-s1: | ||
Ligne 762: | Ligne 692: | ||
libkrb5-3: | libkrb5-3: | ||
libkrb5support0: | libkrb5support0: | ||
+ | libksba8: | ||
liblcms2-2: | liblcms2-2: | ||
libldap-2.5-0: | libldap-2.5-0: | ||
libldap-common | libldap-common | ||
liblerc4: | liblerc4: | ||
+ | liblinear4: | ||
libllvm15: | libllvm15: | ||
liblmdb0: | liblmdb0: | ||
Ligne 772: | Ligne 704: | ||
liblognorm5: | liblognorm5: | ||
liblsan0: | liblsan0: | ||
+ | liblua5.3-0: | ||
liblvm2cmd2.03: | liblvm2cmd2.03: | ||
liblz4-1: | liblz4-1: | ||
Ligne 800: | Ligne 733: | ||
libnl-genl-3-200: | libnl-genl-3-200: | ||
libnl-route-3-200: | libnl-route-3-200: | ||
+ | libnpth0: | ||
libnsl2: | libnsl2: | ||
libnsl-dev: | libnsl-dev: | ||
Ligne 889: | Ligne 823: | ||
libtirpc-common | libtirpc-common | ||
libtirpc-dev: | libtirpc-dev: | ||
- | libtsan0: | ||
libtsan2: | libtsan2: | ||
libubsan1: | libubsan1: | ||
Ligne 964: | Ligne 897: | ||
libzstd1: | libzstd1: | ||
linux-base | linux-base | ||
- | linux-compiler-gcc-10-x86 | ||
linux-compiler-gcc-12-x86 | linux-compiler-gcc-12-x86 | ||
- | linux-headers-5.10.0-15-amd64 | + | linux-headers-6.1.0-38-amd64 |
- | linux-headers-5.10.0-15-common | + | linux-headers-6.1.0-38-common |
- | linux-headers-5.10.0-16-amd64 | + | linux-headers-6.1.0-39-amd64 |
- | linux-headers-5.10.0-16-common | + | linux-headers-6.1.0-39-common |
- | linux-headers-5.10.0-17-amd64 | + | |
- | linux-headers-5.10.0-17-common | + | |
- | linux-headers-5.10.0-18-amd64 | + | |
- | linux-headers-5.10.0-18-common | + | |
- | linux-headers-5.10.0-19-amd64 | + | |
- | linux-headers-5.10.0-19-common | + | |
- | linux-headers-5.10.0-25-amd64 | + | |
- | linux-headers-5.10.0-25-common | + | |
- | linux-headers-6.1.0-12-amd64 | + | |
- | linux-headers-6.1.0-12-common | + | |
linux-headers-amd64 | linux-headers-amd64 | ||
- | linux-image-5.10.0-25-amd64 | + | linux-image-6.1.0-38-amd64 |
- | linux-image-6.1.0-12-amd64 | + | linux-image-6.1.0-39-amd64 |
linux-image-amd64 | linux-image-amd64 | ||
- | linux-kbuild-5.10 | ||
linux-kbuild-6.1 | linux-kbuild-6.1 | ||
linux-libc-dev: | linux-libc-dev: | ||
Ligne 995: | Ligne 916: | ||
lsb-release | lsb-release | ||
lsof | lsof | ||
+ | lua-lpeg: | ||
lvm2 | lvm2 | ||
mailcap | mailcap | ||
Ligne 1019: | Ligne 941: | ||
nfs-kernel-server | nfs-kernel-server | ||
nftables | nftables | ||
+ | nmap | ||
+ | nmap-common | ||
openssh-client | openssh-client | ||
openssh-server | openssh-server | ||
Ligne 1030: | Ligne 954: | ||
perl-base | perl-base | ||
perl-modules-5.36 | perl-modules-5.36 | ||
+ | pinentry-curses | ||
pkexec | pkexec | ||
policykit-1 | policykit-1 | ||
Ligne 1066: | Ligne 991: | ||
readline-common | readline-common | ||
reportbug | reportbug | ||
+ | rkhunter | ||
rpcbind | rpcbind | ||
rpcsvc-proto | rpcsvc-proto | ||
Ligne 1079: | Ligne 1005: | ||
shim-signed: | shim-signed: | ||
shim-signed-common | shim-signed-common | ||
- | shim-unsigned | + | shim-unsigned:amd64 |
smartmontools | smartmontools | ||
spl-dkms | spl-dkms | ||
Ligne 1095: | Ligne 1021: | ||
task-ssh-server | task-ssh-server | ||
tcpdump | tcpdump | ||
+ | tofu | ||
traceroute | traceroute | ||
tree | tree | ||
Ligne 1110: | Ligne 1037: | ||
wget | wget | ||
whiptail | whiptail | ||
+ | whois | ||
+ | wireguard | ||
+ | wireguard-tools | ||
x11-common | x11-common | ||
xfsprogs | xfsprogs |