
Každého kdo už dělal krapet větší OpenVPN klient-server instalaci určitě nebavilo všechny potřebné soubory pro klienta pokaždé balit ručně. Jsem jedním z nich. Tak vznikl další bezejmenný skript.
Jako většina těch, co v OpenVPN využívají TLS i já používám přiložených skriptů easyrsa – ve verzi 2. K nim mám ale napsaný obalový skript, který mi certifikát vygeneruje, udělá konfigurační soubor a celé to zabalí a hodí do výstupního adresáře. Tvoří i více uživatelů na jedno zavolaní a dokáže balíčky regenerovat – což se hodí při změně konfiguračního souboru.
Instalace je poměrně jednoduchá, do vybraného adresáře nakopírujeme skript. Do podadresáře easyrsa pak easyrsa. Do podadresáře keys se pak bude ukládat výstup z easyrsa – klíče, certifikáty a dh parametry. Out pak slouží pro uložení už hotových balíčků. A konečně v template je uložena šablona klientské konfigurace a certifikáty a jiné potřebné soubory. Conf pak obsahuje nastavení serveru.
adresar
+- conf/
+- easyrsa/
+- keys/
+- out/
+- template/
+- doit.sh
Před samotným použitím pak ještě nastavíme easyrsa editací souboru easyrsa/vars – ten přibalený má nastaveny rozumné defaulty a obsahuje čáru pod kterou nedoporučuji editovat
. A následně pomocí:
cd easyrsa
. vars
# . easyrsa/vars
# ./easyrsa/clean-all # vymaze obsah adresare keys, pouzivat jednorazove!!
# ./easyrsa/build-dh # idealni cas uvarit si kavicku
# ./easysa/pkitool --initca
# ./easyrsa/pkitool --server server
./clean-all # vymaze obsah adresare keys, pouzivat jednorazove!!
./build-dh # idealni cas uvarit si kavicku
./pkitool --initca
./pkitool --server server
cd ..
openvpn --genkey --secret keys/secret.key
cp keys/ca.crt keys/secret.key template/
Tím vytvoříme CA, certifikát serveru a sdílený klíč pro použití jako tls-auth (jsou to obecné a základní kroky, není vytvářena mezivrstva v podobě dceřinné CA, nejsou použita žádná hesla apod.)
Vytvoření konfiguračních souborů nechávám na Vás (je přiložena ukázka cfg pro klienta). V konfiguračním souboru klienta se sekvence %NAME% nahradí názvem certifikátu klienta – využívá se pro nastavení souboru který obsahuje certifikát a pro přehlednost.
A konečně se dostaneme ke generování uživatelských „balíčků“:
./doit.sh klient1 klient2 klient3 klient4
Tím se nám vytvořily balíčky ve výstupním adresáři out, připravené na rozdělení
V případě, že bychom někdy upravovali šablonu, stačí spustit:
./doit.sh --regen klient1 klient2 klient3 klient4
Certifikaty se tak negenerují nové, vše se jenom „updatuje“.
Přiložené soubory: vpn.tar.gz
K rozumnému použití je stále doporučeno nastudovat man openvpn, stránky www.openvpn.net a README v easyrsa. Informace jsou bez záruky, za případné způsobené škody neručím – nicméně toto v provozu používám. Obsah přiloženého taru je po nastavení požadovaných údajů reálně použitelný – byť je pro většinu použití pouhou kostrou.
UPDATE1: opravena tvorba CA
Komentáře
Dalsi script
A kdy bude dals script na administraci celeho systemu?
Neco jako
zadejte ukol: nastav ftp pro uzivatele pomoci mysql
instaluji a nastavuji ftp… provedeno
dalsi ukol [A/n]
zadejte ukol: hackni microsoft
trivialni operace jsou na uzivateli… skipping
dalsi ukol [A/n] n
…
Uz se tesim
..:: Stanley Douglish ::..
http://stanley-douglish.wz.cz
Nebudou
Skriptovane mam jenom mista kde existuje casto opakovana cinnost ktera se da parametrizovat
par poznamek ke skriptum
1.
vyresi to zmena v easyrsa/vars na
2.
mozna by stalo za to zkusit pouzit obecnejsi
v dalsich skriptech uz je /bin/sh - to by melo byt funkcni asi vsude
ad1: chyba nastala pri
ad1: chyba nastala pri zpetnem vytvareni howto z neceho co uz delsi dobu uspokojive funguje. S trochou stesti by se to dalo zahrnout do te casti, kde pisi ze mas editovat ten soubor ‚vars‘ a nastavit v nem veci nad =====, ta promenna je nastesti nad nimi
ad2: tvurcem skriptu easyrsa nejsem ja, tuhle chybu muzes nahlasit jako bug v openvpn, v jeho balicku je to distribuovane