OpenVPN

Z HKfree wiki
Skočit na navigaci Skočit na vyhledává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 OpenVPN 2.x (1.x nefunguje) a mít certifikát podepsaný certifikacni autoritou na VPN serveru hkfree, který slouží jednak pro autorizaci (místo jména+hesla) a druhak pro šifrování vlastních dat.

Jak přijít k certifikátu? Podivat se na https://vpn.hkfree.org (uzivatelske jmeno je UID a heslo je heslo do money - napr. 1234 a heslo XXXX), nechat si vygenerovat, zkopirovat a ulozit na bezpecnem miste privatni klic (patri do client.key) a podepsany certifikat (patri do client.crt)

Pro klienty

  • Nainstalovat OpenVPN

(https://launchpad.net/~berni/+archive/ipv6, http://www.greenie.net/ipv6/openvpn.html - vzít poslední verzi, (tzn teď asi http://www.greenie.net/ipv6/openvpn-2.2.0-ipv6-savepasswd-20110522-install.exe) )

Pozn: kliknout pravym mysitkem na odkaz a dat ulozit jako.

Pozn: uUID, znamena retezec "u"+UID :-)

Do souboru client.key vlozit vygenerovany klic ve formatu

  -----BEGIN DSA PRIVATE KEY-----
MIIDPQIBAAKCAQEAgFuKGkqBHHsIgTyhdSpN0cmD/icfSWIEN7Kj33ee/eQG54P/
zus85+1oM4vrDkuork6QFP3LZ/wh4Sa4N/86EE2+angNYz9+pePnMFVPbibyopuh
TaOGeTLhl3avgv3orGMgp/6uh4wrLid3e+UyCGbFBtLmFhVrmXO0xSma60RbWXwi
xNeHiy4vir+pTaNxrbb8LfW4uSw5l1hXC78AHjzUbAgSk2q35SJN3Vmndac6HA9f
G6uXZ6mcJ8c2MzLArmw5XQJMWawZJ6TVxaCwrFyHw2tscfAjl4MKU+PU3Qs/+XCq
+F82XW3u+mSPJ4wurcnrxVk7Q+wG2bNqqJfTZQIVALFdTkSHo/5+dcNk+ZK7641K
Sr77AoIBAEW68YJOrVwvUwUeZ+w19dz+LJlC+jNTUmwSpaM4wtlp/PN7XrXn6Azi
i8oDOt0XOOySaFiHrNxL7m5mw1wsLDiyl5bHXfKvHuKzzuGX7SkAr31NEyuA3T0g
ee7K6+jP89sxUMDfr9lvdUJCWEw4jEmBRU7Z9fAdOqrD3hONcolEpWfEvVyxBvPC
lQlodh2W6w8h/2C6rg/TlfoVMPNrBIHXAYUN9SPuDluVrFnnI88nNoBeBns1Momj
SZh1ufMJWOxbmb+QQL63ce5c/EeafvADyoQ2UwhbTeCcXssNHd+7YvVNqyp7XWdf
VJUfA6cRoLm9dwIqXkHa2AiZkKmtT2ECggEAegOinphHhxH66yus/Fr3sG1Wy6g/
4WmADddDQvGIDjpxruxr49pESCPfLbcPX3X9wbpZGEfYOuotAk6/HoTyj8+CiEZu
WlTE6olMF1X8UmuXCdV4dx01aErx07qLoQnZ9Up3mKRnecR0A0zq60CZCvqRvohe
ruhWCrBnVCH9ttq9KhhV4JVcswp8EUx7QO4QPHF2B3YP0DYG4TWxDb+1BRRtfNLo
+/qkT3MrmLV41tpGAInu00I8BeTy6mqi6xiTnNf4MeQA0Zt8wh3qj3gH+DIaU/eb
qW11XxYeWpfIYNYi5hPH9+qHM5faaVytjX0mGsY5MNC+yi/kluoXqjPruwIULIO0
5KsXBrKoWk7BqzlKr2dnrw4=
-----END DSA PRIVATE KEY-----

A do souboru client.crt vlozit vygenerovany podepsany certifikat ve formatu

-----BEGIN CERTIFICATE-----
MIIG4DCCBcigAwIBAgIBYTANBgkqhkiG9w0BAQUFADCBkDELMAkGA1UEBhMCQ1ox
FzAVBgNVBAgUDkN6ZWNoX1JlcHVibGljMRcwFQYDVQQHEw5IcmFkZWMgS3JhbG92
ZTETMBEGA1UEChMKSEtmcmVlLm9yZzEaMBgGA1UEAxMRY2hhcm9uLmhrZnJlZS5v
cmcxHjAcBgkqhkiG9w0BCQEWD2luZm9AaGtmcmVlLm9yZzAeFw0wNzA5MjQxNzU3
MTNaFw0xNzA5MjExNzU3MTNaMIGzMQswCQYDVQQGEwJDWjEMMAoGA1UECBMDLS0t
MRcwFQYDVQQHEw5IcmFkZWMgS3JhbG92ZTEPMA0GA1UEChMGSEtmcmVlMQwwCgYD
VQQLEwNWUE4xFzAVBgkqhkiG9w0BCQEWCGFob2phaG9qMQ4wDAYDVQQDEwVuZWtk
bzE1MDMGA1UEAxQsUkVRLUlQIDE0Ny4yNTEuNTUuOTMgW2NvbXA1NS05My52cG4u
bXVuaS5jel0wggM6MIICLQYHKoZIzjgEATCCAiACggEBAIBbihpKgRx7CIE8oXUq
TdHJg/4nH0liBDeyo993nv3kBueD/87rPOftaDOL6w5LqBpOkBT9y2f24eEmuDf/
OhBNvmp4DWM/fqXj5zBVT24m8qKboU2jhnky4Zd2r4L96HRjIKf+roeBKy4nd3vl
MghmxQbS5hYVa5lztMUpmutEW1l8IsTXh4suL4q/qU2jcXm2/C31uLkv+ZdYVwu/
AB481GwIEpNqt+UiTd1Zp3WnOhwPXxurl2epnCfHNjMywLJsOV0CTFmjWSek1cWg
sKxch8NrbHHwI5eDClPj1N0LP/lwqvhfNl1t7vpkjyeMLhHJ68VZO0PixtmzaqiX
02UCFQCxXU5Eh6P+fnXDZPmSu+uNSkq++wKCAQBFuvGCTllcL1MFHmftdfXc/iyZ
QvozU1JsEqWjOMLZafzze1615+gM4ovKAzrdFzjskmhYh0DcS+5uZsNQbCw4speW
x13yrx7is87hl+0pAK99TRMrgN09IHnuyuvoz/PbMVDA38fZb3VCQlhJOIxJgUVO
2fXwHTqqw94TjXKJRKVnxL1csQbzwpUJaHYdlusPIf9guqIP05X6FTDzawSB1wGF
DfUj7g5blaxZ5yPPJzaAXgZ7NTKJo0mYdbnzCVjsW5m/kEC+t3HuXPxGmn7wA8qE
NlMIW03gnF7LDR3fu2L1Tasqe11nX1SVHwOnEaC5vXcCKl5B2tgImZCprU9hA4IB
BQACggEAegOinphHhxH66yus/Fr3sG1Wy6g/4WmADddDQvGIDjpxruxr49pESCPf
LbcPX3X9wbpZGEfYOuotAk6/HoTyj8+CiEZuWlTE6olMF1X8UmuXCdV4dx01aEGx
07qLoQnZ9Up3mKRnecR0A0zq60CZCvqRvoheruhWCrBnVCH9ttq9KhhV4JVcswp8
EUx7QO4QPHF2B3YP0DYG4TWxDb+1BRRtfNLo+/qkT3MrmLV41tpGAInu00I8BeTy
6mqi6xiTnNf4MeQA0Zt8wh3qj3gH+DIaU/ebqW11XxYeWpfIYNYi5hPH9+qHM5Va
aVytjX0mGsY5MNC+yi/kluoXqjPru6OCAQYwggECMAwGA1UdEwEB/wQCMAAwCwYD
VR0PBAQDAgeAMB0GA1UdDgQWBBQGGABml9ir6bPxSzOGGPUc6wWFVzCBxQYDVR0j
BIG9MIG6gBR+20H0R/umyokdaNFq3GUD3Vg28aGBlqSBkzCBkDELMAkGA1UEBhMC
Q1oxFzAVBgNVBAgUDkN6ZWNoX1JlcHVibGljMRcwFQYDVQQHEw5IcmFkZWMgS3Jh
bG92ZTETMBEGA1UEChMKSEtmcmVlLm9yZzEaMBgGA1UEAxMRY2hhcm9uLmhrZnJl
ZS5vcmcxHjAcBgkqhkiG9w0BCQEWD2luZm9AaGtmcmVlLm9yZ4IJAJt/FpCNHJZK
MA0GCSqGSIb3DQEBBQUAA4IBAQAOH9sugrFVdE2wa0ZNje2VUoTOPOxdOzi4h2wP
5BojdkwpPwc80XnVdcEkSfBnp4D2D5XdKq5KJs9tZQCDsmEvOpSKZF5EEoCl7X6X
tPwSVNHQ23SfcOfyHzvO01uihH5EdAEk19An8mZdl89ojAr+HpI90c3TOqWa++JC
x7FxK4MRcP/Nu5q2baQRvPaLqA8zqzRiPYKkTE9MbfGv+09nDsMnvPkjpXrD0IdA
prkUa2adXlzw4hlFKMPHN3swl9w78GoisWgilUiHM9n8L2Rxu88PJ7UDiwoshDke
4DtNaVQHkE69AUjzjoKBIJQP3DqOu5ilJ1PfylPNYN1pnr6l
-----END CERTIFICATE-----

3. Vytvořit si konfigurační soubor pro OpenVPN, např. hkfree.ovpn, s tímto obsahem (lze použít i port 443):

# Konfiguracni soubor pro OpenVPN/tap pro HKfree.
# VojtaLhota 13.4.2005
# Zmena portu a IP ....  Kulin 20.9.2007
# Pridani routy pro confluence .... Kulin 15.11.2011
# Uprava MTU po JRKckovi .... Bkralik 19.2.2013

dev tun6
proto tcp-client
port 80
remote 89.248.240.41
comp-lzo
float
tls-client
ns-cert-type server
ca ca.crt

cert client.crt
key client.key

link-mtu 1500
verb 4
pull
route 89.248.240.39 255.255.255.255 10.107.254.97


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.

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 :)