Einfachste Möglichkeit, Ubuntu als VPN-Server einzurichten


68

Ich weiß, dass es im Internet viele Tutorials zum Einrichten von VPN-Clients und -Servern gibt.

Wenn Sie einen finden, der einfach / kurz ist , interessiert mich nur der Serverteil.

Für Clients verwende ich OS X, daher bevorzuge ich eine Lösung, die verwendet wird, L2TP over IPsecoder PPTPweil Cisco IPsec vermutlich etwas kosten würde.

Ich möchte nicht zu viele Stunden damit verbringen, es einzurichten. Weißt du, vielleicht hat schon jemand ein Setup-Skript erstellt :)

Hinweis: Ich verwende eine EC2-Mikroinstanz, auf der Ubuntu 12.04 ausgeführt wird.


3
Hinweis: CISCO IPSec kann über StrongSwan und viele Konfigurationsschritte erreicht werden, ist jedoch schwierig. PPTP ist nicht mehr sicher. Für ANd L2TP over IPSec ist sowohl eine L2TP- als auch eine IPSec-Konfiguration erforderlich. Wählen Sie nach Belieben, obwohl meine Antwort PPTP erklärt
Thomas Ward

Antworten:


24

UPDATE : Ab Sierra unterstützt macOS PPTP vpn nicht mehr. Diese Antwort gilt nicht für MacOS-Clients in Sierra und darüber hinaus.

PPTP über PoPToP ist einfach

  1. apt-get install pptpd
  2. Bearbeiten /etc/pptpd.confund stellen Sie die Remoteip-Option auf einen Bereich in Ihrem Netzwerk ein, der NICHT von Ihrem DHCP-Server bedient wird.
  3. Bearbeiten /etc/ppp/chap-secretsund fügen Sie einen Benutzernamen und ein Passwort hinzu

z.B

vpnuser pptpd vpnpassword *

Das ist alles, was Sie brauchen, um pptp einzurichten. Testen Sie es jetzt mit Ihrem OS X-Client.


Ich frage mich auch, welche localip- und remoteip-Werte am sichersten sind, wenn ich bedenke, dass ich von jedem Ort aus eine Verbindung zu diesem Server herstellen werde. Auf jeden Fall sind die Standardwerte mit 192.168.0.und 192.168.1.wahrscheinlich einer der schlechtesten.
Sorin

12. Mai 13:28:06 zork pppd [9447]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so geladen. 12. Mai 13:28:06 zork pppd [9447]: pppd 2.4.5 gestartet von root, uid 0 12. Mai 13:28:06 zork pppd [9447]: Verwenden der Schnittstelle ppp0 12. Mai 13:28:06 zork pppd [9447 ]: Verbinden: ppp0 <-> / dev / pts / 3 12. Mai 13:28:36 zork pppd [9447]: Auflegen (SIGHUP) 12. Mai 13:28:36 zork pppd [9447]: Modem-Auflegen 12. Mai 13 : 28: 36 zork pppd [9447]: Verbindung beendet. 12. Mai 13:28:36 zork pppd [9447]: Beenden. Es funktioniert noch nicht! Ihr Führer ist (noch) unvollständig;)
Sorin

Ja das geht nicht.
Bkerensa

1
hat bei mir nicht funktioniert
Tyler Gillies

@SorinSbarnea diese ips sind privat und gehen nie über das Internet, also weiß ich nicht, was du mit "am sichersten" meinst. Sie haben das beste Glück, wenn sie nicht dem IP-Bereich des Cafés oder des Arbeitsplatzes entsprechen, von dem aus Sie eine Verbindung herstellen. Versuchen Sie 192.168.42. * :)
Jay _silly_evarlast_ Wren

86

WARNUNG: PPTP IST EIN SICHERES PROTOKOLL! Die Verschlüsselung wurde nicht nur verletzt, sondern sendet Ihre Authentifizierung auch im Klartext und kann leicht abgefangen werden. Es wurde geschätzt, dass der Zeitaufwand für das Brute-Force-Verfahren des Kennworts in etwa dem Zeitaufwand für das Brute-Force-Verfahren eines einzelnen DES-Schlüssels entspricht. Erwägen Sie die Verwendung von OpenVPN oder einer anderen VPN-Architektur anstelle von PPTP!

Ich habe diese Anleitung verwendet , um einen PPTP-VPN-Server auf meinem Ubuntu 12.04-Server einzurichten.


Um die wichtigsten Punkte des Links zusammenzufassen:

1: Installieren pptpdund ufw. iptableskann anstelle von ufw verwendet werden, ist aber der Einfachheit halber ufwbesser, wenn Sie es nicht wissen iptables.

sudo apt-get install pptpd ufw

2: Öffnen Sie die benötigten Ports. Das Handbuch schlägt 22 (SSH) und 1723 für das PPTP-VPN vor.

sudo ufw erlauben 22
sudo ufw erlauben 1723
sudo ufw aktivieren

3: Bearbeiten /etc/ppp/pptpd-options. Öffnen Sie die Datei mit Ihrem Lieblingseditor (mines nano, daher lautet der Befehl für mich sudo nano /etc/ppp/pptpd-options) und kommentieren Sie diese Zeilen aus, indem Sie ein #vor sie setzen, wenn dies auf allen Betriebssystemen universell funktionieren soll:

Müll-pap
Müll-Kap
Müll-mschap

Sie können diese Zeile kommentieren, wenn Sie die Verschlüsselung deaktivieren möchten: require-mppe-128

4: Fügen Sie während der Bearbeitung /etc/ppp/pptpd-optionsDNS-Server für das VPN hinzu. In diesem Beispiel werden OpenDNS-Server verwendet:

ms-dns 208.67.222.222
ms-dns 208.67.220.220

5: Bearbeiten /etc/pptpd.conf. Öffnen Sie die Datei mit Ihrem Lieblingseditor (mine ist nano, der Befehl für mich ist also sudo nano /etc/pptpd.conf). Sie müssen die lokalen VPN-IPs für das System hinzufügen. Fügen Sie also Folgendes hinzu:

localip 10.99.99.99
remoteip 10.99.99.100-199

Wenn Ihr System ein VPS ist, verwenden Sie die öffentliche IP für "localip". Wenn dies nicht der Fall ist und sich in einem lokalen Netzwerk befindet, verwenden Sie die Netzwerk-IP Ihres Computers. Verwenden Sie unterschiedliche IPs und Bereiche, wenn diese IPs in Ihrem Subnetz existieren! Wenn Sie Ihre öffentliche IP Ihres VPS nicht kennen, finden Sie sie, indem Sie ausführendig +short myip.opendns.com @resolver1.opendns.com

6: Bearbeiten /etc/ppp/chap-secrets. Öffnen Sie die Datei mit Ihrem bevorzugten Editor (mines nano, daher lautet der Befehl für mich sudo nano /etc/ppp/chap-secrets) und fügen Sie die Authentifizierungsdaten hinzu.
Das Format für /etc/ppp/chap-secretsist:

[Benutzername] [Dienst] [Passwort] [Zulässige IP-Adresse]

Ein Beispiel wäre: sampleuser pptpd samplepassword *

7: Starten Sie pptpd neu. Führen Sie diesen Befehl im Terminal aus:sudo /etc/init.d/pptpd restart

8: Bearbeiten /etc/sysctl.conf. Öffnen Sie die Datei mit Ihrem Lieblingseditor (mine ist nano, der Befehl für mich ist also sudo nano /etc/sysctl.conf). Deaktivieren Sie die folgende Zeile (indem Sie das #am Anfang entfernen ) in /etc/sysctl.conf: net.ipv4.ip_forward=1
Laden Sie die Konfiguration neu: sudo sysctl -p

9: In diesem Schritt wird davon ausgegangen, dass Sie ufw haben.
Bearbeiten /etc/default/ufwund ändern Sie die Option DEFAULT_FORWARD_POLICYvon DROPinACCEPT

10: In diesem Schritt wird davon ausgegangen, dass Sie ufw haben.
Bearbeiten /etc/ufw/before.rulesund fügen Sie Folgendes entweder zu Beginn /etc/ufw/before.rulesoder kurz vor den *filterRegeln hinzu (empfohlen):

# NAT-Tabellenregeln
* nat

: POSTROUTING AKZEPTIEREN [0: 0]
# Weiterleiten von Datenverkehr an eth0 zulassen
-A POSTROUTING -s 10.99.99.0/24 -o eth0 -j MASQUERADE

# Verarbeiten Sie die NAT-Tabellenregeln
VERPFLICHTEN

Wenn Sie einen Kernel der Version 3.18 oder neuer haben (Sie können dies durch Ausführen überprüfen uname -r), fügen Sie außerdem die folgenden Zeilen vor der # drop INVALID packets ...Zeile hinzu:

-A ufw-before-input -p 47 -j ACCEPT

11: Starten Sie die Firewall neu, um die Regelsätze zu aktualisieren und die Regeln anzuwenden, die wir den /etc/ufw/*.rulesDateien hinzugefügt haben : sudo ufw disable && sudo ufw enable

Warnung: Wenn andere Ports, die Sie benötigen, geöffnet sind, z. B. für HTTPS, wenn Ihr Server eine Website hostet, müssen Sie diese Ports einzeln zur Liste der zulässigen Ports mit hinzufügensudo ufw allow <PORT>


4
Was zum Teufel mache ich jetzt: D Ich habe das auf dem Server, keine Ahnung, wie ich mich damit verbinden soll lol
Jamie Hutber

1
@ Jamie Es gibt eine Menge anderer Dokumente und Einträge hier auf Ask Ubuntu zum Herstellen einer Verbindung zu einem VPN, ganz zu schweigen von der Dokumentation in Network Manager. Diese Frage bezieht sich nur auf die Einrichtung des VPN und auf die Serverseite. NICHT das Anschließen daran teil.
Thomas Ward

: D superschnelle Antwort: DI denke ich habe es vielleicht geklärt, ich muss einfach etwas falsch eingestellt haben. Das besagte Ufw ist aktiv und erlaubt die meisten Ports. Ich werde mit iptables spielen, um zu sehen, ob mich das trotzdem
erwischt

@ Jamie Ich kann dir iptables-Befehle geben, die du verwenden kannst, wenn ich nach Hause komme und iptables ufw vorziehe.
Thomas Ward

1
iptables / netfilter wird mit ufw verwendet, ufw ist mit der Handhabung von Regeln und Befehlen für Endbenutzer nur angenehmer.
Thomas Ward

19

PPTP VPN unter Ubuntu 12.04 Beispiel

Hier finden Sie eine kurze Anleitung zum Einrichten eines grundlegenden PPTP-VPN-Servers unter Ubuntu 12.04.

Installieren Sie die erforderlichen Pakete

                          sudo apt-get install ppp pptpd

Konfigurieren Sie die PPTP-IP-Bereiche auf dem Server

                          sudo nano /etc/pptpd.conf

Fügen Sie am Ende die folgenden Zeilen hinzu

                          localip 10.89.64.1
                          remoteip 10.89.64.100-150

Dadurch wird der PPTP-Server so eingerichtet, dass er IP 10.89.64.1 verwendet, während der IP-Bereich 10.89.64.100 bis 10.89.64.150 an PPTP-Clients verteilt wird. Ändern Sie diese nach Ihren Wünschen, solange es sich um private IP-Adressen handelt und keine Konflikte mit IP-Adressen auftreten, die bereits von Ihrem Server verwendet werden.

Konfigurieren Sie DNS-Server für die Verwendung, wenn Clients eine Verbindung zu diesem PPTP-Server herstellen

                          sudo nano /etc/ppp/pptpd-options

Ändern ODER Fügen Sie am Ende die folgenden Zeilen hinzu

                          ms-dns 8.8.8.8
                          ms-dns 8.8.4.4

Erstellen Sie einen PPTP-Benutzer

                          sudo nano /etc/ppp/chap-secrets

Fügen Sie unten eine Zeile hinzu, damit Ihre Datei ungefähr so ​​aussieht:

                          # client    server  secret          IP addresses
                          test        pptpd   abcd1234        *

Konfigurieren Sie NAT für PPTP-Verbindungen

Ohne diesen Schritt können Sie eine Verbindung herstellen, Ihre Verbindung kann jedoch keine Webverbindung von diesem Server laden.

                          sudo nano /etc/rc.local

Fügen Sie unten rechts vor der Zeile „exit 0“ Folgendes hinzu:

                          iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Angenommen, eth0 kann verwendet werden ifconfig, um den Netzwerknamen zu überprüfen.

Aktivieren Sie das IPv4-Forwading:

                          sudo nano /etc/sysctl.conf

Kommentieren Sie die folgende Zeile aus:

                          net.ipv4.ip_forward=1

Laden Sie dann die Konfiguration neu:

                          sudo sysctl -p

Starten Sie Ihren VPS neu und alles sollte von jedem PPTP-Client aus reibungslos funktionieren.


Client-seitige Konfiguration

Stellen Sie bei Mac sicher, dass Sie eine PPTP-VPN-Verbindung hinzugefügt haben. Außerdem müssen Sie in den Authentifizierungseinstellungen nur die Serveradresse, den Kontonamen und das Kennwort festlegen. Kein Schmerz hier.

Unter Linux kann NetworkManager VPN-Verbindungen hinzufügen. Stellen Sie sicher, dass Sie eine PPTP-VPN-Verbindung hinzugefügt haben. Und die Konfiguration, die ich benutze, ist hier:

So debuggen und reparieren Sie die PPTP / VPN-Client-Verbindung

Bildbeschreibung hier eingeben

Und für Windows

Bildbeschreibung hier eingeben


Funktioniert diese Methode auch unter Ubuntu 12.04, das keine Server-Edition ist? Welche IP-Nummer muss der Client verwenden, um eine Verbindung zu diesem VPN-Netzwerk herzustellen?
Rasoul

Ja, dies gilt auch für die Nicht-Server-Edition. Sie müssen die Server-IP auf dem Client verwenden, um eine Verbindung zu vpn @Rasoul
Qasim

Funktioniert nicht, Ubuntu Server 13.04. Der Client hat nach DNS gesucht.
Knutole

@knutole Überprüfen Sie, ob Ihre IPTables-Regeln ordnungsgemäß geroutet werden. Stellen Sie sicher, dass Sie die en0-Schnittstelle haben und sie keinen anderen Namen hat. Sie sollten eine öffentliche IP-Adresse sehen.
Nick Woodhams

ok also in deinem beispiel welche ip ist die server ip? 10.89.64.1? Dann würde der Client im Ubuntu-Netzwerkmanager 10.89.64.1 als Gateway auflisten?
Dranxo

9

Die anderen Antworten in diesem Thread waren in meinem Fall nur Teilantworten. Hier ist, was für mich auf Ubuntu 12.04.3 gearbeitet hat

sudo apt-get install pptpd

Fügen Sie Folgendes an /etc/pptpd.conf an (die IP-Adresse spielt keine Rolle, dies sind nur die IP-Adressen für Ihre ppp0-Schnittstelle.)

localip 10.0.0.1
remoteip 10.0.0.100-200

Fügen Sie DNS-Server zu / etc / ppp / pptpd-options hinzu

ms-dns 8.8.8.8
ms-dns 8.8.4.4

Aktivieren Sie die IP-Weiterleitung

sudo vim /etc/sysctl.conf

Kommentieren Sie diese Zeile aus

net.ipv4.ip_forward=1

Änderungen speichern

sudo sysctl -p /etc/sysctl.conf

Bearbeiten Sie / etc / ppp / chap-secrets und fügen Sie einen VPN-Benutzer in folgendem Format hinzu:

# Secrets for authentication using CHAP
# client    server  secret          IP addresses
username pptpd supersecretpassword *

Starten Sie PPTP neu

service pptpd restart

Führen ifconfigSie die Standardschnittstelle aus und suchen Sie sie. In meinem Fall war es br0. (Ich habe sie geändert, damit virtuelle Maschinen auf meiner physischen Maschine die Schnittstelle gemeinsam nutzen können. Ihre wird wahrscheinlich en0 sein. )

Bildbeschreibung hier eingeben

Sichern Sie iptables

iptables-save > ~/iptables.save

Nehmen Sie nun die Änderungen an Ihren iptables vor und verwenden Sie die Standardschnittstelle, die von ifconfig angezeigt wird.

iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface br0 -j ACCEPT

Damit es auch nach einem Neustart des Systems erhalten bleibt.

sudo apt-get install iptables-persistent

VPN auf dem Client-Computer hinzufügen (Mac)

Systemeinstellungen> Netzwerk> [+]> VPN

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Wählen Sie dann Authentifizierungseinstellungen> Passwort und geben Sie hier Ihr Passwort ein

Bildbeschreibung hier eingeben


7

Hier ist ein hübsches süßes Projekt, das den OpenVPN-Schmerz entfernt:

https://github.com/Nyr/openvpn-install

Führen Sie es einfach aus und es wird Open VPN installieren und konfigurieren. Am Ende wird eine client.ovpn-Datei angezeigt, mit der Sie Ihren Client einrichten können. Scheint ziemlich gut zu funktionieren.


Heiliger Bimbam. Es funktioniert einfach Ich frage mich, warum es keine weitverbreitete Anerkennung findet.
Marcus
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.