Table des matières
2020/11/28 (Neutriton) : pfsense
Présences :
- Nino
- Hgo
- Niko
- Celo
- Fredux
- Tharyrok
Jitsi : https://jitsi.belnet.be/neutriton
jitsi client (electron | appimage): https://github.com/jitsi/jitsi-meet-electron
> mute with
m
and vid with v
Météo
Moment informel durant lequel on exprime en peu de mots comment on se sent et si on a une attente forte pour la réunion. Ce n'est pas un moment de discussion mais d'expression individuelle et ce n'est pas obligatoire
Attente(s) forte(s)
Si l'une ou l'autre personne exprime une attente forte, merci de vous en occuper en priorité ou de la noter dans le hub ou dans un point approprié.
Présentation réseau
analogique: https://files.neutrinet.be/s/btYHNFK7jG6S3Ng draw.io (now diagrams.net):
Présentation pfsense
c joli mais sec Possibilité d'organiser les règles avec des séparateurs alias: mettre un nom sur par exemple un ip ou un groupe des entités pour faire plus lisible (le texte est plus parlant qu'une IP…) ou regrouper et aussi pour évite d'entrer plusieurs fois les mêmes données
Pourquoi pas nftable/iptable
plus facile dans l'interface, comme drag n drop and separators
OPNsense
Réécriture de PfSense, avec un framework plus à jour, et tourne sur HardenedBSD au lieu de BSD Comportement étrange de l'expérience de tharyrok (Ipv6, résolveur DNS qui plantait régulièrement) Proxmox supporte pas bien HardenedBSD C'est subjectif, mais Tharyrok trouve que l'interface web d'OPNsense est moins intuitive que celle de pfsense.
proxmox rappel
machine ids 100 to 199 > non moving (only start stop) car ce sont des machines liées à une interface réseau physique de la machine 900+ > movable : sont des machines qui peuvent être déplacées d'un serveur physique à l'autre en cas de besoin
Installation Pfsense
new id > 121 (on passe à la dizaine supérieure pour différencier les pfsense des edge) pfsense-01.blue.neutri.net resp. name of service . datacenter . domain os = other = bsd hdd = local (no use for ceph) - 10go = even too much | qcow2 | discard for using only really used space 4 cores → pfsense doesn't need much, so 4 cores is already a lot (Neutrinet servers have 32 cores) openvswitch to make use of vlans > use tags (10 = management or 20 is private or new) we don't specify a vlan here, because pfsense will have to access the whole interface (= all vlans) virtio
put iso in /var/lib/vz/templates/iso (default folder on datastore) wget + gzip
change the installation media in the made vms > start
you can chose to install from previously exported config.xml (all config from the pfsense) or fresh
keymap : belgian, just by convention (utile parce qu'on peut avoir besoin de taper quelques commandes avant l'accès à l'interface web) tharyrok had some issues with ufs in the past (corrupted pfsense after reboot), so big preference for zfs https://forum.netgate.com/topic/120393/zfs-vs-ufs-and-power-loss < zillion times better lol Comme configuration ZFS, choix de Stripe (pas de raid) Don't forget to remove the install CD. This can be a problem later if the CD is still there, but the corresponding image doesn't exist anymore : Proxmox could become grumpy. __ pause
Assignation des VLANs
vlan ⇒ yes && choose interface add all vlans on the same interface (in this case 40 = public = WAN, 20=private and 25=new vlan for pfsense communication aka LAN)
La création des VLAN et leur assignation aux interfaces peut se faire par cli ou par interface web.
vlan 10 named management (Contient actuellement les Proxmox, Ceph, les iLo et les Edge, mais cela est temporaire.) vlan 20 named patata ( VLAN sur lequel se connecteront les machines virtuelles.) vlan 25 named interco (VLAN spécifique entre les pfSense pour leur synchronisation) vlan 40 named neutrinet (IP publiques de Neutrinet)
Les descriptions des VLANs sont importantes pour bien voir quoi correspond à quoi en cas de problème et de coup de stress.
Au niveau de l'assignation des interfaces : On a assigné le VLAN40 sur le WAN, le VLAN 25 sur le LAN et les VLAN 20 et 10 sur Opt1 et Opt2. PfSense pré-attribue des règles spécifiques à l'interface LAN et on préfère donc utiliser une interface sans règles pré-établie pour les VM du VLAN 20.
Une difficulté en assignant les interfaces est de perdre l'accès au pfSense. Pour assigner le VLAN40 à la place du VLAN 10 sur le WAN lors de la configuration de pfSense1, la stratégie a été de configurer le pfSense (interface + IP+ règle autorisant l'accès depuis le réseau VLAN20) et d'ajouter temporairement une interface à la machine web pour accéder au pfSense et poursuive la configuration.
Synchronisation et HA
pfsync permits to not lose sessions when one goes down
Un utilisateur spécial pour la synchronisation est créé avec un droit particulier : “system, HA node, synchro”. La synchronisation est ensuite paramétrée dans : “System / High Aviability Sync”. On coche “pfsense transfers state insertion, update and deletion between firewalls”. On choisit l'interface de synchronisation, ici interco avec le VLAN25. Dans le second pfSense, on coche tout dans la liste des choses à synchroniser.
only config xmlrpc on the 1st pfsense and you sync to the second, so always put conf on 1st if the “master” pfsense isn't available, don't create new rules ór keep in mind that new rules will be overwritten once it comes online S'il fallait néanmoins le faire, il faut alors supprimer complètement pfSense1 et faire de pfSense2 le master pour que la synchronisation se fasse vers le nouveau pfSense1.
packages are not sync, have to be installed on both sides manually users are sync
Mises à jour et réinstallation
In case pfsense is corrupted :
use the install disk choose "recover config.xml from a previous install" install
To upgrade pfsense : same as recover, but with a newer pfsense image (les mises à jour par la web interface peuvent bugger)
config and packages will be recovered as well
utilisateurs et ssh
We create a new user tharyrok with his ssh public key, then we enable ssh login and force public key auth Don't forget to add a rule in the firewall : Neutrinet, allow port 22
Mise en HA
you create a virtual ip with CARP and put the floating ip 80.67.181.6 and the mask /28 On doit aussi choisir un mot de passe qui répond à certaines contraintes. Le reste est par défaut (une option VHID permettrait d'ajouter plusieurs adresses mais ici on en a qu'une).
On peut ensuite voir dans les status de CARP que le pfsense1 est master et le pfsense2 est en backup. Cela veut dire que le premier pfSense à l'IP.
Pour rendre l'IP flottante accessible, une règle doit être ajoutée dans le firewall. On choisit “single host” ou l'alias de l'ip flottante car si l'on prend Neutrinet address ça sera l'IP déjà assignée à l'interface.
CARP + pfsync makes continuous ICMP : si pfSense1 est désactivé ou arrêté, pfSense2 reprend l'IP. temp disable carp vs carp maintenance mode → maintenance mode stays after reboot / reinstall
Why CARP instead of VRRP ?
pfsense only support CARP VRRP (keepalived) allows more flexibility in the config But as we use CARP through pfsense, this doesn't matter
Fin de réunion car il est déjà tard. Tharyrok doit encore nous expliquer comment diagnostiquer certaines erreurs de xmlrpc qui peuvent arriver. Il doit aussi nous expliquer le NAT.
Prochaine réunion
Prochain Neutriton : 12/12 à 14:00 sur l'inventaire
Météo de fin
Moment informel durant lequel on exprime en peu de mots comment, à titre personnel, la réunion a été vécue que ce soit positif ou négatif. Si une ou plusieurs tension est née durant la réunion, il est peut-être nécessaire d'envisager l'une ou l'autre réunion pour y remédier.