27.4.3.1. Konfigurce serveru

Aktuální konfigurace na serveru:

# Configuration file for server - many Road Wariors

local 216.95.167.112
port 1194
proto udp
dev tun         # tun/tap

tls-server
mode server

ca      /etc/openvpn/ca.crt             # Root CA
cert    /etc/openvpn/pikachu.crt        # My Public Certificate
key     /etc/openvpn/pikachu.key        # My Secret Key
dh      /etc/openvpn/dh1024.pem         # Diffie Hellman parameters.

server 10.225.65.0 255.255.255.0
#ifconfig 10.225.65.1 10.225.65.2
#ifconfig-pool 10.225.65.10 10.225.65.30        # IP range clients
#ifconfig-pool-persist ipp.txt

comp-lzo

user nobody
group nogroup

persist-key
persist-tun

push            "route 10.0.0.0 255.0.0.0"      # route to company network
push            "dhcp-option DNS 10.17.64.17"
push            "dhcp-option DOMAIN example.cz"
push            "redirect-gateway"

# Client specific configuration
client-config-dir ccd

# Create logs
status          /var/log/openvpn-status.log
log-append      /var/log/openvpn.log
verb 3

K rozlišení klientů mezi sebou slouží příkaz client-config-dir který má jako parametr název podadresáře s klientskými nastaveními. Klientské konfigurace jsou uloženy v samostatných souborech, jejichž jméno odpovídá CN v certifikátu. Například Jirka který má vystaven certifikát s …/CN=jirka/…, proto se soubor se jeho specifickým nastavením bude jmenovat jirka. V tomto souboru mu pak přidělím pevnou adresu, případně provedu další nastavení specifická jen pro něj.

ifconfig-push 10.225.65.13 10.225.65.14

Z rozsáhlé konfigurace OpenVPN vyberu jako další zajímavou a užitečnou věc spouštění skriptů při sestavení a rozpojení spojení. Pro tyto účely jsou v konfiguračním souboru příkazy client-connect a client-disconnect. Ukážeme si to na jednoduchém skriptu který bude hlásit sestavená a ukončená spojení. Do konfiguračního souboru přidáme

client-connect /etc/openvpn/connect

a vytvoříme jednoduchý skript /etc/openvpn/connect

#!/bin/sh
EMAIL=spravce@firma.cz

mail $EMAIL -s "OpenVPN Connect report" <<EOF
$(date "+Y-%m-%d %T")
Klient s CN=$1 a IP=$2 se prave pripojil do VPN.
-- connect
EOF