VPN

From NMS
Revision as of 09:54, 22 June 2018 by Vokacpet (Talk | contribs) (Konfigurace OpenVPN)

Jump to: navigation, search
Servery / Služby
Přístupné komukoliv
windows
srk
linux / unix
kmlinux
Omezený/individuální účet
linux / unix
bimbo · buon(KF) · km(KM) · lenochod(KJR) · linux · node(KM) · sunrise(KF) · unixlab(KFE) · vkstat(KM)
Služby
backup · DHCP · DNS · doména FJFI · eduroam · fileserver · IdM · forum · gitlab · lists · moodle · indico · mailgw · K4 · mailserver · NMS · openvpn · skolniftp · ssh · videokonference · VoIP · video · VPN · wififjfi · wiki · www
Učebny
e-sklipek · KFE unixlab · KFE pclab · PD1 · KM 105 · KM 115
Ostatní
Network · Blokované porty
[edit] · [view]

ČVUT VPN

VIC ČVUT začalo s testovacím provozem vlastního VPN koncentrátoru, který mohou využívat zaměstnanci ČVUT. Řešení je postaveno na CISCO VPN klientovi, který se dá (pro windows) stánout z download stránek ČVUT. V linuxu můžete použít nastavení přes knetworkmanager (viz stránky ČVUT) nebo vytvořit konfigurační soubor /etc/vpnc/CVUT.conf (usermap_name nahraďte vaším jménem do usermapu; usermap_password ponechte zakomentované a démon se vás při startu zeptá):

IPSec ID vpn
IPSec gateway vpn.cvut.cz
IPSec secret vpn
Xauth username usemap_name
# Xauth password usermap_password
IKE Authmode psk
# use following line when default TCP connection is not working
# NAT Traversal Mode cisco-udp

a spustit jako root

vpnc CVUT.conf

(doporučuji verzi vpnc 0.5.3 a vyšší). Po připojení dostanete veřejnou adresu z rozsahu ČVUT...

FJFI VPN

Vlastnosti

VPN (Virtual Private Network) slouží k vytvoření zabezpečeného tunelu mezi místem z nějž se připojujete a VPN serverem. Veškerá (připadně vybraná) komunikace se servery na internetu probíhá přes VPN spojení, takže bez ohledu na to kde se právě nacházíte, to vypadá, že jste připojeni přímo do sítě na FJFI.

výhody

  • zabezpečené spojení do sítě na FJFI z libovolné sítě a přes libovolný protokol
  • minimální restrikce v blokaci portů (pouze SMTP mimo ČVUT) a používání aplikací
  • snadný přístup k datům na Windows Serverech přes běžné MS sdílení
  • přístup k ČVUT zdrojům, které vyžadují použití IP adresy z rozsahu ČVUT

nevýhody

  • všechna data musí projít přes FJFI (lze obejít lokálním nastavením požadovaného routování)
  • zatím není možné získat veřejnou adresu z rozsahu ČVUT (komunikace přes NAT na VPN serveru)
  • zatím není zkonfigurována podpora IPv6 (pokud má klient IPv6 konektivitu, tak spojení na servery podporující IPv6 nepůjde přes VPN!)

Podporované VPN

Shrnutí základních vlastností VPN spojení podporovaných na FJFI
typ výhody nevýhody
OpenVPN
  • multiplatformní (Windows, Linux, Android, iPhone, Mac OS X, BSD*, Solaris)
  • při TCP komunikaci na port 443 (http) bude funkční na většině sítí
  • slušné zabezpečení pomocí standardního SSL/TLS
  • podpora TCP i UDP spojení (UDP je vhodnější volba, pokud z dané sítě funguje)
  • autentizace hlavním FJFI jménem/heslem
  • možnost specifikovat IP rozsahy routované přímo resp. přes VPN
  • klient není součástí OS a musí se doinstalovat
PPTP
  • multiplatformní (Windows, Linux, Android, iPhone, ...)
  • integrovanou součástí většiny OS
  • jednoduchá konfigurace klienta
  • mizerné zabezpečení přenášených dat (včetně autentizace)
  • data zabalené do speciálního IP rámce (GRE tunel, který nemusí být všude podporován / povolen)
  • nutná podpora "PPTP Passthrought" při připojení přes NAT (některé domácí routery nepodporují)
  • příhlašování pomocí WiFiFJFI jména/hesla (kvůli nedostatečnému zabezpečení)
L2TP+IPSec
  • multiplatformní (Windows, Linux, Android, iPhone, ...)
  • integrovanou součástí většiny OS
  • slušné zabezpečení pomocí standardního IPSec
  • IPSec spojení na některých sítích nemusí fungovat (vyžaduje routování AH, ESP + komunikaci po UDP 500)
  • nutná podpora "IPSec Passthrought" při připojení přes NAT (něteré routery nepodporují)
SSTP
  • komunikace přes HTTPS ("funguje všude")
  • slušné zabezpečení
  • standardně podporován jen na Windows klientech
  • aktuálně není na FJFI podporován

Konfigurace OpenVPN

Na VPN serveru je použito OpenVPN pro jeho snadnou konfiguraci a podporu různých operačních systémů (Windows, Linux, MAC OS X, Solaris, *BSD, ...). Jako jeden z mála VPN softwarů navíc nevyžaduje uživatelské certifikáty.

  • stáněte a nainstalujte OpenVPN (v linuxu pro většinu distribucí existuje připravený balíček)
  • vytvořte soubor (např. server-chain.crt) se seznamem kořenových certifikačních autorit FJFI VPN serveru
  • vytvořte konfigurační soubor pro OpenVPN (nezapomeňte v něm změnit cestu k souboru s certifikáty, který jste vytvořili v předchozím kroku)
# fjfi.ovpn - konfigurační soubor pro FJFI OpenVPN
# (vše za znakem "#" je ignorováno a slouží jako komentář)
client
dev tun
proto udp             # pokud se bude spojení přes UDP rozpadat (nebo se
#proto tcp-client     # vůbec nenaváže), můžete ještě vyzkoušet TCP spojení
remote nms.fjfi.cvut.cz 1194
# na sítích s omezenou podporou služeb (hotely, free sítě, ...)
# můžete zkusit nahradit výše uvedené konfigurace následujícími:
#proto tcp-client
#remote openvpn.fjfi.cvut.cz 443
# nebo
#proto udp
#remote openvpn.fjfi.cvut.cz 53
#
# stejným způsobem bude openvpn fungovat také na portech:
# 22, 53, 80, 443, 465, 587, 993, 1194
resolv-retry infinite
nobind
persist-key
persist-tun
tls-client
# Odkomentujte jeden z následujících řádku a upravte cestu k certifikátům
#ca "c:\\Program Files\\OpenVPN\\config\\server-chain.crt"  # windows
#ca "/etc/pki/tls/certs/server-chain.crt"  # linux
#ca "/etc/pki/tls/certs/ca-bundle.crt"     # linux - použití důvěryhodných certifikátu z distribuce
# důvěryhodné CA certifikáty lze mít v samostatném souboru nebo přímo zde
<ca>
-----BEGIN CERTIFICATE-----
MIIE+zCCA+OgAwIBAgIQCHC8xa8/25Wakctq7u/kZTANBgkqhkiG9w0BAQsFADBl
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
b3QgQ0EwHhcNMTQxMTE4MTIwMDAwWhcNMjQxMTE4MTIwMDAwWjBkMQswCQYDVQQG
EwJOTDEWMBQGA1UECBMNTm9vcmQtSG9sbGFuZDESMBAGA1UEBxMJQW1zdGVyZGFt
MQ8wDQYDVQQKEwZURVJFTkExGDAWBgNVBAMTD1RFUkVOQSBTU0wgQ0EgMzCCASIw
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMV2Dw/ZQyk7bG3RR63eEL8jwnio
Snc18SNb4EweQefCMQC9iDdFdd25AhCAHo/tZCMERaegOTuBTc9jP8JJ/yKeiLDS
lrlcinQfkioq8hLIt2hUtVhBgUBoBhpPhSn7tU08D08/QJYbzqjMXjX/ZJj1dd10
VAWgNhEEEiRVY++Udy538RV27tOkWUUhn6i+0SftCuirOMo/h9Ha8Y+5Cx9E5+Ct
85XCFk3shKM6ktTPxn3mvcsaQE+zVLHzj28NHuO+SaNW5Ae8jafOHbBbV1bRxBz8
mGXRzUYvkZS/RYVJ+G1ShxwCVgEnFqtyLvRx5GG1IKD6JmlqCvGrn223zyUCAwEA
AaOCAaYwggGiMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMHkG
CCsGAQUFBwEBBG0wazAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQu
Y29tMEMGCCsGAQUFBzAChjdodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGln
aUNlcnRBc3N1cmVkSURSb290Q0EuY3J0MIGBBgNVHR8EejB4MDqgOKA2hjRodHRw
Oi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3Js
MDqgOKA2hjRodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVk
SURSb290Q0EuY3JsMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxo
dHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMB0GA1UdDgQWBBRn/YggFCeYxwnS
JRm76VERY3VQYjAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
hkiG9w0BAQsFAAOCAQEAqSg1esR71tonHqyYzyc2TxEydHTmQN0dzfJodzWvs4xd
xgS/FfQjZ4u5b5cE60adws3J0aSugS7JurHogNAcyTnBVnZZbJx946nw09E02DxJ
WYsamM6/xvLYMDX/6W9doK867mZTrqqMaci+mqege9iCSzMTyAfzd9fzZM2eY/lC
J1OuEDOJcjcV8b73HjWizsMt8tey5gvHacDlH198aZt+ziYaM0TDuncFO7pdP0GJ
+hY77gRuW6xWS++McPJKe1e9GW6LNgdUJi2GCZQfXzer8CM/jyxflp5HcahE3qm5
hS+1NGClXwmgmkMd1L8tRNaN2v11y18WoA5hwnA9Ng==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
-----END CERTIFICATE-----
</ca>
remote-cert-tls server
comp-lzo
verb 2
auth-user-pass

# Pokud neodkomentujete níže uvedené řadky, bude veškerá komunikace s veřejnými
# IP adresami směřována přes VPN a NATována na nms.fjfi.cvut.cz

# Pokud nechcete s vybranými adresami komunikovat přes VPN (např. jste v cizině
# na univerzitě a nechcete aby provoz s lokalními stroji zdržovalo posílání všech
# dat přes OpenVPN/Prahu), můžete odkomentovat a upravit nasledující řádky
#route 131.225.0.0 255.255.0.0 net_gateway 
#route 137.138.0.0 255.255.0.0 net_gateway 

# Pokud chcete komunikovat přes VPN pouze s počítači na ČVUT odkomentujte tyto řádky
#route-nopull
#route 147.32.0.0 255.255.0.0 vpn_gateway

# Pro přístup do lokálních privátních sítí na FJFI přidejte
#route 172.16.0.0 255.255.15.0 vpn_gateway

# Na linuxu budete muset nastavit přímé spojené na DNS server nebo po připojení změnit
# údaje v /etc/resolv.conf a restartovat lokální DNS cachovací daemony pokud je používate
# případně se můžete nechat inspirovat návodem jak úpravu konfigurace DNS zautomatizovat
# https://wiki.archlinux.org/index.php/OpenVPN#Update_resolv-conf_script
#route 8.8.8.8 255.255.255.255 net_gateway
#route 8.8.4.4 255.255.255.255 net_gateway
  • spusťte OpenVPN
    • ve WindowsXP stačí "spustit" konfigurační soubor příponu "ovpn" s právy administrátora
    • ve Windows Vista/7 musí být konfigurační soubor uložen v adresáři c:\Program Files\OpenVPN\config resp. c:\Program Files (x86)\OpenVPN\config a pro vytvoření VPN spoje je potřeba použít OpenVPN GUI spustěné s právy administrátora (viz. níže)
    • v linuxu se konfigurační soubor dává do /etc/openvpn/client.conf a poté stačí spustít OpenVPN službu (tohle ale nebude fungovat, protože je nutný interaktivní start, kde se zadává jméno/heslo)
  • při dotazu na jméno a heslo zadejte svoje hlavní FJFI jméno/heslo

Windows Vista/7

V tomto systému je potřeba spustit OpenVPN klienta s právy administrátora. Buď si můžete vytvořit vhodný dávkový soubor nebo ve start menu kliknout pravým tlačítkem na "Všechny programy" -> "OpenVPN" -> "OpenVPN GUI", vybrat položku "vlastnosti" a ve vyvolaném dialogu pak v záložce pro kompatibilitu zaškrtněte, ať se OpenVPN GUI spouští s právy administrátora.

OpenVPN-Win7-Connect.png

Linux

# ruční spuštění OpenVPN klienta
sudo openvpn --config /cesta/ke/fjfi.ovpn
# TODO: konfigurace NetworkManageru

Android

OpenVPN for Android funguje s výše uvedeným konfiguračním souborem.

Potenciální problémy

  • v linuxu může nastat problém s komunikací s lokálním DNS a DHCP serverem. Je vhodné ručně nastavit routování k lokálnímu DHCP serveru, jinak se může spojení rozpadat po vypršení platností DHCP lease. Pokud aktuální DNS server uvedený v /etc/resolv.conf není schopen odpovídat na dotazy po spuštění VPN, je potřeba ho nahradit DNS serverem s adresou 147.32.9.4 případně můžete postupovat podle návodů na automatickou změnu DNS po spuštění/ukončení OpenVPN spojení.

Konfigurace PPTP (aktuálně testováno)

Pro ověření při použití PPTP VPN použijte standardní ČVUT/FJFI jméno, ale jako heslo musíte zadat svoje WiFiFJFI heslo

Windows

# konfigurace pomocí powershellu (netestováno)
PS C:\> Add-VpnConnection -Name "VPN FJFI PPTP" -ServerAddress "147.32.9.2" -TunnelType Pptp -EncryptionLevel Required -AuthenticationMethod MSChapv2 -SplitTunneling -AllUserConnection  -RememberCredential -PassThru

Linux

NetworkManager z příkazové řádky

# prvotní vytvoření konfigurace
# na druhé řádce nahraďte username svým uživatelským jménem
nmcli connection add con-name "VPN FJFI PPTP" type vpn vpn-type pptp
nmcli connection modify "VPN FJFI PPTP" vpn.data "refuse-pap = yes, password-flags = 1, refuse-chap = yes, refuse-eap = yes, user = username, require-mppe = yes, gateway = 147.32.9.2"
# nastartování VPN FJFI PPTP
nmcli connection up "VPN FJFI PPTP"

NetworkManager GUI

TODO (nebo to sem někdo doplňte)

Android

TODO (lze vycházet z návodů na internetu)

iPhone

TODO (nebo to sem někdo doplňte)

Konfigurace L2TP+IPSec (aktuálně testováno)

Windows

Otestováno s Windows 8

Linux

Aktuální verze NetworkManager-l2tp 0.9.8.6 vyžaduje patch pro navázání IPSec spojení.

Konfigurace IPSec (aktuálně testováno)

Konfigurace by měla chodit podobně jako ČVUT VPN, jen sem bude potřeba dodat správné parametry.