802 1x and faucet
play

802.1X and Faucet Michael Baird Michael.Baird@ecs.vuw.ac.nz - PowerPoint PPT Presentation

802.1X and Faucet Michael Baird Michael.Baird@ecs.vuw.ac.nz 19-10-2017 FAUCET Conference Outline Introductjon to 802.1X Design Implementatjon Example confjgs/demo Future work 2 Introduction IEEE 802.1X Port-Based


  1. 802.1X and Faucet Michael Baird Michael.Baird@ecs.vuw.ac.nz 19-10-2017 FAUCET Conference

  2. Outline • Introductjon to 802.1X • Design • Implementatjon • Example confjgs/demo • Future work 2

  3. Introduction – IEEE 802.1X • Port-Based Network Access Control • Framework for EAP • Wired/WiFi Supplicant Client Authentjcator Switch Authentjcatjon RADIUS Server Server 3

  4. Design Goals • NFV-ed 802.1X • Switch doesn’t need to support 1X. • Any RADIUS server. • >25 EAP Methods • Fail secure 4

  5. Implementation 5

  6. Implementation 6

  7. Implementation 7

  8. Implementation Authentjcatjon Authentjcator Server Supplicants 8

  9. Implementation 9

  10. Implementation 10

  11. Implementation – Interprocess Communication hostapd Auth_App Faucet - UNIX Socket - Confjg File & SIGHUP - Same Machine - To Faucet - UDP Socket - Prometheus - Network - From Faucet - ACLs to apply - Receive Events on statjon state - MAC – Port Learning table changes (Success, Logofg, …) - Request client data (Username, ACL names, …) 11

  12. Implementation – 1X Redirect #1 (client initiates authentication) Eth_src: C Eth_src: C Eth_dst: H Eth_dst: 1X Eth_type: 1X Eth_type: 1X 12

  13. Implementation – 1X Redirect #2 (client implicit authentication request) Eth_src: C Eth_src: C Eth_dst: H Eth_dst: B Eth_type: DHCP Eth_type: DHCP 13

  14. Implementation – 1X Redirect #2 (client implicit authentication request) Eth_src: H Eth_dst: C Eth_type: 1X Eth_src: H Eth_dst: C Eth_type: 1X 14

  15. Implementation - ACLs faucet.yaml acls: - Matches: no_smtp: - rule: - Ethernet, VLAN, IP, TCP/UDP, … dl_src: 00:00:00:00:00:01 - Actjons: dl_type: 0x800 # ipv4 nw_proto: 6 # tcp - Drop, allow, output port, mirror, change VLAN, … tcp_dst: 25 # smtp actjons: allow: 0 # drop - rule: dl_src: 00:00:00:00:00:01 dl_type: 0x86dd # ipv6 nw_proto: 6 # tcp tcp_dst: 25 # smtp actjons: allow: 0 # drop 15

  16. Implementation - ACLs faucet.yaml … - Each port has unique ACL faucet-1 : - port_<dp name>_<port #> interfaces: 1: name: network natjve_vlan: 100 2: name: h0 natjve_vlan: 100 acl_in: port_faucet-1_3 3: name: h1 natjve_vlan: 100 acl_in: port_faucet-1_4 4: name: hostapd natjve_vlan: 100 16

  17. Implementation - ACLs Maps user radius to high level ACLs Statjc base- base- faucet- ACLs faucet acls.yaml acls.yaml acls.yaml + marker dynamic rules faucet updates + authentjcatjon openfmow tables Defjnes state rules.yaml high level + statjc ACLs ACLs 17

  18. Implementation - ACLs • RADIUS Aturibute Vendor-Specifjc “Faucet-ACL-Names” • List of ACL names • Limited to 255 characters • Applied in list order (fjrst = highest priority) • “No-SMTP, No-SSH, No-ICMP, Allow-All” • “Student” 18

  19. rules.yaml acls: Implementation - ACLs no-smtp: _auth-port_: - rule: _name_: _user-name_ - Matches: _mac_: _user-mac_ - Ethernet, VLAN. IP, TCP/UDP, … dl_src: _user-mac_ dl_type: 0x800 # ipv4 - Actjons: nw_proto: 6 # tcp - Drop, allow, output port, mirror, change VLAN, … tcp_dst: 25 # smtp actjons: - Runtjme insertjon of authentjcated clients username & allow: 0 # drop port_faucet-1_3: MAC address - rule: - Rulelist have two ‘types’: _name_: _user-name_ - Runtjme auth port – apply rules to ACL that belongs to _mac_: _user-mac_ dl_dst: _user-mac_ the port authentjcatjon occurred on. dl_type: 0x800 # ipv4 - ACL name – any other Faucet ACL. actjons: - YAML Anchors allow: 1 # allow 19

  20. rules.yaml acls: Implementation - ACLs no-smtp: _auth-port_: - rule: _name_: _user-name_ - Matches: _mac_: _user-mac_ - Ethernet, VLAN. IP, TCP/UDP, … dl_src: _user-mac_ dl_type: 0x800 # ipv4 - Actjons: nw_proto: 6 # tcp - Drop, allow, output port, mirror, change VLAN, … tcp_dst: 25 # smtp actjons: - Runtjme insertjon of authentjcated clients username & allow: 0 # drop port_faucet-1_3: MAC address - rule: - Rulelist have two ‘types’: _name_: _user-name_ - Runtjme auth port – apply rules to ACL that belongs to _mac_: _user-mac_ dl_dst: _user-mac_ the port authentjcatjon occurred on. dl_type: 0x800 # ipv4 - ACL name – any other Faucet ACL. actjons: - YAML Anchors allow: 1 # allow 20

  21. rules.yaml Implementation - ACLs acls: block-smtp: &block-smtp - rule: - Matches: _name_: _user-name_ _mac_: _user-mac_ - Ethernet, VLAN. IP, TCP/UDP, … dl_src: _user-mac_ - Actjons: dl_type: 0x800 # ipv4 - Drop, allow, output port, mirror, change VLAN, … nw_proto: 6 # tcp tcp_dst: 25 # smtp actjons: - Runtjme insertjon of authentjcated clients username & allow: 0 # drop MAC address - Rulelist have two ‘types’: … acls: - Runtjme auth port – apply rules to ACL that belongs to student: the port authentjcatjon occurred on. _auth-port_: - ACL name – any other Faucet ACL. *block-smtp *block-ssh - YAML Anchors *allow-all 21

  22. base-acls.yaml acls: Implementation - ACLs port_faucet-1_4: - rule: dl_type: 0x888e actjons: ‘Base-ACLs’ allow: 1 output: • Base-ACLs -> Faucet-ACLs dl_dst: '44:44:44:44:44:44' - authed-rules - rule: • Marker – where new rules (host authorisatjon) _name_: michael applied. _mac_: ’00:00:00:00:00:01’ • State of what rules belong to which user & MAC dl_dst: ’00:00:00:00:00:01’ dl_type: 0x800 # ipv4 • Allows YAML anchors actjons: allow: 1 # allow - rule: actjons: allow: 1 output: dl_dst: '44:44:44:44:44:44' 22

  23. Fail Secure • Faucet - network should stay the same. • auth_app - Either reset confjg or reload last good. • Switch – Faucet applies latest confjg. 23

  24. Example 24

  25. Demo • H1 windows for ping. • H1 windows for running logon and logofg. • Wireshark all switch interfaces. – showing mac rewrite. • Bring up the changed base acl/original 25

  26. Future Work • Link state events. • Flexibility • Single authentjcatjon server for many switches. • RADIUS Accountjng • Packetgence (dynamically allocate to vlans) • MACSEC (offmoad crypto to NFV host) • Richer ACLs (VUW policy language) 31

  27. Thanks 32

  28. References & Links Hostapd htups://github.com/Bairdo/hostapd-d1xf/tree/faucet-tests htups://w1.fj/hostapd/ Auth_App/Faucet htups://github.com/Bairdo/faucet/tree/radius-acls 33

  29. Extra Slides 34

  30. Link State Events • Listen for Ryu Link event Messages • Switch port goes down – all on that port should reauth 35

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend