Comment configurer votre propre proxy Web sur Ubuntu 22.04/20.04 VPS
Ce tutoriel vous montre comment configurer votre propre proxy Web sur Ubuntu 22.04/20.04. Un proxy Web est un site Web sur lequel un utilisateur saisit une URL spécifique pour débloquer un site Web. Il existe une multitude de scripts de proxy Web qui peuvent être utilisés pour configurer votre propre proxy Web. Glype et PHP-Proxy seront utilisés dans ce tutoriel.
- Glype est un script proxy Web très populaire.
- PHP-Proxy est une bonne alternative.
Vous pouvez en choisir un. Lors de mon test, PHP-Proxy est plus rapide et fonctionne mieux avec les sites Web populaires comme Facebook, Twitter et YouTube, car il est activement mis à jour. Nous verrons comment les paramétrer avec Apache/Nginx et activer HTTPS avec Let's Encrypt.
Normalement, j'utilise le proxy Shadowsocks et OpenConnect VPN pour contourner la censure sur Internet, mais il est possible que ces deux outils soient bloqués dans mon pays. Le proxy Web est une bonne méthode de sauvegarde car il ne présente aucune caractéristique du proxy SOCKS et du VPN. Aux yeux du pare-feu Internet, il s’agit simplement d’un trafic HTTPS normal. Il existe des dizaines de milliers de proxys Web gratuits en ligne. L’inconvénient est qu’une fois que ces proxys Web publics deviennent connus, ils peuvent être facilement bloqués. La configuration de votre propre proxy Web privé présente l’avantage que vous seul connaissez son existence.
Conditions préalables
Pour suivre ce tutoriel, vous aurez besoin d'un VPS (Virtual Private Server) pouvant accéder librement aux sites Web bloqués (en dehors de votre pays ou système de filtrage Internet). Je recommande Kamatera VPS, qui propose :
- Essai gratuit de 30 jours.
- À partir de 4 $/mois (1 Go de RAM)
- VPS basé sur KVM hautes performances
- 9 centres de données dans le monde, notamment aux États-Unis, au Canada, au Royaume-Uni, en Allemagne, aux Pays-Bas, à Hong Kong et en Israël.
Suivez le tutoriel lié ci-dessous pour créer votre serveur Linux VPS chez Kamatera.
- Comment créer un serveur VPS Linux sur Kamatera
Une fois que vous disposez d'un VPS exécutant Ubuntu 22.04/20.04, suivez les instructions ci-dessous.
Vous avez également besoin d'un nom de domaine, vous pourrez donc ajouter le cryptage HTTPS pour protéger votre trafic Web. Je recommande d'acheter des noms de domaine auprès de NameCheap car le prix est bas et ils offrent une protection de la vie privée gratuite à vie.
Étape 1 : Installer le serveur Web et PHP
SSH sur votre VPS Ubuntu 22.04/20.04.
Si vous souhaitez utiliser Nginx comme serveur Web, installez Nginx et PHP8 en exécutant la commande suivante.
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
sudo apt install nginx php8.0-fpm php8.0-curl php8.0-mbstring php8.0-xml php8.0-zipSi vous souhaitez utiliser Apache comme serveur Web, exécutez
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
sudo apt install apache2 php8.0 libapache2-mod-php8.0 php8.0-curl php8.0-mbstring php8.0-xml php8.0-zipÉtape 2 : Téléchargez Glype ou PHP-Proxy
Glype
Téléchargez Glype en exécutant la commande suivante.
wget https://www.php-proxy.com/download/glype-1.4.15.zipExtrayez-le dans le répertoire /var/www/proxy/.
sudo apt install unzip
sudo mkdir -p /var/www/proxy/
sudo unzip glype-1.4.15.zip -d /var/www/proxy/Définissez www-data (utilisateur du serveur Web) comme propriétaire.
sudo chown www-data:www-data /var/www/proxy/ -RProxy PHP
Nous pouvons utiliser Composer pour télécharger PHP-Proxy. Installez Composer à partir du référentiel Ubuntu 22.04/20.04.
sudo apt install composer
Téléchargez ensuite PHP-Proxy dans le répertoire /var/www/proxy/.
sudo mkdir -p /var/www/proxy/ /var/www/.composer/
sudo chown www-data:www-data /var/www/proxy/ /var/www/.composer/ -R
sudo -u www-data composer create-project athlon1600/php-proxy-app:dev-master /var/www/proxy/Si on vous demande « Voulez-vous supprimer l'historique VCS (.git, .svn..) existant ? [O,n] ? Choisissez Oui.
Étape 3 : configurer le serveur Web
Dans cette étape, nous devons créer un bloc de serveur Nginx ou un hôte virtuel Apache pour notre proxy Web.
Créer un bloc de serveur Nginx
Installez le serveur Web Nginx.
sudo apt install nginxCréez un bloc serveur sous le répertoire /etc/nginx/conf.d/.
sudo nano /etc/nginx/conf.d/web-proxy.confCopiez et collez les lignes suivantes dans le fichier. Remplacez proxy.example.com par votre vrai nom de domaine. N'oubliez pas de définir un enregistrement A dans votre gestionnaire DNS.
server {
listen 80;
server_name proxy.example.com;
root /var/www/proxy/;
index index.php;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include snippets/fastcgi-php.conf;
}
}
Enregistrez et fermez le fichier. Testez ensuite les configurations Nginx.
sudo nginx -tSi le test réussit, rechargez Nginx pour que les modifications prennent effet.
sudo systemctl reload nginxCréer un hôte virtuel Apache
Installez le serveur Web Apache.
sudo apt install apache2Créez un hôte virtuel Apache dans le répertoire /etc/apache2/sites-avaialable/.
sudo nano /etc/apache2/sites-available/web-proxy.conf
Copiez et collez les lignes suivantes dans le fichier. Remplacez proxy.example.com par votre vrai nom de domaine. N'oubliez pas de définir un enregistrement A dans votre gestionnaire DNS.
<VirtualHost *:80>
ServerName proxy.example.com
DocumentRoot /var/www/proxy
ErrorLog ${APACHE_LOG_DIR}/proxy.error.log
CustomLog ${APACHE_LOG_DIR}/proxy.access.log combined
</VirtualHost>
Enregistrez et fermez le fichier. Activez ensuite cet hôte virtuel.
sudo a2ensite web-proxy.confRechargez Apache pour que les modifications prennent effet.
sudo systemctl reload apache2L'interface Web
Visitez maintenant proxy.example.com dans votre navigateur Web. Si vous utilisez Glype, vous serez redirigé vers le panneau de configuration d'administration (proxy.example.com/admin.php).
Si vous utilisez PHP-Proxy, vous pouvez voir un proxy Web fonctionnel attendant que vous saisissiez une URL.
Activons maintenant HTTPS avec Let's Encrypt.
Étape 4 : Activez HTTPS avec Let's Encrypt pour votre proxy Web
Nous pouvons installer le client Let's Encrypt (certbot) en exécutant la commande suivante.
sudo apt install certbotLes utilisateurs de Nginx doivent également installer le plugin Certbot Nginx.
sudo apt install python-certbot-nginxActivez HTTPS avec le plugin Nginx.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp -d proxy.example.com --email your-email-addressLes utilisateurs Apache doivent installer le plugin Certbot Apache.
sudo apt install python-certbot-apacheActivez HTTPS avec le plugin Apache.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp -d proxy.example.com --email your-email-addressUne fois le certificat installé avec succès, actualisez votre proxy dans votre navigateur Web pour utiliser HTTPS.
Si vous rencontrez des erreurs lorsque vous essayez d'obtenir un certificat TLS, veuillez consulter l'article suivant pour résoudre le problème.
- Comment réparer les erreurs courantes de Let's Encrypt/Certbot
(Facultatif) Placer votre proxy Web derrière CDN
Il existe au moins trois manières pour un censeur d'Internet de bloquer un site Web :
- Bloquez l'adresse IP du site Web.
- Détournez la réponse DNS pour donner à l’utilisateur final une mauvaise adresse IP.
- Bloquez la connexion TLS en regardant l'indication du nom du serveur (SNI)
Si vous craignez que votre proxy Web soit bloqué par les censeurs d'Internet, vous pouvez placer votre proxy Web derrière un CDN (Content Delivery Network) comme Cloudflare. De cette façon, l'adresse IP de votre serveur est masquée et si la censure d'Internet décide de bloquer l'adresse IP de Cloudflare, il y aura des dommages collatéraux car de nombreux autres sites Web utilisent également la même adresse IP. Cela amènera le censeur d’Internet à réfléchir à deux fois avant de le faire.
- Pour éviter tout poison DNS, l'utilisateur final doit utiliser DNS sur TLS ou DNS sur HTTPS.
- Pour éviter la fuite des informations SNI, le site Web doit utiliser un SNI crypté.
Dépannage de l'erreur du serveur Web
- Comment réparer les erreurs courantes du serveur Web Nginx
Conclusion
C'est ça! J'espère que ce tutoriel vous a aidé à créer votre propre proxy Web sur Ubuntu 22.04/20.04. Comme toujours, si vous avez trouvé cet article utile, abonnez-vous à notre newsletter gratuite pour obtenir plus de trucs et astuces.


