# Mise en place d'un Proxy Socks

# Introduction

## I – Contexte

**Motivations :** Afin de renforcer ma confidentialité, ma sécurité et mon anonymat quand je navigue sur le web, j’ai décidé de mettre mes compétences à profit pour me construire mon propre serveur proxy.

**C’est quoi un serveur proxy :** Un serveur proxy est un serveur informatique qui agit comme un intermédiaire entre un utilisateur et un serveur de destination. Il sert d'interface entre les demandes provenant des utilisateurs et les ressources disponibles sur d'autres serveurs. Lorsqu'un utilisateur effectue une demande (par exemple, accéder à un site web), le serveur proxy intercepte la requête et la transmet au serveur de destination au nom de l'utilisateur. Il peut être utilisé pour des fonctions telles que la sécurité, la confidentialité, le filtrage du contenu, l'accélération du trafic et la gestion du réseau.

**Differences avec un VPN :** Un VPN Chiffre la connexion alors que le serveur proxy sert d’intermédiaire pour naviguer. Selon le site de FORTINET, Bien que les proxys et les VPN offrent tous deux une confidentialité, ils le font de manière différente. Lorsqu'on compare les capacités des proxys et des VPN, la différence réside dans le fait que les proxy agissent strictement comme une passerelle entre Internet et les utilisateurs. En revanche, le trafic d'un VPN passe par un tunnel chiffré et l'appareil de l'utilisateur, ce qui fait des VPN une solution efficace pour garantir la sécurité du réseau.

*<span class="s1">Source :</span> [<span class="s1">https://www.fortinet.com/resources/cyberglossary/proxy-vs-vpn#:~:text=When%20comparing%20proxy%20vs.,solution%20for%20ensuring%20network%20security</span>](https://www.fortinet.com/resources/cyberglossary/proxy-vs-vpn#:~:text=When%20comparing%20proxy%20vs.,solution%20for%20ensuring%20network%20security).*

## II – Prérequis

Le serveur que nous allons mettre en place ne demande pas beaucoup de ressources. Dans mon cas voici ma configuration :

\- 1vCPU

\- 1Go de RAM

\- Debian 12 (stable)

Pour les autres prérequis, il vous faut si possible un VPS chez l’hébergeur de votre choix, j’ai choisi les 3 mois gratuit sur AWS, et mon VPS est situé en virginie.

# Installation et configuration

## **III – Installation des prérequis**

### Snapd

Snap est un gestionnaire de paquet, il va nous permettre d’installer simplement le serveur.

```bash
sudo apt-get install snapd
```

### Shadowsocks

Shadowsocks est le serveur proxy que l’on va utiliser pour mettre en place notre propre serveur. Pour l’installer c’est assez simple coller la ligne ci-dessous dans votre terminal

```bash
sudo snap install shadowsocks-libev
```

### Ufw *(facultatif)*

Ufw est un firewall local qui peut être installer sur linux, je l’installe dans mon cas pour renforcer la sécurité de ma machine. Je ne vais pas détailler la sécurité de la machine dans cette procédure. Pour installer ufw, coller la ligne ci-dessous

```
sudo apt-get install ufw
```

## **IV – Modification de la configuration de shadowsocks**

Nous allons dans un premier temps nous rendre dans le répertoire shadowsocks-libev qui a dû être directement crée lors de l’installation. Utiliser la commande ci-dessous pour vous y rendre.

```bash
cd /etc/shadowsocks-libev/
```

Une fois cela fait, il va falloir modifier le fichier de configuration « config.json ». Je vais utiliser nano pour faire la modification mais libre à vous d’utiliser l’éditeur qui vous convient. Mais d’abord on commence par une sauvegarde du fichier original.

```bash
mv config.json config.json.bak
```

Puis on passe à l’édition

```bash
sudo nano config.json
```

Copier le code ci-dessous et inséré le dans votre fichier

[![image.png](https://docs.antoninpomies.fr/uploads/images/gallery/2025-01/scaled-1680-/fj0image.png)](https://docs.antoninpomies.fr/uploads/images/gallery/2025-01/fj0image.png)

On va maintenant activer shadowsocks au démarrage et le redémarré.

```bash
sudo systemctl enable shadowsocks-libev
```

Puis on redémarre le service

```bash
sudo systemctl restart shadowsocks-libev
```

Ensuite nous allons faire l’ouverture de port avec ufw

```bash
sudo ufw allow 1080

sudo ufw allow 8000
```

## V – Ouverture des ports (NAT/PAT)

Il va maintenant falloir ouvrir le port 8000 sur votre box, je vous laisse vous renseigner car cette opération varie en fonction du F.A.I de votre BOX. Il faut ouvrir le port 8000 en TCP et en UDP. Car par défaut shadowsocks est configurer pour marcher avec les deux mais libre à vous de le restreindre en modifiant le fichier de configuration. Je vais détailler l’ouverture de port sur Amazon AWS ci-dessous, car je n’ai pas trouvé la procédure simple. Et l’interface n’est pas très « user-freindly ».

# Configuration du/des Clients

## VI – Configuration Clients

### Windows

1\. Rendez-vous dans les release Github de shadowsocks-windows a ce lien : [<span class="s1">https://github.com/shadowsocks/shadowsocks-windows/releases</span>](https://github.com/shadowsocks/shadowsocks-windows/releases)

2\. Descendez un peu et trouver sous « Assets » Shadowsocks-X.X.X.X.zip (les X correspondent a la version.

3\. Télécharger le fichier.

4\. Décompressez l’archive et double clic sur shadowsocks.exe

5\. Dans la petite flèche dans la barre des tâches faites un clic droit sur l’icône d’avion, puis serveur &gt; éditer serveur. Dans cette fenêtre configurer votre serveur avec les mêmes informations que dans le fichier de configuration de shadowsocks. Si des champs sont vide et vous ne savez pas quoi mettre c’est qu’il ne faut pas y toucher.

6\. Pour activer le proxy, clic droit sur l’avion puis proxy et enfin sur Global.

7\. Pour vérifier que le proxy fonctionne bien, ouvrez un navigateur et rendez-vous sur ce site et regarder votre localisation. Elle doit normalement correspondre à la région sélectionner dans AWS et avoir l’IP publique de votre machine.

# Annexe

1\. Rendez-vous sur le lien suivant : [<span class="s1">https://console.aws.amazon.com</span>](https://console.aws.amazon.com/)

2\. Puis cliquez sur EC2

[![image.png](https://docs.antoninpomies.fr/uploads/images/gallery/2025-01/scaled-1680-/B6Oimage.png)](https://docs.antoninpomies.fr/uploads/images/gallery/2025-01/B6Oimage.png)

3\. Et enfin sur instances dans le menu latéral

[![image.png](https://docs.antoninpomies.fr/uploads/images/gallery/2025-01/scaled-1680-/bvFimage.png)](https://docs.antoninpomies.fr/uploads/images/gallery/2025-01/bvFimage.png)

4\. Puis sur l’id de votre instance

[![image.png](https://docs.antoninpomies.fr/uploads/images/gallery/2025-01/scaled-1680-/kWRimage.png)](https://docs.antoninpomies.fr/uploads/images/gallery/2025-01/kWRimage.png)

5\. Sur Sécurité

[![image.png](https://docs.antoninpomies.fr/uploads/images/gallery/2025-01/scaled-1680-/4tcimage.png)](https://docs.antoninpomies.fr/uploads/images/gallery/2025-01/4tcimage.png)

6\. Sous règles entrante, trouver le bouton « launch-wizard-1 » et cliquez dessus.

[![image.png](https://docs.antoninpomies.fr/uploads/images/gallery/2025-01/scaled-1680-/I3uimage.png)](https://docs.antoninpomies.fr/uploads/images/gallery/2025-01/I3uimage.png)

7\. Cliquez ensuite sur l’id du groupe de sécurité

[![image.png](https://docs.antoninpomies.fr/uploads/images/gallery/2025-01/scaled-1680-/nyximage.png)](https://docs.antoninpomies.fr/uploads/images/gallery/2025-01/nyximage.png)

8\. Puis modifié les règles entrantes

[![image.png](https://docs.antoninpomies.fr/uploads/images/gallery/2025-01/scaled-1680-/nm4image.png)](https://docs.antoninpomies.fr/uploads/images/gallery/2025-01/nm4image.png)

9\. Dans mon cas j’ai préféré ouvrir et le port 8000 et le port 1080 même si il correspond au port interne.

[![image.png](https://docs.antoninpomies.fr/uploads/images/gallery/2025-01/scaled-1680-/9bIimage.png)](https://docs.antoninpomies.fr/uploads/images/gallery/2025-01/9bIimage.png)