VPN-Server installieren / einrichten unter Linux Debian

Voraussetzungen zu diesem Tutorial:

⦁ Dedizierter oder virtueller Server eines Providers im Internet
⦁ Installiertes Linux-Betriebssystem (hier Debian ab Version 8)
⦁ Grundlegende Kenntnisse über Linux-Betriebssysteme

⦁ PuTTy als Verbindungs-Tool zum Server / eine Verbindung wurde hergestellt

VPN Server einrichten unter Linux Debian

Debian Ipsec VPN Server mit Racoon und xl2tpd:

Nun wird erstmal racoon xl2tpd und iptables installiert, dazu bitte folgendes eingeben:

Code:

1. apt-get install racoon xl2tpd iptables

Nun die Installation von mit „J“ bestätigen, also ein „j“ eingeben und die „Enter“ Taste drücken.

Hier geben wir an, das Racoon direkt bearbeitet werden soll, „OK“ bestätigen.

Jetzt sollte „direkt“ aktiviert sein, dann nochmal mit der „TAP“ Taste auf „OK“ und dann mit der „Enter“ Taste bestätigen.
Als nächstes fügen wir nun folgenden Code am Ende in die racoon.conf Datei ein, hierfür die racoon.conf mit dem Editor Nano öffnen, hierfür folgenden Befehl in die Konsole eingeben:

Code:

nano /etc/racoon/racoon.conf

Code:

1. remote anonymous
2.
3. {
4.
5. exchange_mode aggressive,main;
6.
7. nat_traversal on;
8.
9. generate_policy on;
10.
11. ike_frag on;
12.
13.  
14. proposal_check obey; # obey, strict, or claim
15.
16.  
17. proposal {
18.
19. encryption_algorithm 3des;
20.
21. hash_algorithm sha1;
22.
23. authentication_method pre_shared_key;
24.
25. dh_group 2;
26.
27. }
28.
29. proposal {
30.
31. encryption_algorithm aes;
32.
33. hash_algorithm sha1;
34.
35. authentication_method pre_shared_key;
36.
37. dh_group 2;
38.
39. }
40.
41. proposal {
42.
43. encryption_algorithm 3des;
44.
45. hash_algorithm sha256;
46.
47. authentication_method pre_shared_key;
48.
49. dh_group 2;
50.
51. }
52.
53. proposal {
54.
55. encryption_algorithm aes;
56.
57. hash_algorithm sha256;
58.
59. authentication_method pre_shared_key;
60.
61. dh_group 2;
62.
63. }
64.
65. }
66.
67.  
68. sainfo anonymous
69.
70. {
71.
72. pfs_group 2;
73.
74. encryption_algorithm aes,3des;
75.
76. authentication_algorithm hmac_sha256,hmac_sha1;
77.
78. compression_algorithm deflate;
79.
80. }

Jetzt muß der Passkey vergeben werden, bitte diesen gut notieren. Dieser muß später ins Endgerät welches eine Verbindung zu dem VPN-Server herstellen will eingetragen werden und sollte dementsprechend stark sein.
Hier ein Beispiel: Ztpv989d4MMHTf923dt
Dafür die Datei psk.txt bearbeiten, mit folgedem Befehl:

Code:

nano /etc/racoon/psk.txt

Code:

1. * meinpasskey

Alles löschen und dann euren Passkey in der Datei eintragen.
Sollte dann so zum beserem Verständnis aussehen:

Code:

1. * Ztpv989d4MMHTf923dt

Nun folgendes am Ender der Datei xl2tpd.conf hizufügen mit folgendem Befehl:

Code:

nano /etc/xl2tpd/xl2tpd.conf

Code:

1. [global]
2.
3. port = 1701
4.
5. access control = no
6.
7. ipsec saref = yes
8.
9. force userspace = yes
10.
11. ;debug avp = yes
12.
13. ;debug network = yes
14.
15. ;debug packet = yes
16.
17. ;debug state = yes
18.
19. ;debug tunnel = yes
20.
21.  
22. [lns default]
23.
24. exclusive = yes
25.
26. ip range = 192.168.30.10-192.168.30.20
27.
28. local ip = 192.168.30.1
29.
30. ;hidden bit = no
31.
32. length bit = yes
33.
34. name = VPNServer
35.
36. ;ppp debug = yes
37.
38. require authentication = yes
39.
40. unix authentication = no
41.
42. require chap = yes
43.
44. refuse pap = yes
45.
46. pppoptfile = /etc/ppp/xl2tpd-options

Jetzt muß noch ein User und ein Passwort für den User der sich mit dem VPN-Server verbinden möchte vergeben werden. Bitte auch wieder notieren und wieder am Ende der Datei hinzufügen.
Hierzu die Datei chap-secrets bearbeiten mit folgedem Befehl:

Code:

nano /etc/ppp/chap-secrets

Code:

1. user1 * passwort *2.3. user2 * passwort *

Beispiel:
Oma * e38FzpH567 *
Opa * 349jpwhTv9 *

Es können also mehrere User angelegt werden.
Nun muß die Datei l2tp.conf mit folgendem Inhalt erstellt werden mit fogendem Befehl:

Code:

nano /etc/ipsec-tools.d/l2tp.conf

Code:

1. spdflush;
2.
3. flush;
4.
5. spdadd 0.0.0.0/0[1701] 0.0.0.0/0[0] udp -P out ipsec esp/transport//require;
6.
7. spdadd 0.0.0.0/0[0] 0.0.0.0/0[1701] udp -P in ipsec esp/transport//require;

Jetzt die Datei xl2tpd-options mit fogendem Inhalt erstellen, mit folgedem Befehl:

nano /etc/ppp/xl2tpd-options

1. lock
2.
3. auth
4.
5. name "VPN-Server"
6.
7. # DUMP crashes the daemon - do not uncomment
8.
9. #dump
10.
11. # CCP seems to confuse Android clients, better turn it off
12.
13. noccp
14.
15. #novj
16.
17. #novjccomp
18.
19. nopcomp
20.
21. noaccomp
22.
23. #require-mschap
24.
25. require-mschap-v2
26.
27. logfile /var/log/xl2tpd.log
28.
29. #hier nun ein Zensurfreier DNS-Server anstatt Goggle DNS: 8.8.8.8
30.
31. ms-dns 8.8.8.8
32.
33. lcp-echo-interval 120
34.
35. lcp-echo-failure 10
36.
37. idle 1800
38.
39. connect-delay 5000
40.
41. nodefaultroute
42.
43. noipdefault
44.
45.  
46. proxyarp
47.
48. mtu 1400
49.
50. mru 1400
51.
52.  
53. ip-up-script /etc/ppp/ip-up.sh
54.
55. ip-down-script /etc/ppp/ip-down.sh

####################################
Exkurs Debian 9x VPN-Server
####################################

Kleiner Exkurs, solltet ihr den Server mit Debian 9 installiert haben, gibt es keine rc.local Datei.
Zusätzlich hat sich noch die Netzwerk Schnittstelle geändert, so dass diese erst ausgelesen werden muß und dann in der Datei rc.local Datei geändert werden muß.
Sollte das nicht passieren, kann mann sich an dem VPN-Server einloggen, bekommt aber keine Internet Verbindung da das Routing nicht passt.
Also kurz die Netzwerkschnittstelle mit folgendem Befehl abfragen.
Einfach in der Konsole folgenden Befehl eingeben:

Code:

ip addr

Wie Ihr erkennen könnt ist hier die Netzwerkschnittstelle nicht wie unter Debian 8 „eth0“ sondern „ens18“, dieses muß natürlich in der Datei rc.local zwei mal angegeben werden.

Nun in der Datei rc.local fogendes eintragen.
Zum bearbeiten folgenden Befehl:

Code:

nano /etc/rc.local

Code:

1. #!/bin/sh -e
2.
3. #
4.
5. # rc.local
6.
7. #
8.
9. # This script is executed at the end of each multiuser runlevel.
10.
11. # Make sure that the script will "exit 0" on success or any other
12.
13. # value on error.
14.
15. #
16.
17. # In order to enable or disable this script just change the execution
18.
19. # bits.
20.
21. #
22.
23. # By default this script does nothing.
24.
25.  
26. echo 1 > /proc/sys/net/ipv4/ip_forward
27.
28. /sbin/iptables -F
29.
30. /sbin/iptables -X
31.
32. /sbin/iptables -t nat -F
33.
34. /sbin/iptables -t nat -X
35.
36. /sbin/iptables -t mangle -F
37.
38. /sbin/iptables -t mangle -X
39.
40. iptables -A FORWARD -i ens18 -o ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
41.
42. iptables -t nat -A POSTROUTING -s 192.168.30.0/24 -o ens18 -j MASQUERADE
43.
44. /usr/sbin/setkey -f /etc/ipsec-tools.d/l2tp.conf
45.
46.  
47. exit 0

Nun nur noch die Rechte der rc.local Datei ändern und folgenden Befehl eingeben:

Code:

chmod 755 /etc/rc.local

und danach den Befehl:

Code:

/etc/rc.local

#########################################
Ende Exkurs Debian 9x VPN-Server
#########################################

Weiter mit der Ursprünglichen Beschreibung.
Nun in der Datei rc.local fogendes überhalb von „exit 0“ eintragen.
Zum bearbeiten folgenden Befehl:

Code:

nano /etc/rc.local

Code:

1. echo 1 > /proc/sys/net/ipv4/ip_forward
2.
3. /sbin/iptables -F
4.
5. /sbin/iptables -X
6.
7. /sbin/iptables -t nat -F
8.
9. /sbin/iptables -t nat -X
10.
11. /sbin/iptables -t mangle -F
12.
13. /sbin/iptables -t mangle -X
14.
15. iptables -A FORWARD -i eth0 -o ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
16.
17. iptables -t nat -A POSTROUTING -s 192.168.30.0/24 -o eth0 -j MASQUERADE
18.
19. /usr/sbin/setkey -f /etc/ipsec-tools.d/l2tp.conf

Nun nur noch ein Restart script erstellen mit folgendem Befehl:

Code:

nano /usr/local/bin/ipres.sh

Folgendes eintragen:

Code:

1. #!/bin/sh
2.
3. service racoon restart
4.
5. service xl2tpd restart

Als nächstes nun wieder einen Restart des VPN-Servers mit folgendem Befehl in der Konsole:

Code:

shutdown -r now

So, der VPN-Server ist nun fertig eingerichtet und sollte über die IP Adresse erreichbar sein. Was ihr jetzt noch tun müßt, einfach auf euren Endgeräten eine VPN-Verbindung zur eurem VPN-Server einrichten. Wie das zum Beispiel mit Windows 10 funktioniert seht ihr im nächsten Abschnitt.

VPN Verbindung zum VPN Server mit Windows 10 herstellen.

Um mit Windows 10 eine Verbindung mit eurem VPN-Server herzustellen klickt ihr als erstes rechts in der Taskleiste auf den Infobereich.

Dann den Info Bereich „Erweitern“ anklicken und hier seht ihr dann „VPN„, dieses nun anklicken.

Nun auf VPN-Verbindung hinzufügen anklicken.

Hier vergebt ihr jetzt einen Namen der VPN Verbindung zu eurem Server, dann die IP-Adresse eures VPN-Servers eintragen. Als VPN-Typ bitte „L2TP/IPsec mit vorinstalliertem Schlüssel“ aus dem Listenfeld auswählen. Hier trägt ihr den während der Installation des Servers vergebenen und hoffentlich notieren Passkey ein. Als Anmeldeinformationstyp bitte „Benutzername und Kennwort“ auswählen. Natürlich bei Benutzername euren User den ihr vergeben habt und zu Schluß natürlich das Kennwort des Benutzers, habt ihr ja bei der Installation notiert. Dann noch ein Hacken setzten bei „Anmeldeinformationen speichern„.
Die VPN Verbindung innerhalb Windows 10 ist jetzt zu eurem Server eingerichtet.

Als letztes klickt ihr nun unten in der Taskleiste auf das Netzwerksymbol und hier sollte eure eingerichtete VPN-Verbindung zu sehen sein, jetzt auswählen und auf Verbinden klicken.
Um jetzt zu sehen ob alles funktioniert könnt ihr ja mal eure IP-Adresse mit und ohne VPN-Verbindung abfragen, einfach dazu z.B. auf https://www.wieistmeineip.de/ gehen. Wenn ihr also jetzt eine Verbindung mit dem VPN-Server herstellt, ist nach außen nur noch die IP-Adresse des VPN-Servers sichtbar und nicht mehr die von eurem Router.
Wenn ihr ein Handy z.B. iPhone oder ein Android Gerät habt, könnt ihr hier jetzt zusätzlich eine VPN-Verbindung zu eurem VPN-Server auf eurem Handy einrichten.

VPN-Verbindung iOS fürs iPhone:

Hier die VPN Verbindungseinstellungen fürs iPhone unter iOS. Als Typ bitte „L2TP“ auswählen, dann die IP-Adresse unter Server. Account euren vergebenen User wie hier z.B. Oma. Dann unter Passwort das Passwort das ihr für Oma oder Opa vergeben habt und unter „Shared Secret“ bitte den „Passkey“ eintragen.

  1. Nachtrag:
    Bei Android Handys bitte die Verbindungsart „L2TP/IPSec PSK“ auswählen.

  2. Nachtrag:
    In der Datei „xl2tpd-options“ kann anstatt dem Google DNS-Server 8.8.8.8 natürlich auch ein zensurfreier DNS-Server angegeben werden!

FERTIG !!

1 „Gefällt mir“