Openvpn

Aus Vosp.info
Version vom 24. Februar 2015, 11:59 Uhr von HK (Diskussion | Beiträge) (Sternförmiges Setup mit zentralem Server)
Wechseln zu:Navigation, Suche

Einfaches Setup für zwei Maschinen

Auf beiden Maschinen

apt-get install openvpn

Server side

openvpn --genkey --secret secret.key
scp secret.key root@<remote host>
vim /etc/openvpn/simple.conf
dev tun
ifconfig 10.8.0.1 10.8.0.2
secret secret.key
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
user nobody
group nogroup
daemon

Client side

Der <remote.host> muss durch den Clienten aufgelöst werden können.
Entweder per /etc/hosts oder DNS

vim /etc/openvpn/simple.conf
remote <remote.host>
dev tun
ifconfig 10.8.0.2 10.8.0.1
secret secret.key
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
user nobody
group nogroup
daemon

Sternförmiges Setup mit zentralem Server

OpenVPN-Server mit CentOS 7

Installation

OpenVPN befindet sich nicht in den Repos des CentOS-Projektes.
Deshalb müssen Fedora EPEL repos eingebunden werden.

yum install epel-release
yum makecache
yum install openvpn easy-rsa -y

Ifconfig wird benötigt, es ist per default nicht installiert.

yum install net-tools -y

Zertifikate erstellen

Wir bauen uns unsere eigene Certification Authority.
Wichtiger Hinweiß: Aus Sicherheitsgründen sollten der ca.key niemals auf dem Server verbleiben!

Easy-rsa findet sich bei CentOS 7 in

/usr/share/easy-rsa/2.0

Das verzeichniss 2.0 kopieren wir an einen Platz unserer Wahl, der Ordner kann jeden Namen haben.
Empfehlenswert ist ein Verzeichnissname, der den Namen des VPN widerspiegelt.

Config

Server Config

#
# /etc/openvpn/newvpn.conf
# Files liegen in /etc/openvpn/newvpn
# und /etc/openvpn/newvpn/ccd-dir


# Port, default ist 1124, alles ist besser als 1124. Minimiert Script-Angriffe.
port <Port des VPN-Servers>
#Protokoll-Typ
proto udp

# Device Typ, möglich sind tun und tap
dev-type tun
# Devicename
dev newvpn

# Speicherort der Zertifikate, Schlüssel usw. Pfade sind relativ zum Configfile
ca newvpn/ca.crt
cert newvpn/server.crt
key newvpn/server.key
dh newvpn/dh2048.pem

mode server
tls-server
# Topologie des Netzwerkes
topology subnet
# mit push wird die Topologie dem Clienten mitgeteilt
push "topology subnet"
# IP des Servers und Netzmaske, ergibt zugleich das Netzwerk
ifconfig 10.8.100.10 255.255.255.0
# Range der frei vergebbaren IPs, vergleichbar mit Range aus DHCP 
ifconfig-pool 10.8.0.11 10.8.0.199 255.255.255.0

# Hier werden die IPs der Clienten hinterlegt, vergleichbar mit 
# host win01 { hardware ethernet 00:00:00:00:00:00;  fixed-address 192.168.0.5; }
# Zuweisung erfolgt über den Dateinamen, der der selbe sein muss wie Common Name im Schlüssel des Clienten
#Pfade sind relativ zum Configfile
client-config-dir newvpn/ccd-dir

ifconfig-pool-persist ipp.txt

# Dadurch können sich Clienten untereinander verbinden  
client-to-client

keepalive 10 120
# Kommpression der Verbindung
comp-lzo

# openvpns user-ID
user nobody
# openvpns group-ID
group nobody

# Schlüssel wird bei Erhalt von SIGUSR1 nicht neu geladen
persist-key
# Tun-Device wird bei Erhalt von SIGUSR1 nicht neu geladen
persist-tun
# Pfad ist relativ zum Configfile
status openvpn-status.log
# Verbosity Level
verb 3
IP Zuweisung an Client

Im Verzeichniss newvpn/ccd-dir liegen die Dateien, die den Clienten feste IPs zuweisen können.
Die Datei hat den selben Namen wie der Common Name im Key des Clienten

vim <Common Name> 

Inhalt der Datei

ifconfig-push 10.8.100.201 255.255.255.0


Files in newvpn
ca.crt
dh2048.pem
server.crt
server.key
Service starten

Startet automatisch bei Systemstart.
String zwischen @ und .service ergibt sich aus dem Confignamen

systemctl enable openvpn@server.service 

Händischer Start

systemctl start openvpn@server.service 

Client Config

#
# /etc/openvpn/newvpn.conf
# Files liegen in /etc/openvpn/newvpn

tls-client

remote <IP oder FQDN des VPN-Servers> <Port des VPN-Servers>
proto udp

dev-type tun
dev newvpn

ca      newvpn/ca.crt
cert    newvpn/client1.crt
key     newvpn/client1.key

pull

keepalive 10 120

comp-lzo

persist-key
persist-tun

verb 3
Files in newvpn
ca.crt
client1.crt
client1.key

Links