OpenVPN
Obsah
Návod pro připojení do HKfree přes OpenVPN zvenku
- http://openvpn.se/ windows GUI version
- http://openvpn.net/ homepage
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) )
- Vygenerovat si obsah client.key a client.crt na https://vpn.hkfree.org/ (jmeno a heslo je UID a heslo z money/userdb - napr. 1234 a heslo XXXX)
- Stahnout ca.crt z https://vpn.hkfree.org/ca.crt
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
- 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
- ca.crt
- 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.orglide.hkfree.org - Windows useri maji putty
Unix/Linux:
ssh -f -g -n -N -L 1515:vpn.hkfree.org:80charon.hkfree.orglide.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 :)