En juillet 2020, LinuxFR m’avait fait un grand honneur en m’interviewant dans le contexte de la sortie de la sixième édition de mon livre sur l’administration Linux. Une question concernait la coécriture, (l’écriture à plusieurs auteurs) et j’avais indiqué que j’avais proposé ce projet à un ami, sur une sujet devenu compliqué. Un an après, le résultat de cette collaboration a été publié !
L'interview initial
Charles Sabourdin et moi avons donc la joie de vous annoncer le résultat de (…)
Forum Linux.général Faire un proxy SMTP TLS pour des outils ne sachant faire que du SMTP port 25
Hello,
Ma boite vient de passer sur une solution de messagerie commerciale bien connue pour laquelle j'éviterais de faire de la pub.
Pour acheminer correctement les mails envoyés par nos apps legacy l'éditeur nous conseille très fortement de faire du smtp/tls (port 587).
Cependant nos applis (propriétaires) legacy ne savent faire que de l'envoie vers des serveurs smtp en port 25.
Comme je n'y comprends rien en crypto (ssl/tls) pensez vous qu'il soit possible de proxyfier le flux de smtp (…)
Wiki Haproxy - redirection de domaine
Introduction
Quand HaProxy fait une redirection, il n'y a pas de communication avec les serveurs derrière le backend. Tout est entièrement géré par le frontend.
Si le client requière via https, le certificat https doit être signé. S'il ne l'est pas le navigateur web va stopper et émettre une alerte de sécurité et ce avant d'avoir reçu le code http signalant la redirection. Pas très fun pour vos utilisateurs.
Exemple
Peut être inséré dans les section backend ou (…)
Forum Linux.debian/ubuntu [Résolu] HaProxy - Probleme de transfert de cookies session entre backends (crsf token)
Bien le bonjour les troublions du net !
Avec HaProxy j'essaye de dispatcher les requêtes WEBDAV vers 2 backends différents en fonction du type de requêtes.
Ainsi les requêtes de lecture doivent aller vers les serveurs backends cloud_read et les requêtes d'écriture vers les serveurs backends cloud_write.
Voici la config (simplifiée) qui renvoie toutes les requêtes PUT vers cloud_write et tout le reste vers cloud_read :
frontend my_frontend
bind *:80 v4v6
bind *:443 v4v6 ssl crt /etc/haproxy/certs/cloud.belgium.com.pem
http-response set-header
(…)
Forum Programmation.php [Solved] [Optimisation] PHP/Bash tester le plus rapidement si un process est actif
Dans un script de HealthCheck l'utilisateur peut tester si un ou plusieurs processus sont actifs sur le serveur.
Voici un exemple adapté du code :
Cette version scan /proc/*/cmdline à la recherche des logiciels demandés par l'user.
<?php
$softwareName = array( "syncthing", "top" ); /* add name for check if these softwares names is active running */
$chkSoftIsLunch=true;
if(is_array($softwareName)) {
foreach($softwareName as $name){
$pids=null
(…)
Wiki [Tuto/HowTo] Nextcloud - Health Check avec HaProxy
Introduction
Pour des raisons d'efficacité et d'optimisation, il est déconseillé d'utiliser l'index.php ou status.php afin de faire les Health Check de HaProxy ou tout autre frontend.
Ici nous allons utiliser un script dédié dont le but est de tester "l'état de santé" des machines tout en consommant le moins de ressources possible.
Les variables permettant de configurer le script peuvent, et il est conseillé de le faire, être rangée directement dans le fichier config.php de nextcloud. Cette méthode vous (…)
Wiki [Tuto/HowTo] Nextcloud - restreindre accès à la page status.php
Introduction
La page status.php sert aux applications nextcloud clientes de vérifier le status en ligne du serveur.
Cette page peut aussi être utilisé afin de forger des Google Dork permettant de trouver des installations de nextcloud potentiellement plus fragile face au piratage.
Topic sur le forum de la communauté nextcloud : https://help.nextcloud.com/t/how-to-censor-status-php-page/38040
Il est fortement déconseillé de bloquer l'accès à cette page au risque de casser les clients de Nextcloud.
Via HaProxy
Ajoutez les lignes suivantes dans voter Backend (conseillé) (…)
Forum Linux.debian/ubuntu Petit partage - Conky pour logs apache2, DNSChef, OpenVPN, HaProxy
Source de l'article (workflow) : Conky - Display logs files
Après avoir parcourus les tréfonds du Regex, avoir emboîté les briques du puzzle ancestrale du grand dieu Sed; notre héro au grand Shell vient nous partager ses créations infernales de la semaine.
D'autres skins à venir, plus que probablement.
Bon amusement ! 😉
Les Conkys
Conky pour afficher les Logs d'Apache2
Source Code : https://gitlab.com/voxdemonix/conky/tree/master/conky_logs_apache2
Ce conky affiche les 15 dernières lignes d'un fichier log apache2 (par défaut /tmp/remote_logs/access.log) (…)
Wiki [Tuto/HowTo] [Debian/Ubuntu] Créer manuellement un Cluster Web
Difficulté de ce tutoriel : Bidouilleur confirmé n'ayant pas peur de la ligne de commande.
Introduction
Un cluster est un ensemble d'ordinateurs physique travaillant pour une tâche commune, augmentant ainsi la puissance de calcul et évitant la fin de service lorsque l'une d'elles tombe en panne.
Le désavantage est un coûts en énergie, en consommation réseau et en ressources machines. Ainsi dans le cas présent, par exemple, syncthing devra vérifier très régulièrement les modifications des fichiers du serveur web, et (…)
Wiki [Tuto/HowTo] HaProxy - bloquer les serveurs renvoyant des erreurs HTTP
Introduction
Par défaut HaProxy ne vérifie que la présence en ligne ou non des serveurs web, pas les erreurs renvoyées dans les en-têtes.
Ainsi, un serveur backend non fonctionnel suite à un problème de montage ou d'accès à la base de données, sera quand même considéré comme "UP" et les requêtes réseaux continueront d'y être acheminées, provoquant moult mécontentements chez vos utilisateurs qui pourraient se retrouver spammer de notification d'erreur sur leur smartphone chéri.
Néanmoins, HaProxy permet, via (…)
Wiki [Tuto/HowTo] HaProxy - bannir les requêtes quand l'User-Agent est vide
Introduction
Il n'est pas rare que des robots crawlent les sites internet sans utiliser d'User-Agent.
Si vous souhaitez les bannir de vos frontends HaProxy, voici comment faire.
Éditez votre fichier de configuration /etc/haproxy/haproxy.cfg
Ensuite selon vos envies: ajoutez une des deux règles suivantes.
- Si vous souhaitez renvoyer une erreur HTTP 403 Forbidden (accès interdis) quand l'user-agent est vide, ajoutez la règle HaProxy pour frontend suivante.
http-request deny if { hdr_cnt(user-agent) eq 0 }
- Si vous voulez bannir toute (…)
Wiki [Tuto/HowTo] Ajouter des Tor Hidden Service a vos frontends HaProxy
Introduction
Je pars du principe que vous avez déjà installez au moins un Frontend et un Backend et êtes donc capable de lire et traduire (avec l'aide des moteurs de recherche) les configurations d'HaProxy suivantes sans me forcer à entrer trop dans le détails.
Pour rappel HaProxy est un proxy permettant de répartir la charge réseau sur une ou plusieurs machines. Tor Hidden Service est quant à lui un mécanisme permettant de disposer d'un nom de domaine unique au monde (…)
Wiki [Tuto/HowTo] HaProxy - bannir User-Agent
Introduction
Cette méthode permet de renvoyer l'erreur http suivante lorsqu'un client utilise un User-Agent bannis :
403 Forbidden
Request forbidden by administrative rules.
Mise en place
- Ajoutez dans le paragraphe traitant de votre frontend les lignes suivantes
# security (ban)
tcp-request inspect-delay 5s
acl blockedagent hdr_sub(user-agent) -i -f /etc/haproxy/Blacklist_UserAgent.list
http-request deny if blockedagent
# end security
- blockedagent => le nom arbitraire qu'on choisi pour notre règle
Créez le fichier /etc/haproxy/Blacklist_UserAgent.list et remplissez-le avec les morceaux d'users-agent que vous souhaitez bloquer (…)
Forum général.petites-annonces Prestation haproxy
Bonjour,
Je recherche pour mon employeur une prestation, le sujet est la configuration de haproxy.
La stratégie pour notre direction est de s'appuyer sur des prestataires, société ou indépendant vous pouvez me contacter à roger point chevalier arobase hautes-alpes point fr.
Forum Linux.général [Nginx load balancing] erreur 404
Salut tout monde,
J'essaye de load balancer un site .net sur 6 serveurs IIS avec nginx (CentOS7).
Lorsque j'attaque directement les IIS le site est OK (HTTP 200), mais lorsque je passe par nginx j'obtiens une erreur 404 à chaque fois.
Voici les headers du site quand je passe en direct
Request URL:http://www.mywebapp.fr/
Request Method:GET
Status Code:200 OK
Remote Address:10.236.10.23:80
Referrer Policy:no-referrer-when-downgrade
Cache-Control:public, max-age=7200, stale-while-revalidate=3600
Content-Type:text/html; charset=utf-8
Date:Sat, 17 Feb 2018 00
(…)