Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== PfSense et HAProxy ====== ===== Présentation ===== Dans le but de résoudre les problèmes de fonctionnement du failover et loadbalancing des LDAPS avec keepalived, nous avons choisis de passer à HAProxy. Par la même occasion nous avons choisis de le mettre sur PfSense qui est en réalité un FreeBSD pour sa légèreté et sa robustesse réseaux pour faire ces les fonctionnalités. <WRAP center round important 60%> Attention, la gestion du PfSense doit se faire avec le navigateur Firefox, de nombreux problèmes de connexion sont présents avec Chrome et Safari </WRAP> ===== Installation ===== * ISO : [[https://www.pfsense.org/download/|Téléchargement sur le site de l'éditeur]] * Une seule carte réseaux : Le WAN * Désactiver le firewalling : * Firewall > Rules > WAN : Add * Action : Pass * Protocol : Any * Source : Any * Destination : Any ===== Configuration FailOver ( CARP ) ===== ==== PfSync : System > High Availability Sync ==== * Synchronize states : OK * Synchronize Interface : WAN * pfsync Synchronize Peer IP : permet d'eviter l'envoie des checks en multicast * Mettre IP du second PfSense ( sur machine 1 : ip machine 2 et inversement ) ==== Firewall > Virtual IPs ==== * Add * Type : CARP * Address : VIP :192.168.1.3 ( par exemple ) * Virtual IP password : Mettre un password de 8 chars * VHID : ID du groupe doit être unique par type de LB * Par exemple pour deux LoadBalancer ldap : ID = 1 , pour deux LB smtp : ID = 2 ==== Status > CARP ==== * Permet de voir qui est Master/Backup ===== Exemple loadbalacing LDAP ===== ==== Certificats : System > Certificate Manager ==== * CA : Add * Nom : Cert-CA * Certificate data : Mettre le contenu du certificat haute autorité * Certificates : Add * Descriptive Name : Cert domain * Certificate data : Mettre le certificat * Private key data : Mettre la clé de chiffrement ==== Load Balancing avec HAProxy ==== === Sur le serveur maitre LB1 : === - **Installer le package :** * System > Package Manager > Available Packages * haproxy : install - **Settings** * Enable HAProxy * Maximum connections: **10000** * Internal stats port : **2200** * Max SSL Diffie-Hellman size : **2048** * Custom options : **ssl-server-verify none** * HAProxy Sync : **Check** - **Backend** * **ldap** : * name : **ldap_TEST** * server list : * name: **ldap1-389 , 192.168.1.1 , 389 ** * name: **ldap2-389 , 192.168.1.2 , 389** * Connection timeout : **1000** * Server timeout : **5000** * Health check method : **LDAP** * Stick tables : **stick on sourceIPv4** * Stick-table expire : **30m** * Stick-table size : **200k** * **ldaps** : * name : **ldap_SSL_TEST** * server list : * name: **ldap1-636 , 192.168.1.1 , 636 ** * advanced : **ssl** * name: **ldap2-636 , 192.168.1.2 , 636** * advanced : **ssl** * Connection timeout : **1000** * Server timeout : **5000** * Health check method : **LDAP** * Stick tables : **stick on sourceIPv4** * Stick-table expire : **30m** * Stick-table size : **200k** - **Frontend** * **ldap** : * name: **ldap_front** * description : **ldap_front-389** * external address : * Listen : **Any IPv4 ** * Port : **389** * type : **TCP** * Default Backend : **ldap_TEST** * client timeout: **1000** * **ldaps** : * name: **ldap_ssl_front** * description : **ldap_ssl_front-636** * external address : * Listen : **Any IPv4 ** * Port : **636** * SSL Offloading : **check** * type : ssl/https * Default Backend : **ldap_SSL_TEST** * client timeout: **1000** * Use "httpclose" option : **Forceclose** * Certificate : **Star domain** * Add ACL for certificate Subject Alternative Names : **Uncheck** * Advanced ssl options : **no-sslv3 no-tlsv10 ciphers HIGH:!aNULL:!MD5** * Without client cert : **check** * Allow invalid cert : **check** * Client verification CA certificates : **Digicert-CA** === Sur le serveur slave LB2 === * La configuration sera automatique déployer via XMLRPC * Afin de ne pas re-ecrire la configuration HAProxy entre LB1 et LB2, nous allons utiliser la fonction de replication de conf * Dans notre cas **LB1 sera le maitre** et **LB2 l'esclave** * C'est LB1 qui push sur LB2 , donc on configure LB1 * La synchro de HAProxy est appliqué depuis le plugin directement ( voir conf précédente ) * System > High Availability Sync * Synchronize Config to IP : **IP du LB2** * Remote System Username : **admin** * Remote System Password : **passwd** * Select options to sync : * **Certificates** * **Firewall** * **Virtual IPs** ==== Backup Configuration ==== * Diagnostics > Backup & Restore * Download configuration as XML reseaux/pfsense.txt Dernière modification: 2019/03/15 15:55de william S'identifier