Dans cet article, nous allons présenter la configuration de 3proxy sur un serveur dédié fonctionnant sous ArchLinux/CentOS. 3proxy est l'un des outils les plus pertinents et fonctionnels. Il prend en charge différents types de protocoles : HTTP, HTTPS, FTP, SOCKS, etc. Il vous permettra de configurer votre propre serveur proxy en quelques minutes.
Cet article fournit un guide pas à pas pour l'installation et la configuration de l'utilitaire. Il aborde des sujets tels que l'installation à partir d'une source officielle, la configuration des fichiers, l'ouverture de ports non standard, et décrit les erreurs courantes en proposant des solutions pratiques. Avant le lancement, vous devez commander un serveur VPS ou dédié fonctionnant sous CentOS ou Arch Linux. Tous les gestes de cet exemple seront effectués sur un serveur dédié CentOS 7 doté d'une adresse IP publique statique.
Installation
Étape 1
3proxy est installé directement à partir des sources. gcc sera utilisé comme compilateur. Nous nous connectons au serveur en tant que root (superutilisateur) et installons le compilateur.
yum install gcc
Étape 2
Il faut maintenant télécharger les fichiers sources de 3proxy. Pour ce faire, rendez-vous sur le site officiel et copiez le lien vers la version actuelle :
Si une version archivée est nécessaire, vous pouvez également télécharger le lien directement depuis GitHub :
Au moment de la rédaction de cet article, la version actuelle est la 0.9.3. Téléchargez-la et décompressez-la immédiatement :
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz
Étape 3
Accédez au répertoire contenant le projet décompressé et compilez :
cd 3proxy-0.9.3/
make -f Makefile.Linux
Étape 4
Nous créons des répertoires et copions le fichier 3proxy dans /usr/bin :
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
Étape 5
Nous créons un utilisateur pour interagir avec le catalogue. Dans ce cas, le nom d'utilisateur est 3proxyuser :
useradd -s /usr/sbin/nologin -U -M -r 3proxyuser
Nous accordons les droits de travailler avec les répertoires à l'utilisateur créé :
chown -R 3proxyuser:3proxyuser /etc/3proxy
chown -R 3proxyuser:3proxyuser /var/log/3proxy
chown -R 3proxyuser:3proxyuser /usr/bin/3proxy
Créons maintenant un fichier de configuration à l’aide de la commande :
touch /etc/3proxy/3proxy.cfg
Si nécessaire, vous pouvez définir les permissions du fichier de configuration pour l'utilisateur root. Cette étape n'est pas obligatoire, mais elle renforce la sécurité :
chmod 600 /etc/3proxy/3proxy.cfg
Configuration du proxy 3
Étape 6
Il est nécessaire de remplir correctement le fichier de configuration créé précédemment. Commencez par déterminer l'UID et le GID de l'utilisateur à l'aide de la commande suivante :
id 3proxyuser
Dans notre cas, il s’agit des valeurs suivantes :
Pour remplir le fichier de configuration, vous pouvez utiliser des configurations prédéfinies ou consulter la documentation sur le site web officiel. Un fichier d'exemple est également préinstallé par défaut ; vous le trouverez à l'emplacement suivant : /cfg/3proxy.cfg.sample
À titre d’exemple, nous considérerons deux types de configuration : avec et sans journalisation . Chaque ligne sera accompagnée de commentaires (marqués par le symbole « # »).
Voici un exemple de configuration prête à l'emploi sans journalisation :
# We specify the user's data that we found out in the previous command
setgid 995
setuid 997
# Type the NS-servers. It is possible to clarify your own servers at /etc/resolv.conf
nserver 1.1.1.1
nserver 8.8.8.8
# Cache size
nscache 65536
# Timeouts
timeouts 1 5 30 60 180 1800 15 60
# Authorization of users by login/password (if required). You may not to use it or specify the path to the file in which authorization data is stored, for example, users $/etc/3proxy/.authfile
# If you insert a password in md5 format, replace “CL” with “CR”, as indicated in the example. You can use 2 methods at the same time.
auth cache strong
users "userproxy:CL:passwordproxy"
users "userproxy2:CR:b89097a7ad0b94f13b3c313ae76699d4 "
# Launch mode. Daemon only.
Daemon
# We write the port through which the http connection will take place. The example shows the standard one. To establish a socks connection, use the command specified in the second line, the port is also standard.
proxy -p3128
socks -p1080
Nous avons envisagé l'option d'un fichier de configuration sans journalisation. Nous allons maintenant créer un fichier de configuration avec journalisation et authentification des utilisateurs ; il sera utilisé ultérieurement lors de la configuration du serveur.
Veillez à fournir les informations d'autorisation, car le serveur peut être détecté même sur des ports non standard.
# Configuring the server to launch from the userproxy user and the passwordproxy password.
users userproxy:CL:passwordproxy
# Specify the user's uid and gid
setgid 995
setuid 997
# Nameservers (NS-servers)
nserver 1.1.1.1
nserver 8.8.8.8
# Timeouts
timeouts 1 5 30 60 180 1800 15 60
# Cache size (standard)
nscache 65536
# Indicate the launch mode
daemon
# We install http proxy on a non-standard 50001 port. If there are several IP addresses on the server, be sure to specify a specific address for connecting the network. For example, "-e91.150.32.146". The argument "i" is a local address.
proxy –p50001
# In a same way as socks proxy, we conduct the installation on a 50002 port.
socks –p50002
# Path to the directory with logs, logs format and proxy rotation
Log /var/log/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotate 30
Ceci termine la configuration du fichier de configuration principal. Passons à l'étape finale : le lancement.
Étape 7
Créez un fichier d'initialisation pour systemd :
touch /etc/systemd/system/3proxy.service
Délivrer les droits nécessaires :
chmod 664 /etc/systemd/system/3proxy.service
Copiez et collez les valeurs suivantes dans le fichier et enregistrez :
[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 3proxyuser`
RemainAfterExit=yes
Restart=on-failure
[Install]
WantedBy=multi-user.target»
Remarque : dans la valeur « ExecStop », vous devez spécifier le nom d’utilisateur créé à l’étape n° 5.
Après quoi, vous devez mettre à jour la configuration du démon avec la commande :
systemctl daemon-reload
Étape 8
La seule chose dont nous avons besoin est de lancer le 3proxy configuré, de l'ajouter au démarrage automatique et également d'ouvrir les ports dans le pare-feu.
Ajoutez-le au démarrage automatique, lancez-le et vérifiez l'état :
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
Après avoir vérifié l'état, nous voyons des informations indiquant que 3proxy a été lancé avec succès :
Il ne reste plus qu'à ouvrir les ports :
firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload
Si nécessaire, redémarrez le serveur. Vous pouvez vérifier si les ports sont ouverts avec la commande :
firewall-cmd --list-all
Ce qui devrait être :
Comme nous pouvons le voir, les deux ports ont été ouverts avec succès et sont écoutés. La connexion http est sur le premier port, les chaussettes sont sur le deuxième port.
Vérifiez la connexion via n'importe quel service pratique :
Tout fonctionne correctement. Nous déconseillons l'utilisation d'une connexion non sécurisée sans authentification (identifiant/mot de passe) ni avec des ports standard . Lors de la configuration, veillez à spécifier un identifiant et un mot de passe complexe, et à utiliser des ports non standard . Dans des cas exceptionnels, l'authentification par adresse IP est possible.
Problèmes communs
Un problème est survenu et le proxy ne fonctionne pas ? La configuration de 3proxy a peut-être été incorrecte. Examinons les problèmes les plus courants et leurs solutions lors de l'installation et de la configuration de l'utilitaire.
Pas de connection
Le problème le plus courant pour de nombreux utilisateurs est une connexion inaccessible alors que les fichiers de configuration semblent correctement configurés. Si vous êtes certain que tous les paramètres sont correctement configurés, que l'hébergeur ne limite pas le port sélectionné et que toutes les données indiquent un service opérationnel, le problème peut provenir du pare-feu, ou plus précisément d'une configuration incorrecte. Par exemple, plusieurs programmes peuvent être installés sur le système et entrer en conflit. Pour résoudre ce problème, il suffit d'utiliser un pare-feu spécifique. Nous vous conseillons de sélectionner uniquement iptables ou firewall-cmd.
Le service ne démarre pas
Le service ne démarre pas après la configuration de tous les fichiers nécessaires. Ce problème survient lorsqu'une étape de configuration est omise, que les droits appropriés ne sont pas attribués ou qu'une erreur mineure s'est glissée dans les fichiers de configuration. Nous vous recommandons de relire attentivement les instructions étape par étape ; il est possible que vous ayez manqué une étape. Si le problème persiste, il serait judicieux de réinstaller le système d'exploitation et de suivre toutes les étapes depuis le début. Nous vous recommandons d'utiliser l'exemple situé dans /cfg/3proxy.cfg.sample comme configuration de test et le pare-feu préinstallé firewall-cmd comme pare-feu.
Journal
Le dernier problème, mais non le moins important, concerne le stockage des fichiers. 3proxy occupe plusieurs Mo lors de l'installation, mais cette taille ne peut être augmentée significativement que par la journalisation au fil du temps. En effet, de nombreux utilisateurs activent l'enregistrement des journaux dans un fichier séparé, mais ne configurent pas la rotation et ne suppriment pas les journaux inutiles. Trois solutions s'offrent à vous pour résoudre ce problème :
- Activer la journalisation ;
- Supprimez périodiquement les journaux non pertinents ;
- Activez la rotation, comme indiqué dans la configuration ci-dessus. Par exemple, « rotate 30 » dans le fichier de configuration signifie que 3proxy ne stockera que les 30 derniers fichiers.
Conclusion
L'installation et la configuration de 3proxy sur les systèmes d'exploitation CentOS et ArchLinux sont relativement simples, mais efficaces. Cet article décrit les étapes d'installation des packages nécessaires, de configuration des fichiers et de lancement du service. Les connaissances acquises vous permettront d'installer et de configurer vous-même votre serveur proxy sans difficulté.