Nous supposons que vous avez déjà lu le guide du relais et les considérations techniques. Cette sous-page est destinée aux opérateurs qui souhaitent activer la sortie sur leur relais.

Il est recommandé d'installer les relais de sortie sur des serveurs dédiés à cet effet. Il n'est pas recommandé d'installer des relais de sortie Tor sur des serveurs dont vous avez besoin pour d'autres services. Ne mélangez pas votre propre trafic avec le trafic de votre relais de sortie.

Reverse DNS et enregistrement WHOIS

Avant de transformer votre relais de non-exit en relais de sortie, assurez-vous que vous avez défini un enregistrement DNS inverse (PTR) pour rendre plus évident le fait qu'il s'agit d'un relais de sortie de Tor. Quelque chose comme "tor-exit" dans son nom est un bon début.

Si votre fournisseur le propose, assurez-vous que votre enregistrement WHOIS contient des indications claires qu'il s'agit d'un relais de sortie Tor.

Utilisez un nom de domaine qui vous appartient. N'utilisez surtout pas torproject.org comme nom de domaine pour votre reverse DNS.

Sortir des avis de la page HTML

Pour qu'il soit encore plus évident qu'il s'agit d'un relais de sortie Tor, vous devez servir une page HTML de notification de sortie Tor. Tor peut le faire pour vous : si votre DirPort est sur le port TCP 80, vous pouvez utiliser la fonctionnalité DirPortFrontPage de Tor pour afficher un fichier HTML sur ce port. Ce fichier sera affiché à toute personne qui dirige son navigateur vers l'adresse IP de votre relais de sortie Tor.

Si vous ne l'avez pas fait avant, les lignes de configuration suivantes doivent être appliquées à votre torrc :

DirPort 80
DirPortFrontPage /path/to/html/file

Nous proposons un exemple de fichier HTML d'avis de sortie de Tor, mais vous pouvez l'adapter à vos besoins.

Nous avons également publié un excellent article de blog contenant d'autres conseils pour l'organisation d'un relais de sortie.

Note : DirPort est déprécié depuis Tor 0.4.6.5, et les auto-tests ne sont plus affichés dans les logs de tor. Pour plus d'informations, lisez ses notes de version et ticket #40282.

Politique de sortie

La définition de la politique de sortie est l'une des parties les plus importantes de la configuration d'un relais de sortie. La politique de sortie définit les ports de destination que vous souhaitez transférer. Cela a un impact sur la quantité de mails d'abus que vous recevrez (moins de ports signifie moins de mails d'abus, mais un relais de sortie ne permettant que quelques ports est également moins utile). Si vous voulez être un relais de sortie utile, vous devez autoriser au moins les ports de destination 80 et 443.

En tant que nouveau relais de sortie - surtout si vous êtes nouveau chez votre hébergeur - il est bon de commencer par une politique de sortie réduite (pour réduire le nombre d'e-mails d'abus) et de l'ouvrir davantage au fur et à mesure que vous devenez plus expérimenté. La politique de sortie réduite peut être consultée sur la page wiki Politique de sortie réduite.

Pour devenir un relais de sortie, changez ExitRelay de 0 à 1 dans votre fichier de configuration torrc et redémarrez le démon tor.

ExitRelay 1

DNS sur les relais de sortie

Contrairement à d'autres types de relais, les relais de sortie effectuent également la résolution DNS pour les clients Tor. La résolution DNS sur les relais de sortie est cruciale pour les clients Tor et elle doit être fiable et rapide en utilisant la mise en cache.

  • La résolution DNS peut avoir un impact significatif sur la performance et la fiabilité de votre relais de sortie.
  • N'utilisez aucun des grands résolveurs DNS (Google, OpenDNS, Quad9, Cloudflare, 4.2.2.1-6) comme résolveur DNS principal ou de secours afin d'éviter la centralisation.
  • Nous recommandons d'utiliser un résolveur local de mise en cache et de validation DNSSEC sans utiliser d'autres serveurs (des instructions spécifiques sont données ci-dessous, pour différents systèmes d'exploitation).
    • Si vous voulez ajouter un second résolveur DNS comme solution de repli à votre configuration /etc/resolv.conf, choisissez un résolveur dans votre système autonome et assurez-vous qu'il n'est pas la première entrée de ce fichier (la première entrée devrait être votre résolveur local).
    • Si un résolveur local comme unbound n'est pas une option pour vous, utilisez un résolveur que votre fournisseur utilise dans le même système autonome (pour savoir si une adresse IP est dans le même AS que votre relais, vous pouvez la rechercher en utilisant bgp.he.net).
  • Évitez d'ajouter plus de deux résolveurs à votre fichier /etc/resolv.conf pour limiter l'exposition des requêtes DNS au niveau de l'AS.
  • Assurez-vous que votre résolveur local n'utilise pas d'adresse IP source sortante utilisée par une sortie ou une non-exit de Tor, car il n'est pas rare que les IP de Tor soient (temporairement) bloquées et une adresse IP source de résolveur DNS bloquée peut avoir un impact important. Pour unbound, vous pouvez utiliser l'option outgoing-interface pour spécifier les adresses IP source pour contacter d'autres serveurs DNS.
  • Les opérateurs de sorties importantes (>=100 Mbit/s) devraient s'efforcer de surveiller et d'optimiser le taux d'expiration de la résolution DNS de Tor. Ceci peut être réalisé via l'exportateur Prometheus de Tor (MetricsPort). La métrique suivante peut être utilisée pour surveiller le taux de dépassement de délai tel qu'il est perçu par Tor :
tor_relay_exit_dns_error_total{reason="timeout"} 0

Il existe de nombreuses options pour les logiciels de serveur DNS. Unbound est le devenu mais vous pouvez utiliser tout autre logiciel avec lequel vous vous sentez à l'aise. Lorsque vous choisissez votre logiciel de résolution DNS, assurez-vous qu'il prend en charge la validation DNSSEC et la minimisation des QNAME (RFC7816). Installez le logiciel de résolution via le gestionnaire de paquets de votre système d'exploitation, afin de vous assurer qu'il est mis à jour automatiquement.

En utilisant votre propre résolveur DNS, vous êtes moins vulnérable à la censure basée sur le DNS que votre résolveur en amont pourrait imposer.

Vous trouverez ci-dessous les instructions pour installer et configurer Unbound - un résolveur de validation et de mise en cache DNSSEC - sur votre relais de sortie. Unbound dispose de nombreux boutons de configuration et de réglage, mais ces instructions sont simples et courtes ; la configuration de base conviendra parfaitement à la plupart des opérateurs.

Après avoir basculé vers Unbound, vérifiez qu'il fonctionne comme prévu en résolvant un nom d'hôte valide. Si cela ne fonctionne pas, vous pouvez restaurer votre ancien fichier /etc/resolv.conf.

Debian/Ubuntu

Les commandes suivantes installent unbound, sauvegardent votre configuration DNS, et indiquent au système d'utiliser le résolveur local :

# apt install unbound
# cp /etc/resolv.conf /etc/resolv.conf.backup
# echo nameserver 127.0.0.1 > /etc/resolv.conf

Pour éviter toute modification indésirable de la configuration (par exemple par le client DHCP) :

# chattr +i /etc/resolv.conf

La configuration Debian est livrée avec la minimisation de QNAME (RFC7816) activée par défaut, vous n'avez donc pas besoin de l'activer explicitement. Le résolveur Unbound que vous venez d'installer effectue également la validation DNSSEC.

Si vous exécutez systemd-resolved avec son auditeur stub, vous devrez peut-être faire un peu plus que cela. Veuillez vous référer à la page de manuel resolved.conf.

CentOS/RHEL

Installer le paquet unbound :

# yum install unbound

Si vous utilisez une version récente de CentOS/RHEL, veuillez utiliser dnf au lieu de yum.

Dans /etc/unbound/unbound.conf remplacer la ligne :

  qname-minimisation: no

avec

  qname-minimisation: yes

Activer et démarrer unbound :

# systemctl enable --now unbound

Indiquer au système d'utiliser le résolveur local :

# cp /etc/resolv.conf /etc/resolv.conf.backup
# echo nameserver 127.0.0.1 > /etc/resolv.conf

Pour éviter des changements de configuration non désirés (par exemple par le client DHCP) :

# chattr +i /etc/resolv.conf

Si vous exécutez systemd-resolved avec son auditeur stub, vous devrez peut-être faire un peu plus que cela. Veuillez vous référer à la page de manuel resolved.conf.

FreeBSD

FreeBSD fournit unbound dans le système de base mais celui des ports suit généralement l'amont de plus près, nous installons donc le paquetage unbound :

# pkg install unbound

Remplacez le contenu de /usr/local/etc/unbound/unbound.conf par les lignes suivantes :

server:
    verbosity: 1
    qname-minimisation: yes

Activer et démarrer le service unbound :

# sysrc unbound_enable=YES
# service unbound start

Indiquer au système d'utiliser le résolveur local :

# cp /etc/resolv.conf /etc/resolv.conf.backup
# echo nameserver 127.0.0.1 > /etc/resolv.conf

Pour éviter des changements de configuration non désirés (par exemple par le client DHCP) :

# chflags schg /etc/resolv.conf