Wednesday, 16. January 2019, 02:40

Menü
myStartpage
myCoding
myHowtos
- OpenVPN auf Debian
- Ubuntu ADS Integration
- Mutt mit Maildir Format
- Tipps Kismet
- Snort auf Ubuntu 10.04
- Apache AD Integration
- Linux Tools
- JVM Tuning
- OpenOffice und Java
- ownCloud und Apps
- Mint 16 Bluetooth File
myRCPlanes
myRobots
myZitate
myImpressum
myStarter
myPics
OpenVPN auf Debian

Vorraussetzung für das ganze ist folgendes:

Am Server muss der Zugriff auf tun/tap Devices gewährleistet sein. (Manchmal muss man mit dem Betreiber sprechen, bei ingate z.B. kann man das im Punkt "Module installieren" auf der Weboberfläche). Mit einem "aptitude install openvpn" installiert ihr die Software, dann kanns mit der Configuration losgehen.

Vorbereiten der Zertifikate:

cd /usr/share/doc/openvpn/examples/easy-rsa/
vi vars

In vars passt man mindestens folgende Variablen an:

export KEY_COUNTRY=AT export KEY_PROVINCE=AT export KEY_CITY=Stockerau export KEY_ORG="ingate-vserver-big" export KEY_EMAIL="gateway@gateways-home.org"

Jetzt kann man beginnen die Zertifikate zu erstellen.

. ./vars (Lädt die oben editierten KEY Variablen)
./clean-all (Säubert das Verzeichnis)
./build-ca (Erstellt die CA)

Nun werden ein paar Fragen gestellt, und man kann alle beliebig ausfüllen oder auch leer lassen. Einzig der common name ist essenziell und muss ausgefüllt werden.

Jetzt erstellen wir die Schlüssel für den Server mit:

./build-key-server server

Als common name tragt hier server ein und wenn nachgefragt wird, ob das Zertifikat signiert werden soll antwortet beide male mit yes.

Das Diffie Hellman pem erstellt ihr wie folgt:

./build-dh

und die Schlüssel für den ersten Client so:

./build-key client1

hier bitte als common name client1 eintragen.

Alle erstellten Keys liegen nun in /usr/share/doc/openvpn/examples/easy-rsa/keys diese müssen verteilt werden.

Kommt auf den Client: ca.crt client1.key client1.crt

Kommt auf den Server: ca.crt server.key server.crt dhxxxx.pem

Am leichtesten ist es diese Files gleich ins Configuration Directory von openvpn unter /etc/openvpn zu legen.

Danach konfiguriert ihr den Client wie folgt:

Falls nicht vorhanden legt ihr eine Datei in /etc/openvpn/ an die client.conf heißt:

client
dev tun
proto tcp
remote xxx.xxx.xxx.xxx 1194
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 3

Ihr müsst nur bei remote die IP Adresse eures Openvpn Servers eintragen.

Den Server konfiguriert ihr so:

Datei /etc/openvpn/server.conf anlegen:

port 1194
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.1.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-to-client
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
push "redirect-gateway def1"
client-config-dir ccd
route 192.168.1.0 255.255.255.0

Bei dieser Konfiguration wird angenommen, dass euer Heimnetzwerk die range 192.168.1.0/24 hat und das ihr nicht nur einen PC sondern einen Router auf dem Weg zum Server passieren müsst.

Nun müssen wir das client-config-dir natürlich auch noch am Server anlegen. Einfach ein Directory namens ccd im /etc/openvpn Verzeichnis anlegen und eine Datei mit folgendem Inhalt einfügen:

iroute 192.168.1.0 255.255.255.0

Jetzt muss am Server noch ein Masquerading für die ausgehenden Pakete eingerichtet werden: Entweder ihr schreibt das ganze in ein Script und startet es händisch oder ihr legt es z.B. nach /etc/rc.local

iptables -t nat -F POSTROUTING
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -s 10.1.0/24 -j MASQUERADE

Damit könnt ihr dann euren Openvpn Traffic weiterleiten.

Überprüfen könnt ihr das ganze mit tcpdump auf das Netzwerkdevice. Es dürften streng genommen nur noch Anfrage auf 192.168.1.0/24 IPs sichtbar sein, alle anderen müssten mit .openvpn gekennzeichnet sein.

Da ich vermute, dass doch ab und zu mal was schief geht hier die Dinge die wir für Troubleshooting brauchen:

Client Config Server Config ifconfig -a von Server und Client nach openvpn start tcpdump sowohl vom tun device als auch vom ethernet device die Ausgabe von "iptables -t nat -L" den Ausschnitt vom daemon.log auf dem Server der den Start des Openvpn Server beschreibt die Ausgabe des Openvpn Clients wer ihr ihn über die Konsole mit openvpn client.conf im /etc/openvpn Verzeichnisses startet.

P.S: http://openvpn.net/index.php/documentation/howto.html Die Dokumentation von openvpn ist einmalig, die anderen Ressourcen im Internet meistens nicht anzuwenden. Also bitte wenn ihr etwas herumschrauben wollt, dann mit Hilfe dieser Dokus.

Websitebaker is Free Software released under the GNU/GPL License. - design by masterhomepage.ch