Recherche de site Web

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-zip

Si 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.zip

Extrayez-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/ -R

Proxy 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 nginx

Créez un bloc serveur sous le répertoire /etc/nginx/conf.d/.

sudo nano /etc/nginx/conf.d/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.

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 -t

Si le test réussit, rechargez Nginx pour que les modifications prennent effet.

sudo systemctl reload nginx

Créer un hôte virtuel Apache

Installez le serveur Web Apache.

sudo apt install apache2

Cré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.conf

Rechargez Apache pour que les modifications prennent effet.

sudo systemctl reload apache2

L'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 certbot

Les utilisateurs de Nginx doivent également installer le plugin Certbot Nginx.

sudo apt install python-certbot-nginx

Activez HTTPS avec le plugin Nginx.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp -d proxy.example.com --email your-email-address

Les utilisateurs Apache doivent installer le plugin Certbot Apache.

sudo apt install python-certbot-apache

Activez HTTPS avec le plugin Apache.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp -d proxy.example.com --email your-email-address

Une 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.

Articles connexes