Die strong Swan Open Source VPN Lsung Open

  • Slides: 45
Download presentation
Die strong. Swan Open Source VPN Lösung Open Source Trend Days 2013 Steinfurt www.

Die strong. Swan Open Source VPN Lösung Open Source Trend Days 2013 Steinfurt www. strongswan. org Prof. Andreas Steffen Institute for Internet Technologies and Applications HSR Hochschule für Technik Rapperswil andreas. steffen@hsr. ch

Wo um Gottes Willen liegt Rapperswil? 26. 09. 2013, ostd_2013_strongswan 2

Wo um Gottes Willen liegt Rapperswil? 26. 09. 2013, ostd_2013_strongswan 2

HSR - Hochschule für Technik Rapperswil • • • Fachhochschule mit ca. 1500 Studierenden

HSR - Hochschule für Technik Rapperswil • • • Fachhochschule mit ca. 1500 Studierenden Studiengang für Informatik (300 -400 Studierende) Bachelorstudium (3 Jahre), Masterstudium (+1. 5 Jahre) 26. 09. 2013, ostd_2013_strongswan 3

Die strong. Swan Open Source VPN Lösung Open Source Trend Days 2013 Steinfurt Das

Die strong. Swan Open Source VPN Lösung Open Source Trend Days 2013 Steinfurt Das strong. Swan Projekt

The strong. Swan Open Source VPN Project 1999 Free. S/WAN 1. x 2000 X.

The strong. Swan Open Source VPN Project 1999 Free. S/WAN 1. x 2000 X. 509 1. x Patch Free. S/WAN 2. x 2004 Super Free. S/WAN 2003 X. 509 2. x Patch Openswan 1. x 2004 Openswan 2. x 2005 … strong. Swan 2. x IKEv 2 RFC 4306 IKEv 1 & partial IKEv 2 strong. Swan 4. x 2012 strong. Swan 5. x Monolithic IKE Daemon ITA IKEv 2 Project New architecture, same config. IKEv 1 & IKEv 2 26. 09. 2013, ostd_2013_strongswan 5

strong. Swan – the Open Source VPN Solution Windows Active Directory Server Campus Network

strong. Swan – the Open Source VPN Solution Windows Active Directory Server Campus Network Linux Free. Radius Server strong. Swan Client High-Availability strong. Swan VPN Gateway Internet Windows 7/8 Agile VPN Client strongswan. hsr. ch 26. 09. 2013, ostd_2013_strongswan 6

Supported Operating Systems and Platforms • Supported Operating Systems • • • Linux 2.

Supported Operating Systems and Platforms • Supported Operating Systems • • • Linux 2. 6. x, 3. x Android 4. x App Mac OS X Free. BSD Open. Wrt (optional integration into Network. Manager) (using libipsec userland ESP encryption) (via command line) • Supported Hardware Platforms (GNU autotools) • Supported Network Stacks • Intel i 686/x 86_64, AMD 64 • ARM, MIPS • Power. PC • IPv 4, IPv 6 • IPv 6 -in-IPv 4 ESP tunnels • IPv 4 -in-IPv 6 ESP tunnels 26. 09. 2013, ostd_2013_strongswan 7

strong. Swan on Raspberry Pi Plaintext 11’ 000 k. B/s AES 128 -SHA 1_96

strong. Swan on Raspberry Pi Plaintext 11’ 000 k. B/s AES 128 -SHA 1_96 2’ 300 k. B/s AES 128 -SHA 256_128 2’ 100 k. B/s AES 192 -SHA 384_192 1’ 500 k. B/s AES 256 -SHA 512_256 1’ 400 k. B/s • Performance measurement setup • No Authenticated Encryption (AEAD) Support • Two Raspberry Pi hosts connected via 100 Mbit/s Ethernet • FTP download of an 18 MB file • Unfortunately the efficient AES-GCM ESP algorithm family is not enabled in the current Raspberry Pi kernel. 26. 09. 2013, ostd_2013_strongswan 8

Free Download from Google Play Store Sep 24 2013: 6, 605 installations 26. 09.

Free Download from Google Play Store Sep 24 2013: 6, 605 installations 26. 09. 2013, ostd_2013_strongswan 9

Mac OS X App http: //download. strongswan. org/osx/ 26. 09. 2013, ostd_2013_strongswan 10

Mac OS X App http: //download. strongswan. org/osx/ 26. 09. 2013, ostd_2013_strongswan 10

Modular Plugin-Based Architecture (29/84) • libstrongswan plugins • libcharon plugins • libhydra plugins •

Modular Plugin-Based Architecture (29/84) • libstrongswan plugins • libcharon plugins • libhydra plugins • libtnccs plugins aes af_alg agent blowfish ccm cmac constraints ctr curl des dnskey fips_prf gcm gcrypt gmp hmac keychain ldap md 4 md 5 mysql nonce openssl padlock pem pgp pkcs 11 pcks 12 pkcs 7 pkcs 8 pubkey random rc 2 rdrand revocation sha 1 sha 2 soup sqlite sshkey test_vectors unbound x 509 xcbc addrblock android_dns android_log certexpire coupling dhcp duplicheck eap_aka_3 gpp 2 eap_dynamic eap_qtc eap_identity eap_md 5 eap_mschapv 2 eap_peap eap_radius eap_simaka_pseudonym eap_simaka_reauth eap_simaka_sql eap_sim_file eap_sim_pcsc eap_tls eap_tnc eap_ttls error_notify farp ha ipseckey kernel_libipsec led load_tester lookip maemo medcli medsrv osx_attr radattr smp socket_default socket_dynamic sql stroke systime_fix tnc_ifmap tnc_pdp uci unit_tester unity updown whitelist xauth_eap xauth_generic xauth_noauth xauth_pem attr_sql kernel_klips kernel_netlink kernel_pfkey kernel_pfroute resolve tnccs_11 tnccs_20 tnccs_dynamic tnc_imv tnc_tnccs 26. 09. 2013, ostd_2013_strongswan 11

Die strong. Swan Open Source VPN Lösung Open Source Trend Days 2013 Steinfurt Remote

Die strong. Swan Open Source VPN Lösung Open Source Trend Days 2013 Steinfurt Remote Access mit zertifikat-basierter Authentisierung

IKEv 2 Remote Access Scenario #ipsec. secrets for roadwarrior carol #ipsec. secrets for gateway

IKEv 2 Remote Access Scenario #ipsec. secrets for roadwarrior carol #ipsec. secrets for gateway moon : RSA carol. Key. pem "n. H 5 ZQEWtku 0 RJEZ 6" : RSA moon. Key. pem #ipsec. conf for roadwarrior carol #ipsec. conf for gateway moon conn home keyexchange=ikev 2 left=%any leftsourceip=%config leftcert=carol. Cert. pem leftid=carol@strongswan. org leftfirewall=yes right=192. 168. 0. 1 rightid=moon. strongswan. org rightsubnet=10. 1. 0. 0/16 auto=start conn rw keyexchange=ikev 2 left=%any leftsubnet=10. 1. 0. 0/24 leftcert=moon. Cert. pem leftid=moon. strongswan. org leftfirewall=yes right=%any rightsourceip=10. 3. 0. 0/24 auto=add 26. 09. 2013, ostd_2013_strongswan 13

IKEv 2 Connection Setup carol 05[ENC] 05[NET] 06[ENC] 06[NET] 07[ENC] 07[IKE] 07[AUD] generating IKE_SA_INIT

IKEv 2 Connection Setup carol 05[ENC] 05[NET] 06[ENC] 06[NET] 07[ENC] 07[IKE] 07[AUD] generating IKE_SA_INIT request [SA KE No N(NATD_S_IP) N(NATD_D_IP)] sending packet: from 192. 168. 0. 100[500] to 192. 168. 0. 1[500] received packet: from 192. 168. 0. 1[500] to 192. 168. 0. 100[500] parsed IKE_SA_INIT response [SA KE No N(NATD_S_IP) N(NATD_D_IP) CERTREQ] generating IKE_AUTH request [IDi CERTREQ IDr AUTH CP SA TSi TSr] sending packet: from 192. 168. 0. 100[4500] to 192. 168. 0. 1[4500] received packet: from 192. 168. 0. 1[4500] to 192. 168. 0. 100[4500] parsed IKE_AUTH response [IDr CERT AUTH CP SA TSi TSr N(AUTH_LFT)] installing new virtual IP 10. 3. 0. 1 established CHILD_SA successfully moon 05[NET] 05[ENC] 05[NET] 06[ENC] 06[IKE] 06[AUD] 06[ENC] 06[NET] received packet: from 192. 168. 0. 100[500] to 192. 168. 0. 1[500] parsed IKE_SA_INIT request [SA KE No N(NATD_S_IP) N(NATD_D_IP)] generating IKE_SA_INIT response [SA KE No N(NATD_S_IP) N(NATD_D_IP) CERTREQ] sending packet: from 192. 168. 0. 1[500] to 192. 168. 0. 100[500] received packet: from 192. 168. 0. 100[4500] to 192. 168. 0. 1[4500] parsed IKE_AUTH request [IDi CERTREQ IDr AUTH CP SA TSi TSr] peer requested virtual IP %any assigning virtual IP 10. 3. 0. 1 to peer established CHILD_SA successfully generating IKE_AUTH response [IDr CERT AUTH CP SA TSi TSr N(AUTH_LFT)] sending packet: from 192. 168. 0. 1[4500] to 192. 168. 0. 100[4500] 26. 09. 2013, ostd_2013_strongswan 14

IKEv 2 Configuration Payload carol> ip addr list dev eth 0: inet 192. 168.

IKEv 2 Configuration Payload carol> ip addr list dev eth 0: inet 192. 168. 0. 100/24 brd 192. 168. 0. 255 scope global eth 0 inet 10. 3. 0. 1/32 scope global eth 0 carol> ip route list table 220 10. 1. 0. 0/24 dev eth 0 proto static src 10. 3. 0. 1 • A virtual IP requested and obtained through leftsourceip=%config is directly configured by strong. Swan via the RT Netlink socket moon> ip addr list eth 0: inet 192. 168. 0. 1/24 brd 192. 168. 0. 255 scope global eth 0 eth 1: inet 10. 1/16 brd 10. 1. 255 scope global eth 1 moon> ip route list table 220 10. 3. 0. 1 dev eth 0 proto static src 10. 1 • If a host has an internal interface which is part of the negotiated traffic selectors then this source address is assigned to tunneled IP packets. 26. 09. 2013, ostd_2013_strongswan 15

Volatile RAM-based IP Address Pools • Configuration in ipsec. conf conn rw. . .

Volatile RAM-based IP Address Pools • Configuration in ipsec. conf conn rw. . . rightsourceip=10. 3. 0. 0/24 auto=add • Statistics ipsec leases Leases in pool 'rw', usage: 2/255, 2 online 10. 3. 0. 2 online 'dave@strongswan. org' 10. 3. 0. 1 online 'carol@strongswan. org' • Referencing and sharing a volatile pool conn rw 1. . . rightsourceip=%rw auto=add 26. 09. 2013, ostd_2013_strongswan 16

Persistent SQL-based IP Address Pools I • SQLite database table definitions cd strongswan-x. y.

Persistent SQL-based IP Address Pools I • SQLite database table definitions cd strongswan-x. y. z cp testing/hosts/default/etc/ipsec. d/tables. sql /etc/ipsec. d • Creation of SQLite database cat /etc/ipsec. d/tables. sql | sqlite 3 /etc/ipsec. db • Connecting to the SQLite database # /etc/strongswan. conf - strong. Swan configuration file libhydra { plugins { attr-sql { database = sqlite: ///etc/ipsec. db } } } 26. 09. 2013, ostd_2013_strongswan 17

Persistent SQL-based IP Address Pools II • Pool creation ipsec pool --add bigpool --start

Persistent SQL-based IP Address Pools II • Pool creation ipsec pool --add bigpool --start 10. 3. 0. 1 --end 10. 3. 0. 254 --timeout 48 allocating 254 addresses. . . done. • Configuration in ipsec. conf conn rw keyexchange=ikev 2. . . rightsourceip=%bigpool auto=add • Statistics ipsec pool –-status name start end bigpool 10. 3. 0. 1 10. 3. 0. 254 timeout 48 h size 254 online 1 ( 0%) usage 2 ( 0%) ipsec pool --leases --filter pool=bigpool name bigpool address status start end identity 10. 3. 0. 1 online Oct 22 23: 13: 50 2009 carol@strongswan. org 10. 3. 0. 2 valid Oct 22 23: 14: 11 2009 Oct 22 23: 14: 25 2009 dave@strongswan. org 26. 09. 2013, ostd_2013_strongswan 18

Die strong. Swan Open Source VPN Lösung Open Source Trend Days 2013 Steinfurt Remote

Die strong. Swan Open Source VPN Lösung Open Source Trend Days 2013 Steinfurt Remote Access mit RADIUS-basierter Authentisierung

RADIUS-Based Authentication #ipsec. secrets for roadwarrior carol #ipsec. secrets for gateway moon carol: EAP

RADIUS-Based Authentication #ipsec. secrets for roadwarrior carol #ipsec. secrets for gateway moon carol: EAP "Ar 3 et. Tnp" : RSA moon. Key. pem #ipsec. conf for roadwarrior carol #ipsec. conf for gateway moon conn home keyexchange=ikev 2 left=%any leftsourceip=%config leftauth=eap eap_identity=carol right=moon. strongswan. org rightid=moon. strongswan. org rightauth=pubkey rightsubnet=0. 0/0 auto=start conn rw keyexchange=ikev 2 left=%any leftauth=pubkey leftsubnet=10. 1. 0. 0/24 leftcert=moon. Cert. pem leftid=moon. strongswan. org right=%any rightsendcert=never rightauth=eap-radius rightsourceip=%radius eap_identity=%any auto=add 26. 09. 2013, ostd_2013_strongswan 20

RADIUS Configuration • /etc/strongswan. conf on gateway moon charon { plugins { eap-radius {

RADIUS Configuration • /etc/strongswan. conf on gateway moon charon { plugins { eap-radius { secret = gv 6 URk. Ss server = 10. 10 accounting = yes } } } • /etc/freeradius/users on RADIUS server alice carol Cleartext-Password : = "Ar 3 et. Tnp" Framed-IP-Address = 10. 3. 0. 1 dave Cleartext-Password : = "W 7 R 0 g 3 do" Framed-IP-Address = 10. 3. 0. 2 26. 09. 2013, ostd_2013_strongswan 21

RADIUS Accounting • Accounting Record Wed Jul 31 21: 28: 31 2013 Acct-Status-Type =

RADIUS Accounting • Accounting Record Wed Jul 31 21: 28: 31 2013 Acct-Status-Type = Stop Acct-Session-Id = "1375306104 -1" NAS-Port-Type = Virtual Service-Type = Framed-User NAS-Port = 1 NAS-Port-Id = "rw-eap" NAS-IP-Address = 192. 168. 0. 1 Called-Station-Id = "192. 168. 0. 1[4500]" Calling-Station-Id = "192. 168. 0. 100[4500]" User-Name = "carol" Framed-IP-Address = 10. 3. 0. 1 Framed-IPv 6 -Prefix = fec 3: : 1/128 Acct-Output-Octets = 7100 Acct-Output-Packets = 5 Acct-Input-Octets = 7100 Acct-Input-Packets = 5 Acct-Session-Time = 6 Acct-Terminate-Cause = User-Request NAS-Identifier = "strong. Swan" Acct-Unique-Session-Id = "5716061 d 9 f 73 b 686" Timestamp = 1375306111 26. 09. 2013, ostd_2013_strongswan 22

Die strong. Swan Open Source VPN Lösung Open Source Trend Days 2013 Steinfurt Nahtlose

Die strong. Swan Open Source VPN Lösung Open Source Trend Days 2013 Steinfurt Nahtlose LAN Integration von Remote Access Clients

LAN Integration via DHCP and ARP #ipsec. secrets for roadwarrior carol #ipsec. secrets for

LAN Integration via DHCP and ARP #ipsec. secrets for roadwarrior carol #ipsec. secrets for gateway moon : RSA carol. Key. pem "n. H 5 ZQEWtku 0 RJEZ 6" : RSA moon. Key. pem #ipsec. conf for roadwarrior carol #ipsec. conf for gateway moon conn home keyexchange=ikev 2 left=%any leftsourceip=%config leftcert=carol. Cert. pem leftid=carol@strongswan. org leftfirewall=yes right=192. 168. 0. 1 rightid=moon. strongswan. org rightsubnet=0. 0/0 auto=start conn rw keyexchange=ikev 2 left=%any leftsubnet=10. 1. 0. 0/24 leftcert=moon. Cert. pem leftid=moon. strongswan. org leftfirewall=yes right=%any rightsourceip=%dhcp auto=add 26. 09. 2013, ostd_2013_strongswan 24

DHCP Server Configuration • strongswan. conf on gateway moon charon { plugins { dhcp

DHCP Server Configuration • strongswan. conf on gateway moon charon { plugins { dhcp { server = 10. 1. 255 } } } • The farp and dhcp plugins are required for the LAN use case 26. 09. 2013, ostd_2013_strongswan 25

DHCP Server Configuration • dhcpd configuration file on DHCP Server venus ddns-update-style none; subnet

DHCP Server Configuration • dhcpd configuration file on DHCP Server venus ddns-update-style none; subnet 10. 1. 0. 0 netmask 255. 0. 0 { option domain-name "strongswan. org"; option domain-name-servers 10. 1. 0. 20; option netbios-name-servers 10. 10; option routers 10. 1; option broadcast-address 10. 1. 255; next-server 10. 1. 0. 20; range 10. 1. 0. 50 10. 1. 0. 60; } host carol { option dhcp-client-identifier "carol@strongswan. org"; fixed-address 10. 1. 0. 30; } host dave { option dhcp-client-identifier "dave@strongswan. org"; fixed-address 10. 1. 0. 40; } • Either static or dynamic address assignment 26. 09. 2013, ostd_2013_strongswan 26

strong. Swan SOHO Lösung für Windowsnetze www. revosec. ch 26. 09. 2013, ostd_2013_strongswan 27

strong. Swan SOHO Lösung für Windowsnetze www. revosec. ch 26. 09. 2013, ostd_2013_strongswan 27

Die strong. Swan Open Source VPN Lösung Open Source Trend Days 2013 Steinfurt Network

Die strong. Swan Open Source VPN Lösung Open Source Trend Days 2013 Steinfurt Network Access Control

BYOD – Bring Your Own Device ● Security Issues ● Users do not protect

BYOD – Bring Your Own Device ● Security Issues ● Users do not protect access to their devices or use weak ● ● passwords or login methods. Users download and install dangerous software packages containing malware from unknown sources. Users do not regularly apply security updates to the installed software packages and operating system. Users run server applications potentially giving third parties access to the corporate network and/or sensitive data Malware might embed itself into the operating system, modifying system commands and libraries. 26. 09. 2013, ostd_2013_strongswan 29

Android BYOD with Network Access Control allow NAC Policy Enforcement Point NAC Server Corporate

Android BYOD with Network Access Control allow NAC Policy Enforcement Point NAC Server Corporate Network block Android 4 Device with NAC Client Policy Manager isolate Isolation Network • • Attribute Requests Measurement Results 26. 09. 2013, ostd_2013_strongswan 30

Trusted Network Connect (TNC) Architecture RFC 5792 RFC 5793 RFC 6876 VPN Client Lying

Trusted Network Connect (TNC) Architecture RFC 5792 RFC 5793 RFC 6876 VPN Client Lying Endpoint VPN Gateway 26. 09. 2013, ostd_2013_strongswan 31

Layered TNC Protocol Stack • IF-T Transport Protocol PT-TLS (RFC 6876) or PT-EAP [NET]

Layered TNC Protocol Stack • IF-T Transport Protocol PT-TLS (RFC 6876) or PT-EAP [NET] received packet: from 152. 96. 15. 29[50871] to 77. 56. 144. 51[4500] (320 bytes ) [ENC] parsed IKE_AUTH request 8 [ EAP/RES/TTLS ] [IKE] received tunneled EAP-TTLS AVP [EAP/RES/TNC ] • IF-M Measurement Protocol [TNC] [TNC] • • received TNCCS batch (160 bytes) for Connection ID 1 PB-TNC state transition from 'Init' to 'Server Working' processing PB-TNC CDATA batch processing PB-Language-Preference message (31 bytes) processing PB-PA message (121 bytes) setting language preference to 'en‘ IF-TNCCS TNC Client-Server Protocol [TNC] [IMV] [TNC] [TNC} PA-TNC (RFC 5792) PB-TNC (RFC 5793) handling PB-PA message type 'IETF/Operating System' 0 x 000000/0 x 00000001 IMV 1 "OS" received message for Connection ID 1 from IMC 1 processing PA-TNC message with ID 0 xec 41 ce 1 d processing PA-TNC attribute type 'IETF/Product Information' 0 x 000000/0 x 00000002 processing PA-TNC attribute type 'IETF/String Version' 0 x 000000/0 x 00000004 processing PA-TNC attribute type 'ITA-HSR/Device ID' 0 x 00902 a/0 x 00000008 TNC Measurement Data [IMV] operating system name is 'Android' from vendor Google [IMV] operating system version is '4. 2. 1‘ [IMV] device ID is cf 5 e 4 cbcc 6 e 6 a 2 db 26. 09. 2013, ostd_2013_strongswan 32

strong. Swan Android VPN Client 26. 09. 2013, ostd_2013_strongswan 33

strong. Swan Android VPN Client 26. 09. 2013, ostd_2013_strongswan 33

Allow Download from Unknown Sources 26. 09. 2013, ostd_2013_strongswan 34

Allow Download from Unknown Sources 26. 09. 2013, ostd_2013_strongswan 34

Install Blacklisted Android Web Server Package 26. 09. 2013, ostd_2013_strongswan 35

Install Blacklisted Android Web Server Package 26. 09. 2013, ostd_2013_strongswan 35

Minor Non-Compliance: Isolate Client 26. 09. 2013, ostd_2013_strongswan 36

Minor Non-Compliance: Isolate Client 26. 09. 2013, ostd_2013_strongswan 36

TNC Metadata Access Point (MAP) Protocol MAP-Client IRON Project FH Hannover (MAP-Server) 26. 09.

TNC Metadata Access Point (MAP) Protocol MAP-Client IRON Project FH Hannover (MAP-Server) 26. 09. 2013, ostd_2013_strongswan 37

Start the Android Web Server 26. 09. 2013, ostd_2013_strongswan 38

Start the Android Web Server 26. 09. 2013, ostd_2013_strongswan 38

Major Non-Compliance: Block Client 26. 09. 2013, ostd_2013_strongswan 39

Major Non-Compliance: Block Client 26. 09. 2013, ostd_2013_strongswan 39

strong. TNC Policy Manager https: //github. com/strongswan/strong. TNC 26. 09. 2013, ostd_2013_strongswan 40

strong. TNC Policy Manager https: //github. com/strongswan/strong. TNC 26. 09. 2013, ostd_2013_strongswan 40

Measurement Policies and Enforcements Currently supported policy types: • • • • PWDEN FWDEN

Measurement Policies and Enforcements Currently supported policy types: • • • • PWDEN FWDEN TCPOP TCPBL UDPOP UDPBL PCKGS UNSRC SWIDT FREFM FMEAS FMETA DREFM DMEAS DMETA Factory Default Password Enabled Forwarding Enabled TCP Ports allowed to be Open TCP Ports to be Blocked UDP Ports allowed to be Open UDP Ports to be Blocked Installed Packages Unknown Sources Software ID (SWID) Tag Inventory File Reference Measurement File Metadata Directory Reference Measurement Directory Metadata Closed Port Default Policy Open Port Default Policy SHA 1/SHA 256 Hash Create/Modify/Access Times SHA 1/SHA 256 Hashes Create/Modify/Access Times 26. 09. 2013, ostd_2013_strongswan 41

Add/Edit Policies 26. 09. 2013, ostd_2013_strongswan 42

Add/Edit Policies 26. 09. 2013, ostd_2013_strongswan 42

Define Enforcements 26. 09. 2013, ostd_2013_strongswan 43

Define Enforcements 26. 09. 2013, ostd_2013_strongswan 43

TNC Summary • • The TNC protocols have become Internet Standards • The TNC

TNC Summary • • The TNC protocols have become Internet Standards • The TNC protocols support trustworthy TPM-based remote attestation • The strong. Swan BYOD Showcase demonstrates that TNC is ready for use • The strong. TNC policy manager bases measurements on past client behaviour The TNC protocols are platform-independent and allow interoperability 26. 09. 2013, ostd_2013_strongswan 44

Danke für die Aufmerksamkeit! Fragen? www. strongswan. org 26. 09. 2013, ostd_2013_strongswan 45

Danke für die Aufmerksamkeit! Fragen? www. strongswan. org 26. 09. 2013, ostd_2013_strongswan 45