voxdemonix : révision n°6 (01 juillet 2020 21:15:11)
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](https://www.haproxy.org/) est un [proxy](https://fr.wikipedia.org/wiki/Proxy) permettant de [répartir la charge](https://fr.wikipedia.org/wiki/R%C3%A9partition_de_charge) réseau sur une ou plusieurs machines. [Tor Hidden Service](https://www.torproject.org/docs/onion-services.html.en) est quant à lui un mécanisme permettant de disposer d'un nom de domaine unique au monde et ne nécessitant rien qu'un accès internet et une connexion au [réseau Tor](https://fr.wikipedia.org/wiki/Tor_%28r%C3%A9seau%29) pour fonctionner.
Plusieurs Hidden Service peuvent bien entendu pointer vers le même backend qui affichera, ou non, la même page.
Configuration de HaProxy.
=========================
**Éditez le fichier de configuration de HaProxy _/etc/haproxy/haproxy.cfg_**
```
sudo nano /etc/haproxy/haproxy.cfg
```
**Adaptez puis ajoutez la configuration du _Frontend_ suivante.**
```
frontend Frontend_Tor_HTTP
bind 127.0.0.1:81 # on utilise un autre ports afin d'éviter les conflits avec les autres frontends
mode http
option httpclose
option forwardfor
reqadd X-Forwarded-Proto:\ http
# default_backend serveur_web # NE DECOMMENTEZ QUE SI VOUS VOULEZ RENVOYER VERS UN BACKEND QUAND LE NOM DE DOMAINE EST ERRONÉ (FORTEMENT DÉCONSEILLÉ, au risque de diminuer l'anonymat du serveur face aux bots)
# www.mon.domaine.com
acl host_tor_www.mon.domaine.com hdr(host) -i mon_adresse_tor.onion
use_backend serveur_web if host_tor_www.mon.domaine.com
# www.HelloWorld.com
acl host_tor_www.HelloWorld.com hdr(host) -i blablablablablab.onion
use_backend serveur_web if host_tor_www.HelloWorld.com
```
**Adaptez puis ajoutez la configuration du _Backend_ suivante.**
```
backend serveur_web
mode http
balance roundrobin
option forwardfor
option httpchk HEAD /haproxytest.txt HTTP/1.0
cookie SERVERID insert indirect nocache
server superRaspberry superRaspberry:80 cookie superRaspberry #ssl verify none #check inter 10000
```
Configuration de Tor.
=====================
**Créez le dossier qui hébergera la configuration de votre Hidden Service.**
```
mkdir -p /var/lib/tor/hidden_service/http_mon_domaine
```
**Accordez au dossier et à son éventuel contenu les bonnes permissions (_rwx--S---_ pour _debian-tor:root_)**
```
chown debian-tor:root -R /var/lib/tor/hidden_service/http_mon_domaine
chmod 2700 -R /var/lib/tor/hidden_service/http_mon_domaine
```
**Éditez le fichier de configuration de tor _/etc/tor/torrc_**
```
sudo nano /etc/tor/torrc
```
**À la fin du fichiers, adaptez puis ajoutez les lignes suivantes:**
```
HiddenServiceDir /var/lib/tor/hidden_service/http_mon_domaine
HiddenServicePort 80 127.0.0.1:81
```
**Recommencez pour chaque Hidden Service.**
Appliquez et testez
===================
**Redémarrez Tor et HaProxy**
```
( service tor restart ; service haproxy restart )
```
**Attendez un peu que Tor crée ses routes puis tentez de vous connecter sur la page avec votre client préféré.**
Farm Link
=========
* [[FR] 📡 [Tuto/HowTo] Ajouter des Tor Hidden Service aà vos frontends HaProxy](https://www.0rion.netlib.re/forum4/viewtopic.php?f=79&t=788pjpxyxbxckp3hac6ogzwuqpwqrqex2emsn6b2fizn2hqqf5zhjoqi7ad.onion/doku.php?id=tutoriel_fr:tuto_howto_ajouter_des_tor_hidden_service_vos_frontends_haproxy) (article original)
* [[Tuto/HowTo] HaProxy - bannir User-Agent](https://linuxfr.org/wiki/tuto-howto-haproxy-bannir-user-agent)
* [Configuring Onion Services for Tor](https://www.torproject.org/docs/tor-onion-service.html.en)
* [[Tuto/HowTo] [Ubuntu/Debian] Load Balancing - redirection vers plusieurs vhost avec HaProxy](https://linuxfr.org/forums/linux-general/posts/tuto-howto-ubuntu-debian-load-balancing-redirection-vers-plusieurs-vhost-avec-haproxy)
* [[Tuto/HowTo] [Debian/Ubuntu] Clusteriser vos bases de données MariaDB avec Galera Cluster et HaProxy](https://linuxfr.org/wiki/tuto-howto-debian-ubuntu-clusteriser-vos-bases-de-donnees-mariadb-avec-galera-cluster-et-haproxy)