[TUT] NGINX als TCP-Proxy

  • ePLGOj.png

    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

    Code
    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.

    Code
    apt update && apt upgrade -y
    apt install nginx


    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:

    Code
    ulimit -n

    Nachdem wir die Ausgabe (eine Zahl) aufgeschrieben haben, kann es weiter gehen.

    Code
    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

    Code
    nano nginx.conf

    Wir ersetzen das "hier_der_wert" mit der Zahl:
    DvSD0r.png=> 1akXfc.png

    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.

    Code
    cd tcp-proxies
    nano azey.proxy


    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:

    Code
    server{
        listen 10240;
        proxy_pass 164.132.205.119:25565;
    }

    sollten wir UDP Verbindungen auch Weiterleiten wollen müssen wir nach dem "listen 10240" noch ein "udp" hinschreiben damit das dann so aussieht:

    Code
    server{
        listen 10240 udp;
        proxy_pass 164.132.205.119:25565;
    }

    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.

    Code
    service nginx restart
    ODER
    service nginx reload

    eZlk0C.png => ns330r.png


    ----------------------


    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.

    4HDt.gif

    Experte für S3-Buckets
    Bestätigt durch SirImperare

    Einmal editiert, zuletzt von Azey (20. Oktober 2018 um 01:28)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!