Dans ce tutoriel, on part du principe que l’on commence avec les logiciels et versions suivantes :
Dernière mise à jour le 10 décembre 2023
Sommaire
Qu’est-ce que Tor et un Hidden Service ?
Configuration du serveur
Installation d’un serveur LAMP
Apache
PHP
MariaDB
Accéder aux tables SQL
Installation et configuration de Tor
Facultatif
Configuration de la langue
Configuration de la date et heure
Rediriger le trafic réseau du serveur vers Tor
Réécrire la RAM avant un arrêt / redémarrage du serveur
On supprime ses traces
Alias utiles (~/.bashrc)
Désactiver le transfert IP et le multi-hébergement
Désactiver IPv6
Quelques tutoriels utiles
Tor est un réseau informatique qui permet de surfer sur Internet de manière anonyme et sécurisée. Le nom “ Tor ” est l’acronyme de “ The Onion Router ” qui signifie “ Le Routeur Oignon ” en français.
Tor fonctionne en faisant transiter les communications à travers une série de relais ou “ nœuds ” répartis à travers le monde. Chaque relais ne connaît que le relais précédent et le relais suivant dans la chaîne, ce qui rend la traçabilité de la communication difficile voire impossible. De plus, chaque communication est chiffrée plusieurs fois avec des clés différentes, comme les couches d’un oignon, d’où le nom "The Onion Router".
Un Hidden Service, quant à lui, est un site web qui est hébergé sur un serveur Tor et qui est accessible uniquement à partir du réseau Tor. Les adresses de ces sites web se terminent par l’extension ".onion". Comme ces sites web ne sont pas accessibles à partir du réseau Internet "classique", ils sont souvent utilisés pour héberger des sites web illégaux, tels que des sites de vente de drogues ou d’armes, mais ils peuvent également être utilisés de manière légale, par exemple pour permettre aux journalistes ou aux défenseurs des droits de l’homme de communiquer de manière anonyme.
Cartographie des utilisateurs Tor, par pays.
Tor est utilisé pour se protéger contre une certaine forme de surveillance sur Internet, connue sous le nom d’analyse de trafic. Cette analyse est utilisée pour déterminer qui communique avec qui sur un réseau public. Connaitre la source et la destination de votre trafic peut permettre à des personnes de traquer votre comportement et vos intérêts. Cartogramme de l’usage de Tor à l’international.
Tor est aussi un outil de contournement de la censure sur Internet. Il permet aux personnes l’utilisant d’accéder à des sites, contenus ou services bloqués dans certaines zones du monde.
Tor fait circuler le trafic de ses utilisateurs et utilisatrices via une série de relais. Ce procédé permet de ne pas être tracé par les sites web consultés, d’accéder à des services, contenus ou sites bloqués par un FAI. Il est aussi possible pour chaque utilisateur ou utilisatrice de publier des contenus via les services “ onion ” de Tor, sans révéler la position de ces services.
Ces avantages peuvent être utiles pour chaque personne qui souhaite maitriser ses traces laissées en ligne. Ils sont notamment mis en œuvre dans les échanges entre lanceurs d’alerte, journalistes, avocats, dissidents politiques, organisations non gouvernementales, pour échanger en maitrisant la sécurité de leurs données, de leur connexion, de leurs destinataires et de leur position.
Pour faire simple, un hidden service est un service caché. Cela va vous permettre d’avoir un serveur Jabber, serveur SSH, d’héberger un site, etc. le tout en masquant complètement l’adresse IP et les informations du VPS / serveur aux utilisateurs, bots, aux gouvernements, etc.
Plusieurs choses :
les utilisateurs Chinois bloqués par le Grand Firewall de Chine peuvent accéder à l’internet sans censure
les utilisateurs Iraniens / Turques, etc. bloqués par leur gouvernement peuvent accéder à l’internet sans censure
être anonyme à 99.99% pendant la navigation sur internet
accéder aux sites cachés via les adresses en .onion
discuter sur des messageries utilisant le proxy Tor
etc.
Malheureusement, qui dit anonymisation des utilisateurs, dit criminalité en tout genre, vente de drogue, d’arme, trafic d’être humain, de fausse monnaie, etc. et j’en passe. Il a des côtés positifs et des côtés négatifs. Que ça soit dans la vraie vie ou sur internet, on sera toujours embêté par les vilains… Le but de ce tutoriel n’est pas de vous montrer comment acheter de la drogue mais d’apprendre le fonctionnement d’un serveur web utilisant le service de cryptage de Tor.
Voici quelques règles fondamentales avant de commencer :
Ce tutoriel est un exemple, en aucun cas on pousse à faire des choses illégales. De par les exemples, vous pouvez (je vous le conseil) d’adapter en fonction de vos besoins.
Toujours se connecter à vos services (SSH, sFTP, FTP, etc) via un proxy SOCK ⁵ de Tor
Ne JAMAIS installer de logiciel / script (PHP, Python, Bash, etc.), dont vous n’êtes pas certain de la source
Ne JAMAIS exécuter de logiciel / script / commande dont vous n’êtes pas certain de la source
Ne JAMAIS réaliser des tâches dont vous n’êtes pas certain de la source
Démarrer votre installation / configuration avec un VPS / serveur dont vous êtes certain de la source
Démarrer votre installation / configuration sur un système d’exploitation fraichement installé
Utiliser un courriel anonyme pour le service sur lequel vous allez louer votre VPS / serveur
> quelques services de courriel très sécuritaires
Payer votre VPS / serveur en Cryptomonnaie (Bitcoin, Monero, etc.)
> une liste complète des crypto-monnaies anonymes et privées
Ne JAMAIS fournir votre véritable identité
Ne JAMAIS faire fonctionner un relais Tor sur le VPS / serveur, car ces adresses IPs sont rendues publiques
Ne JAMAIS envoyer de courriel via le VPS / serveur (donc désactiver tous les logiciels / fonctions liées aux courriels)
Ne JAMAIS autoriser l’envoie de fichier sur le VPS / serveur où va être hébergé votre site
Ne JAMAIS autoriser l’ajout d’image distante (exemple, avec la balise [ img ] comme sur ce forum)
JavaScript est à BANNIR sur les applications Web que vous allez développer / héberger
Désactiver toutes les fonctions Apache 2, nginx, PHP, etc. qui sont susceptibles de renvoyer des erreurs aux visiteurs et peuvent afficher votre adresse IP (une liste non-exhaustive sera fournie)
Ne pas inclure des fichiers distants via des CDNs, par exemple : jQuery, Bootstrap, etc.
Effectuer un audit de vos applications Web pour éviter toute faille potentielle
Effectuer un audit de vos scripts pour éviter toute faille potentielle
Garder votre VPS / serveur à jour (amélioration des logiciels, correction de faille de sécurité, etc.)
Utiliser toujours un mot de passe fort
Si une règle vous semble incorrecte, si vous souhaitez proposer une amélioration, ajouter un oubli, n’hésitez pas à le proposer.
VPN > Tor, Tor > VPN > Proxy, Proxy > VPN > Tor, VPN > Tor ? Quelle est la meilleure solution ?
Il n’y a pas de réponse universelle à cette question, car cela dépend de votre situation individuelle et de ce que vous cherchez à protéger.
Dans l’ensemble, l’utilisation de Tor est considérée comme la meilleure solution pour protéger son anonymat en ligne, car elle vous permet de masquer votre adresse IP et de rendre vos communications difficiles à tracer. Cependant, il est important de noter que l’utilisation de Tor ne garantit pas une protection à 100% et qu’il est possible que certaines attaques puissent encore vous identifier.
L’utilisation d’un VPN peut également être utile pour protéger votre anonymat en ligne, car elle permet de masquer votre adresse IP et de chiffrer votre trafic internet. Cependant, il est important de choisir un fournisseur VPN fiable qui ne conserve pas de journaux de connexion et qui utilise des protocoles de chiffrement solides pour éviter toute compromission.
L’utilisation d’un proxy peut également être utile pour masquer votre adresse IP, mais il est important de choisir un proxy fiable et sécurisé, car certains proxies peuvent être compromis ou surveillés par des tiers malveillants.
Dans l’ensemble, l’utilisation de Tor est considérée comme la solution la plus sûre et la plus robuste pour protéger son anonymat en ligne, mais l’utilisation d’un VPN ou d’un proxy peut également être utile en complément. Si vous choisissez d’utiliser un VPN ou un proxy en plus de Tor, il est important de comprendre les risques et les limitations de chaque solution, et de prendre les mesures de sécurité nécessaires pour éviter toute compromission.
Ma recommendation : VPN (ex : ProtonVPN) + Tor.
On se connecte au serveur via SSH et on change directement le mot de passe root :
passwd
2 solutions, on se connecte directement via clés SSH (recommandé) ou par mot de passe, moins sécurisé.
Solution n°1 : Clés SSH
On génère les clés SSH :
ssh-keygen -t ed25519
en RSA 4096 :
ssh-keygen -t rsa -b 4096[/code]
On laisse l’emplacement par défaut :
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/salameche/.ssh/id_ed25519):
On y met un mot de passe, pas obligatoire, mais fortement recommandé :
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Nos clés sont générées :
Your identification has been saved in /home/salameche/.ssh/id_ed25519.
Your public key has been saved in /home/salameche/.ssh/id_ed25519.pub.
The key fingerprint is:
SHA256:4Yjb63lZzyRw+ADKaZ6nwZDA7jBrtorVR4mkgXRGWN0 salameche@my-pc
The key's randomart image is:
+--[ED25519 256]--+
|..+=. . |
|o+o ..E |
|o..o.o ... |
|o.o+=o ++.. |
|oo.=o.+ S= |
|.+ .=+. + . |
|o o o+o o = |
|.o .. oo o |
|+ .+. |
+----[SHA256]-----
Une fois vos clés générer sur votre PC, on les place sur le serveur distant :
ssh-copy-id <username>@<hostname>
Remplacez username par le nom d’utilisateur et hostname par l’adresse IP ou le nom d’hôte du serveur.
Entrez le mot de passe de l’utilisateur.
C’est fait, la clé publique a bien été copiée dans le fichier ~/.ssh/authorized_keys du serveur.
Pour se connecter :
Connectez-vous normalement en SSH via terminal par exemple :
ssh <username>@<hostname>
Entrez votre mot de passe de clé générée ci-dessus, voilà, vous êtes maintenant connecté à votre serveur !
Source : LeCrabe.info
Vous y trouverez comment se connecter avec des clés SSH pour Windows, Mac et Linux
Solution n°2 : Mot de passe
Je vous conseille de lire le début de ce tutoriel pour apprendre à vous connecter à SSH.
On met à jour notre fichier sources.list :
nano --backup /etc/apt/sources.list
On change pour :
deb https://deb.debian.org/debian bullseye main
deb-src https://deb.debian.org/debian bullseye main
deb https://deb.debian.org/debian-security/ bullseye-security main
deb-src https://deb.debian.org/debian-security/ bullseye-security main
deb https://deb.debian.org/debian bullseye-updates main
deb-src https://deb.debian.org/debian bullseye-updates main
On met à jour les paquets et on installe nano (éditeur de texte) et sudo (permet à un utilisateur normal d’exécuter des commandes en tant que superutilisateur (ou "root")).
Ces deux logiciels ne sont pas installés par défaut sur certains VPS, cela dépend du fournisseur et de la distribution, donc pour éviter des tout problème, on installe, si ils sont déjà présents sur le serveur, ça ne changera rien.
apt update && apt install apt-transport-https lsb-release ca-certificates nano sudo wget
On re-met à jour le serveur :
apt update && apt upgrade -y
On crée notre utilisateur principal :
adduser salameche
Pour plus de clarté dans ce tutoriel, j’utiliserai comme nom d’utilisateur : salameche
Une fois notre utilisateur créé, on l’ajoute au groupe "sudo", cela permettra d’exécuter les commandes "root", sans être "root", cela améliore grandement la sécurité et évitera de faire des bêtises :
adduser salameche sudo
Cela renverra :
Adding user `salameche' to group `sudo' ...
Adding user salameche to group sudo
Done.
Une fois l’utilisateur ajouté au groupe "sudo", on se connecte sur notre compte utilisateur "salameche" :
su salameche
On paramètre / sécurise SSH :
sudo nano /etc/ssh/sshd_config
On change le port SSH :
Port _PORT_
C’est une forme de sécurité simple, mais étonnamment efficace.
Les servuers utilisent généralement le port 22 pour se connecter à SSH, donc il est beaucoup moins susceptible d’être trouvé par des robots qui analysent les adresses IPs à la recherche de mot de passe faible sur les comptes par défaut. Si vous numérisez tout le réseau, vous ne pouvez pas vous permettre de vérifier tous les ports possibles (65 535 ports disponibles) pour trouver le serveur SSH.
Cependant, si quelqu’un vous ciblera activement, cela ne fournit aucun bénéfice, car une simple analyse nmap unique révèlera le port sur lequel SSH fonctionne réellement (on utilisera PortSentry pour bloquer ces attaques, voir plus bas).
On désactive la connexion root en SSH :
PermitRootLogin no
Nous n’utiliserons pas le protocole FTP, cela pour des raisons évidentes de sécurités, mais sFTP. (Repris sur : https://mondedie.fr/d/5302)
On commente et / ou supprime cette ligne :
#Subsystem sftp /usr/lib/openssh/sftp-server
On ajoute en dessous :
Subsystem sftp internal-sftp
internal-sftp est recommandé pour les scénarios où la sécurité et l’isolation sont importantes, comme le chrooting des utilisateurs vers un répertoire spécifique.
À la fin de la page, on ajoute : ( on vérifie que les paramètres ne sont pas présents pour éviter les doublons )
ClientAliveInterval 600
ClientAliveCountMax 0
UseDNS no
UsePAM yes
DebianBanner no
AllowUsers salameche
ClientAliveInterval : envoie un message au client ssh après x secondes sans activité (0 = jamais). Si le client répond au serveur, la connexion est maintenue
ClientAliveCountMax : nombre maximal de requêtes ClientAliveInterval sans réponse que tolèrera le serveur avant de fermer la connexion
UseDNS : par défaut le serveur cherche à établir la résolution DNS inverse depuis votre IP. Cette requête peut être assez longue, c’est pour cela que nous désactivons cette fonctionnalité, plutôt inutile
UsePAM : PAM doit être désactivé si vous utilisez des clés d’authentifications, ce qui n’est pas notre cas, donc il doit être activé
DebianBanner : permet d’éviter que le serveur SSH n’affiche la distribution Linux Ubuntu ou Debian
AllowUsers : ajoute les utilisateurs autorisés à se connecter à SSH, pour notre cas, on ajoutera simplement "salameche"
On quitte et on redémarre SSH :
sudo /etc/init.d/ssh restart
On fait la mise à jour nécessaire au bon fonctionnement du serveur :
sudo apt update && sudo apt upgrade && sudo apt dist-upgrade
On installe / désinstalle quelques logiciels pour la pratique et la sécurité, on recharge le cache de recherche et on met les liens symboliques à jour :
sudo apt install locate && sudo apt purge ntp rsyslog exim* postfix* sendmail* samba* && sudo updatedb
Ajouts
locate : updatedb génère un index de fichiers et répertoires. GNU locate peut être utilisé pour effectuer des requêtes rapides sur cet index.
Suppressions
ntp : NTP, le Network Time Protocol (protocole de temps réseau) est utilisé pour garder les horloges des ordinateurs à la bonne heure, en les synchronisant par Internet ou un réseau local, ou en suivant un récepteur matériel qui interprète les signaux de temps GPS, DCF-77, NIST ou similaires.
rsyslog : Rsyslog est une implémentation à unités d’exécution multiples de syslogd (un outil système qui fournit une journalisation de message). C’est le démon syslogd par défaut sur les systèmes Debian.
exim4 : Exim (version 4) est un agent de transport de courrier. Exim4 est le méta-paquet sur lequel dépendent les composants essentiels d’une installation de base d’exim4.
postfix : Postfix est l’agent de transport de courriel de Wietse Venema qui a commencé son existence comme une alternative au très utilisé programme Sendmail. Postfix vise à être rapide, facile à administrer et sécuritaire, tout en restant assez compatible avec Sendmail pour ne pas frustrer ses utilisateurs. Ainsi, l’externe ressemble à Sendmail, alors que la structure interne est complètement différente.
sendmail : Sendmail est un agent de transport de courrier alternatif (MTA) pour Debian. Il convient au traitement de configurations de courrier sophistiquées, bien que cela signifie que sa configuration peut également être complexe.
samba : Samba est une mise en œuvre du protocole SMB/CIFS pour les systèmes Unix, fournissant une interopérabilité de partage de fichiers et d’imprimantes entre Microsoft Windows, OS X et les systèmes basés sur UNIX. Samba offre la possibilité de fonctionner comme un contrôleur de domaine du genre NT4, et permet d’intégrer à la fois les domaines NT4 et les services “ Active Directory ” en tant que serveur membre.
On installe Apache 2 :
Avant toutes choses, on désinstalle Apache 2 s’il est déjà installé, pour éviter tout conflit.
sudo apt purge apache*
Puis on réinstalle Apache 2 :
sudo apt install apache2 apache2-utils
On masque quelques informations d’Apache 2 :
sudo nano /etc/apache2/apache2.conf
On vérifie que ces lignes correspondent à :
<Directory />
#Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
#Require all granted
Require all denied
</Directory>
<Directory /var/www/>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
On ajoute ces 3 lignes à la fin de la page :
ServerSignature Off
ServerTokens Prod
TraceEnable Off
On sauvegarde et on ferme le fichier.
On supprime le dossier /var/www/html :
sudo rm -rf /var/www/html
On applique les droits Apache 2 sur le dossier du site :
# Le groupe www-data devient propriétaire
sudo chown -R www-data:www-data /var/www
# Avoir tous les droits sur le répertoire
sudo chmod 775 /var/www
# Ajouter l’utilisateur salameche au groupe www-data
sudo usermod -a -G www-data salameche
On bloque l’accès direct à l’IP du serveur :
On crée un fichier direct.conf
sudo nano /etc/apache2/sites-available/direct.conf
On insère :
<VirtualHost *:80>
ServerName 127.2.2.2
Redirect 403
DocumentRoot /dev/null
</VirtualHost>
127.2.2.2 correspond à l’IP du serveur.
Le VirtualHost
Un VirtualHost dans Apache 2 est une fonctionnalité qui permet d’héberger plusieurs sites Web sur un même serveur en utilisant une seule instance d’Apache. Chaque VirtualHost peut avoir son propre nom de domaine, son propre ensemble de fichiers de configuration et son propre ensemble de règles pour le traitement des requêtes HTTP.
Lorsqu’un client envoie une requête HTTP à un serveur Apache, Apache examine le nom de domaine de la requête et l’achemine vers le VirtualHost correspondant. Cela permet à plusieurs sites Web d’être hébergés sur le même serveur physique, chacun avec son propre nom de domaine et son propre contenu.
Les VirtualHosts sont largement utilisés pour l’hébergement partagé, où plusieurs clients partagent un seul serveur physique. Les fournisseurs d’hébergement Web utilisent souvent des VirtualHosts pour offrir des services d’hébergement à plusieurs clients sur un même serveur.
La configuration d’un VirtualHost Apache 2 implique la création d’un bloc de directives dans le fichier de configuration d’Apache, qui définit les paramètres du VirtualHost, tels que l’adresse IP et son port d’écoute, le nom de domaine, le chemin du répertoire racine et les règles de traitement des requêtes.
On active le VirtualHost :
sudo a2ensite direct
On désactive le mod_autoindex :
sudo a2dismod autoindex status
On active différents modules utiles pour Apache 2 :
sudo a2enmod deflate headers rewrite ssl
On quitte et on redémarre Apache 2 :
sudo service apache2 restart
On va installer PHP 8 via le dépôt d’Ondřej Surý car les dernières versions de PHP ne sont pas disponibles sur Debian.
Qui est Ondřej Surý ?
Ondřej Surý est un développeur Debian depuis les années 2000, et il empaquetee PHP pour Debian depuis PHP 5, ce qui signifie que les paquets officiels dans Debian et Ubuntu sont soit son travail, soit ils sont basés sur son travail. Les paquets PHP de son Ubuntu PPA et Debian DPA correspondent aux paquets officiels de Debian.
Avant toutes choses, on désinstalle PHP s’il est déjà installé, pour éviter tout conflit.
sudo systemctl stop php*
sudo apt autoremove --purge php*
sudo a2dismod php5 php7.0 php7.1 php7.2 php7.3 php7.4 php8.0 php8.1 php8.2 php8.3
Des erreurs apparaitront si une version de PHP n’est pas installée.
On ajoute la clé GPG & le dépôt :
sudo apt update
sudo apt install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://packages.sury.org/php/apt.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/php.gpg
sudo chmod a+r /etc/apt/keyrings/php.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/php.gpg] https://packages.sury.org/php/ \
$(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/php8.list > /dev/null
sudo apt update
On met à jour les paquets :
sudo apt update
On installe PHP et quelques dépendances utiles :
sudo apt install php8.3 \
php8.3-{bz2,cli,common,curl,intl,json,mbstring,mysql,opcache,xml,zip} \
libapache2-mod-php8.3
On active PHP pour Apache 2 :
sudo a2enmod php8.3
On configure PHP :
sudo nano /etc/php/8.3/apache2/php.ini
On remplace et / ou rajoute :
# https://www.php.net/manual/fr/ini.core.php#ini.short-open-tag
short_open_tag = Off
; https://www.php.net/manual/fr/ini.core.php#ini.open-basedir
open_basedir = /var/www
disable_functions = fonctions précédentes
# on y ajoute : ,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,highlight_file,show_source,mail,phpinfo,passthru,eval,proc_get_status,proc_nice,proc_open,proc_terminate,ftp_alloc,ftp_cdup,ftp_chdir,ftp_close,ftp_connect,ftp_delete,ftp_exec,ftp_fget,ftp_fput,ftp_get,ftp_put,ftp_nlist,imap_open
# https://www.php.net/manual/fr/info.configuration.php#ini.max-execution-time
max_execution_time = 60
# https://www.php.net/manual/fr/info.configuration.php#ini.max-input-time
max_input_time = -1
# https://www.php.net/manual/fr/errorfunc.configuration.php#ini.display-errors
display_errors = Off
# https://www.php.net/manual/fr/errorfunc.configuration.php#ini.display-startup-errors
display_startup_errors = Off
# https://www.php.net/manual/fr/errorfunc.configuration.php#ini.log-errors
log_errors = On
# https://www.php.net/manual/fr/ini.core.php#ini.post-max-size
post_max_size = 8M
# https://www.php.net/manual/fr/ini.core.php#ini.upload-max-filesize
upload_max_filesize = 8M
# https://www.php.net/manual/fr/ini.core.php#ini.max-file-uploads
max_file_uploads = 1
# https://www.php.net/manual/fr/ini.core.php#ini.file-uploads
file_uploads = On
# https://www.php.net/manual/fr/datetime.configuration.php#ini.date.timezone
date.timezone = Australia/Melbourne
# A changer pour brouiller les pistes
# https://www.php.net/manual/fr/ini.core.php#ini.expose-php
expose_php = Off
# https://www.php.net/manual/fr/filesystem.configuration.php#ini.allow-url-fopen
allow_url_fopen = Off
# https://www.php.net/manual/fr/filesystem.configuration.php#ini.allow-url-include
allow_url_include = Off
# https://www.php.net/manual/fr/mysqlnd.config.php#ini.mysqlnd.collect-statistics
mysqlnd.collect_statistics = Off
# https://www.php.net/manual/fr/mysqlnd.config.php#ini.mysqlnd.collect-memory-statistics
mysqlnd.collect_memory_statistics = Off
# https://www.php.net/manual/fr/context.http.php
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/118.0"
# Liste de tous les user_agent disponibles : https://developers.whatismybrowser.com/useragents/explore/
# https://www.php.net/manual/fr/opcache.configuration.php#ini.opcache.enable
opcache.enable = 1
# https://www.php.net/manual/fr/opcache.configuration.php#ini.opcache.memory-consumption
opcache.memory_consumption = 128
# https://www.php.net/manual/fr/opcache.configuration.php#ini.opcache.interned-strings-buffer
opcache.interned_strings_buffer = 8
# https://www.php.net/manual/fr/opcache.configuration.php#ini.opcache.revalidate-freq
opcache.revalidate_freq = 2
Ces fonctions sont à titre d’information, vous pouvez activer / désactiver celles que vous souhaitez.
On sauvegarde le fichier php.ini et on redémarre Apache 2 :
sudo service apache2 restart
MariaDB est un système de gestion de base de données édité sous licence GPL. Il s’agit d’un embranchement communautaire de MySQL : la gouvernance du projet est assurée par la fondation MariaDB, et sa maintenance par la société Monty Program AB, créateur du projet. Cette gouvernance confère au logiciel l’assurance de rester libre.
L’installation du méta-paquet default-mysql-server installera mariadb-server. Si les paquets mysql-server-* ou mysql-server-* sont installés, ils seront supprimés et remplacés par leur équivalent MariaDB. De la même façon, l’installation du méta-paquet default-mysql-client installera mariadb-client-*.
Avant toutes choses, on désinstalle MariaDB s’il est déjà installé, pour éviter tout conflit.
sudo systemctl stop mysql* maria*
sudo apt autoremove --purge mysql* maria*
Des erreurs apparaitront si une version de MySQL n’est pas installée.
On installe le serveur et le client MariaDB :
sudo apt install default-mysql-server default-mysql-client
Ensuite, on sécurise l’installation, le script ci-dessous nous guidera à travers certaines procédures qui élimineront les valeurs par défaut qui ne sont pas adaptées à un environnement de production.
On lance la commande, pour configurer, sécuriser et finaliser l’installation :
sudo mysql_secure_installation
- tapez entrer (pas de mot de passe requis)
- ensuite, on tape le mot de passe root souhaitez
- on retire l’utilisateur anonyme
- on désactive l’utilisation de la connexion via root (on peut pas la laisser)
- on retire les bases de données de tests
- on recharge les tables
On redémarre MariaDB :
sudo service mysql restart
Si vous rencontrez ce problème : Access denied for user 'root'@'localhost'
On va réinitialiser le plugin.
service mysql stop
mysqld_safe --skip-grant-tables &
mysql -u root
use mysql;
UPDATE user SET plugin = "";
exit;
service mysql start
Redémarrer le serveur.
Pour accéder à vos données enregistrer dans vos tables SQL, il va nous falloir un outil de gestion de base de données complet, simple et efficace.
Nous utilisons généralement phpMyAdmin (d’autres choix sont disponibles ici : https://sql.sh/logiciels). Malheureusement, ce gestionnaire n’est pas adapté à cette configuration.
Pourquoi ?
phpMyAdmin est lourd pour Tor et surtout il utilise pleinement JavaScript, qui je le rappelle, est à proscrire lorsque que l’on navigue sur le réseau Tor
des failles de sécurités critiques peuvent être présentes[/url]
phpMyAdmin est surtout utilisé pour gérer des hébergements mutualisés, ce n’est pas notre cas
Nous n’allons pas installer de gestionnaire de base de données en ligne, trop risqué, mais dans le même style, comme on utiliserai un logiciel Portable (sans installation), à usage unique; la meilleure solution serai de passer directement par SSH en ligne de commande.
Donc, je vous propose pour l’occasion, je vous propose d’utiliser “ Adminer ”. Il vous suffira de télécharger le fichier lorsque vous aurez besoin d’accéder à votre base de données et de le supprimer une fois vos opérations terminées.
Les pré-requis
Fonctionne avec MySQL, PostgreSQL, SQLite, MS SQL, Oracle, Firebird, SimpleDB, Elasticsearch et MongoDB
Support de PHP 5+
Disponible en Français, Thai, Tamil, Romanian, Korean, Ukrainian, Dutch, Persian, Polish, Lithuanian, Slovene, Czech, Finnish, Italian, Hebrew, Catalan, Bengali, Vietnamese, English, Portuguese, Serbian, Slovak, Chinese (Traditional), Estonian, Turkish, Indonesian, Norwegian, Brazilian Portuguese, Chinese (Simplified), Danish, Bosnian, German, Japanese, Spanish, Russian, Arabic, Hungarian
Gratuit pour un usage commercial et non commercial (Apache License ou GPL 2)
Pour la configuration, rien de plus simple, il vous suffit de télécharger Adminer et de renommer le fichier, par exemple :
cd /var/www/admin
wget https://github.com/vrana/adminer/releases/download/v4.8.1/adminer-4.8.1.php
mv "adminer-*" "Adminer-Autre-Nom.php"
On renomme le fichier adminer-*.php, pour éviter, si vous oubliez de le supprimer, qu’un méchant robot attaque votre site. Dans tous les cas, je vous conseille de le supprimer une fois que vous en avez terminé avec MySQL.
Tor est un réseau informatique superposé mondial et décentralisé. Il se compose d’un certain nombre de serveurs, appelés nœuds du réseau et dont la liste est publique. Ce réseau permet d’anonymiser l’origine de connexions TCP. Cela peut entre autres servir à anonymiser la source d’une session de navigation Web ou de messagerie instantanée. Cependant, l’anonymisation du flux n’est pas suffisante, car l’application peut potentiellement transmettre des informations annexes permettant d’identifier la personne : c’est pourquoi le projet Tor développe également un navigateur Web basé sur Firefox, Tor Browser, ainsi que d’autres applications spécialement modifiées pour préserver l’anonymat de leurs usagers. L’implémentation de référence du protocole s’appelle Tor, c’est un logiciel libre sous licence BSD révisée.
Le projet Tor reçoit le prix du logiciel libre 2010, dans la catégorie projet d’intérêt. Le nom Tor est capitalisé comme un nom propre, bien qu’il s’agisse originellement d’un acronyme pour The onion router littéralement “ le routeur oignon ”.
Avant toutes choses, on désinstalle Tor s’il est déjà installé, pour éviter tout conflit.
sudo systemctl stop tor*
sudo apt autoremove --purge tor*
Des erreurs apparaitront si une version de Tor n’est pas installée.
On installe Tor :
sudo apt install tor
On configure Tor :
sudo nano /etc/tor/torrc
Choisir le dossier de Tor :
HiddenServiceDir /home/salameche/tor/hidden/config
HiddenServiceVersion 3
HiddenServicePort 80 127.0.0.1:80
On limite l’accès à Tor SOCKS sur 127.0.0.0.1 :
On recherche et ajoute / dé-commente ces lignes :
SocksPolicy accept 192.168.0.0/16
SocksPolicy reject *
On redémarre Tor :
sudo service tor reload
Redémarrer Tor va créer le répertoire /var/lib/tor/hidden_service ainsi que deux fichiers très importants :
hostname : le nom de votre hidden service : ujgftyuiolrmez3lotccipshtkleegetolb73fuirgj7r4o4vfu7ozyd.onion, par exemple
private_key : la clé privée de votre hidden service
Notez le contenu de hostname quelque part, on l’utilisera plus tard !
Vous pouvez tester un Onion Officiel : ProtonMail + Tor