Synology DS620slim  

Créer un service web caché simple avec Tor

Testé avec DSM 6.2.2

Cette manipulation nécessite que le gestionnaire de paquets opkg soit installé ainsi que l’accès SSH au serveur, pour l’installation des paquets et la modification des fichiers de configuration notamment avec l’éditeur de texte en ligne de commande nano.

Prérequis avant de commencer :

  • Avoir activer SSH et pouvoir se connecter en root
  • Avoir installer OPKG sur le Synology
  • Avoir installer l'editeur de texte nano pour modifier les fichiers de configuration
  • Pour des raisons de ressources et de sécurité, le choix du serveur web se porte sur lighttpd, léger, rapide et sûr. Le serveur ne distribue que des fichiers en HTML, c'est-à-dire des fichiers statiques. Aucun languages de script (PHP, ...) n'est utilisé pour éviter les failles de sécurité.

    Les paquets suivants sont à installer : tor, tor-geoip, lighttpd et lighttpd-mod-access.

    Le fichier de configuration de Tor /opt/etc/tor/torrc est :

    Log notice file /opt/var/log/tor/notices.log
    DataDirectory /opt/var/lib/tor
    HiddenServiceDir /opt/var/lib/tor/hidden_service/
    HiddenServiceVersion 3
    HiddenServicePort 80 127.0.0.1:81

    En considérant que les fichiers HTML du site sont placés dans le dossier partagé /web/site, le fichier de configuration de lighttpd /opt/etc/lighttpd/lighttpd.conf est :

    server.document-root        = "/volume1/web/site"
    server.upload-dirs          = ( "/tmp" )
    server.pid-file             = "/opt/var/run/lighttpd.pid"
    
    index-file.names            = ("index.html")
    
    server.port                 = 81
    server.bind                 = "127.0.0.1"
    server.tag                  = "lighttpd"
    
    include "/opt/etc/lighttpd/mime.conf"
    include "/opt/etc/lighttpd/conf.d/*.conf"

    Pour des raisons de sécurité, le serveur web ne doit être accessible qu'en local sur l'adresse 127.0.0.1 et donc non-accessible sur le web "en clair". Cela explique la ligne :

    server.bind                 = "127.0.0.1"

    Il faut supprimer la signature du serveur afin de donner le moins d'information possible sur la version du serveur web utilisé :

    server.tag                  = "lighttpd"

    Les modules comme lighttpd-mod-status doivent être désactivés et en règle générale le maximum de modules doivent être désactivés.

    Il faut ensuite démarrer les deux services, Tor et lighttpd :

    root@DS620slim# /opt/etc/tor# /opt/etc/init.d/S80lighttpd start
    Starting lighttpd...              done.
    root@DS620slim:/opt/etc/tor# /opt/etc/init.d/S35tor start
    Starting tor...              done.

    Au premier démarrage, Tor va créer les clés et l'adresse du site que l'on récupère par la commande more :

    root@DS620slim# more /opt/var/lib/tor/hidden_service/hostname
    mo7pnaifulzesaaap4da7tfrsypl5sihdaso3pbbbgxk565oddrmg3id.onion

    Et il suffit de copier-coller dans le navigateur Tor l'adresse de votre site. Le site ds620slim.synology.me est par exemple aussi disponible à l'adresse : vxwdkmapybquv7lm55cycoftni2ggajqqhr4i6awk7vdbxahlydsfvqd.onion.

    Deux liens pour explorer la sécurité des services cachés sous Tor :

    On peut aussi augmenter la sécurité en isolant les deux services dans deux conteneurs docker.

    · opkg, Tor