Windows VPN

Z HKfree wiki
Přejít na: navigace, hledání

Návod pro připojení do HKfree přes OpenVPN zvenku

Předpokládáme, že ten, kdo se chce na VPN připojit (např. člen HKfree ze školy, z práce) nemá nic než holý počítač. Bude si muset nainstalovat nejnovější OpenVPN, je potvrzeno, že s verzí 2.4.6 VPN korektně funguje.

Jak přijít k certifikátu a konfiguraci? Podívat se na https://vpn.hkfree.org (uživatelské jméno je UID a heslo je heslo brané z LDAP), nechat si vygenerovat a uložit konfigurák s certifikáty.

Pro klienty

  • Nainstalovat OpenVPN

(https://openvpn.net/index.php/open-source/downloads.html - vzít poslední verzi, momentálně nejnovější 2.4.6)

  • stáhnout si konfiguraci na https://vpn.hkfree.org (nedostupné z interní sítě) měli byste vidět něco takového:

Vpn1.PNG


  • když projdete přes Captcha a kliknete na "stáhnout nový certifikát a konfiguraci" budete vyzváni k ověření
  • uvěření je formou user = UID (např. 1234), heslo je brané z LDAP (stejné jako např. do moje.hkfree.org)
  • po úspěšném ověření se stáhne konfigurační soubor s certifikáty a privátním klíčem (vše je nyní v jednom souboru)
  • konfigurační soubor uložte do "conf" adresáře ovpn, tedy pro windows např. C:\Program Files\OpenVPN\config\ soubor musí být s příponou .ovpn
  • nyní stačí spustit OpenVPN a pokud se všechno povedlo VPN tunel se otevře.


Klienti - Linux, BSD, *nix

Nainstalujte OpenVPN 2.4.6 dle zvyklostí své distribuce.

Je třeba mít neomezenou cestu pro odchozí TCP na port 80. (což by mělo být skoro všude triviálně splněno)

Kdo si sám kompiluje jádro, nechť si zapne CONFIG_TUN (Universal TUN/TAP device driver support). Ve 2.6.x je to v Device Drivers/Networking Support. Modul se jmenuje tun.o (2.4) nebo tun.ko (2.6)

Linux VPN klient automaticky nezpracovává některé dhcp-option, které předává náš VPN server, především DNS server. Pokud chcete, aby v době, kdy máte připojenou VPN do hkfree, se upřednostnil DNS server pro vnitřní síť, přidejte si do konfiguračního souboru ještě tyto řádky:

script-security 3
up "echo \"nameserver $(env | grep foreign_option_ | grep DNS | cut -d \" \" -f 3)\" | resolvconf -a $dev # "
down "resolvconf -d $dev # "

V distribuci Debian nedávno přibyly následující skripty, které zařídí totéž:

script-security 3
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

Je třeba mít nainstalovaný balíček resolvconf.


Klienti - Windows

  1. stahnout a nainstalovat GUI instalator [1] [2]
  2. do adresare c:\Program Files\OpenVpn\config nahrat soubory , ktere jste si vytvorili na https://vpn.hkfree.org (viz predchozi sekce)
    • user.crt
    • user.key
    • uhkfree.ovpn
    • ca.crt
  3. pustit openvpn = hotovo
  • pro Windows Vista viz tento návod - http://martina.blog.lupa.cz/0709/openvpn-pod-windows-vista
  • pro Windows 7 je třeba do configu (*.ovpn) přidat "script-security 2" a přejmenovat síťové připojení (adaptér TAP-Windows Adapter V9) na cokoliv bez diakritiky. Také se ujistěte, že program spouštíte jako správce.
  • výše uvedený bod se mi nepotvrdil, ale pro Windows 7 64-bit nefunguje driver pro verze 2.0x, takže je potřeba stáhnout verzi 2.1 (RC 20 a vyšší) - osobně se mi osvědčila verze RC 22, ke stažení zde: https://openvpn.net/release/


Pro správce: root@charon: Vytvoření + podepsání certifikátu pro VPN-klienta - DEPRECATED !


NEW stačí pustit tento příkaz

genovpn username

cd /etc/openvpn/easy-rsa
./build-key client1

Na otázku Common Name (eg, your name or your server's hostname) [] je třeba napsat přesné jméno klienta (zde je to client1)

Sign the certificate? [y/n] y
1 out of 1 certificate requests certified, commit? [y/n] y
cd ../keys

Odsud mu dáme tyto soubory:

-rw-r--r--  1 root root 5012 2005-04-12 18:34 client1.crt
-rw-------  1 root root 1679 2005-04-12 18:34 client1.key <- pozor, uchovat v tajnosti
-rw-r--r--  1 root root 1663 2005-04-12 18:30 charonvpn.crt

Klient si pak nainstaluje OpenVPN verze alespoň 2 a vytvoří si takovouto konfiguraci: (příklad - jsme v adresáři /etc/openvpn/hkfree)

-rw-r--r--  1 root root 1663 Apr 12 18:30 charonvpn.crt <- ma od nas
-rw-r--r--  1 root root 5012 Apr 12 18:58 client1.crt   <- ma od nas
-rw-------  1 root root 1679 Apr 12 18:58 client1.key   <- ma od nas
-rw-r--r--  1 root root  127 Apr 13 00:01 hkfree.ovpn (viz navod pro klienty)

Vzorový konfigurační soubor (pro rozdávání klientům) je zde (hkfree.ovpn)

Na charonu není třeba nic restartovat Log této VPNky je v /var/log/openvpn-tap254 Klient nakoupí

  • IP adresu z rozsahu 10.107.254.x
  • routu do 10.107.x.x
  • DNS server 10.107.4.100 (charon)

Co dělat, když je port pro HKFree OpenVPNku ve Vaší síti blokován (škola, práce, atd.)


Podmínky:

  • V síti je povoleno alespoň SSHčko, to je port 22
  • Máte SSH účet na charon.hkfree.org lide.hkfree.org
  • Windows uživatelé mají putty



Unix/Linux:

ssh -f -g -n -N -L 1515:vpn.hkfree.org:80 charon.hkfree.org lide.hkfree.org

Jelikož mi SSH napsané výše nefungovalo, napsal jsem skript, který spolupracuje s OpenVPN a vytvoří tak tunel do freečka, přes který poteče veškerý provoz. Kulin

ip ro add 89.248.240.41/32 via `ip ro | grep ^default | awk '{print $3}'` # přidá routu OpenVPN s původní bránou
openvpn /home/kulin/vpn_hkfree/hkfree.ovpn&                               # spustí OpenVPN na pozadí
sleep 13s                                                                 # čeká 13 sekund, aby mohl OpenVPN plně naběhnout
ip ro del default                                                         # smaže původní výchozí routu
ip ro add default via `ip ro | grep ^10.0.0.0 | awk '{print $3}'`         # vytvoří novou výchozí routu pomocí tunelu OpenVPN
echo "Hotovo, nezapomeň pak zabít OpenVPN (sudo killall openvpn)"         # OpenVPN stále běží na pozadí a jde přes ní veškerý provoz


Windows:

a) V putty si vytvoříte SSH relaci na charon.hkfree.org lide.hkfree.org

To znamená Host name bude 'vaseusername@charon.hkfree.org' a port zvolit 22 (Protocol SSH).

b) Na kartě "Tunnels" nastavíte "source port" na 1515, "destination" na vpn.hkfree.org:80 , typ "Local".

c) Session (relaci) si uložte jinak bude Vaše nastavení platné jenom pro jedno spuštění (přihlášení).

d) Klikněte na Open a přihlašte se na charon.hkfree.org lide.hkfree.org.

Nyní to bude mít stejný efekt jako linuxový příkaz výše uvedený. Pokračovaní je tedy společné ...


Unix/Linux/Windows:

Nyní Vaš počítač naslouchá na lokálním port 1515. Cokoliv na něj vleze se dostane tunelem přes port 22 na vpn.hkfree.org port 80.

Zbývá poslední věc a to upravit config pro tunel.

# Konfigurační soubor pro OpenVPN/tap pro HKfree.
# VojtaLhota 13.4.2005
#
# Upraveno pro SSH tunel
# motyl 24.10.2006

dev tap
port 1515          # náš lokální port
remote localhost   # lokální host - 127.0.0.1
comp-lzo
float
tls-client
ca charonvpn.crt

# Zde je třeba nahradit 'client1' svým vlastním klíčem:
cert client1.crt
key client1.key

verb 4
pull


A to je vše :)