Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
de:eduroam:easyroam:vlan_in_easyroam [2024/05/30 10:21] – angelegt Ralf Paffrathde:eduroam:easyroam:vlan_in_easyroam [2026/05/07 11:14] (aktuell) Ralf Paffrath
Zeile 1: Zeile 1:
 ==== Für Admins: Konfiguration von VLAN's in easyroam ==== ==== Für Admins: Konfiguration von VLAN's in easyroam ====
 === Ausgangslage === === Ausgangslage ===
-Selbstverständlich lassen sich auch VLAN's in easyroam konfigurieren. Ausgangskonfiguration ist typische RadSec Anbindung eines eduroam IdP's in easyroam am Beispiel des radsecproxy:+Selbstverständlich lassen sich auch VLAN's in easyroam konfigurieren. Ausgangskonfiguration ist eine typische RadSec Anbindung eines eduroam SP's in easyroam am Beispiel des radsecproxy:
  
 <alert>/etc/radsec/radsecproxy.conf</alert> <alert>/etc/radsec/radsecproxy.conf</alert>
- 
 <code> <code>
 ListenUDP               *:1812 ListenUDP               *:1812
Zeile 14: Zeile 13:
 LogLevel                5 LogLevel                5
  
-####### lokal WLAN stuff ####+####### local WLAN stuff ####
  
 client wlan_controllser { client wlan_controllser {
Zeile 22: Zeile 21:
 } }
 ########## PKI stuff #### ########## PKI stuff ####
 +
 tls eduroamPKI { tls eduroamPKI {
         CACertificateFile  /etc/radsec/certs/eduroam-ca/eduroam-root-ca.pem         CACertificateFile  /etc/radsec/certs/eduroam-ca/eduroam-root-ca.pem
         CertificateFile    /etc/radsec/certs/eduroam-ca/eduroam-ca.pem         CertificateFile    /etc/radsec/certs/eduroam-ca/eduroam-ca.pem
         CertificateKeyFile /etc/radsec/certs/eduroam-ca/eduroam-ca-key.pem         CertificateKeyFile /etc/radsec/certs/eduroam-ca/eduroam-ca-key.pem
 +}
  
 ###### Federationserver stuff ### ###### Federationserver stuff ###
Zeile 31: Zeile 32:
 server  tld1 { server  tld1 {
         host  193.174.75.134         host  193.174.75.134
-        certificatenamecheck off+        ServerName tld1.eduroam.de
         statusserver on         statusserver on
         tls eduroamPKI         tls eduroamPKI
         type tls         type tls
-        matchCertificateAttribute SubjectAltName:DNS:/^(tld(1|2|3)\.eduroam\.de)$/ 
 } }
 server  tld2 { server  tld2 {
         host  193.174.75.138         host  193.174.75.138
-        certificatenamecheck off+        ServerName tld2.eduroam.de
         statusserver on         statusserver on
         tls eduroamPKI         tls eduroamPKI
         type tls         type tls
-        matchCertificateAttribute SubjectAltName:DNS:/^(tld(1|2|3)\.eduroam\.de)$/ 
 } }
 server  tld3 { server  tld3 {
         host  194.95.245.98         host  194.95.245.98
-        certificatenamecheck off+        ServerName tld3.eduroam.de
         statusServer on         statusServer on
         tls eduroamPKI         tls eduroamPKI
         type tls         type tls
-        matchCertificateAttribute SubjectAltName:DNS:/^(tld(1|2|3)\.eduroam\.de)$/ 
 } }
 ##### Realm stuff ### ##### Realm stuff ###
Zeile 74: Zeile 72:
 LogLevel                5 LogLevel                5
  
-####### lokal WLAN stuff ####+####### local WLAN stuff ####
  
-client wlan_controllser {+client wlan_controller {
      host <ip-addr>      host <ip-addr>
      type udp       type udp 
Zeile 90: Zeile 88:
  addAttribute           64:13  addAttribute           64:13
  addAttribute           65:6  addAttribute           65:6
- addAttribute           81:'64'+ addAttribute           81:'64
 } }
  
Zeile 100: Zeile 98:
         CertificateFile    /etc/radsec/certs/eduroam-ca/eduroam-ca.pem         CertificateFile    /etc/radsec/certs/eduroam-ca/eduroam-ca.pem
         CertificateKeyFile /etc/radsec/certs/eduroam-ca/eduroam-ca-key.pem         CertificateKeyFile /etc/radsec/certs/eduroam-ca/eduroam-ca-key.pem
 +}        
  
 ####### Federationsserver stuff #### ####### Federationsserver stuff ####
Zeile 105: Zeile 104:
 server  tld1 { server  tld1 {
         host  193.174.75.134         host  193.174.75.134
-        certificatenamecheck off+        ServerName tld1.eduroam.de
         statusserver on         statusserver on
         tls eduroamPKI         tls eduroamPKI
         rewriteIN addVLAN         rewriteIN addVLAN
         type tls         type tls
-        matchCertificateAttribute SubjectAltName:DNS:/^(tld(1|2|3)\.eduroam\.de)$/ 
 } }
 server  tld2 { server  tld2 {
         host  193.174.75.138         host  193.174.75.138
-        certificatenamecheck off+        ServerName tld2.eduroam.de
         statusserver on         statusserver on
         tls eduroamPKI         tls eduroamPKI
         rewriteIN addVLAN         rewriteIN addVLAN
         type tls         type tls
-        matchCertificateAttribute SubjectAltName:DNS:/^(tld(1|2|3)\.eduroam\.de)$/ 
 } }
 server  tld3 { server  tld3 {
         host  194.95.245.98         host  194.95.245.98
-        certificatenamecheck off+        ServerName tld3.eduroam.de
         statusServer on         statusServer on
         tls eduroamPKI         tls eduroamPKI
         rewriteIn addVLAN         rewriteIn addVLAN
         type tls         type tls
-        matchCertificateAttribute SubjectAltName:DNS:/^(tld(1|2|3)\.eduroam\.de)$/ 
 } }
  
Zeile 141: Zeile 137:
 === Institutseigene Nutzende in privilegierte VLAN's === === Institutseigene Nutzende in privilegierte VLAN's ===
    
-Besteht die Aufgabe darin die eigenen easyroam Nutzenden in ein privilegiertes VLAN zu leiten, wird eine zusätzliche radsecproxy Instanz benötigt und die angepasste +Besteht die Aufgabe darin die eigenen easyroam Nutzenden in ein privilegiertes VLAN zu leiten, wird eine zusätzliche radsecproxy Instanz benötigt und die angepasste Ausgangskonfiguration:
-die angepasste Ausgangskonfiguration:+
  
 <alert>/etc/radsec/radsecproxy.conf</alert> <alert>/etc/radsec/radsecproxy.conf</alert>
Zeile 154: Zeile 149:
 LogLevel                5 LogLevel                5
  
-####### lokal WLAN stuff ####+####### local WLAN stuff ####
  
 client wlan_controllser { client wlan_controllser {
Zeile 176: Zeile 171:
         CertificateFile    /etc/radsec/certs/eduroam-ca/eduroam-ca.pem         CertificateFile    /etc/radsec/certs/eduroam-ca/eduroam-ca.pem
         CertificateKeyFile /etc/radsec/certs/eduroam-ca/eduroam-ca-key.pem         CertificateKeyFile /etc/radsec/certs/eduroam-ca/eduroam-ca-key.pem
 +}
  
 ###### Federationserver stuff ### ###### Federationserver stuff ###
Zeile 181: Zeile 177:
 server  tld1 { server  tld1 {
         host  193.174.75.134         host  193.174.75.134
-        certificatenamecheck off+        ServerName tld1.eduroam.de
         statusserver on         statusserver on
         tls eduroamPKI         tls eduroamPKI
         type tls         type tls
-        matchCertificateAttribute SubjectAltName:DNS:/^(tld(1|2|3)\.eduroam\.de)$/ 
 } }
 server  tld2 { server  tld2 {
         host  193.174.75.138         host  193.174.75.138
-        certificatenamecheck off+        ServerName tld2.eduroam.de
         statusserver on         statusserver on
         tls eduroamPKI         tls eduroamPKI
         type tls         type tls
-        matchCertificateAttribute SubjectAltName:DNS:/^(tld(1|2|3)\.eduroam\.de)$/ 
 } }
 server  tld3 { server  tld3 {
         host  194.95.245.98         host  194.95.245.98
-        certificatenamecheck off+        ServerName tld3.eduroam.de
         statusServer on         statusServer on
         tls eduroamPKI         tls eduroamPKI
         type tls         type tls
-        matchCertificateAttribute SubjectAltName:DNS:/^(tld(1|2|3)\.eduroam\.de)$/ 
 } }
  
 ##### Realm stuff ### ##### Realm stuff ###
  
-realm /@easyroam(-pca)?<instistut-realm>$/+realm /@easyroam(-pca)?\.<instistut-realm>$/
-        server localhost-add-vlan+        server localloop
 } }
  
Zeile 215: Zeile 208:
  server tld3  server tld3
 }</code> }</code>
 +
 +Der neu hinzukommende radsecproxy: 
  
 <alert>/etc/radsec/radsecproxy_add_vlan.conf</alert> <alert>/etc/radsec/radsecproxy_add_vlan.conf</alert>
Zeile 231: Zeile 226:
  addAttribute           64:13  addAttribute           64:13
  addAttribute           65:6  addAttribute           65:6
- addAttribute           81:'64'+ addAttribute           81:'64
 } }
  
Zeile 250: Zeile 245:
  
 ###### PKI stuff #### ###### PKI stuff ####
 +
 tls eduroamPKI { tls eduroamPKI {
         CACertificateFile  /etc/radsec/certs/eduroam-ca/eduroam-root-ca.pem         CACertificateFile  /etc/radsec/certs/eduroam-ca/eduroam-root-ca.pem
         CertificateFile    /etc/radsec/certs/eduroam-ca/eduroam-ca.pem         CertificateFile    /etc/radsec/certs/eduroam-ca/eduroam-ca.pem
         CertificateKeyFile /etc/radsec/certs/eduroam-ca/eduroam-ca-key.pem         CertificateKeyFile /etc/radsec/certs/eduroam-ca/eduroam-ca-key.pem
 +}
 ####### Federationsserver stuff #### ####### Federationsserver stuff ####
 +
 server  tld1 { server  tld1 {
         host  193.174.75.134         host  193.174.75.134
-        certificatenamecheck off+        ServerName tld1.eduroam.de
         statusserver on         statusserver on
         tls eduroamPKI         tls eduroamPKI
         type tls         type tls
-        matchCertificateAttribute SubjectAltName:DNS:/^(tld(1|2|3)\.eduroam\.de)$/ 
 } }
 server  tld2 { server  tld2 {
         host  193.174.75.138         host  193.174.75.138
-        certificatenamecheck off+        ServerName tld2.eduroam.de
         statusserver on         statusserver on
         tls eduroamPKI         tls eduroamPKI
         type tls         type tls
-        matchCertificateAttribute SubjectAltName:DNS:/^(tld(1|2|3)\.eduroam\.de)$/ 
 } }
 server  tld3 { server  tld3 {
         host  194.95.245.98         host  194.95.245.98
-        certificatenamecheck off+        ServerName tld3.eduroam.de
         statusServer on         statusServer on
         tls eduroamPKI         tls eduroamPKI
         type tls         type tls
-        matchCertificateAttribute SubjectAltName:DNS:/^(tld(1|2|3)\.eduroam\.de)$/ 
 } }
  
 ###### realm stuff ##### ###### realm stuff #####
-realm realm /@easyroam(-pca)?<instituts-realm>$/ {+ 
 +realm realm /@easyroam(-pca)?\.<instituts-realm>$/ {
  server tld1  server tld1
  server tld2  server tld2
Zeile 292: Zeile 287:
 === Der Test === === Der Test ===
  
-Mit eapol_test lässt sich belegen, dass die Attribute für VLAN's korrekt im Access-Accept Paket hinzugefügt werden.+Mit eapol_test lässt sich belegen, dass die Attribute für VLAN's korrekt dem Access-Accept Paket hinzugefügt werden.
  
 <code> <code>
Zeile 339: Zeile 334:
    Attribute 81 (Tunnel-Private-Group-Id) length=5    Attribute 81 (Tunnel-Private-Group-Id) length=5
       Value: 363427       Value: 363427
-STA 01:02:03:04:05:06: Received RADIUS packet matched with a pending request, round trip time 0.01 sec</code> +STA 01:02:03:04:05:06: Received RADIUS packet matched with a pending request, round trip time 0.01 sec</code> 
 + 
 +=== Der vereitelte Missbrauch ==== 
 + 
 +Denkbar wäre mit einem gültigen easyroam Pseudozertifikat und einer gefälschten äußeren Identität die VLAN - Konfiguration auszutricksen. 
 + 
 +<code> 
 +Sending RADIUS message to authentication server 
 +RADIUS message: code=1 (Access-Request) identifier=9 length=518 
 +   Attribute 1 (User-Name) length=53 
 +      Value: '6090495638272782046@easyroam-pca.institute-realm.de' 
 +   Attribute 4 (NAS-IP-Address) length=6 
 +      Value: 127.0.0.1 
 +   Attribute 31 (Calling-Station-Id) length=19 
 +      Value: '01-02-03-04-05-06' 
 +   Attribute 12 (Framed-MTU) length=6 
 +      Value: 1400 
 +   Attribute 61 (NAS-Port-Type) length=6 
 +      Value: 19 
 +   Attribute 6 (Service-Type) length=6 
 +      Value: 2 
 +   Attribute 77 (Connect-Info) length=24 
 +      Value: 'CONNECT 11Mbps 802.11b' 
 +   Attribute 79 (EAP-Message) length=255 
 +      Value: 02d101520d005f71c34fcce8e12d54e2b13ac0c6b105cfde03a036f179bc575630c657a14c8cb3bceb87e09320e04cf09cc52a9bbe9ca83cd0dd111664565e6193f0178fe19086921f3edcfd67a69c31de8d168f5ecd14eb51832bf55ab082b0d3db6a9555a9ba1103fbe1c3ff88697f3d436dcff49b54d92896e9d9a5d184cbaca0698f8744e94fa1c800129e268904b70546f45962b2290c06d34b0ad85ee37743bd02feda080a200328997e84e713256ce5ce64bb04a611c744829ad2b5f5bf8e6a36bf21f0efd1489ef2841013554982e9ae447f31cf7eb0acb17c71f2298c009e9676013b0705c757dd8705af23f008d2571c66eefd08f336a433 
 +   Attribute 79 (EAP-Message) length=87 
 +      Value: 0d318a30b3ca7daa1c4e36170303004583ff81e5939f69e193ab8eb441c5596a33a8c21418616d3617c15cc00afaf421739c11bc1771ee8548b945907904e7e2a396b84df50ce7e5c64a12feebd330741c9d90c52e 
 +   Attribute 24 (State) length=18 
 +      Value: 2168c43f29b9c9eafd8c90d2473fe380 
 +   Attribute 80 (Message-Authenticator) length=18 
 +      Value: 80e122ef58f88e4963afead78911076b 
 +Next RADIUS client retransmit in 3 seconds 
 +EAPOL: SUPP_BE entering state RECEIVE 
 +Received 186 bytes from RADIUS server 
 +Received RADIUS message 
 +RADIUS message: code=3 (Access-Reject) identifier=9 length=186 
 +   Attribute 79 (EAP-Message) length=6 
 +      Value: 04d10004 
 +   Attribute 80 (Message-Authenticator) length=18 
 +      Value: 1738d193c2cf0bba54fb9f5f3cf07647 
 +   Attribute 18 (Reply-Message) length=142 
 +      Value: 'Certificate CN 6174679189648274680@easyroam-pca.dfn.de does not match specified value (6090495638272782046@easyroam-pca.institute-realm.de)!' 
 +STA 01:02:03:04:05:06: Received RADIUS packet matched with a pending request, round trip time 1.01 sec</code> 
 + 
 +=== Kombinieren === 
 +Die angeführten Beispiele lassen sich beliebig kombinieren. Zu beachten ist jedoch, dass lokale Loops konfiguriert werden können. Externe Loops, die den eduroam Betrieb gefährden könnten, sind ausgeschlossen, da unsere Server in der Regel mit einem Reject oder Accept antworten. In den Beispielen werden zwei Uplinks zu den Föderationsservern etabliert. Es ist aber auch möglich mit einem Beinchen zu den Föderationsservern VLAN's für die eigenen easyroam Nutzenden zu konfigurieren. Auch gezielt, easyroam Nutzende (extern/interne) in privilegierte VLAN's zu leiten, ist möglich. 
  • Zuletzt geändert: vor 2 Jahren