In diesem Artikel zeigen wir die 3proxy-Konfiguration auf einem dedizierten Server mit ArchLinux/CentOS-Betriebssystem. 3proxy ist eines der wichtigsten und funktionalsten Tools. Es unterstützt verschiedene Protokolle: HTTP, HTTPS, FTP, SOCKS und weitere. Damit richten Sie Ihren eigenen Proxy-Server in wenigen Minuten ein.
Der Artikel enthält eine Schritt-für-Schritt-Anleitung zur Installation und Konfiguration des Programms. Themen wie die Installation von einer offiziellen Quelle, das Einrichten von Konfigurationsdateien und das Öffnen nicht standardmäßiger Ports werden behandelt. Häufige Fehler werden beschrieben und praktische Lösungsvorschläge gegeben. Vor dem Start benötigen Sie einen VPS oder dedizierten Server mit CentOS oder Arch Linux. Alle Schritte im Beispiel werden auf einem dedizierten Server mit CentOS 7 und einer statischen öffentlichen IP-Adresse durchgeführt.
Installation
Schritt 1:
3proxy wird direkt aus den Quellen installiert. Als Compiler wird gcc verwendet. Wir verbinden uns als Root (Superuser) mit dem Server und installieren den Compiler.
yum install gcc
Schritt 2:
Nun müssen Sie die 3proxy-Quelldateien herunterladen. Besuchen Sie dazu die offizielle Website und kopieren Sie den Link zur aktuellen Version:
Falls eine archivierte Version benötigt wird, können Sie den Link auch direkt von GitHub herunterladen :
Zum Zeitpunkt des Schreibens dieses Artikels ist die aktuelle Version 0.9.3. Laden Sie es herunter und entpacken Sie es sofort:
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz
Schritt 3:
Gehen Sie in das Verzeichnis mit dem entpackten Projekt und kompilieren Sie:
cd 3proxy-0.9.3/
make -f Makefile.Linux
Schritt 4:
Wir erstellen Verzeichnisse und kopieren die 3proxy-Datei nach /usr/bin:
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
Schritt 5:
Wir erstellen einen Benutzer für die Arbeit mit dem Katalog. In diesem Fall lautet der Benutzername 3proxyuser:
useradd -s /usr/sbin/nologin -U -M -r 3proxyuser
Wir erteilen dem erstellten Benutzer die Rechte zum Arbeiten mit Verzeichnissen:
chown -R 3proxyuser:3proxyuser /etc/3proxy
chown -R 3proxyuser:3proxyuser /var/log/3proxy
chown -R 3proxyuser:3proxyuser /usr/bin/3proxy
Erstellen wir nun eine Konfigurationsdatei mit dem folgenden Befehl:
touch /etc/3proxy/3proxy.cfg
Bei Bedarf können Sie die Berechtigungen für die Konfigurationsdatei für den Root-Benutzer festlegen. Dieser Schritt ist nicht zwingend erforderlich, bietet aber zusätzlichen Schutz.
chmod 600 /etc/3proxy/3proxy.cfg
3Proxy-Konfiguration
Schritt 6:
Es ist notwendig, die zuvor erstellte Konfigurationsdatei korrekt auszufüllen. Ermitteln Sie zunächst die UID und GID des Benutzers mit dem folgenden Befehl:
id 3proxyuser
In unserem Fall sind dies folgende Werte:
Zum Ausfüllen der Konfigurationsdatei können Sie vorgefertigte Konfigurationen verwenden oder die Dokumentation auf der offiziellen Website nutzen. Eine Beispieldatei ist bereits standardmäßig vorinstalliert; Sie finden sie unter folgendem Pfad: /cfg/3proxy.cfg.sample
Als Beispiel betrachten wir zwei Konfigurationstypen: mit und ohne Protokollierung . Jede Zeile wird von Kommentaren begleitet (diese sind mit dem Symbol „#“ gekennzeichnet).
Dies ist ein Beispiel für eine fertige Konfiguration ohne Protokollierung :
# 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
Wir haben die Option einer Konfigurationsdatei ohne Protokollierung erwogen. Nun erstellen wir eine Konfigurationsdatei mit Protokollierung und Benutzerauthentifizierung ; diese wird später bei der Servereinrichtung verwendet.
Stellen Sie sicher, dass Sie Autorisierungsinformationen angeben, da der Server auch über nicht standardmäßige Ports erkannt werden kann.
# 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
Damit ist die Einrichtung der Hauptkonfigurationsdatei abgeschlossen. Wir fahren mit der letzten Phase und dem Start fort.
Schritt 7:
Erstellen Sie eine Initialisierungsdatei für systemd:
touch /etc/systemd/system/3proxy.service
Erteilen Sie die erforderlichen Rechte:
chmod 664 /etc/systemd/system/3proxy.service
Kopieren Sie die folgenden Werte, fügen Sie sie in die Datei ein und speichern Sie sie:
[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»
Bitte beachten Sie: Im Feld „ExecStop“ muss der Benutzername angegeben werden, der in Schritt 5 erstellt wurde.
Danach müssen Sie die Daemon-Konfiguration mit dem folgenden Befehl aktualisieren:
systemctl daemon-reload
Schritt 8:
Wir müssen lediglich den konfigurierten 3proxy starten, ihn zum Autostart hinzufügen und auch Ports in der Firewall öffnen.
Zum Autostart hinzufügen, starten und Status prüfen:
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
Nach der Überprüfung des Status sehen wir die Information, dass 3proxy erfolgreich gestartet wurde:
Jetzt müssen nur noch die Ports geöffnet werden:
firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload
Starten Sie den Server gegebenenfalls neu. Mit folgendem Befehl können Sie überprüfen, ob die Ports geöffnet sind:
firewall-cmd --list-all
Was sollte sein:
Wie wir sehen können, wurden beide Ports erfolgreich geöffnet und werden abgehört. Die HTTP-Verbindung besteht über den ersten Port, die SOCKS-Verbindung über den zweiten Port.
Überprüfen Sie die Verbindung über einen beliebigen geeigneten Dienst:
Alles funktioniert. Wir empfehlen jedoch dringend, keine ungesicherte Verbindung ohne Benutzername/Passwort-Authentifizierung und mit Standardports zu verwenden . Achten Sie beim Einrichten der Konfigurationsdatei darauf, einen Benutzernamen und ein sicheres Passwort festzulegen und die Ports auf nicht standardmäßige Ports zu ändern . In Ausnahmefällen ist die Authentifizierung per IP-Adresse möglich.
Allgemeine Probleme
Ist ein Fehler aufgetreten und der Proxy funktioniert nicht? Möglicherweise wurde die 3proxy-Konfiguration falsch durchgeführt. Wir betrachten die häufigsten Probleme und ihre Lösungen bei der Installation und Konfiguration des Dienstprogramms.
Keine Verbindung
Das häufigste Problem vieler Nutzer ist eine nicht erreichbare Verbindung, obwohl die Konfigurationsdateien scheinbar korrekt sind. Wenn Sie sicher sind, dass alle Einstellungen korrekt vorgenommen wurden, der Hosting-Anbieter den gewählten Port nicht beschränkt und alle Daten auf einen funktionierenden Dienst hinweisen, liegt das Problem möglicherweise an der Firewall, genauer gesagt an ihrer falschen Konfiguration. Beispielsweise können mehr als zwei Programme auf dem System installiert sein, die miteinander in Konflikt geraten. Um das Problem zu lösen, reicht es aus, eine bestimmte Firewall zu verwenden. Wir empfehlen Ihnen, nur iptables oder firewall-cmd auszuwählen.
Der Dienst startet nicht
Der Dienst startet nicht, nachdem alle erforderlichen Konfigurationsdateien eingerichtet wurden. Dies tritt auf, wenn ein Konfigurationsschritt ausgelassen, die entsprechenden Berechtigungen nicht erteilt oder ein kleiner Fehler in den Konfigurationsdateien enthalten ist. Wir empfehlen Ihnen, die Anweisungen Schritt für Schritt erneut sorgfältig durchzugehen, da Sie möglicherweise einen Schritt übersehen haben. Sollte dies nicht helfen, empfiehlt sich eine Neuinstallation des Betriebssystems und die Durchführung aller Schritte von vorn. Wir empfehlen, die Beispielkonfiguration unter /cfg/3proxy.cfg.sample als Testkonfiguration und die vorinstallierte Firewall-Befehlszeile als Firewall zu verwenden.
Protokollierung
Das letzte, aber nicht weniger wichtige Problem betrifft die Dateispeicherung. 3proxy benötigt während der Installation mehrere MB, die Größe kann sich jedoch im Laufe der Zeit nur durch die Protokollierung deutlich erhöhen. Viele Benutzer aktivieren zwar die Protokollierung in einer separaten Datei, richten aber keine Rotation ein und löschen keine irrelevanten Protokolle. Zur Lösung dieses Problems bieten sich drei Möglichkeiten an:
- Protokollierung aktivieren;
- Löschen Sie regelmäßig irrelevante Protokolle.
- Aktivieren Sie die Rotation, wie in der obigen Konfiguration beschrieben. Beispielsweise bedeutet „rotate 30“ in der Konfigurationsdatei, dass 3proxy nur die letzten 30 Dateien speichert.
Fazit
Die Installation und Konfiguration von 3proxy unter CentOS und ArchLinux ist relativ einfach und gleichzeitig effektiv. Der Artikel beschreibt die Schritte zur Installation der erforderlichen Pakete, zur Konfiguration der Konfigurationsdateien und zum Starten des Dienstes. Mit den gewonnenen Kenntnissen können Sie Ihren Proxyserver problemlos selbst installieren und konfigurieren.