OpenVPN auf einem Ubuntu Server aufsetzen

Wenn man sich einem unsicheren Netz bewegt, z.B. in einem freien WLAN empfielt es sich ein VPN zu nutzen. Dafür gibt es die unterschiedlichsten VPN-Dienste, welche dies gegen einen monatlichen Obolus anbieten. Besitzt man einen eigenen Server, so kann man sich mittels OpenVPN einen solchen Dienst selber aufsetzen. Im ersten Schritt wird OpenVPN installiert:

apt-get install openvpn

Aus den Beispieldateien wird das Skript „easy-rsa2“ zum Erstellen der Zertifikate an den entsprechenden Ort kopiert:

cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa2

Für die Erzeugung der Zertifikate müssen einige Parameter angepasst werden. Dazu wird die entsprechende Datei im Editor geöffnet:

cd /etc/openvpn/easy-rsa2
nano vars

Der Wert Keysize „KEY_SIZE“ wird von 1024 auf 2048 erhöht. Am Ende der Datei befinden sich dann folgende Einträge:

export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL=""
export KEY_CN=changeme
export KEY_NAME=changeme
export KEY_OU=changeme
export PKCS11_MODULE_PATH=changeme
export PKCS11_PIN=1234

Nach der Konfiguration sollte das ganze dann in etwa so aussehen:

export KEY_COUNTRY="DE"
export KEY_PROVINCE="MV"
export KEY_CITY="Neubrandenburg"
export KEY_ORG="Example Inc."
export KEY_EMAIL=""
export KEY_CN="vpn.example.org"
export KEY_NAME="Example VPN"
export KEY_OU="VPN"
#export PKCS11_MODULE_PATH=changeme
#export PKCS11_PIN=1234

Die „vars“-Datei wird den Umgebungsvariablen hinzugefügt und anschließend das Masterzertifikat erstellt:

source ./vars
mkdir /etc/openvpn/easy-rsa2/keys
sudo -E ./clean-all
sudo -E ./build-ca

Damit ist die Certificaty Authority (CA) erstellt. Nun geht es an die Erstellung der Schlüssel für den Server:

sudo -E ./build-key-server server

Beim Common Name, gibt man die Domain ein unter welcher der VPN Server später erreichbar sein soll (z.B. vpn.example.org). Nach der Erstellung wird man im „keys“ Verzeichnis die Dateien „server.crt“, „server.csr“ und „server.key“ finden. Für den Diffie-Hellman Schlüsselaustausch müssen entsprechende Paramater erzeugt werden:

sudo -E ./build-dh

Nun fehlen nur noch die Zertifikate für die entsprechenden Nutzer. Ein Nutzer wird dabei mittels:

sudo -E ./build-key nutzerOderClientName

erstellt. Damit sind alle benötigten Zertifikate und Schlüssel erstellt, so das nun die restliche Konfiguration des Servers vorgenommen werden kann. Als Basis wird dabei die mitgelieferte Beispieldatei genutzt:

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gunzip /etc/openvpn/server.conf.gz

Nach dem Kopiervorgang wird die Datei „/etc/openvpn/server.conf“ mittels „nano“ geöffnet. Folgende Einstellungen werden dabei angepasst werden:

ca ca.crt -> ca ./easy-rsa2/keys/ca.crt
cert server.crt -> cert ./easy-rsa2/keys/server.crt
key server.key -> key ./easy-rsa2/keys/server.key 

dh 1024.pem -> dh ./easy-rsa2/keys/dh2048.pem

;user nobody -> user nobody
;group nogroup -> group nogroup

;push "redirect-gateway def1 bypass-dhcp" -> push "redirect-gateway def1 bypass-dhcp"

Damit jegliche Kommunikaton vom Client über den Server läuft, muss die Datei „/etc/rc.local“ auf dem Server um einige Einträge ergänzt werden:

iptables -t nat -F POSTROUTING
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source IP_DES_SERVERS

Nun ist der Server konfiguriert und kann mittels:

reboot

neugestartet werden.

Weitere Informationen gibt es unter:
http://wiki.ubuntuusers.de/OpenVPN
https://de.wikipedia.org/wiki/OpenVPN

Seltsame Zeichen unter PuTTY

Wenn man PuTTY nutzt, wird man sich sicherlich das ein oder andere Mal über die seltsame Zeichen gewundert haben. Ein schönes Beispiel dafür ist der Midnight Commander, der anstatt mit der gewohnten Linienoptik mit ganz anderen Zeichnen arbeitet. Das Problem ist hier allerdings nicht beim Server zu finden. Stattdessen muss bei PuTTY gesucht werden.

Die PuTTY Optionen

Die PuTTY Optionen

Um das Problem zu beheben, sollte man in den Einstellungen unter „Window“ -> „Translation“ das „Remote character set“ auf UTF-8 stellen. Danach gehören die fehlerhaften Zeichen der Vergangenheit an.

ownCloud iOS 7 CardDAV Problem umgehen

In den Betaversionen hatte iOS 7 seine Probleme mit der CardDAV Synchronisierung. Mittlerweile funktioniert diese bei der letzten Betaversion (bzw. der Goldmaster) ohne Probleme. Die passende URL für die CardDAV Synchronisierung ist dabei folgende:

https://cloud.example.org/remote.php/carddav/addressbooks/seeseekey/contacts

Die URL muss natürlich angepasst werden und der Name „seeseekey“ durch den eigenen Nutzernamen ausgetauscht werden. Danach sollte iOS die URL bei richtigem Passwort und Nutzername ohne Murren akzeptieren.

Mails per SMTP unter WordPress versenden

Unter Umständen kann es vorkommen, das man sein WordPress auf einem Server betreibt, welcher keine PHP „mail()“ Funktion unterstützt. In diesem Fall sollten die Mails per SMTP versendet werden. Möglich wird dies mit dem Plugin „Easy WP SMTP„. Damit werden die Mails nicht mehr über die PHP-Funktion, sondern über einen SMTP Account versendet.

Die Einstellungen des Plugins Easy WP SMTP

Die Einstellungen des Plugins Easy WP SMTP

Bei der Konfiguration des Plugins werden SSL und TLS unterstützt, so das hier die Zugangsdaten nicht im Klartext durch das Netz gesendet werden.

Thunderbird und das Verschieben von Junkmails

Wenn man Thunderbird benutzt, hat man die Möglichkeit den eingebauten Spamfilter zu benutzen. Dieser verschiebt die entsprechenden Mails nach der Erkennung in einen Ordner mit dem Namen „Junk“. Problematisch wird es aber, wenn man selber Mails als Spam markiert. Diese werden dann nicht verschoben.

Die entsprechende Option in den Einstellungen

Die entsprechende Option in den Einstellungen

In den Konteneinstellungen findet man dazu keinen Punkt der zu dem Problem passt. Die einzige Möglichkeit, die man dort vorfindet, ist die Einstellung in welchen Ordner der Spam verschoben wird. Für den Nutzer sieht es damit so aus, als ob Thunderbird an dieser Stelle fehlerhaft arbeitet. Wenn man genauer nachschaut entdeckt man die Einstellung, die sich dieses Problemes annimmt in den Einstellungen von Thunderbird. Dort gibt es den Tab „Sicherheit“ und in diesem den Untertab „Junk“. Wird der entsprechende Haken bei „Wenn Nachricht manuell als Junk markiert werden“ gesetzt, funktioniert die automatische Verschiebung für von Hand klassifizierten Mails.