Modes de paiement Abuse

Installation de 3proxy

05.06.2023, 23:17

3proxy est un serveur proxy gratuit et open source qui est utilisé à diverses fins telles que le filtrage du trafic, la mise en cache et le blocage de sites web spécifiques. Il prend en charge divers protocoles tels que SOCKS v4/v4a/v5, HTTP, HTTPS, FTP, POP3, SMTP, ainsi que des méthodes d'authentification telles que SOCKS5 nom d'utilisateur/mot de passe, NTLM, LDAP, Kerberos et SSO.

Le serveur est hautement personnalisable et permet une gestion détaillée de l'utilisation de la bande passante et des paramètres de connexion. 3proxy peut être installé sur les plateformes Windows, Linux et macOS. Il s'agit d'un serveur proxy léger et facile à utiliser, adapté aux réseaux de petite et moyenne taille. Il est possible de louer un proxy vps.

Installer 3proxy avec support http(s) et socks5-proxy

Il convient d'être prudent, car il n'est pas souhaitable d'installer le serveur sans autorisation. Cela peut conduire à une utilisation non autorisée du serveur par des intrus pour organiser du spamming et un trafic important.

Pour commencer, plusieurs paquets et dépendances doivent être installés.

Pour AlmaLinux, la commande :

yum -y install gcc wget tar

et pour Debian :

apt install -y build-essential wget tar

Téléchargez ensuite les fichiers depuis le site officiel du projet 3proxy, décompressez l'archive et compilez les fichiers téléchargés.

Ensuite, créez les répertoires nécessaires pour les fichiers de configuration et les logs, transférez l'exécutable 3proxy, créez un nouvel utilisateur"proxyuser" et attribuez-lui des droits sur les répertoires. Pour créer un nouveau fichier de configuration, exécutez la commande :

touch /etc/3proxy/3proxy.cfg

Attribuer les permissions à l'utilisateur root uniquement avec chmod 600 /etc/3proxy/3proxy.cfg.

Après avoir créé un nouveau fichier de configuration, il est nécessaire de le remplir correctement. Pour ce faire, notez l'uid et le gid de l' utilisateur"proxyuser", puis utilisez un éditeur de texte pour copier et coller le texte du fichier de configuration de l'exemple. Sauvegardez les changements dans le fichier de configuration et nous avons un 3proxy installé avec le support http(s) et socks5-proxy.

Fichier de configuration

Vous trouverez ci-dessous un exemple de fichier de configuration :

Configurer le serveur pour qu'il fonctionne en tant que proxyuser

(insérer l'uid et le gid de notre utilisateur que nous avons appris plus tôt).
setgid 991
setuid 991

Spécifiez les bons serveurs de noms. Voir /etc/resolv.conf :
nserver 8.8.8.8.8
nserver 8.8.4.4

Utilisez les délais d'attente et la taille du cache par défaut pour les requêtes DNS:
timeouts 1 5 30 60 180 180 1800 1800 15 60
nscache 65536

Spécifiez le mode de démarrage en tant que démon:
daemon

Indiquez l'adresse IP de l'interface externe du serveur:
external 111.111.111.111.111.111 (ou ignorez la ligne si l'IP est la même).

Spécifiez l'adresse IP de l'interface interne du serveur:
internal 192.168.0.1 (ou l'ignorer pour que le proxy écoute toutes les IP).

Configurez le proxy http sur le port standard 3128:
proxy -p3128 -n -a (spécifiez votre port, en vous assurant qu'il fonctionne au préalable).

Configurer le proxy socks sur le port standard 1080:
socks -p1080 (spécifiez votre port, en vérifiant qu'il fonctionne au préalable).

Spécifier le chemin des logs, leur format et leur rotation:
log /var/log/3proxy/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotation 30

Ensuite, créez un fichier d'initialisation pour systemd et configurez les bonnes permissions :

# touch /etc/systemd/system/3proxy.service
# chmod 664 /etc/systemd/system/3proxy.service

Le texte suivant doit être inséré dans ce fichier :

[Unit] 
Description=3proxy Proxy Server 
After=network.target 
[Service] 
Type=simple 
ExecStart=/usr/bin/3proxy /etc/3proxy/3proxy.cfg 
ExecStop=/bin/kill `/usr/bin/pgrep proxyuser` 
RemainAfterExit=yes 
Restart=on-failure 
[Install] 
WantedBy=multi-user.target

Sauvegardez et mettez à jour la configuration de systemd:

# systemctl daemon-reload

Démarrez 3proxy et ajoutez-le à l'autochargeur :

# systemctl start 3proxy
# systemctl enable 3proxy
N'oubliez pas d'ouvrir le port proxy http dans firewalld ou iptables.

La configuration est terminée. Vous avez maintenant un http-proxy sur le port 3128 et un socks-proxy sur le port 1080.

Résolution de quelques problèmes

Le premier problème est qu'il est possible qu'après avoir enregistré un nouveau domaine, celui-ci ne soit pas disponible à cause de la mise en cache du nom de domaine. Pour résoudre ce problème, vous devez attendre que les enregistrements DNS soient mis à jour ou ajouter l'adresse IP de votre serveur et du nouveau domaine à votre fichier hosts. Cela vous permettra d'accéder au nouveau domaine jusqu'à ce que les enregistrements DNS soient mis à jour.

Deuxième problème - si vous utilisez un serveur proxy avec des ports par défaut, le serveur peut tôt ou tard être détecté. Pour résoudre ce problème, il est recommandé de modifier les ports.

Par exemple, vous pouvez définir le port 7834 sur le proxy http et 7835 sur Socks. Cependant, ces ports peuvent également être détectés, c'est pourquoi vous pouvez configurer le pare-feu de manière à n'autoriser l'accès au serveur qu'à partir de certaines adresses, tandis que les autres se verront refuser l'accès. Cette solution est assez fiable, bien qu'elle ne soit pas très souple, car vous n'aurez peut-être pas accès à une adresse IP statique.

Le troisième problème est que si vous utilisez un serveur proxy et que vous conservez des journaux de toutes les connexions, ceux-ci peuvent devenir très volumineux au fil du temps et occuper la majeure partie de l'espace libre sur votre disque. Pour éviter ce problème, vous devez veiller à la rotation des journaux ou ne pas les conserver du tout.

Il existe différentes méthodes de rotation des journaux qui vous permettent de ne conserver que les derniers fichiers journaux et de supprimer automatiquement les journaux plus anciens. Il est donc préférable de mettre en place le processus de rotation des journaux à l'avance afin d'éviter de saturer le disque. Cela permettra de sauvegarder toutes les données et d'éviter de perdre des informations lors de l'utilisation d'un serveur proxy.

Configuration simplifiée d'un serveur proxy http(s) anonyme sur le port 3128

users proxyuser:CL:password

daemon

log /var/log/3proxy/3proxy.log D

rotate 30

auth strong

proxy -n -a

setgid 65534

setuid 65534

Il est également nécessaire de créer un répertoire pour les logs et de définir les permissions (nous démarrons le serveur avec les droits minimaux de personne dans le système en utilisant les directives setgid/setud) :

mkdir /var/log/3proxy ; chown nobody /var/log/3proxy

Installation de 3proxy dans Docker

Considérons l'installation de 3proxy dans Docker.

Tout d'abord, nous devons installer quelques paquets (et pour les systèmes d'exploitation Debian et Ubuntu récemment installés, nous pouvons également avoir besoin de mettre à jour l'index des paquets apt avec # apt update).

Pour AlmaLinux et CentOS :

# yum install docker docker-compose

Pour Ubuntu et Debian :

# apt install docker docker.io docker-compose

Télécharger l'image :

# docker pull 3proxy/3proxy

Par défaut, 3proxy utilise un environnement chroot sécurisé dans /usr/local/3proxy avec uid 65535 et gid 65535, et s'attend à ce que le fichier de configuration de 3proxy soit placé dans /usr/local/etc/3proxy. Les chemins d'accès au fichier de configuration doivent être spécifiés par rapport à /usr/local/3proxy, c'est-à-dire qu'ils doivent être /logs au lieu de /usr/local/3proxy/logs. Dans le chroot, l'autorisation pour le nserver est requise.

Pour ce faire, créez un répertoire et un fichier de configuration 3proxy:

# mkdir -p /etc/dockerapp/3proxy
# touch /etc/dockerapp/3proxy/3poxy.conf

Ensuite, utilisez l'éditeur de texte de votre choix pour éditer le fichier de configuration 3proxy .conf créé. Pour exécuter 3proxy dans Docker, la configuration minimale est suffisante :

nserver 8.8.8.8.8
socks -p3129

Afin d'ajouter la journalisation et l'utilisateur, vous devez ajouter au fichier de configuration 3proxy:

log /logs/3proxy.log 
auth strong 
users "proxyuser:CR:87beeef3f4ee4661ac1897eca216fc26"

Au lieu de"87beeef3f4ee4661ac1897eca216fc26", vous devez spécifier le hachage MD5 du mot de passe de l'utilisateur du proxy. Vous pouvez trouver le hachage MD5 à l'aide de générateurs en ligne.

Démarrons 3proxy en utilisant docker-compose. Cela nécessite la création d'un fichier de configuration au format .yml:

# touch /etc/dockerapp/3proxy/docker-compose.yml

Insérez le texte suivant à l'aide d'un éditeur de texte :

version: "2.1" 
services: 
  3proxysvc: 
image: 3proxy/3proxy:latest 
container_name: 3proxy 
volumes: 
   - /etc/dockerapp/3proxy/conf:/usr/local/3proxy/conf 
ports: 
   - 8080:3129 
restart: unless-stopped

Enregistrer. Dans ce fichier, nous avons spécifié le port externe 8080. Nous pouvons maintenant l'exécuter :

# docker-compose -f /etc/dockerapp/3proxy/docker-compose.yml up -d

Nous obtiendrons une réponse comme celle-ci :

Création du réseau"3proxy_default" avec le pilote par défaut
Création de 3proxy ... terminé

Test :

# docker ps

Nous obtenons une réponse avec l'ID du conteneur, l'image, l'état, les ports utilisés et le nom :

48cc0cd140cd 3proxy/3proxy:latest "/bin/3proxy /etc/3p..." 5