Comment configurer un serveur proxy personnel pour WhatsApp sur AWS
Aujourd’hui, le 5 janvier 2023, WhatsApp a annoncé le lancement de la prise en charge du proxy pour les utilisateurs de WhatsApp du monde entier (https://blog.whatsapp.com/connecting-to-whatsapp-by-proxy). Cette fonctionnalité aide les gens à se connecter via cette application, en particulier dans les zones où l’application est filtrée par les gouvernements ou d’autres autorités.
Pour aider les gens à utiliser cette fonctionnalité, j’ai personnellement (sans affiliation avec les développeurs Meta ou WhatsApp) essayé de créer un serveur proxy WhatsApp sur le cloud AWS.
REMARQUE : Cet article est censé être un simple didacticiel, et non une solution complète. Certaines modifications peuvent être nécessaires en fonction du système de filtrage de différents pays pour le contourner.
Puisque nous allons utiliser les services cloud AWS pour configurer notre serveur, nous avons besoin d’un compte AWS. AWS propose des essais/niveaux gratuits aux nouveaux utilisateurs et vous pouvez profiter de cette opportunité.
REMARQUE : si vous n’êtes pas éligible aux services de niveau gratuit, vous devez vous attendre à ce que la configuration d’un serveur à l’aide de ce didacticiel vous coûte cher. Il est de votre responsabilité de comprendre le coût associé à la configuration d’un serveur proxy utilisant cette approche.
Il existe de nombreux articles sur Medium et sur Internet sur la façon de créer un compte AWS. Ce didacticiel suppose que vous disposez déjà d’un compte AWS et que vous comprenez les coûts associés aux services utilisés dans ce didacticiel.
NOTE : Cette instruction est écrite pour les systèmes basés sur Linux et Unix. Si vous travaillez à partir d’un système Windows, certaines modifications sont nécessaires. J’ai essayé de les mentionner brièvement.
Connectez-vous à votre console AWS : https://aws.amazon.com/
Tout d’abord, nous devons configurer un VPC ou un réseau privé virtuel pour notre serveur proxy. Dans votre console AWS (https://console.aws.amazon.com/), Rechercher VPC dans la barre de recherche (en haut de la page) et cliquez sur VPC.
Dans votre tableau de bord VPC, cliquez sur Créer un VPC bouton.
Ici, nous créons un réseau VPC élémentaire avec 1 zone de disponibilité et 1 sous-réseau public. La capture d’écran suivante montre le Paramètres VPC pour notre simple VPC.
Cliquer sur Créer un VPC. Après quelques secondes. Votre VPC est prêt. Il est maintenant temps d’instancier votre serveur EC2.
Revenez à votre console AWS (https://console.aws.amazon.com/). Rechercher EC2.
Tout d’abord, vous avez besoin d’une paire de clés. Dans votre tableau de bord EC2, dans le menu de gauche, sous Sécurité Internet, cliquer sur Paires de clés.
Sur la nouvelle page, donnez un nom à votre paire de clés et cliquez sur Créer une paire de clés.
REMARQUE : Si vous utilisez le système d’exploitation Windows, vous devrez peut-être choisir .ppk comme format de clé. Plus tard, vous pourrez utiliser votre clé ppk via PuTTY pour vous connecter à votre machine AWS EC2.
Un nouveau fichier .ppk (Proxy-Server-A-Key.pem) devrait être téléchargé automatiquement sur votre ordinateur. Conservez cette clé dans un endroit sûr et ne la partagez jamais avec qui que ce soit. Sur mon ordinateur, j’ai créé un dossier appelé « aws_proxy_server » et j’ai enregistré le fichier dans le dossier. Nous avons besoin de cette clé pour accéder ultérieurement à notre machine EC2.
NOTE : Ne partagez jamais votre paire de clés avec qui que ce soit. Il s’agit de la clé de votre serveur VPC et il est important de la conserver dans un endroit sûr et sécurisé.
Maintenant que vous avez votre nouvelle paire de clés, lançons une nouvelle instance EC2.
Dans le menu de gauche, cliquez sur Tableau de bord EC2. Cliquez ensuite sur le Lancer l’instance bouton. Utilisez les valeurs suivantes pour configurer votre EC2.
Vous pouvez choisir un type d’instance plus puissant, mais n’oubliez pas que les autres types ne sont pas éligibles au niveau gratuit (si vous êtes toujours éligible à l’utilisation du niveau gratuit).
Pour la section Key Pair, pensez à sélectionner la Key Pair que vous venez de créer.
Pour les paramètres réseau, nous devons le modifier. Remplacez le paramètre VPC par le VPC que vous avez créé. Assurez-vous de choisir également votre sous-réseau public créé pour le paramètre Sous-réseau. Les autres paramètres réseau sont affichés ici.
Plus tard, nous devrons modifier les règles entrantes de notre groupe de sécurité pour accepter plus de ports.
Pour l’instant, cliquez sur Instance de lancement et attendez quelques minutes jusqu’à ce que votre nouvelle machine EC2 fonctionne.
Jusqu’à présent, le seul port ouvert sur notre système EC2 est le port SSH (port 22). Nous devons ouvrir quelques autres ports pour permettre aux utilisateurs de se connecter à notre serveur proxy et de l’utiliser.
Dans le menu de gauche de la page EC2, sous Réseau et sécurité, cliquez sur Groupes de sécurité.
Trouvez « Proxy-Server-A-sg » et cliquez dessus. Sous l’onglet Règles de trafic entrant, cliquez sur Modifier les règles entrantes bouton. Ajoutez les règles suivantes aux règles entrantes de votre groupe de sécurité.
Enregistre les règles.
Jusqu’à présent, nous avons lancé un système EC2 qui agit comme notre serveur proxy. Mais nous devons installer les logiciels et packages nécessaires pour déployer pleinement notre service proxy WhatsApp. Je suis principalement les instructions sur la page officielle WhatsApp GitHub, https://github.com/WhatsApp/proxy/avec quelques rebondissements concernant le système AWS Linux.
Tout d’abord, nous devons nous connecter à notre machine EC2 via ssh. Dans le menu de gauche de la page du tableau de bord EC2, sélectionnez Instances. Cochez la case à côté de votre instance (je l’ai nommée Proxy-Server-A). Au bas de la page, notez votre adresse IPv4 publique EC2. Vous en aurez besoin plus tard lorsque vous essayez de vous connecter à votre serveur proxy à partir de votre téléphone.
Ensuite, en haut de la page, cliquez sur le bouton Connecter. Sélectionnez l’onglet Client SSH. Ici, vous voyez des instructions complètes sur la façon de vous connecter à votre nouvelle machine EC2.
REMARQUE : Comme mentionné, ce didacticiel est écrit pour les systèmes basés sur Unix tels que Linux. Si vous utilisez le système d’exploitation Windows, vous devrez peut-être utiliser des applications telles que PuTTY pour vous connecter à votre serveur EC2. De nombreux articles et tutoriels ont été publiés sur la façon de se connecter à une machine EC2 via PuTTY ou un logiciel similaire.
Ouvrez un terminal sur votre ordinateur local et accédez au dossier où vous avez enregistré votre paire de clés. Tout d’abord, vous devez vous assurer que votre clé n’est pas visible publiquement.
chmod 400 Proxy-Server-Key-Pair.pem
Maintenant, vous devriez pouvoir vous connecter à votre machine EC2 via :
ssh -i "Proxy-Server-A-Key.pem" ec2-user@YOUR-EC2-ADDRESS
Notez que dans la commande ci-dessus, vous devez remplacer @YOUR-EC2-ADDRESS par votre adresse AWS EC2 (là encore, vous pouvez trouver la commande bash exacte sous l’instruction Connect).
À ce stade, vous vous êtes connecté avec succès à votre machine EC2 et vous pouvez y exécuter des commandes bash.
Tout d’abord, passons en mode superutilisateur.
sudo su
Ensuite, nous devons installer git.
yum update -yyum install git -y
Maintenant, nous devons cloner le référentiel WhatsApp Proxy à partir de GitHub.
git clone https://github.com/WhatsApp/proxy.git
Il crée un dossier, appelé « proxy », dans votre répertoire courant. Par exemple, pour moi, le dossier créé est à /home/ec2-user/proxy
Maintenant, nous devons installer Docker sur notre machine EC2.
yum install docker
Répondez « oui » (simplement « y ») à toutes les questions. Une fois l’installation terminée, vérifiez si Docker est correctement installé via :
docker version
Il doit renvoyer des informations sur votre version de Docker installée. Pour moi, la version installée est 20.10.17.
Nous devons également installer Docker Compose. Voici les lignes de commande qui le font pour nous.
# Download the pkg
sudo curl -L -s)-$(uname -m) -o /usr/bin/docker-compose
# Enable execution of the script
sudo chmod +x /usr/bin/docker-compose
Vérifions si Docker Compose est également installé correctement.
docker-compose version
Il doit renvoyer des informations sur la version de Docker Compose installée. Pour moi, la version installée est v2.15.0.
Maintenant, nous devons démarrer le démon Docker.
service docker start
Maintenant, nous sommes presque prêts à exécuter notre conteneur proxy WhatsApp. Faisons d’abord un test.
docker-compose -f /home/ec2-user/proxy/proxy/ops/docker-compose.yml up
Il doit créer l’image du conteneur et exécuter un conteneur sur Docker. Si tout s’est bien passé, vous pouvez l’arrêter par CTRL+C.
Maintenant, nous pouvons exécuter le conteneur en tant que service (en ajoutant le drapeau -d).
docker-compose -f /home/ec2-user/proxy/proxy/ops/docker-compose.yml up -d
Il doit montrer :
[+] Running 1/1
Container whatsapp_proxy Started
Il est maintenant temps de vous connecter à votre serveur proxy WhatsApp à partir de votre application WhatsApp.
Ouvrez WhatsApp sur votre téléphone. Allez dans Paramètres >> Stockage et données >> Proxy
Ici, activez Use Proxy et entrez votre adresse IPv4 publique EC2 (vous l’avez notée dans l’une des étapes précédentes) et utilisez le port 5222. Par exemple, la mienne ressemble à ceci :
200.21.65.130:5222
Appuyez sur Enregistrer et si tout est fait correctement, vous devez voir un « Connecté » de couleur verte sur votre page.
Si le port 5222 ne fonctionne pas, essayez les ports 80, 8080, 443, 8222 ou 8443.
Fermez et profitez de votre proxy WhatsApp personnel.
Une machine EC2 peut avoir des coûts associés. N’oubliez pas de terminer ou d’arrêter votre machine EC2 si vous ne comptez plus l’utiliser.
Encore une fois, sur la base de différents systèmes de filtrage, un, quelques-uns ou aucun de ces ports peuvent fonctionner.