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 uUID a heslo je heslo do money - napr. u1234 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

1. Nainstalovat OpenVPN

2. Vygenerovat si obsah client.key a client.crt na https://vpn.hkfree.org/ (jmeno a heslo je uUID a heslo z money/userdb - napr. u1234 a heslo XXXX)a stahnout charonvpn.crt z https://vpn.hkfree.org/charonvpn.crt 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:

# Konfiguracni soubor pro OpenVPN/tap pro HKfree.
# VojtaLhota 13.4.2005
# Zmena portu a IP.....  Kulin 20.9.2007

dev tap
port 53
remote 89.248.240.126
comp-lzo
float
tls-client
ca charonvpn.crt

cert client.crt
key client.key

verb 4
pull

Klienti - Linux, BSD, *nix

Nainstalujte OpenVPN 2.x dle zvyklostí své distribuce.

Je třeba mít neomezenou cestu pro odchozí UDP pakety na port 254.

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:

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éž:

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. 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
    • charonvpn.crt
  3. pustit openvpn = hotovo

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 charonu
  • Windows useri maji putty



Unix/Linux:

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


Windows:

a) V putty si vytvorite ssh relaci na charon.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 charona.

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