Ich erkläre heute mal im Schnelldurchlauf wie man sich mit Hilfe von NGINX einen TCP-Proxy einrichten kann.
Dieses Tutorial wird auf einem Vultr-Server erklärt dieser läuft mit Debian 9 x64.
Alle Operationen wurden mit dem "root"-User ausgeführt, solltet ihr auf diesen User keinen Zugang haben / damit diese Commands nicht ausführen wollen könnt ihr vor die Commands "sudo " setzen
Linux azeyco-vultr38 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2+deb9u2 (2017-06-26) x86_64 GNU/Linux
----------------------------------------------------
Distributor ID: Debian
Description: Debian GNU/Linux 9.0 (stretch)
Release: 9.0
Codename: stretch
Installation
Als erstes installieren wir NGINX, um sicher zu gehen das wir auch alles aktuell haben fahren wir davor einen update und upgrade der Repos.
Nachdem wir das erledigt haben, können wir NGINX installieren.
Konfiguration
Nachdem NGINX hoffentlich erfolgreich installiert worden ist, nehmen wir und die Konfiguration vor.
Da wir bei einem TCP-Proxy die Webserver Funktionalitäten nicht benötigen sondern nur die "stream" Funktionen können wir den gesamten http{} block in der nginx.conf löschen.
Bevor wir das tun schreiben wir uns aber einen Wert auf, dieser wird bei der nachfolgenden Konfiguration benötigt:
Nachdem wir die Ausgabe (eine Zahl) aufgeschrieben haben, kann es weiter gehen.
cd /etc/nginx
rm nginx.conf
wget https://pastebin.com/raw/Md3CETHe -O nginx.conf
mkdir tcp-proxies
Wir haben nun die Webserver Funktionalitäten abgeschaltet und die NGINX Konfigurationsdatei auf das Minimum minimiert.
Nun tragen wir die Zahl die wir uns aufgeschrieben haben in die Konfiguration ein
Wir ersetzen das "hier_der_wert" mit der Zahl:
=>
Anschließend die Tastenkombination STRG+X betätigen und mit y und Enter bestätigen.
TCP-Proxy's einrichten
Nun können Proxy's erstellen wie wir lustig sind, solang uns die Ports ausreichen.
Ihr könnt eigentlich so jeden Port zwischen 1000-65000 sicher nutzen.
Nun sind wir wieder im Editor und schreiben NGINX vor, wohin er Verbindungen von einem Port weiterleiten soll:
Als Beispiel habe ich mir jetzt einfach einen Minecraft-Server genommen, diesen möchte ich mit diesem Proxy nun verstecken
Wir schreiben also diese Konfiguration:
sollten wir UDP Verbindungen auch Weiterleiten wollen müssen wir nach dem "listen 10240" noch ein "udp" hinschreiben damit das dann so aussieht:
dies benötigen wir aber aktuell nicht.
Wir betätigen erneut STRG+X gefolg von y und Enter.
3.2.1. Start
Anschließend restarten / reloaden wir nginx und versuchen uns mit der proxy-ip:10240 mit dem Minecraft-Server zu verbinden.
=>
----------------------
Damit sollte es auch gewesen sein, wenn der Server worauf dieser Proxy läuft DDoS geschützt ist könnt ihr so mehrere Dienste mit einem DDoS Schutz schützen.
Der Vorteil an NGINX ist es verbraucht extrem wenig Resourcen wodurch der DDoS geschützte Server worauf NGINX laufen soll eine billigkiste für 2,50 - 5 Euro sein kann.
Dabei kann ich BlazingFast ihre 5 Euro VPS Server wirklich empfehlen, der DDoS Schutz da wird auch immer besser.
Bei Fragen, Problemen und weiteren Tutorial wünschen einfach unten hinschreiben.
vultr038.azey.co wurde von Vultr zu Verfügung gestellt.
Wenn ihr mich unterstützen möchtet und gute Server haben wollt nutzt diesen Reflink: https://www.vultr.com/?ref=7152901
Wenn nicht dann diesen: https://www.vultr.com
VULTR is a registered trademark of Vultr Holdings Corporation.