title: “OpenVPN-Server auf Debian einrichten”
date: 2014-08-11T11:39:44
slug: openvpn-server-auf-debian-einrichten
- Installieren von “openvpn” und “udev”
apt-get install openvpn udev
- Kopieren der Beispieldateien in den Konfigurationsordner von OpenVPN
cp -R /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn/
3 Konfiguration der Zertifikatsgenerierung
vi /etc/openvpn/easy-rsa/2.0/vars
# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY\_COUNTRY="DE"
export KEY\_PROVINCE="BY"
export KEY\_CITY="muenchen"
export KEY\_ORG="Firemname"
export KEY\_EMAIL="emailadresse"
- Serverzertifikat erstellen
cd /etc/openvpn/easy-rsa/2.0/
. /etc/openvpn/easy-rsa/2.0/vars
. /etc/openvpn/easy-rsa/2.0/clean-all
. /etc/openvpn/easy-rsa/2.0/build-ca
Die folgenden Fragen mit Enter bestätigen.
- Private Key für den Server erstellen
. /etc/openvpn/easy-rsa/2.0/build-key-server server
Die folgenden Fragen mit Enter und ‘y’ bestätigen.
- Zertifikat für den Client erstellen, dieser Schritt kann beliebig oft für jeden Client wiederholt werden.
”NameDesClients” sollte mit einem Aussagekräftigen Namen ersetzt werden, z.B. AndroidPhone, HomePC, Tablet,……
. /etc/openvpn/easy-rsa/2.0/build-key NameDesClients
Die folgenden Fragen mit Enter und ‘y’ bestätigen. Es wurden nun 3 Dateien erzeugt:
NameDesClients.crt
NameDesClients.csr
NameDesClients.key
- Konfigurationspaket für Client erstellen:
Für Android (OpenVPN Client):
cd /usr/share/doc/openvpn/examples/sample-config-files
gunzip -d server.conf.gz
cp client.conf ~/android.ovpn
In der Datei android.ovpn müssen noch die IP Adresse des Servers und die Namen der Zertifikate angepasst werden. Dies geschieht hier:
remote my-server-1 1194
my-server-1 muss mit der IP Adresse ersetzt werden
cert client.crt
key client.key
client.crt und client.key muss mit NameDesClients.crt und NameDesClients.key ersetzt werden
Folgende Dateien auf das Android System kopieren (über verschlüsselte Verbindung) und
NameDesClients.crt
NameDesClients.key
ca.crt
android.ovpn
Mit der App openVPN kann das Profil nun importiert werden (Import Profile from SD Card)
- Diffie-Hellman-Parameter generieren und Zertifikat, private Key und Diffie-Hellman-Parameter nach /etc/openvpn kopieren
. /etc/openvpn/easy-rsa/2.0/build-dh
cd /etc/openvpn/easy-rsa/2.0/keys
cp ca.crt ca.key dh1024.pem server.crt server.key /etc/openvpn
- server.conf erstellen und anpassen
cd /usr/share/doc/openvpn/examples/sample-config-files
cp server.conf /etc/openvpn/server.conf
vi /etc/openvpn/
Folgende Zeilen einkommentieren (Die IP Adressen der Nameserver können entsprechend angepasst werden):
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 85.214.20.141"
push "dhcp-option DNS 213.73.91.35"
- IP Forwarding aktivieren damit der Client auf das Internet zugreifen kann.
vi /etc/sysctl.conf
Folgende Zeile einkommentieren:
“net.ipv4.ip_forward=1″
Um das Forwarding sofort zu aktivieren folgenden Befehl ausführen (passiert sonst erst beim nächsten Systemstart)
echo 1 > /proc/sys/net/ipv4/ip\_forward
- IP Tables Konfigurieren damit die Pakete des Cleints maskiert werden.
Hier muss evtl. der Name des Interfaces und die IP Adresse des Servers angepasst werden.
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to SERVERIP
Diese 4 Zeilen können in die Datei /etc/rc.local geschrieben werden damit diese bei jedem Systemstart ausgeführt werden.
- OpenVPN restarten
/etc/init.d/openvpn restart
Falles es zu Problemen kommt, kann in der Datei /var/log/syslog nachgesehen werden woran es scheitert.
Wenn das VPN correct gestartet wurde, ist ein weiteres Interface gelistet, dies kann so überprüft werden:
ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
