GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment configurer votre propre proxy Web sur Ubuntu 16.04 VPS

Ce tutoriel vous montre comment configurer votre propre proxy Web sur Ubuntu 16.04. Un proxy Web est un site Web où un utilisateur entre une URL spécifique pour débloquer le site Web. Il existe une multitude de scripts de proxy Web qui peuvent être utilisés pour configurer votre propre proxy Web. Glype et Proxy PHP seront utilisés dans ce tutoriel. Glype est un script de proxy Web très populaire et PHP-Proxy est une bonne alternative. Vous pouvez en choisir un. Dans 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 configurer avec Apache/Nginx et activer HTTPS avec Let's Encrypt.

Normalement, j'utilise le proxy Shadowsocks et le VPN OpenConnect pour contourner la censure d'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 des caractéristiques du proxy SOCKS et du VPN. Aux yeux du pare-feu Internet, il ne s'agit que 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 sont devenus bien 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.

Prérequis

Pour suivre ce tutoriel, vous aurez besoin de :

  • Un VPS (Virtual Private Server) qui peut accéder librement aux sites Web bloqués (hors de votre pays ou système de filtrage Internet) et un nom de domaine. Pour les VPS, je recommande Vultr. Ils offrent un VPS KVM haute performance de 512 Mo de mémoire pour seulement 2,5 $ par mois, ce qui est parfait pour votre serveur proxy privé.
  • Installer un serveur Web et PHP

Vous avez également besoin d'un nom de domaine, vous pourrez donc ajouter un 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 confidentialité whois gratuite à vie.

Étape 1 :Installer le serveur Web et PHP

SSH dans votre VPS Ubuntu 16.04. Si vous souhaitez utiliser Nginx comme serveur Web, installez Nginx et PHP7 en exécutant la commande suivante.

sudo apt installer nginx php7.0-fpm php7.0-curl php7.0-mbstring php7.0-xml php7.0-zip

Si vous souhaitez utiliser Apache comme serveur Web, exécutez

sudo apt install apache2 php7.0 libapache2-mod-php7.0 php7.0-curl php7.0-mbstring php7.0-xml php7.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 /var/www/proxy/ répertoire.

sudo apt install unzipsudo mkdir -p /var/www/proxy/sudo unzip glype-1.4.15.zip -d /var/www/proxy/

Définir www-data (utilisateur du serveur Web) en tant que 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 16.04.

sudo apt install composer

Téléchargez ensuite PHP-Proxy sur /var/www/proxy/ répertoire.

sudo mkdir -p /var/www/proxy/sudo composer create-project athlon1600/php-proxy-app:dev-master /var/www/proxy/

Définir www-data (utilisateur du serveur Web) en tant que propriétaire.

sudo chown www-data:www-data /var/www/proxy/ -R

É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

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

sudo nano /etc/nginx/conf.d/web-proxy.conf

Copiez et collez les lignes suivantes dans le fichier. Remplacez proxy.example.com avec votre vrai nom de domaine. N'oubliez pas de définir un enregistrement A dans votre gestionnaire DNS.

serveur { écoute 80 ; nom_serveur proxy.exemple.com ; racine /var/www/proxy/; index index.php; emplacement / { try_files $uri $uri/ /index.php; } emplacement ~ \.php$ { fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name ; inclure fastcgi_params ; inclure 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 recharger nginx

Créer un hôte virtuel Apache

Créez un hôte virtuel Apache dans /etc/apache2/sites-avaialable/ répertoire.

sudo nano /etc/apache2/sites-available/web-proxy.conf

Copiez et collez les lignes suivantes dans le fichier. Remplacez proxy.example.com avec votre vrai nom de domaine. N'oubliez pas de définir un enregistrement A dans votre gestionnaire DNS.

 ServerName proxy.example.com DocumentRoot /var/www/proxy ErrorLog ${APACHE_LOG_DIR}/proxy.error.log CustomLog ${APACHE_LOG_DIR}/proxy.access.log combiné 

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 recharger 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 de l'administrateur (proxy.example.com/admin.php ).

Si vous utilisez PHP-Proxy, vous pouvez voir un proxy Web fonctionnel attendre que vous saisissiez une URL.

Maintenant, activons 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) à partir du PPA officiel en exécutant les commandes suivantes.

sudo apt install software-properties-commonsudo add-apt-repository ppa:certbot/certbotsudo apt updatesudo apt install certbot

Nginx les utilisateurs doivent également installer le plugin Certbot Nginx.

sudo apt installer python-certbot-nginx

Activez HTTPS avec le plugin Nginx.

sudo certbot --nginx --agree-tos --redirect --staple-ocsp -d proxy.example.com --email votre-adresse-email

Apache les utilisateurs doivent installer le plug-in Certbot Apache.

sudo apt installer python-certbot-apache

Activez HTTPS avec le plugin Apache.

sudo certbot --apache --agree-tos --redirect --staple-ocsp -d proxy.example.com --email votre-adresse-email

Si vous obtenez le message d'erreur suivant.

Le client avec l'authentificateur actuellement sélectionné ne prend en charge aucune combinaison de défis qui satisfera l'autorité de certification.

Veuillez consulter ce message sur le forum Let's Encrypt pour résoudre ce problème.

Une fois le certificat installé avec succès, actualisez votre proxy dans votre navigateur Web pour utiliser HTTPS.

(Facultatif) Mettre votre proxy Web derrière CDN

Il existe au moins trois façons pour un censeur d'Internet de bloquer un site Web :

  • Bloquer 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 consultant l'indication du nom du serveur (SNI)

Si vous craignez que votre proxy Web ne soit bloqué par des censeurs 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 le censeur Internet décide de bloquer l'adresse IP Cloudflare, il y aura des dommages collatéraux car de nombreux autres sites Web utilisent également la même adresse IP. Cela incitera le censeur d'Internet à réfléchir à deux fois avant de le faire.

Pour éviter l'empoisonnement 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é.

Conclusion

C'est ça! J'espère que ce tutoriel vous a aidé à créer votre propre proxy Web sur Ubuntu 16.04. Comme toujours, si vous avez trouvé cet article utile, abonnez-vous à notre newsletter gratuite pour obtenir plus de conseils et d'astuces.


Ubuntu
  1. Comment configurer et installer le serveur proxy Squid sur Ubuntu 18.04

  2. Comment vérifier votre version d'Ubuntu

  3. Comment installer Redis sur Ubuntu 20.04 / 18.04

  4. Comment configurer Nginx en tant que proxy inverse sur Ubuntu 20.04

  5. Ubuntu - Comment définir une adresse IP statique dans Ubuntu ?

Comment installer Envoy Proxy sur Ubuntu 20.04

Configurez votre propre serveur VPN WireGuard sur Ubuntu 20.04/18.04

Comment configurer le serveur proxy Shadowsocks-libev sur Ubuntu

Comment définir une adresse IP statique sur Ubuntu 20.04 (bureau)

Envoy Proxy sur Ubuntu 20.04 - Comment l'installer

Comment configurer un Vpn Pptp sur le propre serveur Ubuntu ?