Wie man einen SOCKS5-Proxy auf einem Virtual Private Server (VPS) einrichtet

Wie man einen SOCKS5-Proxy auf einem Virtual Private Server (VPS) einrichtet

02.12.2022
Autor: HostZealot Team
2 min.
431

Obwohl Proxy-Server in ihrer Funktion VPNs sehr ähnlich sind, haben sie einen wesentlichen Unterschied – der Datenverkehr wird nicht verschlüsselt, was bedeutet, dass das Sicherheitsniveau viel niedriger ist als bei virtuellen privaten Netzwerken. Trotzdem werden Proxyserver aktiv genutzt, weil diese Methode es ermöglicht:

  • Ihre IP-Adresse bei der Basisverifizierung verbergen;
  • Ihren tatsächlichen Standort verbergen  – die von Ihnen besuchten Websites zeichnen nur die Region auf, in der sich der Proxy-Server befindet;
  • Schützen Sie Ihr Gerät vor unerwünschten Websites, indem Sie solche Websites blockieren, die garantiert gefährlich sind, Malware enthalten usw.

Sie sollten sich jedoch darüber im Klaren sein, dass ein Proxy-Server Sie nicht vor fortschrittlichen Erkennungsmethoden schützen kann; er verschlüsselt den Datenverkehr nicht und kann Daten über die Nutzer sammeln. Ob diese Daten an Dritte weitergegeben werden, ist offen, daher sollten Sie nur vertrauenswürdige Proxyserver verwenden.

Der folgende Artikel beschreibt, wie man einen SOCKS5-Proxy auf einem virtuellen privaten Server einrichtet, sowie Variationen dieser Technologie.

Welche Arten von Proxys es gibt

Es gibt fünf Haupttypen von Proxys:

  1. FTP-Proxys – diese werden zum Hochladen von Daten auf FTP-Server verwendet.
  2. CGI (Anonymisierer) sind in der Regel Websites, über die Sie auf andere gesperrte Websites zugreifen können. Wenn Sie also zum Beispiel eine Website besuchen möchten, die in Ihrem Land gesperrt ist, gehen Sie einfach zum Website-Anonymisierer und geben Sie die gewünschte URL in das Adressfeld ein. Sie brauchen nichts auf Ihrem Computer zu installieren – alles wird über die Cloud erledigt. Der einzige Nachteil ist, dass es Geld kosten kann.
  3. SMTP, POP3 und IMAP sind Technologien, die zum Senden und Empfangen von E-Mails verwendet werden.
  4. HTTP- und HTTPS-Proxys sind für das Surfen im Internet gedacht.
  5. SOCKS5 ist ein Dienst, der den ein- und ausgehenden Internetverkehr über einen Remote-Proxy umleitet. Es bietet eine Möglichkeit, Ihre echte IP-Adresse zu maskieren, Ihren Standort zu verbergen und die versehentliche Weitergabe sensibler Informationen zu verhindern. Optimal zur Umgehung der regionalen Zensur für VPS.

Die fortschrittlichste und gängigste Technologie ist SOCKS5, die ebenfalls am besten in Verbindung mit VPS eingesetzt wird.

Wie konfiguriert man einen SOCKS5-Proxy auf einem virtuellen Server mit Ubuntu 18 und höher?

Seien wir ehrlich, es wird nicht schnell und einfach sein. Aber wenn Sie unsere Anweisungen genau befolgen, wird es nicht viel Zeit und Mühe kosten.

Als erstes müssen Sie einen VPS auf Basis von Ubuntu 18.04.4 LTS mieten. Das ist ganz einfach: Wenden Sie sich an Ihren Hosting-Provider und teilen Sie ihm mit, an welchem Tarif Sie interessiert sind. Sie helfen Ihnen, einen individuellen VPS oder VDS zu finden, der Ihren Bedürfnissen entspricht.

Verbinden Sie sich dann als Administrator mit dem Server und aktualisieren Sie die Pakete:

 

apt update
apt full-upgrade


Finden Sie heraus, welche Version des Dante SOCKS-Server-Pakets sich in Ihren Repositories befindet:

apt search dante-server
 
dante-server/jammy 1.4.2+dfsg-7build4 amd64
  SOCKS (v4 and v5) proxy daemon (danted)


Installieren Sie nun Dante:

apt install dante-server


Und setzen Sie es in den Autostart:

systemctl is-enabled danted
enabled


Öffnen Sie nun die Konfigurationsdatei /etc/danted.conf im Editiermodus und tragen Sie dort die gewünschten Parameter ein. Beispielhafte Inhalte:

logoutput: syslog stdout /var/log/sockd.log
#logoutput: stderr
 
internal: ens3 port = 1080
external: ens3
 
socksmethod: username
#socksmethod: username none
 
user.privileged: root
user.unprivileged: nobody
user.libwrap: nobody
 
client pass {
        from: 0.0.0.0/0 to: 0.0.0.0/0
        log: error connect disconnect
}
 
client block {
        from: 0.0.0.0/0 to: 0.0.0.0/0
        log: connect error
}
 
socks pass {
        from: 0.0.0.0/0 to: 0.0.0.0/0
        log: error connect disconnect
}
 
socks block {
        from: 0.0.0.0/0 to: 0.0.0.0/0
        log: connect error

}


Hier ist eine Klarstellung erforderlich:

  • logoutput – definiert den Mechanismus der Verbindungsprotokollierung (in unserem Beispiel wird alles über das Standard-Systemprotokoll abgewickelt).
  • user.privived – gibt dem Server root-Rechte, um die Berechtigungen zu überprüfen.
  • user.uncitationd – wird benötigt, um den Server daran zu hindern, als Benutzer ohne Berechtigungen zu laufen.
  • internal – gibt den Port an, auf dem der Dienst läuft und die IP-Adressen, die eine Verbindung herstellen dürfen.
  • extern – definiert die Netzwerkschnittstelle für ausgehende Verbindungen.

Erstellen wir nun einen Benutzer, der unseren SOCKS5-Server verwenden wird. Es ist zwingend erforderlich, sie der Proxy-Gruppe hinzuzufügen:

useradd -s /bin/false proxyuser && sudo passwd proxyuser
usermod -aG proxy proxyuser


Lassen Sie dann in der Firewall den TCP-Port 1080 für Client-Verbindungen zu:

sudo ufw allow 1080/tcp


Damit ist die Konfiguration des SOCKS5-Proxys auf dem VPS abgeschlossen. Danach überprüfen Sie die Verbindung über Dante – verwenden Sie einen kostenlosen SOCKS5-fähigen Anti-Detection-Browser wie Dolphin Anty oder einen anderen ähnlichen Browser.

wie man einen socks5-proxy auf einem virtual private server (vps) einrichtet

Installation des SOCKS-Servers Dante in Ubuntu 16.04

Bei solchen älteren Versionen von Ubuntu ist die Standardeinstellung eine veraltete Version von Dante Server 1.1.19, die außerdem nicht mit Login und Passwort funktioniert. Das heißt, der Proxy-Zugang wird ausschließlich durch Änderung der iptables-Regeln geregelt. Daher müssen wir zunächst die erforderliche Software und die Abhängigkeiten installieren:

apt-get install -y autoconf automake libtool pkg-config checkinstall libwrap0 libwrap0-dev libpam0g-dev


Legen Sie dann ein Verzeichnis für die spätere Arbeit an und navigieren Sie zu diesem Verzeichnis:

mkdir dante && cd ~/dante


Rufen Sie jetzt die offizielle Website des Entwicklers auf und laden Sie die neueste Version von Dante herunter. Sie können dies auch über die Befehlszeile tun:

wget https://www.inet.no/dante/files/dante-1.4.2.tar.gz


Entpacken Sie die Datei und wechseln Sie in das entsprechende Verzeichnis:

tar -zxvf dante-1.4.2.tar.gz
cd dante-1.4.2


Legen Sie die Konfiguration der Baugruppe fest:

./configure --prefix=/etc/dante


Das Ergebnis sollte in etwa so aussehen:

Configure status:
Client:        	 Enabled
Server:        	Enabled
Preloading:	Enabled
Libwrap:     	Enabled
BSD Auth:   	Disabled, usable bsd_auth.h not found
PAM:           	Enabled
GSSAPI:       	Not found/disabled
KRB5:          	 Not found/disabled
SASL:          	  Not found/disabled
UPNP:          	Not found/disabled
Compatability: 	issetugid setproctitle strlcpy strvis
Modules:
redirect:      	Not found
bandwidth: 	Not found
ldap:         	    Not found


Der nächste Schritt ist die Kompilierung des Quellcodes:

make


Sie können nun mit der Installation des zusammengestellten Servers fortfahren. Dies geschieht am besten über checkinstall:

checkinstall
# Нажмите y, затем Enter для создания каталога с документацией.
The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs?  [y]: y

Preparing package documentation...OK

# Описание можно не прописывать, везде жмите Enter
Please write a description for the package.
End your description with an empty line or EOF.

>> 


Wenn die Installation abgeschlossen ist, wird ein Deb-Paket erstellt (dante_1.4.2-1_amd64.deb), das jederzeit auf einer anderen virtuellen Maschine installiert werden kann, aber jetzt sind keine Vorkonfiguration und keine Builds mehr erforderlich.

Wenn ein installiertes Paket deinstalliert werden muss, verwenden Sie den Befehl:

dpkg -r dante


So richten Sie einen Server-Autostart ein

Wechseln Sie in das Verzeichnis /etc/init.d/ und erstellen Sie ein Skript namens sockd:

nano /etc/init.d/sockd


Sein Inhalt sollte folgendermaßen aussehen

#! /bin/sh
### BEGIN INIT INFO
# Provides:      	sockd
# Required-Start:	$remote_fs $syslog
# Required-Stop: 	$remote_fs $syslog
# Default-Start: 	2 3 4 5
# Default-Stop:  	0 1 6
# Short-Description: Start the dante SOCKS server.
# Description:   	SOCKS (v4 and v5) proxy server daemon (sockd).
#                	This server allows clients to connect to it and
#                    request proxying of TCP or UDP network traffic
#                	with extensive configuration possibilities.
### END INIT INFO
#
# dante SOCKS server init.d file. Based on /etc/init.d/skeleton:
# Version:  @(#)skeleton  1.8  03-Mar-1998  miquels@cistron.nl
# Via: https://gitorious.org/dante/pkg-debian
PATH=/sbin:/usr/sbin:/bin:/usr/bin
NAME=sockd
DAEMON=/etc/dante/sbin/$NAME
DAEMON_ARGS="-D"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
DESC="Dante SOCKS daemon"
CONFFILE=/etc/$NAME.conf
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
# and status_of_proc is working.
. /lib/lsb/init-functions
set -e
# This function makes sure that the Dante server can write to the pid-file.
touch_pidfile ()
{
  if [ -r $CONFFILE ]; then
    uid="`sed -n -e 's/[[:space:]]//g' -e 's/#.*//' -e '/^user\.privileged/{s/[^:]*://p;q;}' $CONFFILE`"
	if [ -n "$uid" ]; then
      touch $PIDFILE
      chown $uid $PIDFILE
	fi
  fi
}
case "$1" in
  start)
	if ! egrep -cve '^ *(#|$)' \
        -e '^(logoutput|user\.((not)?privileged|libwrap)):' \
        $CONFFILE > /dev/null
	then
        echo "Not starting $DESC: not configured."
        exit 0
	fi
	echo -n "Starting $DESC: "
    touch_pidfile
    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
        || return 1
    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
        $DAEMON_ARGS \
        || return 2
	echo "$NAME."
	;;
  stop)
	echo -n "Stopping $DESC: "
    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
    RETVAL="$?"
	[ "$RETVAL" = 2 ] && return 2
    start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
	[ "$?" = 2 ] && return 2
	echo "$NAME."
	;;
  reload|force-reload)
	#
    #   If the daemon can reload its config files on the fly
    #   for example by sending it SIGHUP, do it here.
	#
    #   Make this a do-nothing entry, if the daemon responds to changes in its config file
    #   directly anyway.
	#
 	echo "Reloading $DESC configuration files."
     start-stop-daemon --stop --signal 1 --quiet --pidfile \
        $PIDFILE --exec $DAEMON -- -D
  ;;
  restart)
	#
    #   If the "reload" option is implemented, move the "force-reload"
    #   option to the "reload" entry above. If not, "force-reload" is
    #   just the same as "restart".
	#
	echo -n "Restarting $DESC: "
    start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON
	sleep 1
    touch_pidfile
    start-stop-daemon --start --quiet --pidfile $PIDFILE \
      --exec $DAEMON -- -D
	echo "$NAME."
	;;
  status)
    status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
	;;
  *)
    N=/etc/init.d/$NAME
	# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
	echo "Usage: $N {start|stop|restart|status|force-reload}" >&2
	exit 1
	;;
esac

exit 0


Speichern Sie Ihre Änderungen und vergessen Sie nicht, das Skript ausführbar zu machen:

chmod +x /etc/init.d/sockd


Lies noch einmal alle Dämonen:

systemctl daemon-reload


Und fügen Sie sockd zum Autostart hinzu:

systemctl enable sockd
systemctl start sockd


Und zu guter Letzt, überprüfen Sie alles:

systemctl status sockd


Von nun an können Sie den SOCKS-Proxyserver mit den Standardbefehlen von systemctl verwalten.

Schlussfolgerung

Natürlich sind diese Methoden nicht ganz einfach zu implementieren und erfordern ein gewisses Verständnis der beschriebenen Werkzeuge und Protokolle. Alternativ können Sie auch kostenpflichtige VPNs nutzen, die Ihnen eine Menge Kopfzerbrechen ersparen und es Ihnen ermöglichen, regionale Blockaden sicher zu umgehen und dabei Ihre Anonymität und Privatsphäre zu wahren.

Verwandte Artikel