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édenteProchaine révisionLes deux révisions suivantes | ||
tech:hypervisor-01 [04/03/2021 13:26] – LibertAdmin | tech:hypervisor-01 [20/04/2021 15:54] – [Sauvegardes] LibertAdmin | ||
---|---|---|---|
Ligne 85: | Ligne 85: | ||
address 192.168.10.1 | address 192.168.10.1 | ||
netmask 255.255.255.0 | netmask 255.255.255.0 | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Routage et filtrage avec iptables ==== | ||
+ | |||
+ | Nous avons dû ensuite router et rediriger tout ça avec iptables afin de communiquer depuis l' | ||
+ | |||
+ | L' | ||
+ | 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, | ||
+ | |||
+ | Les règles concernant le réseau d' | ||
+ | |||
+ | <code bash> | ||
+ | root@hypervisor-01 ~ # cat / | ||
+ | # Router le Web vers le proxy Nginx : | ||
+ | -A PREROUTING -d 159.69.59.13/ | ||
+ | # Router le mail envoi/ | ||
+ | -A PREROUTING -d 159.69.59.13/ | ||
+ | # Router le 9000 vers le serveur peertube : | ||
+ | -A PREROUTING -d 159.69.59.13/ | ||
+ | # Router le 4443 et les 10000-20000 | ||
+ | -A PREROUTING -d 159.69.59.13/ | ||
+ | -A PREROUTING -d 159.69.59.13/ | ||
+ | -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/ | ||
+ | -A POSTROUTING -s 192.168.10.0/ | ||
+ | -A POSTROUTING -s 192.168.10.0/ | ||
+ | |||
+ | # Accepter le trafic basique : ICMP, boucle locale et connexions établies, en entrée : | ||
+ | -A INPUT -m conntrack --ctstate RELATED, | ||
+ | -A INPUT -i lo -j ACCEPT | ||
+ | -A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT | ||
+ | # Accepter le SSH : | ||
+ | -A INPUT -p tcp -m tcp --syn -m conntrack --ctstate NEW --dport XXXX -j ACCEPT | ||
+ | # Accepter Spice et VNC (console virtuelle de virt-manager) : | ||
+ | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5900 -j ACCEPT | ||
+ | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5900 -j ACCEPT | ||
+ | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5901 -j ACCEPT | ||
+ | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5901 -j ACCEPT | ||
+ | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5902 -j ACCEPT | ||
+ | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5902 -j ACCEPT | ||
+ | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5903 -j ACCEPT | ||
+ | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5903 -j ACCEPT | ||
+ | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5904 -j ACCEPT | ||
+ | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5904 -j ACCEPT | ||
+ | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5905 -j ACCEPT | ||
+ | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5905 -j ACCEPT | ||
+ | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5906 -j ACCEPT | ||
+ | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5906 -j ACCEPT | ||
+ | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5907 -j ACCEPT | ||
+ | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5907 -j ACCEPT | ||
+ | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5908 -j ACCEPT | ||
+ | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5908 -j ACCEPT | ||
+ | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5909 -j ACCEPT | ||
+ | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5909 -j ACCEPT | ||
+ | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5910 -j ACCEPT | ||
+ | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5910 -j ACCEPT | ||
+ | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5911 -j ACCEPT | ||
+ | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5911 -j ACCEPT | ||
+ | # Accepter les requêtes DNS (port 53) depuis les VM : | ||
+ | -A INPUT -i br2 -p udp -m udp -m multiport --dports 53 -j ACCEPT | ||
+ | -A INPUT -i br2 -p tcp -m tcp -m multiport --dports 53 -j ACCEPT | ||
+ | # Bloquer les requêtes rpcbind/ | ||
+ | -A INPUT -i br2 -p tcp -m multiport --dport 2049 -j ACCEPT | ||
+ | -A INPUT -i br2 -p tcp -m multiport --dport 111 -j ACCEPT | ||
+ | -A INPUT -p tcp -s 127.0.0.1 --dport 111 -j ACCEPT | ||
+ | -A INPUT -p udp --dport 111 -j DROP | ||
+ | -A INPUT -p tcp --dport 111 -j DROP | ||
+ | |||
+ | # On refuse tout le reste : | ||
+ | -A INPUT -m conntrack --ctstate INVALID -j DROP | ||
+ | -A INPUT -p tcp -m tcp -j REJECT --reject-with tcp-reset | ||
+ | -A INPUT -j REJECT --reject-with icmp-port-unreachable | ||
+ | |||
+ | # Accepter les connexions établies sur le LAN : | ||
+ | -A FORWARD -d 192.168.10.0/ | ||
+ | # Accepter le trafic sortant depuis le LAN : | ||
+ | -A FORWARD -s 192.168.10.0/ | ||
+ | # Accepter le trafic interne entre les VM : | ||
+ | -A FORWARD -i br2 -o br2 -j ACCEPT | ||
+ | # Accepter les paquets redirigés vers des ports particuliers pour le Web vers le proxy : | ||
+ | -A FORWARD -d 192.168.10.2/ | ||
+ | # Accepter les paquets redirigés vers des ports particuliers pour le mail vers le serveur mail : | ||
+ | -A FORWARD -d 192.168.10.7/ | ||
+ | # Accepter les paquets redirigés vers des ports particuliers pour peertube service 9000 vers le serveur video : | ||
+ | -A FORWARD -d 192.168.10.8/ | ||
+ | # Accepter les paquets redirigés vers des ports particuliers pour funkwhale service 5000 vers le serveur video : | ||
+ | -A FORWARD -d 192.168.10.9/ | ||
+ | # Accepter les paquets redirigés vers des ports particuliers pour jitsi meet service tcp 10000-20000 vers le serveur visio : | ||
+ | -A FORWARD -d 192.168.10.10/ | ||
+ | # Accepter les paquets redirigés vers des ports particuliers pour jitsi meet service udp 10000-20000 vers le serveur visio : | ||
+ | -A FORWARD -d 192.168.10.10/ | ||
+ | # Accepter les paquets redirigés vers des ports particuliers pour jitsi meet service tcp 4443 vers le serveur visio : | ||
+ | -A FORWARD -d 192.168.10.10/ | ||
+ | |||
+ | # 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 | ||
</ | </ | ||
Ligne 1016: | Ligne 1121: | ||
</ | </ | ||
- | ==== Routage et filtrage avec iptables | + | ==== Stockage ZFS ==== |
- | Nous avons dû ensuite router et rediriger tout ça avec iptables afin de communiquer depuis l' | ||
- | |||
- | L' | ||
- | 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, | ||
- | |||
- | Les règles concernant le réseau d' | ||
- | |||
- | <code bash> | ||
- | root@hypervisor-01 ~ # cat / | ||
- | # Router le Web vers le proxy Nginx : | ||
- | -A PREROUTING -d 159.69.59.13/ | ||
- | # Router le mail envoi/ | ||
- | -A PREROUTING -d 159.69.59.13/ | ||
- | # Router le 9000 vers le serveur peertube : | ||
- | -A PREROUTING -d 159.69.59.13/ | ||
- | # Router le 4443 et les 10000-20000 | ||
- | -A PREROUTING -d 159.69.59.13/ | ||
- | -A PREROUTING -d 159.69.59.13/ | ||
- | -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/ | ||
- | -A POSTROUTING -s 192.168.10.0/ | ||
- | -A POSTROUTING -s 192.168.10.0/ | ||
- | |||
- | # Accepter le trafic basique : ICMP, boucle locale et connexions établies, en entrée : | ||
- | -A INPUT -m conntrack --ctstate RELATED, | ||
- | -A INPUT -i lo -j ACCEPT | ||
- | -A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT | ||
- | # Accepter le SSH : | ||
- | -A INPUT -p tcp -m tcp --syn -m conntrack --ctstate NEW --dport XXXX -j ACCEPT | ||
- | # Accepter Spice et VNC (console virtuelle de virt-manager) : | ||
- | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5900 -j ACCEPT | ||
- | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5900 -j ACCEPT | ||
- | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5901 -j ACCEPT | ||
- | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5901 -j ACCEPT | ||
- | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5902 -j ACCEPT | ||
- | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5902 -j ACCEPT | ||
- | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5903 -j ACCEPT | ||
- | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5903 -j ACCEPT | ||
- | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5904 -j ACCEPT | ||
- | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5904 -j ACCEPT | ||
- | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5905 -j ACCEPT | ||
- | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5905 -j ACCEPT | ||
- | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5906 -j ACCEPT | ||
- | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5906 -j ACCEPT | ||
- | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5907 -j ACCEPT | ||
- | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5907 -j ACCEPT | ||
- | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5908 -j ACCEPT | ||
- | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5908 -j ACCEPT | ||
- | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5909 -j ACCEPT | ||
- | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5909 -j ACCEPT | ||
- | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5910 -j ACCEPT | ||
- | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5910 -j ACCEPT | ||
- | -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW --dport 5911 -j ACCEPT | ||
- | -A INPUT -p udp -m udp -m conntrack --ctstate NEW --dport 5911 -j ACCEPT | ||
- | # Accepter les requêtes DNS (port 53) depuis les VM : | ||
- | -A INPUT -i br2 -p udp -m udp -m multiport --dports 53 -j ACCEPT | ||
- | -A INPUT -i br2 -p tcp -m tcp -m multiport --dports 53 -j ACCEPT | ||
- | # Bloquer les requêtes rpcbind/ | ||
- | -A INPUT -i br2 -p tcp -m multiport --dport 2049 -j ACCEPT | ||
- | -A INPUT -i br2 -p tcp -m multiport --dport 111 -j ACCEPT | ||
- | -A INPUT -p tcp -s 127.0.0.1 --dport 111 -j ACCEPT | ||
- | -A INPUT -p udp --dport 111 -j DROP | ||
- | -A INPUT -p tcp --dport 111 -j DROP | ||
- | |||
- | # On refuse tout le reste : | ||
- | -A INPUT -m conntrack --ctstate INVALID -j DROP | ||
- | -A INPUT -p tcp -m tcp -j REJECT --reject-with tcp-reset | ||
- | -A INPUT -j REJECT --reject-with icmp-port-unreachable | ||
- | |||
- | # Accepter les connexions établies sur le LAN : | ||
- | -A FORWARD -d 192.168.10.0/ | ||
- | # Accepter le trafic sortant depuis le LAN : | ||
- | -A FORWARD -s 192.168.10.0/ | ||
- | # Accepter le trafic interne entre les VM : | ||
- | -A FORWARD -i br2 -o br2 -j ACCEPT | ||
- | # Accepter les paquets redirigés vers des ports particuliers pour le Web vers le proxy : | ||
- | -A FORWARD -d 192.168.10.2/ | ||
- | # Accepter les paquets redirigés vers des ports particuliers pour le mail vers le serveur mail : | ||
- | -A FORWARD -d 192.168.10.7/ | ||
- | # Accepter les paquets redirigés vers des ports particuliers pour peertube service 9000 vers le serveur video : | ||
- | -A FORWARD -d 192.168.10.8/ | ||
- | # Accepter les paquets redirigés vers des ports particuliers pour funkwhale service 5000 vers le serveur video : | ||
- | -A FORWARD -d 192.168.10.9/ | ||
- | # Accepter les paquets redirigés vers des ports particuliers pour jitsi meet service tcp 10000-20000 vers le serveur visio : | ||
- | -A FORWARD -d 192.168.10.10/ | ||
- | # Accepter les paquets redirigés vers des ports particuliers pour jitsi meet service udp 10000-20000 vers le serveur visio : | ||
- | -A FORWARD -d 192.168.10.10/ | ||
- | # Accepter les paquets redirigés vers des ports particuliers pour jitsi meet service tcp 4443 vers le serveur visio : | ||
- | -A FORWARD -d 192.168.10.10/ | ||
- | |||
- | # 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 | ||
- | </ | ||
- | |||
- | ==== Stockage ZFS ==== | ||
Un « pool » sur les 2 gros disques mécaniques a été créé en miroir (RAID1). Si vous vous demandez pourquoi nous n' | Un « pool » sur les 2 gros disques mécaniques a été créé en miroir (RAID1). Si vous vous demandez pourquoi nous n' | ||
Ligne 1175: | Ligne 1177: | ||
==== Sauvegardes ==== | ==== Sauvegardes ==== | ||
- | Toujours sauvegarder ! Nous avons mis en place des snapshots ZFS que nous répliquons en France via SSH sur un autre pool ZFS en miroir. Les donnés sont donc techniquement répliquées 3 fois (4 disque | + | Toujours sauvegarder ! Nous avons mis en place des snapshots ZFS que nous répliquons en France, dans le Tarn au domicile de l' |
Nous aimerions pouvoir chiffrer les données nativement, une fois que ZFS 2.0 aura atterri dans Debian stable. Pour le moment, seul Nextcloud permet de chiffrer le stockage nativement. | Nous aimerions pouvoir chiffrer les données nativement, une fois que ZFS 2.0 aura atterri dans Debian stable. Pour le moment, seul Nextcloud permet de chiffrer le stockage nativement. |