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:
Nun können wir einen simplen Konsolen Editor und den Dante-Server installieren. Dafür nutzen wir folgenden Befehl:
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.
Nun können wir uns an die Konfiguration wagen. Hierfür nutzen wir folgenden Befehl, um die Konfigurationsdatei zu öffnen:
Hier wird nun folgendes eingefügt:
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:
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„.
SSH richtig einrichten
Einen User anlegen
Einen User erstellt man mit folgendem Befehl:
Hier wird ein User namens foobar in der Gruppe users mit der Bash als Standartshell angelegt. Das Homeverzeichnis des Users liegt in /home/foobar (Dieses Verzeichnis muss manuel angelegt werden!). Der User hat bis jetzt aber noch kein Passwort. Das Passwort kann man mit dem "passwd" Befehl ändern. Als root kann man auch das Passwort für andere User ändern:
Hier sollte man auch darauf achten, das man kein zu einfaches Passwort wählt. Also sollte es mindestens 8 Zeichen haben, Groß- und Kleinbuchstaben, Zahlen und Sonderzeichen beinhalten.
Jetzt, da der User angelegt und mit einem (sicheren) Passwort versehen wurde, ist es an der Zeit zu testen, ob man sich auch einloggen kann. (Das sollte eigentlich jeder können. Wenn nicht, sollte man sich wundern, wie man überhaupt mit root arbeiten konnte ;) )
nur ausgewählte User zulassen / Sperren
Wir öffnen als erstes folgende Datei
Wer nur bestimmte benutzer explizit für SSH freischalten will kann damit schon vielen SSH-Scans einen Riegel vorschieben. Durch ein hinzufügen der Zeile:
Zum sperren von Usern editieren wir folgende zeile:
Dann Speichern mit Strg+X (wird automatisch geschlossen und es wird gefragt ob die Datei gespeichert werden soll)
Lässt sich der Kreis der SSH-Berechtigten einfach eingrenzen. Die Änderungen werden dann mit einem
wirksam. Gleiches ist mit Gruppen mittels der Verwendung von AllowGroups sinngemäß auf gleiche Weise möglich. Am besten parallel in einer anderen Session einloggen und testen ob alles so funktioniert wie es auch soll, ansonsten sperrt man sich bei einem Tippfehler im Benutzernamen in der Konfigurationsdatei schnell mal selbst aus und muss dann den Server ins Rescue-System rebooten um den Fehler zu beheben
Kann mir jemand sagen was ein Root User ist?
Debian und Ubuntu:
Bei der Installation von Debian kann ebenfalls eine direkte Verwendung des Root-Kontos unterbunden werden. Unter dem auf Debian basierenden Ubuntu gibt es bei der normalen Installation nicht einmal die Möglichkeit, anders zu verfahren. Aus Sicherheitsgründen hat die Benutzergruppe admin dort aber keine weitergehenden Berechtigungen als sudo auszuführen.[3] So können sich ihre Mitglieder zeitweilig die Rechte des Superusers verschaffen. In der Regel wird sudo automatisch aufgerufen, sobald die Rechte des Superusers erforderlich sind. Es ist allerdings mittels des Befehls "sudo passwd" jederzeit möglich, den Root-Account dauerhaft freizuschalten, in dem man ihm ein gültiges Kennwort zuweist.
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:
Code:
apt-get update && apt-get upgrade
Code:
apt-get install nano dante-server
Code:
cat /dev/null > /etc/danted.conf
Code:
nano /etc/danted.conf
Code:
# 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
}
Code:
/etc/init.d/danted stop /etc/init.d/danted start
SSH richtig einrichten
Einen User anlegen
Einen User erstellt man mit folgendem Befehl:
Code:
useradd -g users -d /home/foobar -s /bin/bash foobar
Code:
passwd foobar
Jetzt, da der User angelegt und mit einem (sicheren) Passwort versehen wurde, ist es an der Zeit zu testen, ob man sich auch einloggen kann. (Das sollte eigentlich jeder können. Wenn nicht, sollte man sich wundern, wie man überhaupt mit root arbeiten konnte ;) )
nur ausgewählte User zulassen / Sperren
Wir öffnen als erstes folgende Datei
Code:
nano /etc/ssh/sshd_config
Code:
AllowUsers username1 username2 username3
Code:
DenyUsers username1 username2 username3
Lässt sich der Kreis der SSH-Berechtigten einfach eingrenzen. Die Änderungen werden dann mit einem
Code:
/etc/init.d/sshd restart
wirksam. Gleiches ist mit Gruppen mittels der Verwendung von AllowGroups sinngemäß auf gleiche Weise möglich. Am besten parallel in einer anderen Session einloggen und testen ob alles so funktioniert wie es auch soll, ansonsten sperrt man sich bei einem Tippfehler im Benutzernamen in der Konfigurationsdatei schnell mal selbst aus und muss dann den Server ins Rescue-System rebooten um den Fehler zu beheben
Kann mir jemand sagen was ein Root User ist?
Debian und Ubuntu:
Bei der Installation von Debian kann ebenfalls eine direkte Verwendung des Root-Kontos unterbunden werden. Unter dem auf Debian basierenden Ubuntu gibt es bei der normalen Installation nicht einmal die Möglichkeit, anders zu verfahren. Aus Sicherheitsgründen hat die Benutzergruppe admin dort aber keine weitergehenden Berechtigungen als sudo auszuführen.[3] So können sich ihre Mitglieder zeitweilig die Rechte des Superusers verschaffen. In der Regel wird sudo automatisch aufgerufen, sobald die Rechte des Superusers erforderlich sind. Es ist allerdings mittels des Befehls "sudo passwd" jederzeit möglich, den Root-Account dauerhaft freizuschalten, in dem man ihm ein gültiges Kennwort zuweist.