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