OpenVPN

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.x dle zvyklostí své distribuce.

Je třeba mít neomezenou cestu pro odchozí TCP na port 80. (coz by melo byt skoro vsude trivialne splneno)

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 jmeuje 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, predevším DNS server. Pokud chcete, aby v době, kdy máte připojenou VPN do hkfree, se upřednostil 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 navod - 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řipojeni (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: Vytvoreni+podepsani certifikatu pro VPN-klienta - DEPRECATED !


NEW stačí pustit tento příkaz

genovpn username

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

Na otazku Common Name (eg, your name or your server's hostname) [] je treba napsat presne jmeno 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 dame 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 alespon 2 a vytvori si takovouto konfiguraci: (priklad - jsme v adresari /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)

Vzorovy konfigurak (pro rozdavani klientum) je zde (hkfree.ovpn)

Na charonu neni treba nic restartovat Log teto VPNky je v /var/log/openvpn-tap254 Klient nakoupi

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

Co delat, kdyz je port pro HKFree OpenVPNku ve vasi siti blokovan (skola, prace, atd.)


Podminky:

  • V siti je povoleno aspon SSHcko, to jest port 22
  • Mate SSH ucet na charon.hkfree.org lide.hkfree.org
  • Windows useri maji 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 freecka, 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}'` # prida routu openvpn s puvodni branou
openvpn /home/kulin/vpn_hkfree/hkfree.ovpn&                               # spusti openvpn na pozadi
sleep 13s                                                                 # ceka 13 sekund, aby mohl openvpn plne nabehnout
ip ro del default                                                         # smaze puvodni defaultni routu
ip ro add default via `ip ro | grep ^10.0.0.0 | awk '{print $3}'`         # vytvori novou defaultni routu pomoci tunelu openvpn
echo "Hotovo, nezapomen pak zabit openvpn (sudo killall openvpn)"         # openvpn stale bezi na pozadi a jde pres ni veskery provoz


Windows:

a) V putty si vytvorite ssh relaci na charon.hkfree.org lide.hkfree.org

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

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

c) Session (relaci) si ulozte jinak bude vase nastaveni platne jenom pro jedno spusteni (prihlaseni).

d) Kliknete na Open a prihlaste se na charon.hkfree.org lide.hkfree.org.

Nyni to bude mit stejny efekt jako linuxovy prikaz vyse uvedeny. Pokracovani je tedy spolecne ...


Unix/Linux/Windows:

Nyni Vas pocitac nasloucha na loklalnim port 1515. Cokoliv na nej vleze se dostane tunelem pres port 22 na vpn.hkfree.org port 80.

Zbyva posledni vec a to upravit konfig pro tunel.

# Konfiguracni soubor pro OpenVPN/tap pro HKfree.
# VojtaLhota 13.4.2005
#
# Upraveno pro ssh tunel
# motyl 24.10.2006

dev tap
port 1515          # nas lokalni port
remote localhost   # lokalni host - 127.0.0.1
comp-lzo
float
tls-client
ca charonvpn.crt

# Zde je treba nahradit 'client1' svym vlastnim klicem:
cert client1.crt
key client1.key

verb 4
pull


A to je vse :)