Principes de proxy transparent utilisant 3proxy et iptables/netfilter ou comment "tout passer par le proxy"

Dans cet article, nous aimerions explorer les possibilités du proxy transparent, qui permet de rediriger tout ou partie du trafic via des serveurs proxy externes, totalement en dehors de la vue des clients.

Lorsque j'ai commencĂ© Ă  rĂ©soudre cette tĂąche, je me suis heurtĂ© Ă  un problĂšme majeur : le protocole HTTPS. Dans les bonnes vieilles Ăąges, il n'y avait pas de problĂšmes particulier avec le proxy transparent HTTP, mais lors du proxying de l'HTTPS, les navigateurs signalent une interfĂ©rence dans le protocole et c'est lĂ  que le bonheur s'arrĂȘte.

Dans les instructions courantes pour le serveur proxy Squid, il est mĂȘme proposĂ© de gĂ©nĂ©rer son propre certificat et de l'installer sur les clients, ce qui est tout simplement absurde et paraĂźt comme une attaque MITM. Je sais que Squid peut dĂ©jĂ  faire quelque chose de similaire, mais cet article traite d'une mĂ©thode Ă©prouvĂ©e et fonctionnelle utilisant 3proxy de l'estimĂ© 3APA3A.

Nous allons maintenant examiner en détail le processus de compilation de 3proxy à partir des sources, sa configuration, le proxying complet et sélectif utilisant NAT, la distribution de la bande passante à plusieurs serveurs proxy externes, ainsi que l'utilisation d'un routeur et de routes statiques. Nous utiliserons comme OS Debian 9 x64. Commençons !

Installation de 3proxy et lancement d'un serveur proxy standard

1. Installer ifconfig (du paquet net-tools)
apt-get install net-tools
2. Installer Midnight Commander
apt-get install mc
3. Nous avons actuellement 2 interfaces :
enp0s3 — externe, connectĂ© Ă  Internet
enp0s8 — interne, doit se connecter au rĂ©seau local
Dans d'autres distributions basées sur Debian, les interfaces sont généralement appelées eth0 et eth1.
ifconfig -a

Interfacesenp0s3: flags=4163 mtu 1500
inet 192.168.23.11 netmask 255.255.255.0 broadcast 192.168.23.255
inet6 fe80::a00:27ff:fec2:bae4 prefixlen 64 scopeid 0x20 ether 08:00:27:c2:ba:e4 txqueuelen 1000 (Ethernet)
RX packets 6412 bytes 8676619 (8.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1726 bytes 289128 (282.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

enp0s8: flags=4098 mtu 1500
ether 08:00:27:79:a7:e3 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1 (Boucle locale)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

L'interface enp0s8 n'est pas actuellement utilisée, nous l'activerons lorsque nous souhaitons utiliser la configuration Proxy NAT ou NAT. C'est alors qu'il sera logique de lui attribuer une IP statique.

4. Procédons à l'installation de 3proxy

4.1 Installation des paquets de base pour la compilation de 3proxy Ă  partir des sources

root@debian9:~# apt-get install build-essential libevent-dev libssl-dev -y

4.2. Créons un dossier pour télécharger l'archive avec les sources

root@debian9:~# mkdir -p /opt/proxy

4.3. Passons dans ce dossier

root@debian9:~# cd /opt/proxy

4.4. Téléchargons maintenant le dernier paquet 3proxy. Au moment de la rédaction de cet article, la derniÚre version stable était 0.8.12 (18/04/2018). Téléchargeons-la depuis le site officiel de 3proxy

root@debian9:\/opt\/proxy# wget https://github.com/z3APA3A/3proxy/archive/0.8.12.tar.gz

4.5. Décompressons l'archive téléchargée

root@debian9:/opt/proxy# tar zxvf 0.8.12.tar.gz

4.6. Passons dans le dossier décompressé pourcompiler le programme

root@debian9:/opt/proxy# cd 3proxy-0.8.12

4.7. Ensuite, nous devons ajouter une ligne dans le fichier d'en-tĂȘte pour que notre serveur soit totalement anonyme (cela fonctionne vraiment, tout a Ă©tĂ© vĂ©rifiĂ©, les IP des clients sont cachĂ©es)

root@debian9:/opt/proxy/3proxy-0.8.12# nano +29 src/proxy.h

Ajoutons la ligne

#define ANONYMOUS 1

Appuyez sur Ctrl+x et Entrée pour sauvegarder les modifications.

4.8. Commençons à compiler le programme

root@debian9:/opt/proxy/3proxy-0.8.12# make -f Makefile.Linux

Makelogmake[2]: Leaving directory '/opt/proxy/3proxy-0.8.12/src/plugins/TransparentPlugin'
make[1]: Leaving directory '/opt/proxy/3proxy-0.8.12/src'

Pas d'erreurs, continuons.

4.9. Installons le programme dans le systĂšme

root@debian9:/opt/proxy/3proxy-0.8.12# make -f Makefile.Linux install

4.10. Passons dans le rĂ©pertoire racine et vĂ©rifions oĂč le programme a Ă©tĂ© installĂ©

root@debian9:~/opt/proxy/3proxy-0.8.12# cd ~/
root@debian9:~# whereis 3proxy

3proxy: /usr/local/bin/3proxy /usr/local/etc/3proxy

4.11. Créons un dossier pour les fichiers de configuration et les logs dans le répertoire personnel de l'utilisateur

root@debian9:~# mkdir -p /home/joke/proxy/logs

4.12. Passons dans le rĂ©pertoire oĂč doit ĂȘtre le config

root@debian9:~# cd /home/joke/proxy/

4.13. Créons un fichier vide et copions-y le config

root@debian9:/home/joke/proxy# cat > 3proxy.conf

3proxy.confdaemon
pidfile /home/joke/proxy/3proxy.pid
nserver 8.8.8.8
nscache 65536
users tester:CL:1234
timeouts 1 5 30 60 180 1800 16 60
log /home/joke/proxy/logs/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotate 3
auth strong
flush
allow tester
socks -p3128
proxy -p8080

Pour sauvegarder, appuyez sur Ctrl + Z

4.14. Créons un fichier pid pour éviter les erreurs au démarrage.

root@debian9:/home/joke/proxy# cat > 3proxy.pid

Pour sauvegarder, appuyez sur Ctrl + Z

4.15. Démarrons le serveur proxy !

root@debian9:/home/joke/proxy# 3proxy /home/joke/proxy/3proxy.conf

4.16. Vérifions si le serveur écoute les ports

root@debian9:~/home/joke/proxy# netstat -nlp

journal netstatConnexions Internet actives (serveurs uniquement)
Proto Recv-Q Send-Q Adresse locale Adresse Ă©trangĂšre État PID/Nom du programme
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 504/3proxy
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 338/sshd
tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN 504/3proxy
tcp6 0 0 :::22 :::* LISTEN 338/sshd
udp 0 0 0.0.0.0:68 0.0.0.0:* 352/dhclient

Comme indiquĂ© dans le config, le web-proxy Ă©coute sur le port 8080, le proxy Socks5 — sur le port 3128.

4.17. Pour que le service proxy se lance automatiquement aprÚs le redémarrage, il faut l'ajouter au cron.

root@debian9: /home/joke/proxy# crontab -e

Ajoutons la ligne

@reboot /usr/local/bin/3proxy /home/joke/proxy/3proxy.conf

Appuyez sur Entrée, car cron doit voir le symbole de fin de ligne et sauvegardez le fichier.

Un message d'installation d'un nouveau crontab devrait apparaĂźtre.

crontab : installation d'un nouveau crontab

4.18. Redémarrons le systÚme et essayons de nous connecter via le navigateur au proxy. Pour la vérification, nous utiliserons le navigateur Firefox (pour le web-proxy) et l'extension FoxyProxy pour socks5 avec authentification.

root@debian9:/home/joke/proxy# reboot

4.19. AprÚs avoir vérifié le fonctionnement du proxy aprÚs le redémarrage, nous pouvons consulter les journaux. La configuration du serveur proxy est maintenant terminée.

3 journal de proxy1542573996.018 PROXY.8080 00000 tester 192.168.23.10:50915 217.12.15.54:443 1193 6939 0 CONNECT_ads.yahoo.com:443_HTTP/1.1
1542574289.634 SOCK5.3128 00000 tester 192.168.23.10:51193 54.192.13.69:443 0 0 0 CONNECT_normandy.cdn.mozilla.net:443

Configuration et lancement de la configuration Transparent Proxy NAT

Dans cette configuration, tous les appareils du réseau interne fonctionneront de maniÚre transparente sur Internet via un proxy distant. Tous les connexions TCP seront redirigées vers un ou plusieurs serveurs proxy (ce qui élargit réellement la bande passante, voir exemple de configuration n°2 !). Le service DNS utilisera les capacités de 3proxy (dnspr). Le UDP ne sortira pas, car nous n'utilisons pas encore le mécanisme forward (désactivé par défaut dans le noyau Linux).

1. Il est temps d'activer l'interface enp0s8

root@debian9:~# nano /etc/network/interfaces

/etc/network/interfaces file# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp0s3
iface enp0s3 inet dhcp

# The secondary network interface
allow-hotplug enp0s8
iface enp0s8 inet static
address 192.168.201.254
netmask 255.255.255.0

Ici, nous avons assigné à l'interface enp0s8 une adresse statique 192.168.201.254 et un masque 255.255.255.0
Enregistrer la configuration Ctrl+X et redémarrer

root@debian9:~# redémarrer

2. Vérifions les interfaces

root@debian9:~# ifconfig

journal ifconfigenp0s3: flags=4163 mtu 1500
inet 192.168.23.11 netmask 255.255.255.0 broadcast 192.168.23.255
inet6 fe80::a00:27ff:fec2:bae4 prefixlen 64 scopeid 0x20 ether 08:00:27:c2:ba:e4 txqueuelen 1000 (Ethernet)
RX paquets 61 octets 7873 (7.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX paquets 65 octets 10917 (10.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

enp0s8 : flags=4163 mtu 1500
inet 192.168.201.254 netmask 255.255.255.0 broadcast 192.168.201.255
inet6 fe80::a00:27ff:fe79:a7e3 prefixlen 64 scopeid 0x20 ether 08:00:27:79:a7:e3 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX paquets 8 octets 648 (648.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1 (Boucle locale)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

3. Ça a fonctionnĂ©, maintenant nous devons configurer 3proxy pour un proxy transparent.

root@debian9:~# cd /home/joke/proxy/
root@debian9:/home/joke/proxy# cat > 3proxytransp.conf

Exemple de configuration du serveur proxy transparent n°1daemon
pidfile /home/joke/proxy/3proxy.pid
nserver 8.8.8.8
nscache 65536
timeouts 1 5 30 60 180 1800 16 60
log /home/joke/proxy/logs/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotate 3
flush
auth iponly
dnspr
allow *
parent 1000 socks5 IP_ADRESSE_DU_PROXY_EXTERNE 3128 tester 1234
plugin /opt/proxy/3proxy-0.8.12/src/TransparentPlugin.ld.so transparent_plugin
tcppm -i0.0.0.0 888 127.0.0.1 11111

4. Nous lançons maintenant 3proxy avec la nouvelle configuration
root@debian9:/home/joke/proxy# /usr/local/bin/3proxy /home/joke/proxy/3proxytransp.conf

5. Ajoutons Ă  nouveau dans crontab
root@debian9: /home/joke/proxy# crontab -e
@reboot /usr/local/bin/3proxy /home/joke/proxy/3proxytransp.conf

6. Voyons maintenant ce que notre proxy écoute
root@debian9:~# netstat -nlp

journal netstatConnexions Internet actives (serveurs uniquement)
Proto Recv-Q Send-Q Adresse locale Adresse Ă©trangĂšre État PID/Nom du programme
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 349/sshd
tcp 0 0 0.0.0.0:888 0.0.0.0:* LISTEN 354/3proxy
tcp6 0 0 :::22 :::* LISTEN 349/sshd
udp 0 0 0.0.0.0:53 0.0.0.0:* 354/3proxy
udp 0 0 0.0.0.0:68 0.0.0.0:* 367/dhclient

7. Le proxy est maintenant prĂȘt Ă  accepter toutes les connexions TCP sur le port 888, le DNS sur le port 53, pour les rediriger vers le proxy distant socks5 et le DNS de Google 8.8.8.8. Il reste Ă  configurer les rĂšgles netfilter (iptables) et DHCP pour attribuer des adresses.

8. Installons les paquets iptables-persistent et dhcpd

root@debian9:~# apt-get install iptables-persistent isc-dhcp-server

9. Modifier le fichier de démarrage de dhcpd
root@debian9:~# nano /etc/dhcp/dhcpd.conf

dhcpd.conf# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#

# option definitions common to all supported networks

option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

default-lease-time 600;
max-lease-time 7200;

ddns-update-style none;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.

authoritative;

# A slightly different configuration for an internal subnet.
subnet 192.168.201.0 netmask 255.255.255.0 {
range 192.168.201.10 192.168.201.250;
option domain-name-servers 192.168.201.254;
option routers 192.168.201.254;
option broadcast-address 192.168.201.255;
default-lease-time 600;
max-lease-time 7200;
}

11. Redémarrez et vérifiez le service sur le port 67
root@debian9:~# redémarrer
root@debian9:~# netstat -nlp

journal netstatConnexions Internet actives (serveurs uniquement)
Proto Recv-Q Send-Q Adresse locale Adresse Ă©trangĂšre État PID/Nom du programme
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 389/sshd
tcp 0 0 0.0.0.0:888 0.0.0.0:* LISTEN 310/3proxy
tcp6 0 0 :::22 :::* LISTEN 389/sshd
udp 0 0 0.0.0.0:20364 0.0.0.0:* 393/dhcpd
udp 0 0 0.0.0.0:53 0.0.0.0:* 310/3proxy
udp 0 0 0.0.0.0:67 0.0.0.0:* 393/dhcpd
udp 0 0 0.0.0.0:68 0.0.0.0:* 405/dhclient
udp6 0 0 :::31728 :::* 393/dhcpd
raw 0 0 0.0.0.0:1 0.0.0.0:* 393/dhcpd

12. Il reste Ă  rediriger toutes les requĂȘtes TCP vers le port 888 et Ă  sauvegarder la rĂšgle dans iptables

root@debian9:~# iptables -t nat -A PREROUTING -s 192.168.201.0/24 -p tcp -j REDIRECT --to-ports 888

root@debian9:~# iptables-save > /etc/iptables/rules.v4

13. Pour Ă©largir la bande passante, vous pouvez utiliser plusieurs serveurs proxy simultanĂ©ment. La somme totale doit ĂȘtre de 1000. De nouvelles connexions sont Ă©tablies avec une probabilitĂ© de 0.2, 0.2, 0.2, 0.2, 0.1, 0.1 vers les serveurs proxy spĂ©cifiĂ©s.

Remarque : si nous avons un proxy web, il faut écrire connect au lieu de socks5, si c'est socks4, alors socks4 (socks4 NE SOUTIENT PAS L'AUTORISATION LOGIN/MOT DE PASSE !)

Exemple de configuration du serveur proxy transparent n°2daemon
pidfile /home/joke/proxy/3proxy.pid
nserver 8.8.8.8
nscache 65536
maxconn 500
timeouts 1 5 30 60 180 1800 16 60
log /home/joke/proxy/logs/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotate 3
flush
auth iponly
dnspr
allow *

parent 200 socks5 ADRESSE_IP_DU_PROXY_EXTÉRIEUR_1 3128 tester 1234
parent 200 socks5 ADRESSE_IP_DU_PROXY_EXTÉRIEUR_2 3128 tester 1234
parent 200 socks5 ADRESSE_IP_DU_PROXY_EXTÉRIEUR_3 3128 tester 1234
parent 200 socks5 ADRESSE_IP_DU_PROXY_EXTÉRIEUR_4 3128 tester 1234
parent 100 socks5 ADRESSE_IP_DU_PROXY_EXTÉRIEUR_5 3128 tester 1234
parent 100 socks5 ADRESSE_IP_DU_PROXY_EXTÉRIEUR_6 3128 tester 1234

plugin /opt/proxy/3proxy-0.8.12/src/TransparentPlugin.ld.so transparent_plugin
tcppm -i0.0.0.0 888 127.0.0.1 11111

Configuration et lancement de la configuration NAT + Proxy Transparent

Dans cette configuration, nous utiliserons le mĂ©canisme NAT standard avec un proxy transparent sĂ©lectif ou complet pour certaines adresses ou sous-rĂ©seaux. Les utilisateurs du rĂ©seau interne travailleront avec des services/sous-rĂ©seaux spĂ©cifiques sans mĂȘme se douter qu'ils passent par un proxy. Toutes les connexions https fonctionnent parfaitement, aucun certificat Ă  gĂ©nĂ©rer ou Ă  remplacer.

Tout d'abord, dĂ©terminons quelles sous-rĂ©seaux/services nous souhaitons proxifier. Supposons que les serveurs proxy externes se trouvent lĂ  oĂč fonctionne un service comme pandora.com. Il ne reste plus qu'Ă  dĂ©terminer ses sous-rĂ©seaux/adresses.

1. Nous pingons

root@debian9:~# ping pandora.com
PING pandora.com (208.85.40.20) 56(84) octets de données.

2. Nous recherchons BGP 208.85.40.20 sur Google

Allons sur le site bgp.he.net/net/208.85.40.0/24#_netinfo
On voit que le sous-réseau recherché est l'AS40428 de Pandora Media, Inc.

bgp.he.net/net/208.85.40.0/24#_netinfo

Nous ouvrons les préfixes v4

bgp.he.net/AS40428#_prefixes

Voici les sous-réseaux recherchés !

199.116.161.0/24
199.116.162.0/24
199.116.164.0/23
199.116.164.0/24
199.116.165.0/24
208.85.40.0/24
208.85.41.0/24
208.85.42.0/23
208.85.42.0/24
208.85.43.0/24
208.85.44.0/24
208.85.46.0/23
208.85.46.0/24
208.85.47.0/24

3. Pour rĂ©duire le nombre de sous-rĂ©seaux, il faut effectuer une agrĂ©gation. Aller sur le site ip-calculator.ru/aggregate et coller notre liste. Au final — 6 sous-rĂ©seaux au lieu de 14.

199.116.161.0/24
199.116.162.0/24
199.116.164.0/23
208.85.40.0/22
208.85.44.0/24
208.85.46.0/23

4. Nous nettoyons les rĂšgles iptables

root@debian9:~# iptables -F
root@debian9:~# iptables -X
root@debian9:~# iptables -t nat -F
root@debian9:~# iptables -t nat -X

Nous activons le mécanisme de forwarding et NAT

root@debian9:~# echo 1 > /proc/sys/net/ipv4/ip_forward
root@debian9:~# iptables -A FORWARD -i enp0s3 -o enp0s8 -j ACCEPT
root@debian9:~# iptables -A FORWARD -i enp0s8 -o enp0s3 -j ACCEPT
root@debian9:~# iptables -t nat -A POSTROUTING -o enp0s3 -s 192.168.201.0/24 -j MASQUERADE

Pour que le forwarding soit activé en permanence aprÚs le redémarrage, modifions le fichier

root@debian9:~# nano /etc/sysctl.conf

Et décommentons la ligne

net.ipv4.ip_forward = 1

Ctrl+X pour enregistrer le fichier

5. Nous enveloppons les sous-réseaux de pandora.com dans le proxy

root@debian9:~# iptables -t nat -A PREROUTING -s 192.168.201.0/24 -d 199.116.161.0/24,199.116.162.0/24,199.116.164.0/23,208.85.40.0/22,208.85.44.0/24,208.85.46.0/23 -p tcp -j REDIRECT --to-ports 888

6. Nous sauvegardons les rĂšgles

root@debian9:~# iptables-save > /etc/iptables/rules.v4

Configuration et lancement de la configuration du proxy transparent via le routeur

Dans cette configuration, le serveur proxy transparent peut ĂȘtre un ordinateur sĂ©parĂ© ou une machine virtuelle derriĂšre un routeur domestique/corporatif. Il suffit de configurer des routes statiques sur le routeur ou les appareils, et tout le sous-rĂ©seau utilisera le proxy sans nĂ©cessiter de rĂ©glages supplĂ©mentaires.

IMPORTANT ! Il est nĂ©cessaire que notre passerelle reçoive une IP statique du routeur, ou qu'elle soit elle-mĂȘme configurĂ©e en statique.

1. Configurer l'adresse IP statique de la passerelle (adaptateur enp0s3)

root@debian9:~# nano /etc/network/interfaces

/etc/network/interfaces file# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp0s3
iface enp0s3 inet static
address 192.168.23.2
netmask 255.255.255.0
gateway 192.168.23.254

# The secondary network interface
allow-hotplug enp0s8
iface enp0s8 inet static
address 192.168.201.254
netmask 255.255.255.0

2. Autoriser les appareils du sous-réseau 192.168.23.0/24 à utiliser le proxy

root@debian9:~# iptables -t nat -A PREROUTING -s 192.168.23.0/24 -d 199.116.161.0/24,199.116.162.0/24,199.116.164.0/23,208.85.40.0/22,208.85.44.0/24,208.85.46.0/23 -p tcp -j REDIRECT --to-ports 888

3. Nous sauvegardons les rĂšgles
root@debian9:~# iptables-save > /etc/iptables/rules.v4

4. Nous définissons les sous-réseaux sur le routeur

Liste des réseaux du routeur199.116.161.0 255.255.255.0 192.168.23.2
199.116.162.0 255.255.255.0 192.168.23.2
199.116.164.0 255.255.254.0 192.168.23.2
208.85.40.0 255.255.252.0 192.168.23.2
208.85.44.0 255.255.255.0 192.168.23.2
208.85.46.0 255.255.254.0 192.168.23.2

Matériaux/ressources utilisés

1. Site officiel du programme 3proxy 3proxy.ru

2. Instructions pour l'installation de 3proxy Ă  partir des sources www.ekzorchik.ru/2015/02/how-to-take-your-socks-proxy

3. Fil de discussion du développeur 3proxy sur GitHub github.com/z3APA3A/3proxy/issues/274

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster