OpenVPN na win2003 server
Ahoj, chtěl jsem se zeptat, zda-li někdo nevíte o nějakém spolehlivém návodu na provoz openvpn na systému windows 2003 server. Pomocí této utility by se na server mělo připojovat více lidí z windowsovských OS. Čili komunikace win-win .... všude na netu nacházím jen konfigurace na linux. Nebo nemáte s tím někdo vlastní zkušenosti?díky za rady.
Používám OpenVPN na komunikaci Win-Win přes wifi (připojení nb k domácímu pc). Co se týče návodů, zprovoznění je relativně obdobný pod win i linuxem, takže konfigurace se moc neliší (pouze co se týče zařízení, tedy myslím např. že Linux neumí buď tun nebo tap takže se musí použít to který umí, na Win jde obojí). Všechno jsem našel na googlu ale už bohužel nevím kde přesně jsem ty konfigy našel, byly tam víc specializovaný na win. Přidám svoje konfiguráky jestli je tu někde najdu...
(jinak teda předpokládám, že na 2003 server se to bude chovat stejně nebo obdobně jako na XP Pro)
(jinak teda předpokládám, že na 2003 server se to bude chovat stejně nebo obdobně jako na XP Pro)
Takže: hodně dobře shrnutý je to tady
http://openvpn.net/howto.html
(jel jsem povětšinou podle něj)
Předpokládám, že budeš chtít zabezpečenej přenos, tj. první věcí bude vygenerování bezpečnostních klíčů, popis zde:
http://openvpn.net/howto.html#pki
- na serveru vygenerovat certifikační autoritu, kterou pak budeš používat pro vytvoření certifikátů
[code]
cd Programy\OpenVPN\Easy-RSA
init-config
[/code]
(ve vars možno přednastavit některý věci, co se má používat v certifikátech apod.)
[code]
vars
clean-all
build-ca
[/code]
- pak vygenerovat certifikát a klíč pro server
[code]
build-key-server server
[/code]
- pak vygenerovat certřifikáty pro jednotlivý klienty
[code]
build-key client1
....
[/code]
- a nakonec DF parametry
[code]
build-dh
[/code]
(délka zabezpečení se nastavuje ve vars, standard 1024, pro paranoiky 2048, neni rozdíl v rychlosti spojení, pouze v době, za kterou se jednorázově vygeneruje)
Pod tim je tabulka, který z nich jsou na co určený a který je potřeba nechat tajný a který ne.
(tj. defakto všechno nechat na serveru, pouze client.key a client.crt překopírovat na odpovídajícího klienta; na každým klientu pak ještě musí bejt ca.crt)
ca.key nemusí být ani na serveru ani na klientech, tj. lze uložit někam na chráněný místo a je to nejdůležitější certifikát, neboť se používá pro vygenerování klíčů (tj. např. potenciální hacker by při jeho získání si moh bez problému vygenerovat libovolnej počet vlastních klíčů a dostat se tak přes zabezpečení)
Potom je potřeba udělat konfigurační soubory. Instance OpenVPN se pustí pro každej .ovpn soubor v /config, tj. lze mít víc např. konfiguračních souborů na klientu pro víc serverů, nebo mít na jednom počítači zároveň server pro jednu síť a klient pro jinou síť atd. (pak musí používat různý porty).
Příklady konfiguračních souborů klienta a serveru jsou v návodu dole. Soubor serveru nemam tady, kouknu na to až přijdu domů. Používám tam toho relativně dost, včetně DHCP, takže je to relativně dobrej příklad.
Zatím sem dávám soubor mýho klienta:
[code]
# Specify that we are a client and that we
# will be pulling certain config file directives
# from the server.
client
dev tap
;dev tun
;proto tcp
proto udp
remote 192.168.0.1 8194
; server-name 8194
ca ca.crt
cert nb-pracovni.crt
key nb-pracovni.key
ns-cert-type server
ping 15
ping-restart 45
ping-timer-rem
persist-key
persist-tun
resolv-retry infinite
nobind
comp-lzo
verb 3
;mute 20
mute-replay-warnings
[/code]
Jo a doporučuju obzvlášť na serveru to nechat spouštět jako Service, tj. vlézt do služeb a nastavit službě OpenVPN spouštění na Automatic. Je to často vhodný i na klientech (já to tak mám).
http://openvpn.net/howto.html
(jel jsem povětšinou podle něj)
Předpokládám, že budeš chtít zabezpečenej přenos, tj. první věcí bude vygenerování bezpečnostních klíčů, popis zde:
http://openvpn.net/howto.html#pki
- na serveru vygenerovat certifikační autoritu, kterou pak budeš používat pro vytvoření certifikátů
[code]
cd Programy\OpenVPN\Easy-RSA
init-config
[/code]
(ve vars možno přednastavit některý věci, co se má používat v certifikátech apod.)
[code]
vars
clean-all
build-ca
[/code]
- pak vygenerovat certifikát a klíč pro server
[code]
build-key-server server
[/code]
- pak vygenerovat certřifikáty pro jednotlivý klienty
[code]
build-key client1
....
[/code]
- a nakonec DF parametry
[code]
build-dh
[/code]
(délka zabezpečení se nastavuje ve vars, standard 1024, pro paranoiky 2048, neni rozdíl v rychlosti spojení, pouze v době, za kterou se jednorázově vygeneruje)
Pod tim je tabulka, který z nich jsou na co určený a který je potřeba nechat tajný a který ne.
(tj. defakto všechno nechat na serveru, pouze client.key a client.crt překopírovat na odpovídajícího klienta; na každým klientu pak ještě musí bejt ca.crt)
ca.key nemusí být ani na serveru ani na klientech, tj. lze uložit někam na chráněný místo a je to nejdůležitější certifikát, neboť se používá pro vygenerování klíčů (tj. např. potenciální hacker by při jeho získání si moh bez problému vygenerovat libovolnej počet vlastních klíčů a dostat se tak přes zabezpečení)
Potom je potřeba udělat konfigurační soubory. Instance OpenVPN se pustí pro každej .ovpn soubor v /config, tj. lze mít víc např. konfiguračních souborů na klientu pro víc serverů, nebo mít na jednom počítači zároveň server pro jednu síť a klient pro jinou síť atd. (pak musí používat různý porty).
Příklady konfiguračních souborů klienta a serveru jsou v návodu dole. Soubor serveru nemam tady, kouknu na to až přijdu domů. Používám tam toho relativně dost, včetně DHCP, takže je to relativně dobrej příklad.
Zatím sem dávám soubor mýho klienta:
[code]
# Specify that we are a client and that we
# will be pulling certain config file directives
# from the server.
client
dev tap
;dev tun
;proto tcp
proto udp
remote 192.168.0.1 8194
; server-name 8194
ca ca.crt
cert nb-pracovni.crt
key nb-pracovni.key
ns-cert-type server
ping 15
ping-restart 45
ping-timer-rem
persist-key
persist-tun
resolv-retry infinite
nobind
comp-lzo
verb 3
;mute 20
mute-replay-warnings
[/code]
Jo a doporučuju obzvlášť na serveru to nechat spouštět jako Service, tj. vlézt do služeb a nastavit službě OpenVPN spouštění na Automatic. Je to často vhodný i na klientech (já to tak mám).
Takže, konfigurace serveru u mě je následující:
[code]
dev tap
;dev tun
;proto tcp
proto udp
; dev-node WirelessVPN
server 192.168.20.0 255.255.255.0
;server-bridge 10.10.10.1 255.255.255.0 10.10.10.128 10.10.10.254
management localhost 8505
port 8194
client-to-client
;route 192.168.0.0 255.255.255.0
;push "route 192.168.1.0 255.255.255.0"
ca ca.crt
cert MyServer.crt
key MyServer.key
dh dh2048.pem
ifconfig-pool-persist ipp.txt
client-config-dir wireless-clients
ccd-exclusive
keepalive 10 120
comp-lzo
verb 3
mute-replay-warnings
; mute 20
[/code]
Věci za středníkama jsou zakomentovaný, nechal jsem je tam protože jde o příkazy, který jsou taky poměrně dobře použitelný.
dev tap/tun je typ zařízení, lze zvolit libovolně, ale musí bejt stejný pro server i všechny klienty, stejně jako protokol (proto tcp/udp - udp je údajně výkonnější, takže je lepší použít ten, pokud to jde, a jenom když by to nešlo pužít tcp, ten by měl jít vždycky); pokud se zvolí dev tun, je jinej formát příkazu "server" (tj. ten příkaz pak má jiný parametry - pro tap je to síť a maska, tj. takhle by měl DHCP server přidělovat adresy 192.168.20.4,192.168.20.5 apod.)
client-to-client je proto aby mohli klienti komunikovat mezi sebou pokud nebude budou moct komunikovat jenom se serverem.
ifconfig-pool-persist je jméno souboru kam ukládá adresy klientů (tj. pokud se klient se stejným hostname připojí znova, dostane stejnou adresu)
client-config-dir je adresář, kde se hledají konfigurace pro známý klienty. Konkrétně v souboru config\wireless-clients\nb-pracovni mam tohle:
[code]
ifconfig-push 192.168.20.8 255.255.255.0
[/code]
protože chci, aby konkrétně tenhle počítač dostal přidělenou adresu 192.168.20.8 a masku 255.255.255.0
(pokud neni pro nějakej počítač zadaná konfigurace, přidělí se DHCP serverem nějaká)
To je asi základní náhled a pak si můžeš projít jednotlivý příkazy, co by se ti hodilo nebo naopak nehodilo a upravit si to podle svých potřeb.
[code]
dev tap
;dev tun
;proto tcp
proto udp
; dev-node WirelessVPN
server 192.168.20.0 255.255.255.0
;server-bridge 10.10.10.1 255.255.255.0 10.10.10.128 10.10.10.254
management localhost 8505
port 8194
client-to-client
;route 192.168.0.0 255.255.255.0
;push "route 192.168.1.0 255.255.255.0"
ca ca.crt
cert MyServer.crt
key MyServer.key
dh dh2048.pem
ifconfig-pool-persist ipp.txt
client-config-dir wireless-clients
ccd-exclusive
keepalive 10 120
comp-lzo
verb 3
mute-replay-warnings
; mute 20
[/code]
Věci za středníkama jsou zakomentovaný, nechal jsem je tam protože jde o příkazy, který jsou taky poměrně dobře použitelný.
dev tap/tun je typ zařízení, lze zvolit libovolně, ale musí bejt stejný pro server i všechny klienty, stejně jako protokol (proto tcp/udp - udp je údajně výkonnější, takže je lepší použít ten, pokud to jde, a jenom když by to nešlo pužít tcp, ten by měl jít vždycky); pokud se zvolí dev tun, je jinej formát příkazu "server" (tj. ten příkaz pak má jiný parametry - pro tap je to síť a maska, tj. takhle by měl DHCP server přidělovat adresy 192.168.20.4,192.168.20.5 apod.)
client-to-client je proto aby mohli klienti komunikovat mezi sebou pokud nebude budou moct komunikovat jenom se serverem.
ifconfig-pool-persist je jméno souboru kam ukládá adresy klientů (tj. pokud se klient se stejným hostname připojí znova, dostane stejnou adresu)
client-config-dir je adresář, kde se hledají konfigurace pro známý klienty. Konkrétně v souboru config\wireless-clients\nb-pracovni mam tohle:
[code]
ifconfig-push 192.168.20.8 255.255.255.0
[/code]
protože chci, aby konkrétně tenhle počítač dostal přidělenou adresu 192.168.20.8 a masku 255.255.255.0
(pokud neni pro nějakej počítač zadaná konfigurace, přidělí se DHCP serverem nějaká)
To je asi základní náhled a pak si můžeš projít jednotlivý příkazy, co by se ti hodilo nebo naopak nehodilo a upravit si to podle svých potřeb.