Eigener SOCKS5 Proxy mittels Dante-Server unter Debian / Ubuntu

Es gibt Fälle in denen ein eigener Proxy-Server viel Wert sein kann. Zum Beispiel, wenn man verhindern möchte, dass Webseiten die Herkunft ermitteln können oder Dritte direkt die Region sehen aus welcher man stammt (z.B. mittels utrace) . Aber auch wenn Programme genutzt werden wollen bzw. sollen, die nicht in der eigenen Region verfügbar sind. Gerade für Letzteres ist auch das Programm Proxifier sehr nützlich. Hiermit lassen sich einzelne Programme über den Proxy umleiten oder aber auch der gesamte Netzwerk-Verkehr und das ohne dies bei jeder Anwendung einzeln einrichten zu müssen. Aber was benötigen wir für einen eigenen Proxy-Server? Nun zunächst einmal wäre ein Server ein guter Anfang. Hier könnte ich z.B. einen kurzfristigen Server von OVH empfehlen. Da die Anleitung auf Debian und Ubuntu basiert, würde ich hier – aufgrund der Schlankheit – Debian empfehlen. 

Kommen wir nun also zur Installation. Zunächst einmal sollten wir den Server aktualisieren. Dies geschieht mit folgendem Befehl:

apt-get update && apt-get dist-upgrade -y

Nun können wir einen simplen Konsolen Editor und den Dante-Server installieren. Dafür nutzen wir folgenden Befehl:

apt-get install nano dante-server

Hier werden wir anschließend eine Fehlermeldung sehen, die besagt, dass die Dante-Konfiguration noch nicht erledigt ist. Überschreiben wir nun erstmal die aktuelle Konfiguration mit einer ohne Inhalt. Hierfür können wir einfach „/dev/null“ in die Datei streamen.

cat /dev/null > /etc/danted.conf

Nun können wir uns an die Konfiguration wagen. Hierfür nutzen wir folgenden Befehl, um die Konfigurationsdatei zu öffnen:

nano /etc/danted.conf

Hier wird nun folgendes eingefügt:

# Log Datei
logoutput: /var/log/danted.log

# IP und Port auf dem der Server auf Verbindungen wartet
internal: eth0 port = 9894

# IP Adresse uer die Verbindungen der Clients abgeschickt werden
external: eth0

# method: username benoetigt einen angelegten User im System
# method: none ist zu waehlen wenn keine Authentication gewuecht ist
method: username

# Priviligiert ports wie 80 - 443 etc brauchen root Rechte
user.privileged: root

# Erlaubte IP-- hier werden alle erlaubt 0.0.0.0/0 in den Protocolen TCP / UDP
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
}

# allowed protocols with these source IPs
pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
protocol: tcp udp
}

Was sollte hier noch geändert werden? Nun zunächst einmal müssen wir mittels „ifconfig„-Befehl nachsehen, ob unsere Netzwerk-Schnittstelle wirklich „eth0“ heißt. Ist dem nicht so, dann muss die Zeile „internal: eth0 port = 9894“ angepasst werden (diese muss auch angepasst werden, wenn wir einen anderen Port wollen. Standard für Socks5 wäre 1080). Am Ende der Konfiguration können wir noch einschränken, wer auf unseren Proxy zugreifen darf (zusätzlich wird eine Authentifizierung benötigt). In der Regel kann man hier seine öffentliche IP-Adresse mit „/16„-Postfix nutzen (bei den meisten, nicht allen, Anbietern ändert sich eure IP nur auf den letzten beiden Stellen). Um die Datei zu Speichern drücken wir nun, falls wir diese zuvor mit „nano“ geöffnet haben, Strg+O und anschließend Strg+X, um die Datei zu schließen. Nun müssen wir nur noch den Dante-Server neustarten. Dies geschieht mit folgendem Befehl:

/etc/init.d/danted stop
/etc/init.d/danted start

Und nun können wir endlich testen! Dazu richten wir den Proxy-Server in Proxifier ein, aktivieren hier noch die Authentifizierung (gültige Logins sind selbige wie zum SSH-Terminal) und klicken anschließend auf „check„. Hier sollte nun alles grün sein. Wenn dem nicht so ist, beginnt die Fehlersuche. Hierbei ist uns die Log-Datei eine gute Hilfe „tail -f /var/log/danted.log„.