[VPN]FIT VPN

K čemu je VPN FIT?

VPN FIT má toto základní použití:

  • zpřístupňuje lokální síť FIT přímo šifrovaným kanálem (důležité zejména při přístupu přes veřejné nezabezpečené WiFi),
  • zpřístupňuje servery Windows (fik a aja, vzdálený souborový přístup na ně je jinak zakázán z bezpečnostních důvodů na směrovači fakulty),
  • zajišťuje IPv6 konektivitu pro uživatele, kteří nemají nativní nebo spolehlivé tunelované IPv6 spojení.
Pro IPv4 přístup jsou použity privátní adresy z rozsahu 172.27.128.0/21. Přístupné jsou pouze sítě 147.229.8.0/23, 147.229.15.128/25 a 147.229.176.0/24. Pro IPv6 jsou použity veřejné adresy ze subnetu 2001:67c:1220:810::/64 a přístupné jsou všechny globální adresy 2000::/3 (jinými slovy, VPN vám zpřístupní IPv6 spojení do světa).

Potřebný software: OpenVPN, instalační balíček pro Windows aktuální verze (od verze 2.3 je podpora IPv6 standardní součástí). Pokud nebude fungovat 64 bitová verze, zkuste 32 bitovou.

Konfigurace ve Windows

  1. Nainstalovat OpenVPN - pro 64 bitový systém zvolte 64 bitovou verzi. Ve Windows 7,8,10 je třeba spouštět GUI s administrátorskými právy (pravé tlačítko myši, vlastnosti, spustit jako administrátor).
  2. Stáhnout konfiguraci klienta a uložit do správného adresáře - \Program Files\OpenVPN\config. Vzhledem k ochraně těchto míst musíte konfiguraci klienta uložit na lokální disk a pak terpve přesunout do cíle.
  3. Ve firewallu Windows (Linux - paketový filtr) je třeba povolit průchod paketů driverem TAP (u AVG stačí označit TAP-WIN32 Adapter jako bezpečnou síť, firewall Windows 7+ nevyžaduje žádné změny). Při počátečním testování doporučujeme raději firewall vypnout, ověřit funkci a pak teprve laborovat s nastavením firewallu. Podrobnější informace najdete na stránkách návodů k OpenVPN (přitom hledejte návody pro TUN, přestože zde u Windows píšeme o driveru TAP).
  4. Spustit OpenVPN GUI (ve Windows, nutno s právy administrátora ) a zvolit Connect (spustí se minimalizovaný do lišty, je třeba najít ikonku) nebo openvpn --config FIT.ovpn (Linux).
    Ve Windows 7-10 je nutné OpenVPN GUI pouštět s právy administrátora, lze použít Plánovač úloh (Task Scheduler) - naimportujte úlohu openvpn-gui.xml.
  5. Zadat FIT login a heslo.
  6. Pokud vše proběhne v pořádku, lze ověřit fungující spojení výpisem směrovací tabulky, tracert/traceroute kazi.fit.vutbr.cz (musí jít přímo přes 172.27.xx.yy), tracert6/tracert -6/traceroute6 ipv6.google.com nebo otevřením stránky Webu Fit (vlevo dole by měla být adresa 2001:67c:1220:810::xx:yy).
  7. Ve Windows 7+ nezapoměňte spouštet OpenVPN GUI s právy administrátora, jinak se sice vytvoří spojení, ale nenastaví se směrovací tabulky, takže to nebude fungovat.
  8. Máte-li OpenVPN funkční, můžete na stejné místo přidat i konfiguraci pro VPN VUT: VUT-aktivace.ovpn. Je to funkční alternativa pro všechny případy, kdy potřebujete použít vpn.vutbr.cz ale nechcete nebo nemůžete použít VPN s protokolem PPTP/GRE, např. vaše internetové připojení nemá veřejnou IPv4 adresu (typicky ADSL v síti O2).

    Do této sítě při přihášení zadáte VUTlogin VUTpin. Při připojení do této sítě je veškerý IPv4 provoz směrován tudy, jakmile toto spojení nepotřebujete, je rozumné se odpojit.

    Pozor! 24.11.2015 je nová verze - liší se certifikáty, pokud již máte nainstalováno, musíte si konfigurační soubor VUT-aktivace.ovpn stáhnout znovu.

Konfigurace v Linuxu

Ověřeno v Ubuntu, Debianu a Fedoře. Takže by to mělo fungovat!

  1. Naninstalujte aktuální openvpn (Ubuntu/Debian: apt-get install openvpn)
  2. Stáhněte si konfigurační soubor FIT.ovpn
    wget http://www.fit.vutbr.cz/CVT/vpn/FIT.ovpn
  3. V terminálovém okně spusťte:
    sudo openvpn --config FIT.ovpn
    Na příkazovém řádku musí být uvedená cesta k tomu FIT.ovpn, pokud není v aktuálním adresáři.
  4. Spojení ukončíte CTRL-C (tj. ukončením programu openvpn)
  5. Chcete-li z nějakého důvodu použít VPN VUT, stáhněte si a použijte příslušný konfigurační dle posledního bodu návodu pro Windows.

Konfigurace v Androidu

Ověřeno ve verzi 4.4.2, 5.0, 5.1

  1. Nainstalujte z Google Play klienta OpenVPN Connect
  2. Stáhněte si konfigurační soubor FIT.ovpn
  3. V aplikaci zvolte Import profile from SD card, a použijte ten stažený soubor
  4. VPN VUT nelze použít, protože VPN API v Androidu nepodporuje TAP tunel

Aby to k něčemu bylo, potřebujete správce souborů, který umí pracovat se sítí, např. ES File Explorer

Proč nelze použít Connection Manager?
Connection Manager nepoužívá konfigurační soubory, ale spouští openvpn s přímo zadanými parametry. Nepočítá s možností ověřování jménem/heslem, ale jen s ověřováním certifikátem. Třeba se to časem změní.
Proč musím openvpn spouštět pomocí sudo?
openvpn manipuluje se směrovacími tabulkami a nastavuje parametry síťového rozhraní, k tomu potřebuje zvýšená oprávnění. openvpn standardně není nainstalován s příznakem SUID, alespoň v Ubuntu - můžete to zkusit ručně, ale asi to nepřečká aktualizaci aplikace.

FAQ

Co je VPN (OpenVPN)?
Viz Open Virtual Private Network
Funguje OpenVPN přes NAT (Internet přes mobil, atp.)?
Ano. Nicméně např. u T-Mobile se občas vyskytují problémy při připojování (nepodaří se otevřít TLS kanál, log skončí na řádku TLS: Initial packet), po nějaké době to pak zase funguje bez problémů.
Proč je v konfiguraci driver TUN, když je ve Windows jen driver TAP?
OpenVPN ve Windows použije driver TAP (ethernet bridge) v režimu emulace TUN spojení (jako driver TUN). Emulace vytvoří pro každého klienta subnet /30, proto je adresa klienta vždy x*4+2, adresa serveru x*4+1 a subnet mask 255.255.255.252. Server běží v režimu point-to-multipoint TUN mode.
Lze to použít ve Windows XP pro IPv6 konektivitu?
Ano, stačí mít nainstalovanou podporu IPv6 (v příkazovém řádku napište: ipv6 install).
Nefunguje mě IPv6
Nainstalovali jste si správnou verzi? Poznáte to podle prvního řádku v logu, musí obsahovat [IPv6 payload ... ]
Lze použít VPN FIT pro přístup ke zdrojům omezeným na IPv4 adresy VUT?
Ano, ale musíte si nastavit proxy cache server na cache6.fit.vutbr.cz:3128.
Nemůžu se dostat na Sambu (\\kazi, \\eva, \\fik, \\aja), nevidím v okolních počítačích Windows servery FIT
Zkuste vypnout firewall, pokud to začne fungovat, musíte ve firewallu povolit přístup SMB klienta (porty 135, 137, 445) pro sítě 147.229.8.0/24 a 147.229.176.0/24 (u AVG9 je přidat jako bezpečné sítě, povolit 'Microsoft SMB File Sharing Client' v Services and controllers a 'MS Printer and File Sharing' v systémových službách pro bezpečné sítě).
Jak spouštět OpenVPN GUI ve Windows 7 bez otravného UAC?
UAC (User Access Control) se nedá vypnout pro určitou aplikaci, musíte to tedy vyřešit jako všichni ostatní - naplánovat úlohu. Spusťte taskschd.msc a vytvořte úlohu:
  1. Obecné: pouze, pokud je uživatel přihlášen; spustit s nejvyšším oprávněním
  2. Aktivační události: Při přihlášení; Zdržení úlohy: 30s
  3. Akce: Spustit program; vybrat OpenVPN-gui.exe
  4. Podmínky: nic není zaškrtnuto
  5. Nastavení: odškrtnout "Zastavit úlohu, pokud běží déle než"; Pokud je již úloha spuštěna: Zastavit stávající instanci
Po přihlášení máte automaticky spuštěné OpenVPN GUI s právy administrátora, takže bude fungovat správně. Ve Windows XP si tuto anabázi můžete ušetřit, stačí dát OpenVPN-gui.exe do Start->Programy->Po spuštění

Log pro kontrolu

Mon Nov 07 19:43:32 2011 OpenVPN 2.2.0 i686-pc-mingw32 [SSL] [LZO2] [PKCS11] [IPv6 payload 20110522-1 (2.2.0)] built on May 22 2011
Enter Management Password:
Mon Nov 07 19:43:32 2011 MANAGEMENT: TCP Socket listening on 127.0.0.10:25340
Mon Nov 07 19:43:32 2011 Need hold release from management interface, waiting...
Mon Nov 07 19:43:32 2011 MANAGEMENT: Client connected from 127.0.0.10:25340
Mon Nov 07 19:43:32 2011 MANAGEMENT: CMD 'state on'
Mon Nov 07 19:43:32 2011 MANAGEMENT: CMD 'log all on'
Mon Nov 07 19:43:32 2011 MANAGEMENT: CMD 'hold off'
Mon Nov 07 19:43:32 2011 MANAGEMENT: CMD 'hold release'
Mon Nov 07 19:43:37 2011 MANAGEMENT: CMD 'username "Auth" "novak"'
Mon Nov 07 19:43:37 2011 MANAGEMENT: CMD 'password [...]'
Mon Nov 07 19:43:37 2011 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Mon Nov 07 19:43:37 2011 LZO compression initialized
Mon Nov 07 19:43:37 2011 Control Channel MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
Mon Nov 07 19:43:37 2011 Socket Buffers: R=[8192->8192] S=[32768->32768]
Mon Nov 07 19:43:37 2011 MANAGEMENT: >STATE:1320691417,RESOLVE,,,
Mon Nov 07 19:43:38 2011 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
Mon Nov 07 19:43:38 2011 Local Options hash (VER=V4): '5405f7b0'
Mon Nov 07 19:43:38 2011 Expected Remote Options hash (VER=V4): '69d5be14'
Mon Nov 07 19:43:38 2011 UDPv4 link local: [undef]
Mon Nov 07 19:43:38 2011 UDPv4 link remote: 147.229.9.81:1194
Mon Nov 07 19:43:38 2011 MANAGEMENT: >STATE:1320691418,WAIT,,,
Mon Nov 07 19:43:40 2011 MANAGEMENT: >STATE:1320691420,AUTH,,,
Mon Nov 07 19:43:40 2011 TLS: Initial packet from 147.229.9.81:1194, sid=021856dc 76b7c36a
Mon Nov 07 19:43:40 2011 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Mon Nov 07 19:43:46 2011 VERIFY OK: depth=1, /C=CZ/L=Brno/ST=Czech_Republic/O=Brno_University_of_Technology/OU=Certification_Authority/CN=Brno_University_of_Technology_CA
Mon Nov 07 19:43:46 2011 VERIFY OK: nsCertType=SERVER
Mon Nov 07 19:43:46 2011 VERIFY OK: depth=0, /C=CZ/ST=Czech_Republic/L=Brno/O=Brno_University_of_Technology/OU=Faculty_of_Information_Technology/CN=vpn.fit.vutbr.cz
Mon Nov 07 19:43:46 2011 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Mon Nov 07 19:43:46 2011 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Mon Nov 07 19:43:46 2011 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Mon Nov 07 19:43:46 2011 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Mon Nov 07 19:43:46 2011 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Mon Nov 07 19:43:46 2011 [vpn.fit.vutbr.cz] Peer Connection Initiated with 147.229.9.81:1194
Mon Nov 07 19:43:47 2011 MANAGEMENT: >STATE:1320691427,GET_CONFIG,,,
Mon Nov 07 19:43:48 2011 SENT CONTROL [vpn.fit.vutbr.cz]: 'PUSH_REQUEST' (status=1)
Mon Nov 07 19:43:48 2011 PUSH: Received control message: 'PUSH_REPLY,ifconfig-ipv6 2001:67c:1220:810::1:1 2001:67c:1220:810::1,route-ipv6 2001::/3,route 147.229.8.0 255.255.255.0,route 147.229.176.0 255.255.255.0,dhcp-option NBT 2,dhcp-option WINS 147.229.8.12,tun-ipv6,route 172.27.128.1,topology net30,ping 10,ping-restart 120,ifconfig 172.27.128.10 172.27.128.9'
Mon Nov 07 19:43:48 2011 OPTIONS IMPORT: timers and/or timeouts modified
Mon Nov 07 19:43:48 2011 OPTIONS IMPORT: --ifconfig/up options modified
Mon Nov 07 19:43:48 2011 OPTIONS IMPORT: route options modified
Mon Nov 07 19:43:48 2011 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Mon Nov 07 19:43:48 2011 ROUTE default_gateway=10.81.192.100
Mon Nov 07 19:43:48 2011 ROUTE6: default_gateway=UNDEF
Mon Nov 07 19:43:48 2011 do_ifconfig, tt->ipv6=1, tt->did_ifconfig_ipv6_setup=1
Mon Nov 07 19:43:48 2011 MANAGEMENT: >STATE:1320691428,ASSIGN_IP,,172.27.128.10,
Mon Nov 07 19:43:49 2011 NETSH: C:\WINDOWS\system32\netsh.exe interface ipv6 set address Local Area Connection 3 2001:67c:1220:810::1:1 store=active
Ok.
Mon Nov 07 19:43:51 2011 add_route_ipv6(2001:67c:1220:810::/64 -> 2001:67c:1220:810::1:1 metric 2290448) dev Local Area Connection 3
Mon Nov 07 19:43:51 2011 C:\WINDOWS\system32\netsh.exe interface ipv6 add route 2001:67c:1220:810::/64 Local Area Connection 3 fe80::8 store=active
Mon Nov 07 19:43:51 2011 env_block: add PATH=C:\Windows\System32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
Ok.
Mon Nov 07 19:43:52 2011 open_tun, tt->ipv6=1
Mon Nov 07 19:43:52 2011 TAP-WIN32 device [Local Area Connection 3] opened: \\.\Global\{29093224-85F7-4DF3-B8C1-04A1DEB5A04E}.tap
Mon Nov 07 19:43:52 2011 TAP-Win32 Driver Version 9.8 
Mon Nov 07 19:43:52 2011 TAP-Win32 MTU=1500
Mon Nov 07 19:43:52 2011 Notified TAP-Win32 driver to set a DHCP IP/netmask of 172.27.128.10/255.255.255.252 on interface {29093224-85F7-4DF3-B8C1-04A1DEB5A04E} [DHCP-serv: 172.27.128.9, lease-time: 31536000]
Mon Nov 07 19:43:52 2011 Successful ARP Flush on interface [196612] {29093224-85F7-4DF3-B8C1-04A1DEB5A04E}
Mon Nov 07 19:43:55 2011 TEST ROUTES: 3/3 succeeded len=3 ret=1 a=0 u/d=up
Mon Nov 07 19:43:55 2011 MANAGEMENT: >STATE:1320691435,ADD_ROUTES,,,
Mon Nov 07 19:43:55 2011 C:\WINDOWS\system32\route.exe ADD 147.229.8.0 MASK 255.255.255.0 172.27.128.9
Mon Nov 07 19:43:55 2011 env_block: add PATH=C:\Windows\System32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
Mon Nov 07 19:43:55 2011 C:\WINDOWS\system32\route.exe ADD 147.229.176.0 MASK 255.255.255.0 172.27.128.9
Mon Nov 07 19:43:55 2011 env_block: add PATH=C:\Windows\System32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
Mon Nov 07 19:43:55 2011 C:\WINDOWS\system32\route.exe ADD 172.27.128.1 MASK 255.255.255.255 172.27.128.9
Mon Nov 07 19:43:55 2011 env_block: add PATH=C:\Windows\System32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
Mon Nov 07 19:43:55 2011 add_route_ipv6(2000::/3 -> 2001:67c:1220:810::1 metric 0) dev Local Area Connection 3
Mon Nov 07 19:43:55 2011 C:\WINDOWS\system32\netsh.exe interface ipv6 add route 2000::/3 Local Area Connection 3 fe80::8 store=active
Mon Nov 07 19:43:55 2011 env_block: add PATH=C:\Windows\System32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
Ok.
Mon Nov 07 19:43:56 2011 Initialization Sequence Completed
Mon Nov 07 19:43:56 2011 MANAGEMENT: >STATE:1320691436,CONNECTED,SUCCESS,172.27.128.10,147.229.9.81
tracert kazi
Tracing route to kazi [147.229.8.12]
over a maximum of 30 hops:

1 228 ms   230 ms   205 ms  172.27.128.1
2 257 ms   236 ms   242 ms  bda-boz.fit.vutbr.cz [147.229.9.1]
3 176 ms   199 ms   349 ms  kazi.fit.vutbr.cz [147.229.8.12]

tracert6 ipv6.google.com

Tracing route to ipv6.l.google.com [2a00:1450:8007::69]
from 2001:67c:1220:810::1:1 over a maximum of 30 hops:

 1        *       88 ms    88 ms  vpn-gw6.fit.vutbr.cz [2001:67c:1220:810::1]
 2       77 ms    86 ms    86 ms  bda-boz6.fit.vutbr.cz [2001:67c:1220:809::1]
 3       75 ms    74 ms    73 ms  hp-meo.net.vutbr.cz [2001:67c:1220:f521::aff:701]
 4       82 ms    81 ms    90 ms  hp-ant.net.vutbr.cz [2001:67c:1220:f559::aff:201]
 5       79 ms    78 ms    77 ms  hp-kou.net.vutbr.cz [2001:67c:1220:f529::aff:601]
 6       76 ms    74 ms    73 ms  gw-kou6.net.vutbr.cz [2001:67c:1220:f534::aff:605]
 7       81 ms    80 ms    79 ms  2001:718:0:c003::1
 8       97 ms    97 ms    97 ms  pr61.ams04.net.google.com [2001:7f8:1::a501:5169:1]
 9       97 ms    97 ms    97 ms  pr61.ams04.net.google.com [2001:7f8:1::a501:5169:1]
10       96 ms     *      118 ms  2001:4860::1:0:8
11       97 ms    96 ms    95 ms  2001:4860::8:0:2db0
12       94 ms    93 ms    93 ms  2001:4860::8:0:3016
13      102 ms   101 ms   100 ms  2001:4860::2:0:48d
14      109 ms    98 ms    97 ms  2001:4860:0:1::cb
15       96 ms    95 ms    94 ms  fx-in-x69.1e100.net [2a00:1450:8007::69]

Your IPv4 address: 54.225.36.143
Switch to IPv6 connection

DNSSEC [dnssec]