Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
hosting — Serveur d'hébergement web partagé automatisé basé sur Tor avec support multi-version PHP, routage email, instances Tor à mise à l'échelle automatique, et renforcement de sécurité intégré incluant protection CSRF, CSP, et clés onion chiffrées. | Kitploit
Outils/GitHubGitHub/danwin/hosting
Scripting et AutomatisationAudit de ConfigurationSécurité WebSécurité RéseauProtection de la Vie PrivéeUtilitaires et Frameworks
GitHubdanwin/hosting

hosting

Serveur d'hébergement web partagé automatisé basé sur Tor avec support multi-version PHP, routage email, instances Tor à mise à l'échelle automatique, et renforcement de sécurité intégré incluant protection CSRF, CSP, et clés onion chiffrées.

Voir le dépôt
371126il y a 4 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

Informations générales :

Ceci est une configuration pour un serveur d'hébergement partagé basé sur Tor. Il est fourni tel quel et avant de le mettre en production, vous devez effectuer des modifications selon vos besoins. C'est un travail en cours et vous devez vérifier attentivement l'historique des commits pour les modifications avant de mettre à jour. Pour un serveur de production, au moins 1 To d'espace disque SSD, 32 Go de RAM et 8 cœurs de CPU sont recommandés. Pour un petit serveur de test/personnel, 4 Go de RAM et 1 cœur de CPU suffisent.

Traduction :

Les traductions sont gérées dans Weblate. Si vous préférez soumettre manuellement des traductions, le script update-translations.sh peut être utilisé pour mettre à jour le modèle de langue et les fichiers de traduction à partir de la source. Il générera le fichier var/www/locale/hosting.pot que vous pourrez ensuite utiliser comme base pour créer un nouveau fichier de langue dans var/www/VOTRE_CODE_LANGUE/LC_MESSAGES/hosting.po et l'éditer avec un programme de traduction, tel que Poedit. Une fois terminé, vous pouvez ouvrir une pull request, ou m'envoyer un email, pour inclure la traduction.

Instructions d'installation :

La configuration a été testée avec Debian 13 (Trixie) et Ubuntu 24.04 LTS. Il est recommandé d'installer Debian 13 ou Ubuntu 24.04 sur votre serveur, mais avec quelques ajustements, vous pouvez également faire fonctionner cela sur d'autres distributions et/ou versions. Si vous souhaitez le construire sur un raspberry pi, veuillez ne pas utiliser les images raspbian car plusieurs choses casseront. Téléchargez plutôt une image pour votre modèle de pi depuis https://raspi.debian.net/daily-images/.

Installation automatisée

Le moyen le plus simple d'installer est d'utiliser l'installateur automatisé :

root@kitploit:~
apt update && apt install git && git clone https://github.com/DanWin/hosting && cd hosting
./install.sh

L'installateur gère tout : installation des paquets, compilation de PHP/ImageMagick, configuration de Tor, configuration MySQL et provisionnement des services. Il demandera les mots de passe ou les générera automatiquement.

Options :

root@kitploit:~
./install.sh --non-interactive        # Ignorer les invites, générer des mots de passe aléatoires
./install.sh --vanity <préfixe>        # Générer une adresse .onion personnalisée
./install.sh --skip-binaries          # Ignorer la compilation (utiliser si déjà compilé)
./install.sh --db-pass <motdepasse>   # Définir le mot de passe MySQL de l'hébergement
./install.sh --pma-pass <motdepasse>  # Définir le mot de passe MySQL de phpMyAdmin
./install.sh --admin-pass <motdepasse> # Définir le mot de passe du panneau d'administration

La génération d'adresse .onion personnalisée utilise mkp224o (compilé automatiquement). Seuls les caractères a-z et 2-7 sont valides. Un préfixe de 4 caractères prend quelques minutes, 5 caractères prend 10 à 30 minutes, 6 caractères et plus prend des heures.

Les identifiants sont enregistrés dans /root/hosting-credentials.txt.

Mise à jour

root@kitploit:~
cd hosting
./update.sh              # Mettre à jour le code, préserver la configuration
./update.sh --rebuild    # Recompiler PHP/ImageMagick également
./update.sh --code-only  # Mettre à jour uniquement les fichiers PHP

Le script de mise à jour sauvegarde votre configuration, récupère le dernier code, restaure les mots de passe et l'adresse onion, puis redémarre les services. Il détecte si install_binaries.sh a changé et vous avertit de recompiler.

Installation manuelle

Si vous préférez installer manuellement, suivez les étapes ci-dessous.

Désinstaller les paquets qui pourraient interférer avec cette configuration :

root@kitploit:~
DEBIAN_FRONTEND=noninteractive apt purge -y apache2* dnsmasq* eatmydata exim4* imagemagick-6-common mysql-client* mysql-server* nginx* libnginx-mod* php7* resolvconf && systemctl disable systemd-resolved.service && systemctl stop systemd-resolved.service

Si vous avez des problèmes pour résoudre les noms d'hôte après cette étape, basculez temporairement vers un serveur de noms public comme 1.1.1.1 (de CloudFlare) ou 8.8.8.8 (de Google)

root@kitploit:~
rm /etc/resolv.conf && echo "nameserver 1.1.1.1" > /etc/resolv.conf

Ajouter des dépôts supplémentaires (Debian uniquement — Ubuntu a nginx et brotli nativement) :

root@kitploit:~
apt update && apt install git apt-transport-tor curl lsb-release
curl -sSL https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc > /etc/apt/trusted.gpg.d/torproject.asc
curl -sSL https://packages.sury.org/nginx/apt.gpg > /etc/apt/trusted.gpg.d/sury.gpg
echo "deb tor://apow7mjfryruh65chtdydfmqfpj5btws7nbocgtaovhvezgccyjazpqd.onion/torproject.org/ `lsb_release -cs` main" >> /etc/apt/sources.list
echo "deb https://packages.sury.org/nginx/ `lsb_release -cs` main" >> /etc/apt/sources.list
apt update && apt upgrade

Installer git et cloner ce dépôt

root@kitploit:~
apt update && apt install git && git clone https://github.com/DanWin/hosting && cd hosting

Installer les binaires optimisés personnalisés

root@kitploit:~
./install_binaries.sh

Notez que debian a également une archive de paquets pour les services onion, vous pouvez donc vouloir modifier /etc/apt/sources.list pour charger depuis celle-ci à la place :

root@kitploit:~
deb tor://2s4yqjx5ul6okpp3f2gaunr2syex5jgbfpfvhxxbbjwnrsvbk5v3qbid.onion/debian `lsb_release -cs` main

Copier (et modifier selon vos besoins) les fichiers du site dans var/www vers /var/www et les fichiers de configuration dans etc vers /etc une fois l'installation terminée. Redémarrez ensuite certains services :

root@kitploit:~
systemctl daemon-reload && systemctl restart bind9.service && systemctl restart [email protected]

Remplacez le domaine .onion par défaut par votre domaine :

root@kitploit:~
sed -i "s/dhosting4xxoydyaivckq7tsmtgi4wfs3flpeyitekkmqwu4v4r46syd.onion/`cat /var/lib/tor/hidden_service/hostname`/g" /etc/postfix/sql/alias.cf /etc/postfix/sender_login_maps /etc/postfix/main.cf /var/www/skel/www/index.hosting.html /var/www/common.php /etc/postfix/canonical /etc/postfix-clearnet/canonical /var/www/html/squirrelmail/config/config.php

Pour votre domaine clearnet, vous devez l'ajouter à relay_domains dans /etc/postfix/main.cf et modifier le domaine par défaut dans les fichiers suivants :

root@kitploit:~
/var/www/common.php
/etc/postfix/canonical
/etc/postfix-clearnet/canonical

Cette configuration a deux instances postfix, une pour recevoir et envoyer du courrier vers d'autres services .onion et une pour réécrire les adresses afin de les transmettre à un relais de courrier destiné au clearnet. Vous pouvez ou non vouloir créer la deuxième instance en exécutant

root@kitploit:~
postmulti -e init
postmulti -I postfix-clearnet -e create
postmulti -i clearnet -e enable
postmulti -i clearnet -p start

Si vous avez créé une instance, décommentez la configuration relative au relais clearnet dans etc/postfix/main.cf et assurez-vous de copier et modifier également les fichiers de configuration depuis etc/postfix-clearnet

Si vous avez rencontré le problème suivant : postfix: fatal: chdir(/var/spool/postfix-clearnet): No such file or directory, vous pouvez simplement copier le chroot depuis l'instance postfix par défaut comme ceci cd /var/spool/ && cp -a postfix/ postfix-clearnet/

Après avoir copié (et modifié) la configuration de postfix, vous devez créer des bases de données à partir des fichiers de correspondance (également à chaque fois que vous mettez à jour ces fichiers) :

root@kitploit:~
postalias /etc/aliases
postmap /etc/postfix/canonical /etc/postfix/sender_login_maps /etc/postfix/transport
postmap /etc/postfix-clearnet/canonical /etc/postfix-clearnet/sasl_password /etc/postfix-clearnet/transport #uniquement si vous avez une deuxième instance

Pour enregistrer les fichiers temporaires en mémoire, ajoutez ce qui suit à /etc/fstab :

root@kitploit:~
tmpfs /tmp tmpfs defaults,noatime 0 0
tmpfs /var/log/nginx tmpfs rw,user,noatime 0 0

Pour renforcer le système et cacher les pids aux utilisateurs non-root, ajoutez également ce qui suit :

root@kitploit:~
proc /proc proc defaults,hidepid=2 0 0

Et ajoutez les options noatime,usrjquota=aquota.user,jqfmt=vfsv1 au point de montage /home, puis initialisez le quota. Remplacez /home par /, si vous n'avez pas de partition séparée :

root@kitploit:~
systemctl daemon-reload
mount -o remount $(findmnt -n -o TARGET --target /home)
quotacheck -cMu $(findmnt -n -o TARGET --target /home)
quotaon $(findmnt -n -o TARGET --target /home)

Dans certains cas, vous pouvez obtenir une erreur indiquant que le quota n'est pas pris en charge. C'est généralement le cas dans les environnements virtuels. Assurez-vous d'avoir le noyau complet installé, pas un avec un paquet -virtual. Il s'agit généralement de linux-image-amd64, linux-image-arm64 ou linux-image-generic, selon votre distribution. Assurez-vous également d'exécuter une vraie machine virtuelle (par exemple KVM). Certains fournisseurs proposent des VPS conteneurisés (par exemple OpenVZ), ce qui signifie que vous n'exécutez pas votre propre noyau...

Installer sodium_compat pour la prise en charge des services cachés v3

root@kitploit:~
cd /var/www && composer install

Créez un utilisateur mysql pour phpmyadmin et configurez-le dans /var/www/html/phpmyadmin/config.inc.php et remplissez $cfg['blowfish_secret'] avec des caractères aléatoires :

root@kitploit:~
mysql
CREATE USER 'phpmyadmin'@'%' IDENTIFIED BY 'MY_PASSWORD';
CREATE DATABASE phpmyadmin;
GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'phpmyadmin'@'%';
FLUSH PRIVILEGES;
quit
mysql phpmyadmin < /var/www/html/phpmyadmin/sql/create_tables.sql

Créez un utilisateur mysql avec toutes les permissions pour notre gestion d'hébergement :

root@kitploit:~
mysql
CREATE USER 'hosting'@'%' IDENTIFIED BY 'MY_PASSWORD';
GRANT ALL PRIVILEGES ON *.* TO 'hosting'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
quit

Modifiez ensuite la configuration de la base de données dans /var/www/common.php et /etc/postfix/sql/alias.cf

Enfin, configurez la base de données en exécutant

root@kitploit:~
php /var/www/setup.php

Activez les minuteurs systemd pour exécuter régulièrement diverses tâches de gestion :

root@kitploit:~
systemctl enable hosting-del.timer && systemctl enable hosting.timer && systemctl enable hosting-autoscale.timer

La dernière étape consiste à redémarrer, attendre environ 5 minutes que tous les services démarrent, et vérifier que tout fonctionne en créant un compte de test.

Versions PHP :

Les utilisateurs peuvent choisir entre PHP 8.2, 8.3, 8.4 et 8.5 lors de l'inscription et modifier leur version depuis le tableau de bord. La version par défaut est PHP 8.5.

Auto-Scaling :

Les instances Tor sont mises à l'échelle automatiquement en fonction du nombre de comptes. Le hosting-autoscale.timer s'exécute toutes les heures et ajoute une nouvelle instance pour environ 250 comptes. Les identifiants d'instance vont de a à z, puis aa, ab, etc. Vous pouvez également définir manuellement les instances dans SERVICE_INSTANCES dans /var/www/common.php et exécuter setup.php.

Sécurité :

  • Les jetons CSRF utilisent des octets aléatoires cryptographiquement sécurisés
  • Le mot de passe administrateur est stocké sous forme de hachage bcrypt
  • L'ID de session est régénéré lors de la connexion
  • Toute sortie dynamique est échappée avec htmlspecialchars()
  • Les règles de réécriture Nginx sont validées contre l'injection de configuration
  • Les clés privées Onion sont chiffrées au repos avec libsodium
  • Les mots de passe SFTP sont chiffrés en session avec une expiration d'1 heure
  • La connexion administrateur est limitée en débit avec backoff exponentiel
  • Politique de sécurité du contenu avec script-src 'none'
  • Aucun JavaScript sur aucune page
  • Messages d'erreur de connexion génériques pour empêcher l'énumération des noms d'utilisateur
  • Protection contre le path traversal dans le gestionnaire de fichiers

TODO : Multi-Serveur / Clusterisation :

  • Réplication de base de données (MariaDB primary-replica)
  • Stockage partagé pour /home entre les nœuds (GlusterFS/CephFS)
  • Répartiteur de charge pour les nœuds faisant face à Tor
  • Configuration centralisée (base de données partagée ou etcd)
  • Attribution d'instances cross-nœud basée sur la charge du serveur
  • Auto-scaling distribué sur les serveurs
  • Partage de sessions PHP basé sur Redis
  • Routage du courrier vers le nœud correct par compte
  • Surveillance de la santé des nœuds
  • Mises à jour progressives avec vidage du trafic
  • Outil de migration de clés Onion entre serveurs
  • ClamAV/Rspamd partagés sur des nœuds dédiés
  • Orchestration de sauvegarde coordonnée
Télécharger l’outil