hummus
Goto Top

WLAN: VLAN-Zuordnung anhand Radius-Eigenschaften? MikroTik CAPsMAN

Liebe Experten,

ich habe eine pfSense als Router und mehrere Zyxel GS1900-Switche im Einsatz. Dort hängen aktuell zwei MikroTik cAP lite an Ports, die das VLAN 70 untagged übermitteln und einige weitere VLANs tagged. Einer der cAPs ist der CAPsMAN und in Zukunft werden noch weitere cAPs hinzukommen.
VLAN 70 ist also das Verwaltungsnetz für die WLAN-Hardware. Es werden aktuell drei bis vier VLANs für den Zugriff per WLAN benötigt. Ich habe schon gelesen, dass es grundsätzlich möglich ist, nur mit einer einzigen SSID zu arbeiten und die Zuordnung zu den VLANs bei dem Nutzer im Radius-Server zu hinterlegen. Ist das mit den MikroTik caps(man) auch möglich? Wenn ja: Wie?
Einen Freeradius-Server könnte ich im internen Netz installieren.

Außerdem würde ich gern noch ein Captive Portal für ein WLAN-Gastnetz haben. Alle cAPs sollen gleich konfiguriert sein (u.a. deshalb auch der CAPsMAN).

Ist die Kombination aus Captive Portal und 802.1x-Authentifizierung so möglich? Sollte ich das Captive Portal der pfSense nutzen oder eine MikroTik-interne Lösung? Für das Captive Portal (WLAN-Gastnetz) bräuchte ich keine unterschiedlichen VLANs, die landen dann alle in einem Gast-VLAN.

Ist es sinnvoll, den Radius-Server separat aufzusetzen oder in der pfSense?

Ich freue mich auf eine Beschreibung, welche Konstellation für mein Vorhaben am besten sein wird.

Danke!

Content-Key: 396803

Url: https://administrator.de/contentid/396803

Printed on: June 13, 2024 at 16:06 o'clock

Mitglied: 137846
137846 Dec 27, 2018 updated at 17:28:17 (UTC)
Goto Top
Zitat von @hummus:
nur mit einer einzigen SSID zu arbeiten und die Zuordnung zu den VLANs bei dem Nutzer im Radius-Server zu hinterlegen. Ist das mit den MikroTik caps(man) auch möglich?
Ja
Wenn ja: Wie?
Dynamic VLAN Assignment with RADIUS and CAPsMAN Configuration Example
Außerdem würde ich gern noch ein Captive Portal für ein WLAN-Gastnetz haben. Alle cAPs sollen gleich konfiguriert sein (u.a. deshalb auch der CAPsMAN).

Ist die Kombination aus Captive Portal und 802.1x-Authentifizierung so möglich?
Ja, siehe PDF oben.
Sollte ich das Captive Portal der pfSense nutzen oder eine MikroTik-interne Lösung?
Bleibt dir überlassen. Das CP der pfSense basiert auf PHP und ist dadurch sehr flexibel anpassbar sollten später noch Sonderwünsche dazu kommen. Das CP des Mikrotik lässt sich ebenfalls fein konfigurieren, jedoch hat man hier keine Möglichkeit direkt mit PHP erweiterte Funktionen nachzurüsten.
Für das Captive Portal (WLAN-Gastnetz) bräuchte ich keine unterschiedlichen VLANs, die landen dann alle in einem Gast-VLAN.
Mikrotik Hotspot, oder pfSense CP erledigen das beide zufriedenstellend, schau sie dir einfach beide mal an.
Ist es sinnvoll, den Radius-Server separat aufzusetzen oder in der pfSense?
Wenn sowieso schon andere Hardware im Netz läuft, dann ja, ansonsten eben in der pfSense, kommt ja auch auf die Anzahl der User an und was sonst noch auf der pfSense so läuft .

Gruß A.
Member: hummus
hummus Dec 27, 2018 at 21:42:46 (UTC)
Goto Top
Danke für deine Hinweise, da bin ich ja schonmal auf dem richtigen Weg.

Ich habe mir einen freeradius-Server im Docker-Container aufgesetzt und dort die VLAN-ID beim jeweiligen User hinterlegt. Mit radtest erhalte ich auch die ID zurück:

Sent Access-Request Id 140 from 0.0.0.0:51426 to 192.168.148.177:1812 length 95
	User-Name = "test"  
	User-Password = "sldfj8934jvc"  
	NAS-IP-Address = 172.17.0.7
	NAS-Port = 0
	Message-Authenticator = 0x00
	Cleartext-Password = "sldfj8934jvc"  
Received Access-Accept Id 140 from 192.168.148.177:1812 to 172.17.0.7:51426 length 32
	Mikrotik-Wireless-VLANID = 41

Vom Android-Smartphone aus kann ich mich mit den Zugangsdaten auch verbinden, allerdings funktioniert die VLAN-Zuordnung noch nicht. Den Datapath habe ich wie in der PDF-Anleitung auf Seite 13 so eingestellt, dass VLAN Mode = "use tag" ist, aber keine VLAN ID angegeben ist. Die soll ja vom Radius geliefert werden. Lasse ich den VLAN Mode leer, dann wird die Verbindung ordentlich aufgebaut, das Smartphone erhält dann eine IP-Adresse aus dem VLAN 70 (das ist das WLAN-Management-VLAN). Trage ich händisch die VLAN ID im Datapath ein, funktioniert es korrekt. Es ist also kein Problem mit dem DHCP o.ä.

Wie kann ich das Problem lokalisieren? Im Mikrotik-Log steht nur connected und dann wieder disconnected, aber keine Details zur VLAN-Wahl etc. Gibt es da noch ein detaillierteres Log?
Member: hummus
hummus Dec 28, 2018 at 06:46:33 (UTC)
Goto Top
Nach einigem nächtlichen Lesen und probieren habe ich es gelöst: Es fehlte noch die Konfigurationsanpassung in der Datei /etc/raddb/mods-available/eap: Dort muss (wie man ähnlich hier nachlesen kann) use_tunneled_reply = yes eingestellt werden. (An beiden Stellen, vorher stand da "no".)
Mitglied: 137846
137846 Dec 28, 2018 at 06:56:29 (UTC)
Goto Top
Member: hummus
hummus Dec 28, 2018 at 09:36:13 (UTC)
Goto Top
Zitat von @137846:
Ist die Kombination aus Captive Portal und 802.1x-Authentifizierung so möglich?
Ja, siehe PDF oben.

Wie stelle ich das jetzt praktisch an? In der PDF fand ich nichts zur Kombination aus Captive Portal und 802.1x-Auth.
Brauche ich für das Captive Portal eine separate SSID? Die jetzige SSID ist ja so eingestellt, dass man für 802.1x die Zugangsdaten eingeben muss.
Wenn ja, muss ich da mit einem virtuellen AP bei MikroTik arbeiten und diesen manuell auf jedem cAP anlegen? Oder kann ich das global im CAPsMAN machen?
Member: hummus
hummus Dec 28, 2018 at 09:38:00 (UTC)
Goto Top
Oder ist es sinnvoll machbar, die Voucher-Zugänge o.ä. im RADIUS zu hinterlegen und somit komplett auf das Captive Portal zu verzichten? Die Nutzer müssen dann die Zugangsdaten eben im 802.1x-Dialog und nicht auf einer Webseite eingeben.
Member: aqui
aqui Dec 28, 2018, updated at Dec 30, 2018 at 16:40:25 (UTC)
Goto Top
Außerdem würde ich gern noch ein Captive Portal für ein WLAN-Gastnetz haben.
Das kannst du doch kinderleicht mit deiner pfSense realisieren !!
Guckst du hier:
WLAN oder LAN Gastnetz einrichten mit einem Captive Portal (Hotspot Funktion)
Es bietet mehr Möglichkeiten der User Verwaltung und Steuerung als das des MT.
Auf ein Captive Portal solltest du wegen der rechtlichen Problematik (Abnicken der AGB etc) bei Gastzugängen und zur Registrierung der Mac Adressen besser nicht verzichten !
Die zeitliche Begrenzung der Voucher bzw. die Funktion als Einmalpasswörter ist über .1x ebenfalls nicht zu regeln.
Du hast dann dort wieder statische Passwörter die einen Tag später die ganze Nachbarschaft, 2 Tage später die ganze Stadt kennt. Sinnfreier NoGo....
<edit>
Natürlich kann man im Radius Server eine zeitliche Limitierung bzw. Zeitschiene definieren. Kollege @sk hat unten natürlich Recht.
Das Problem ist natürlich der zeitliche Ablauf eines Einmalpassworts. Das kann ein Radius nur schwer lösen. Thema Backendsystem. Das es generell natürlich mit Klimmzügen lösbar ist steht außer Frage nur sollte man hier immer die Balance zw. Aufwand und Nutzen im Hinterkopf haben. Sollte MT tatsächlich die "Private PSKs" supporten wäre das ein vielversprechender Ansatz.
</edit>
Member: hummus
hummus Dec 28, 2018 at 12:33:22 (UTC)
Goto Top
Okay, das Tutorial habe ich schon gelesen. Ich habe nur noch eine Lücke bei der Kombination mit meinem CAPsMAN-Setup. Brauche ich eine zweite SSID für den WLAN-Gastzugang und schicke den Traffic dann auf ein separates VLAN, für das das Captive Portal auf der pfSense eingerichtet ist?
Wenn ja: Muss ich da mit einem virtuellen AP bei MikroTik arbeiten und diesen manuell auf jedem cAP anlegen? Oder kann ich das global im CAPsMAN machen?
Mitglied: 137846
Solution 137846 Dec 28, 2018 updated at 14:36:35 (UTC)
Goto Top
Zitat von @hummus:

Zitat von @137846:
Ist die Kombination aus Captive Portal und 802.1x-Authentifizierung so möglich?
Ja, siehe PDF oben.

Wie stelle ich das jetzt praktisch an? In der PDF fand ich nichts zur Kombination aus Captive Portal und 802.1x-Auth.
Brauche ich für das Captive Portal eine separate SSID? Die jetzige SSID ist ja so eingestellt, dass man für 802.1x die Zugangsdaten eingeben muss.
Wenn ja, muss ich da mit einem virtuellen AP bei MikroTik arbeiten und diesen manuell auf jedem cAP anlegen? Oder kann ich das global im CAPsMAN machen?
Das sind ja auch zwei ganz verschiedene Paar Schuhe!
Das eine ist WPA2 Auth via 802.1x und das andere mit CaptivePortal lässt man, wenn man das für Gäste nutzt natürlich selbst unverschlüsselt und authentifiziert diese dann über das Portal.
vAPs lassen sich problemlos automatisch via Capsman auf alle CAPs provisionieren indem man als Parent das Hauptinterface angibt.
Member: aqui
Solution aqui Dec 28, 2018 at 17:18:06 (UTC)
Goto Top
Brauche ich eine zweite SSID für den WLAN-Gastzugang
Ja, das macht man in der Regel so.
Wenn ja: Muss ich da mit einem virtuellen AP bei MikroTik arbeiten
Guckst du hier, da ist alles erklärt:
Mikrotik VLAN Konfiguration ab RouterOS Version 6.41
Member: sk
sk Dec 28, 2018 updated at 19:10:07 (UTC)
Goto Top
Zitat von @aqui:
Die zeitliche Begrenzung der Voucher bzw. die Funktion als Einmalpasswörter ist üner .1x ebenfalls nicht zu regeln.
Du hast dann dort wieder statische Passwörter die einen Tag später die ganze Nachbarschaft, 2 Tage später die ganze Stadt kennt. Sinnfreier NoGo....

Diese Aussage ist hanebüchen. Selbstverständlich geht das auch per 802.1x i.V.m. Radius und einem geeigneten Backendsystem. Das machen wir mit Meru Identity Manager (heute Fortinet Connect) bereits seit einigen Jahren so. Sowohl zeitliche Limitierungen als auch Volumenregelungen lassen sich darüber abbilden. Wenn die entsprechenden Bedingungen eintreten, schickt das Backend-System einfach eine Disconnect Message an den Network Access Server. Siehe https://www.lancom-systems.de/docs/LCOS/referenzhandbuch/topics/radius_c ...

Interessant an Mikrotik ist, dass man damit auch sog. "Private PSKs" per Radius aus einer zentralen Datenbank holen kann. Jeder User kann also einen eigenen zeitlich befristeten WPA(2)-PSK bekommen. Aus Anwendersicht ist WPA(2)-Personal oft angenehmer und für den Admin mit weniger Supportaufwand verbunden, als WPA-Enterprise.
Meconet bewirbt das z.B. bei ihrem a3MANAGER i.V.m. Mikrotik als sog. "Secure Hotspot". Siehe https://www.meconet.de/hotspot-und-wlan-management.html
https://mum.mikrotik.com//presentations/DE16/presentation_3521_146487723 ...

Gruß
sk
Member: hummus
hummus Dec 28, 2018 updated at 22:21:13 (UTC)
Goto Top
Danke, ich habe das mit den virtual APs hingekriegt. Allerdings musste ich für jeden cAP die vAPs selbst anlegen. Das ging zwar vom CAPsMAN aus, aber ich hatte mir das so vorgestellt, dass man das Set von vAPs irgendwie global festlegen kann, sodass z.B. beim Einfügen weiterer cAPs die vAPs gleich mit übernommen werden. Geht das auch?

In meinem Setup ist das noch nicht so dramatisch, aber wenn ich zig oder hunderte cAPs verwalte, macht es schon einen großen Unterschied.
Mitglied: 137846
137846 Dec 29, 2018 updated at 07:37:37 (UTC)
Goto Top
Ja, über die automatische Provisionierung im Capsman.
Member: hummus
hummus Dec 30, 2018 at 06:37:14 (UTC)
Goto Top
Ich habe den CAPsMAN nochmal komplett neu eingerichtet, jetzt geht es nach der Übung der letzten Tage gut von der Hand und ist echt schnell erledigt face-smile
Und schwupps funktioniert auch die automatische Provisionierung neuer virtueller APs.

Vorher hat es nicht funktioniert, trotz (wahrscheinlich) gleicher Provisionierungseinstellungen ...
Wenn ich jetzt - nachdem die cAPs am CAPsMAN angemeldet sind und ihre Einstellungen bekommen haben - eine weitere Konfiguration zur Provisionierungsregel hinzufüge, wird aber kein weiterer vAP angelegt. Wie kann ich das erreichen?
Mitglied: 137846
Solution 137846 Dec 30, 2018 updated at 07:04:57 (UTC)
Goto Top
Einfach mal die Doku lesen
https://wiki.mikrotik.com/wiki/Manual:CAPsMAN#Radio_Provisioning
When CAP connects, CAPsMAN at first tries to bind each CAP radio to CAPsMAN master interface based on radio-mac. If an appropriate interface is found, radio gets set up using master interface configuration and configuration of slave interfaces that refer to particular master interface. At this moment interfaces (both master and slaves) are considered bound to radio and radio is considered provisioned.

If no matching master interface for radio is found, CAPsMAN executes 'provisioning rules'. Provisioning rules is an ordered list of rules that contain settings that specify which radio to match and settings that specify what action to take if a radio matches.  
Also Master Interface rausschmeißen und neu provisionieren lassen.
Member: hummus
hummus Aug 16, 2019, updated at Aug 17, 2019 at 10:33:05 (UTC)
Goto Top
Zur Dokumentation:
Will man die Provisionierung manuell anstoßen, weil sich was an der Konfiguration geändert hat, kann man dies im Terminal so machen:
/caps-man remote-cap print
Dann für jede Zeile einzeln diesen Befehl aufrufen (0 durch die Zahl des Remote-CAP ersetzen, die in obiger Tabelle in der ersten Spalte steht).
/caps-man remote-cap provision 0

Eine Möglichkeit, dies für alle Remote-CAPs auf einmal zu machen, habe ich leider nicht gefunden - wäre aber bei vielen CAPs wünschenswert. Falls da jemand noch eine Idee hat, bitte ergänzen!

Möglich ist aber, die Nummern komma-separiert zu übergeben:

/caps-man remote-cap provision 0,1,2,3,4,5,6
Member: aqui
aqui Oct 07, 2019 at 08:40:53 (UTC)
Goto Top
Member: Spartacus
Spartacus Oct 18, 2019 at 11:31:02 (UTC)
Goto Top
Moin zusammen,
ich spiele gerade auch mit meinem RADIUS herum, damit ich die WLAN Clients authentifizieren kann. Der Radius rennt auch, aber ich komme mit den Attributen im Radius nicht klar.

Welche Attribute muss ich hier zusätzlich anlegen?

vlanid

Für meine MAC-Auth am Cisco Switch habe ich folgende Attribute in der Tabelle:

Tunnel-Type =6
Tunnel-Medium-Type = 13
Tunnel-Private Group-Is = <VLANID>

Ich hatte jetzt geglaubt, dass ich Letzteres durch Mikrotik-Wireless-VLANID ersetzten muss. Das ist es aber nicht!

Danke Euch,
Christian
Member: aqui
aqui Oct 18, 2019 at 14:42:30 (UTC)
Goto Top
Hast du denn zuallerst mal ein einfaches WPA-Enterprise WLAN ausprobiert am MT AP ?
mtrad
mtrad3
mtrad2
Funktioniert das fehlerlos ?
(18) Received Access-Request Id 30 from 10.99.1.142:59601 to 192.168.7.166:1812 length 198
(18)   Service-Type = Framed-User
(18)   Framed-MTU = 1400
(18)   User-Name = "gast"
(18)   State = 0xad812f9ba59236162c49ea69e0cd2bdf
(18)   NAS-Port-Id = "wlan1"
(18)   NAS-Port-Type = Wireless-802.11
(18)   Calling-Station-Id = "00-23-FA-7B-D8-A6"
(18)   Called-Station-Id = "B8-69-F4-2E-20-C9:MikroTik"
(18)   EAP-Message = 0x0213002e190017030300230000000000000004a4bcaf9a4cccabf655455a93d1912f2fda1405f5cbe28f990a74e4
(18)   Message-Authenticator = 0x6aa4ac407ac22066ec3da55a07e59136
(18)   NAS-Identifier = "MikroTik"
(18)   NAS-IP-Address = 10.99.1.142
(18) session-state: No cached attributes
(18) # Executing section authorize from file /etc/freeradius/3.0/sites-enabled/default
(18)   authorize {
(18)     policy filter_username {
(18)       if (&User-Name) {
...
(18)       } # if (&User-Name)  = notfound
(18)     } # policy filter_username = notfound
(18)     [preprocess] = ok
(18)     [chap] = noop
(18)     [mschap] = noop
(18)     [digest] = noop
(18) suffix: Checking for suffix after "@"
(18) suffix: No '@' in User-Name = "gast", looking up realm NULL
(18) suffix: No such realm "NULL"
(18)     [suffix] = noop
(18) eap: Peer sent EAP Response (code 2) ID 19 length 46
(18) eap: Continuing tunnel setup
(18)     [eap] = ok
(18)   } # authorize = ok
(18) Found Auth-Type = eap
(18) # Executing group from file /etc/freeradius/3.0/sites-enabled/default
(18)   authenticate {
(18) eap: Expiring EAP session with state 0xad812f9ba5923616
(18) eap: Finished EAP session with state 0xad812f9ba5923616
(18) eap: Previous EAP request found for state 0xad812f9ba5923616, released from the list
(18) eap: Peer sent packet with method EAP PEAP (25)
(18) eap: Calling submodule eap_peap to process data
(18) eap_peap: Continuing EAP-TLS
(18) eap_peap: [eaptls verify] = ok
(18) eap_peap: Done initial handshake
(18) eap_peap: [eaptls process] = ok
(18) eap_peap: Session established.  Decoding tunneled attributes
(18) eap_peap: PEAP state send tlv success
(18) eap_peap: Received EAP-TLV response
(18) eap_peap: Success
(18) eap: Sending EAP Success (code 3) ID 19 length 4
(18) eap: Freeing handler
(18)     [eap] = ok
(18)   } # authenticate = ok
...
(18) Sent Access-Accept Id 30 from 192.168.7.166:1812 to 10.99.1.142:59601 length 0
(18)   MS-MPPE-Recv-Key = 0x6516c331440341c0919b036506162ecc073bbe23f7a819952be1360adddc5c49
(18)   MS-MPPE-Send-Key = 0xc8b85060633f915798fea009d424d35a7f7b9158771884b0d35eca26a45908c7
(18)   EAP-Message = 0x03130004
(18)   Message-Authenticator = 0x00000000000000000000000000000000
(18)   User-Name = "gast"
(18) Finished request
Waking up in 2.3 seconds.
(18) Cleaning up request packet ID 30 with timestamp +56
Ready to process requests 
So sollte das dann aussehen auf dem FreeRadius face-wink
Member: Spartacus
Spartacus Oct 18, 2019 at 15:17:57 (UTC)
Goto Top
Hi,
meine Mikrotik GUI-Einstellungen sehen ganz anders aus. mag daran liegen, dass ich im CAPSMAN bin.
Die Einstellungen im WLAN Interface die finde ich bei mir gar nicht!

Wenn ich die Anfrage über das Testtool schicke, sieht die Antwort so aus:


(15)     [sql] = ok
(15)     [exec] = noop
(15)     policy remove_reply_message_if_eap {
(15)       if (&reply:EAP-Message && &reply:Reply-Message) {
(15)       if (&reply:EAP-Message && &reply:Reply-Message)  -> FALSE
(15)       else {
(15)         [noop] = noop
(15)       } # else = noop
(15)     } # policy remove_reply_message_if_eap = noop
(15)   } # post-auth = ok
(15) Sent Access-Accept Id 1 from 172.16.50.100:1812 to 172.16.10.20:63649 length 0
(15)   Tunnel-Type = VLAN
(15)   Tunnel-Medium-Type = IEEE-802
(15)   Mikrotik-Wireless-VLANID = 60
(15) Finished request

Wenn sich das Handy versucht einzuwählen, dann so:
 eap: Peer sent EAP Response (code 2) ID 6 length 22
(6) eap: EAP-Identity reply, returning 'ok' so we can short-circuit the rest of authorize  
(6)       [eap] = ok
(6)     } # authorize = ok
(6)   Found Auth-Type = eap
(6)   # Executing group from file /etc/freeradius/3.0/sites-enabled/inner-tunnel
(6)     authenticate {
(6) eap: Peer sent packet with method EAP Identity (1)
(6) eap: Calling submodule eap_mschapv2 to process data
(6) eap_mschapv2: Issuing Challenge
(6) eap: Sending EAP Request (code 1) ID 7 length 43
(6) eap: EAP session adding &reply:State = 0xfa92f4f8fa95eecd
(6)       [eap] = handled
(6)     } # authenticate = handled
(6) } # server inner-tunnel
(6) Virtual server sending reply
(6)   EAP-Message = 0x0107002b1a0107002610c43d0f3c8c8d5be2491184f1ce83f6c0667265657261646975732d332e302e3137
(6)   Message-Authenticator = 0x00000000000000000000000000000000
(6)   State = 0xfa92f4f8fa95eecd371b44a00e0c5c30
(6) eap_peap: Got tunneled reply code 11
(6) eap_peap:   EAP-Message = 0x0107002b1a0107002610c43d0f3c8c8d5be2491184f1ce83f6c0667265657261646975732d332e302e3137
(6) eap_peap:   Message-Authenticator = 0x00000000000000000000000000000000
(6) eap_peap:   State = 0xfa92f4f8fa95eecd371b44a00e0c5c30
(6) eap_peap: Got tunneled reply RADIUS code 11
(6) eap_peap:   EAP-Message = 0x0107002b1a0107002610c43d0f3c8c8d5be2491184f1ce83f6c0667265657261646975732d332e302e3137
(6) eap_peap:   Message-Authenticator = 0x00000000000000000000000000000000
(6) eap_peap:   State = 0xfa92f4f8fa95eecd371b44a00e0c5c30
(6) eap_peap: Got tunneled Access-Challenge
(6) eap: Sending EAP Request (code 1) ID 7 length 74
(6) eap: EAP session adding &reply:State = 0x6ee8e7dd68effed9
(6)     [eap] = handled
(6)   } # authenticate = handled
(6) Using Post-Auth-Type Challenge
(6) # Executing group from file /etc/freeradius/3.0/sites-enabled/default
(6)   Challenge { ... } # empty sub-section is ignored
(6) Sent Access-Challenge Id 167 from 172.16.50.100:1812 to 172.16.50.1:33106 length 0
(6)   EAP-Message = 0x0107004a1900170303003ff86d6ad35ffdce038ec3963d4e914fee021b07127e8027e411e5b3232856161a04c1dc344b1a6861f1db3892475752c8b09965e83c26f77eca1dd362b8a157
(6)   Message-Authenticator = 0x00000000000000000000000000000000
(6)   State = 0x6ee8e7dd68effed9b891e94124c52626
(6) Finished request


Im CAPSMAN habe ich es so eingestellt:
caps1
caps2
caps3
caps4
radius

ich denke, es liegt an die Attributen, oder?
Member: aqui
aqui Oct 18, 2019 updated at 15:23:06 (UTC)
Goto Top
Ja, vermutlich. Generell sieht das aber gut aus von den Debug Messages !
Hast du dir den Dictionary File mal angesehen unter /usr/share/freeradius ob die Mikrotik Attribute dort drin sind ?!
Es gibt soweit mir bekannt auch noch einen Dictionary File unter /etc/freeradius. Musst du mal suchen mit find.
Checken ob die beide Identisch sind und checken ob sie die MT Attribute enthalten.
Sind simple ASCII Dateien die man mit less oder nano ansehen kann.
Der Schnelltest oben war ohne CapsMan mit einem händisch konfigurierten AP gemacht.
Mitglied: 141320
141320 Oct 18, 2019 updated at 15:39:09 (UTC)
Goto Top
Wichtige Einstellungen für MAC Auth finden sich für den Capsman an folgender Stelle:

screenshot

screenshot
Member: Spartacus
Spartacus Oct 18, 2019 at 18:50:16 (UTC)
Goto Top
Hi all,
ich komme nicht weiter.
Auf jeden Fall muss hier Folgendes eingestellt sein, sonst bekomme ich am radius ein Fehler angezeigt
"Password must not be empty"

capsman

Das hier habe ich auch eingestellt:
capsman2

Und in das Dictionary habe ich Folgendes eingetragen:

# MikroTik Attributes
VENDOR          Mikrotik        14988
BEGIN-VENDOR    Mikrotik
ATTRIBUTE Mikrotik-Wireless-VLANID 26 integer
ATTRIBUTE Mikrotik-Wireless-VLANIDtype 27 integer
END-VENDOR      Mikrotik

Er verbindet sich beim Besten Willen nicht. mit dem WLAN.

Die Attribute in der SQL-DB, die der Radius zurückgeben soll heißen:
Tunnel-Type 13
Tunnel-Medium-Type 6
Mikrotik-Wireless-VLANID 60

Das Problem ist m.E. das WLAN-Passwort. Ich hatte da ein Kennwort eingestellt, aber genau das scheint das Problem zu sein.Wenn ich das Kennwort lösche, zeigt mir das Debug vom RADIUS Folgendes an:
rlm_sql (sql): Released connection (23)
(67)     [sql] = ok
(67)     [exec] = noop
(67)     policy remove_reply_message_if_eap {
(67)       if (&reply:EAP-Message && &reply:Reply-Message) {
(67)       if (&reply:EAP-Message && &reply:Reply-Message)  -> FALSE
(67)       else {
(67)         [noop] = noop
(67)       } # else = noop
(67)     } # policy remove_reply_message_if_eap = noop
(67)   } # post-auth = ok
(67) Sent Access-Accept Id 253 from 172.16.50.100:1812 to 172.16.50.1:41593 length 0
(67)   Tunnel-Type = VLAN
(67)   Tunnel-Medium-Type = IEEE-802
(67)   Mikrotik-Wireless-VLANID = 60

Am Android Device kommt aber jetzt eine Anforderung hoch, dass ich ein Zertifikat bestätigen soll!hoch

Was muss denn hier eingestellt werden?
kennwort

Wo ist hier noch der Fehler? Hat jemand eine Idee?

Christian
Mitglied: 141320
141320 Oct 18, 2019 updated at 20:09:43 (UTC)
Goto Top
Da kommt gar nichts rein, es ist ja Passthru eingestellt.
Dein Android ist das Problem. Entweder PEAP MSCHAPv2 oder TLS oder MAC. Wir kennen deine Android Settings ja nicht.

Btw. Der Mikrotik hat auch ein sehr detailliertes Log, einfach im System -> Logging das Radius Topic aktivieren und das Log beobachten!
Member: Spartacus
Spartacus Oct 18, 2019 at 20:15:33 (UTC)
Goto Top
Hi,
sorry, vestehe ich nicht! Kann Android das nicht? PEAP MSCHAPv2 kann ich nicht einstellen. Aber egal was ich einstelle, er will imemr ien Zertifikat.

91119c8b-3e2a-4bfb-a166-9a88e73ac437

Wo soll das herkommen, oder was muss da unter Identität rein?

Christian
Mitglied: 141320
141320 Oct 18, 2019 updated at 20:29:58 (UTC)
Goto Top
Na ein gültiger Username als Identität und dessen Passwort welche auf dem Radius angelegt sind.
Ich glaube du solltest erst mal die Grundlagen zu (P) EAP studieren und wie das alles miteinander verknüpft ist , dann müsstest du auch nicht wochenlang lang rum probieren 8-).
Reine Mac Auth per PEAP kann Android nicht.
Hier ist die Kombination MAC per AccessList freigeben + PEAP Account gefragt.
Member: Spartacus
Spartacus Oct 18, 2019 at 20:33:01 (UTC)
Goto Top
Hi,
Moment! Er soll die MAC-Adresse zur Authentifizierung nehmen! Die sind in der Datenbank hinterlegt. Kennwort ist identisch.
Der Windows Client fragt übrigens auch nach dem Benutzernamen und dem Kennwort. Also irgendetwas ist da noch nicht ok, oder ich habe das Thema völlig falsch vestanden.

Hintergrund war,
das die WLAN-Clients sich über ihre MAC authentifizieren und das richtige VLAN zugeordnet bekommen.
Mitglied: 141320
141320 Oct 18, 2019 updated at 20:57:33 (UTC)
Goto Top
Zitat von @Spartacus:

Hi,
Moment! Er soll die MAC-Adresse zur Authentifizierung nehmen! Die sind in der Datenbank hinterlegt. Kennwort ist identisch.
Na da hast du deinen Usernamen und Passwort 8-).
Der Windows Client fragt übrigens auch nach dem Benutzernamen und dem Kennwort. Also irgendetwas ist da noch nicht ok, oder ich habe das Thema völlig falsch vestanden.
Jepp da hast du wohl ein kleines aber feines Verständnis-Problem.
WPA Enterprise besteht immer aus zusätzlichen Methoden in Phase 2, also entweder Username mit Passwort als PEAP MsChapv2 oder TLS mit Client-Zertifikaten oder auch verschiedene SIM Profile auf Smartphones mit Kopplung an die IMEI usw.
Member: Spartacus
Spartacus Oct 18, 2019 at 20:59:53 (UTC)
Goto Top
ok.
da lässt sich mit leben! Man kann die Daten ja abspeichern und muss sie nur Initial eingeben.


Wenn ich die MAC-Adresse als Benutzername und Passwort angebe, verbindet sich der Windows Client mit dem Mikrotik, bekommt aber keine IP-Adresse zugewiesen....irgendetwas stimmt in der Konfig noch nicht!.

Das VLAN60 ist aber konfiguriert am cAP und läuft auch wenn ich es gezielt aussende.

Noch ne Idee, wo es klemmen könnte, dass er sich kein Netz zieht?
Mitglied: 141320
141320 Oct 18, 2019 at 21:17:25 (UTC)
Goto Top
Zitat von @Spartacus:
Noch ne Idee, wo es klemmen könnte, dass er sich kein Netz zieht?
Ja! Über die positive EAP des Radius Antwort reagiert der Mikrotik nicht auf dynamische VLAN Assignments, das muss über den Eintrag in der AccessList vorgenommen werden, hatte ich oben rot markiert.
Member: Spartacus
Spartacus Oct 18, 2019 at 21:30:52 (UTC)
Goto Top
Hm!
verstehe die Logik noch nicht!

Ich habe x-WLAN-Clients, die sich authentifizieren. Und jeder Client bekommt irgendein VLAN zugewiesen, dass ist ja im Radius hinterlegt.

Wie reiche ich über dieses Formular die "Mikrotik-Wireless-VLANID = 60" durch? Ich habe doch mehr als nur das VLAN 60?
access

Muss ich im Router jetzt noch mal für jeden Client eine Zuordnung zwischen MAC-Adresse und VLAN machen?
sorry, verstehe ich noch nicht!
Mitglied: 141320
141320 Oct 18, 2019 updated at 21:45:34 (UTC)
Goto Top
Nein, dort muss nur stehen unter VLAN Mode "use tag", das VLAN wird dann vom Radius übernommen.
Und vergessen hast du folgendes Attribut für die MAC am Freeradius zu hinterlegen:
Mikrotik-Wireless-VLANIDtype
Das muss für die MAC auf 0, gesetzt werden.
Member: Spartacus
Spartacus Oct 18, 2019 at 21:56:45 (UTC)
Goto Top
...geht trotzdem nicht!
Für heute ist die Luft raus. Keine Ahnung, wo ich hier noch suchen soll!
Member: Spartacus
Spartacus Oct 19, 2019 updated at 13:32:12 (UTC)
Goto Top
Moin,
so, ich habe jetzt noch einmal alles kontrolliert, aber ich finde den Fehler nicht. Der Client bekommt keine IP Adresse zugewieden.
Im Miktotik Log steht hier Folgendes:

dhcp-error

Offenbar gelingt es schon eine IP aus dem VLAN 60 anzufordern, aber er kann sie nicht an den Client vergeben. Wo kann da nur der Fehler sein?

Für den Radius Test habe ich im CAPSMAN eine neue Konfiguration mit einer eigenen SSID konfiguriert, die auch völlig isoliert auf einem separaten AP läuft.
orivisioning
test1
test2
test3
test4

Welche Schraube muss ich hier noch drehen?

Christian

NACHTRAG:
ich glaube ich habe es gefunden!:

forwarding
Mitglied: 141320
141320 Oct 19, 2019 updated at 13:37:08 (UTC)
Goto Top
Wo kann da nur der Fehler sein?
Wireshark ist dir bekannt?
https://www.google.com/search?q=offering+lease+without+success+mikrotik

Das ganze geht übrigens nur mit "LocalForwarding" auf den CAPs nicht mit Forwarding auf dem CAPsMan.
Member: Spartacus
Spartacus Oct 19, 2019 at 13:39:56 (UTC)
Goto Top
HI,
ja, das war das Problem! Hatte ich gerade schon im letzten POST als Nachtrag angefügt.
forwarding

Das Forwarding fehlte in den Einstellungen. Allerdings dauert es schon recht lange, bis er die IP zugewiesen kriegt (nach der Verbindung, ca, 10-15s).

Hast Du ggf. noch nen Tipp, wie man unautorisierte Benutzer in ein DEFAULT-Gäste-WLAN schickt (e.g. VLAN-ID) 70?
Mitglied: 141320
141320 Oct 19, 2019 updated at 13:47:46 (UTC)
Goto Top
Allerdings dauert es schon recht lange, bis er die IP zugewiesen kriegt (nach der Verbindung, ca, 10-15s).
Wireshark.
Wir kennen deine Forwarding Strategie deiner CAPs etc. nicht.
wie man unautorisierte Benutzer in ein DEFAULT-Gäste-WLAN schickt
Gäste SSID, mit Hotspot-Funktion und Captive Portal
Member: aqui
aqui Oct 19, 2019 updated at 14:06:42 (UTC)
Goto Top
Das ganze geht übrigens nur mit "LocalForwarding" auf den CAPs nicht mit Forwarding auf dem CAPsMan.
Das ist ja auch irgendwie verständlich, denn dann terminiert das VLAN ja direkt an dem AP Port. Folglich muss es auch DA dann aktiviert werden.
Ohne local Forwarding tunnelt der CapsMan ja jeglichen WLAN Traffic an den CapsMan Controller und koppelt es dann dort aus.
Logisch das dann dort der Port dynamische VLANs können müsste was technisch er nicht so gut ist. Aus Performance Gründen macht man so oder so immer Local Forwarding !
Übrigens wie man Zertifikate generiert und importiert siehst du hier:
Radius server eexterner AP Authentifizierung klappt nicht
Das Server Zertifikat schickst du dann einfach als Email oder Airdrop oder USBStick oder SD Karte und importierst es:
IPsec IKEv2 VPN für mobile Benutzer auf der pfSense oder OPNsense Firewall einrichten
Member: Spartacus
Spartacus Oct 19, 2019 at 20:01:18 (UTC)
Goto Top
Hi
danke für den Tipp mit den Zertifikaten!

Zum Verständnis zum Vorgehen:

Ich habe bereits ein Zertifikat am FreeRadius Server unter dem Ordner "certs" erzeugt.
  • Das Server-Zertifikat importiere ich an meinem Androiden
  • wo und was genau stelle ich jetzt im CAPSMAN ein?
  • hat dies dann auch den Effekt, dass ich keinen Benutzernamen un kein Kennwort (hier MAC-Adresse des Clients) bei der WLAN-Verbindung eingeben muss? Oder geht der Vorschlag in eine andere Richtung!

Danke und Gruß,
Christian
Member: aqui
aqui Oct 19, 2019 updated at 22:03:08 (UTC)
Goto Top
Der Kollege nc6400 hat sich ja leider abgemeldet, schade eigentlich. Er hat aber schon richtigerweise gesagt was Sache ist. Der CapsMan ist ja nur der Konfig "Distributeur" sprich da ziehen sich die APs rein nur die Konfig. Dort steht EAP ja schon auf "Passthrough" d.h. die APs reichen alles durch an den Radius.
Wenn du das Zertifikat auch nutzen willst was du erzeugt hast musst du auch in der eap.conf sicherstellen das es aus dem richtigen Verzeichnis geladen wird.
Macht man das nicht nutzt man immer das "snake oil" Default Zertifikat (Debian basierte Installs). Du kannst das in der Debugger Meldung (-X) sehen oder eben in der eap.conf.
Du darfst hier aber nicht 802.1x und Mac Bypath verwechseln. Es geht nur entweder oder also entweder die Auth nach Mac Adresse oder die mit 802.1x mit User/Passwort.
Member: Spartacus
Spartacus Oct 20, 2019 at 10:17:11 (UTC)
Goto Top
Hi aqui,
danke für das schnelle Feedback. ICh habe mir jetzt die Details noch nicht angesehen, aber wenn ich Dich hier richtig verstehe, kann ich den Radius entweder für:

  • MAC Auth with dynamic VLAN assignment (für die kabelgebundenen Geräte am Cisco Switch, was wir hier an anderer Stelle zum Fliegen bekommen haben)
  • oder für die Authentifizierung der WLAN-Clients mit Zertifikat

benutzen. PArallel geht das zunächst erst einmal nicht, da die eap.conf angepasst werden muss.

Was allerdings im Parallelbetrieb funktioniert, ist die Authentifizierung der WLAN-User über Benutzername und Kennwort. Hier kann man in der SQL-DB auch für die WLAN-Clients schönere Namen vergeben, als die MAC-Adresse. Das macht die Sache dann einfacher. Der Benutzername kann in diesem Fall immer der Gleiche sein und das Kennwort wird individuell vergeben. Das sollte für die Heimnetz-Geräte ja in Ordnung sein.
Eleganter wäre das mit dem Zertifikat schon, aber dann brauche ich nen zweiten Radius!
Member: aqui
aqui Oct 20, 2019 at 13:45:20 (UTC)
Goto Top
aber wenn ich Dich hier richtig verstehe, kann ich den Radius entweder für:
Nein, dann hast du das leider falsch verstanden...
Richtig wäre:
  • MAC Authentication ohne dynamic VLAN
  • MAC Authentication mit dynamic VLAN
  • 802.1x Client Authentication mit Username/Passwort ohne dynamic VLAN
  • 802.1x Client Authentication mit Username/Passwort mit dynamic VLAN
  • 802.1x Client Authentication mit Zertifikat ohne dynamic VLAN (EAP-TLS)
  • 802.1x Client Authentication mit Zertifikat mit dynamic VLAN (EAP-TLS)
Diese Optionen hast du !
PArallel geht das zunächst erst einmal nicht, da die eap.conf angepasst werden muss.
Das ist richtig. Du musst entscheiden welche dieser Policies du WLAN weit umsetzen willst. Da die Auth Methode pro AP gilt könntest du sie max. pro AP unterschiedlich machen aber das macht ja keinen Sinn, denn in einem dynamisch geroamten WLAN weisst du ja nicht immer sicher auf welchem AP du landest. Es macht also Sinn sich fest für eine Policy zu entscheiden.
Was allerdings im Parallelbetrieb funktioniert, ist die Authentifizierung der WLAN-User über Benutzername und Kennwort
Parallelbetrieb zu WAS ?? Mac Auth ?
schönere Namen vergeben, als die MAC-Adresse.
Im Windows Client kann man sogar eintragen das der den Hostnamen verwendet....
Eleganter wäre das mit dem Zertifikat schon, aber dann brauche ich nen zweiten Radius!
Nein, wozu ?? Das machst du doch logischerweise alles mit EINEM Radius. Oder meinest du das so das AP x Username/Pass macht AP y dann Zertifikat. Dann wäre es in der Tat richtig, da du das ja pro AP bestimmen musst. Wie gesagt sinniger ist dann eine gemeinsame Strategie.
Member: Spartacus
Spartacus Oct 20, 2019 at 16:35:20 (UTC)
Goto Top
Hi aqui,
bin mir nicht ganz sicher, ob wir das Gleiche meinen:

Was ich erreichen möchte:

  • MAC Authentication mit dynamic VLAN der kabelgebundenen Clients am Cisco Switch (das funktiniert ja aktuell auch mit dem FreeRadius)
  • nur eine WLAN-SSID für alle Clients aus unterschiedlichen VLANs
  • abhängig von der MAC-Adresse(or whatever der Schlüssel ist) des Clients, verbindet sich der WLAN Client mit dem VLAN, für das er zugelassen ist

Was aktuell mit dem vorhanden RADIUS-Konfiguration geht:

  • kabelgebundene Clients bekommen am Cisco Switch dynamisch ihr VLAN zugeordent
  • WLAN-Clients verbinden sich mit einheitlicher SSID
  • über Benutzername+Kennwort wird das VLAN zugewiesen (Benutzer in Gruppe radiusgroup)

Elegant wäre es jetzt, wenn der WLAN-Benutzer ohne Eingabe von Benutzername und Kennwort (nur anhand der MAC) direkt in sein VLAN kommt. So könnte man den Zugriff auf das WLAN nur über die SQL-DB steuern. Alternativ könnte man ihn auch über ein Zertifikat zulassen, was man dem User per Mail schickt und dann zwecks Zugriff installiert. Allerdings bleibt dann immer noch das Problem der Zuordnung des VLANs, da ich ja nur ein Zertifikat für alle Benutzer habe. Dazu müsste der RADIUS anhand der MAC das VLAN zuweisen und Benutzername und Kennwort würde durch das Zertifikat ersetzt..

Ob diese Szenario überhaupt mit meiner Infrastruktur machbar ist, weiß ich nicht! Die Sache mit Benutzername und Kennwort ist ja auch schon ok.

Christian
Member: aqui
aqui Oct 21, 2019 updated at 10:40:39 (UTC)
Goto Top
abhängig von der MAC-Adresse(or whatever der Schlüssel ist) des Clients, verbindet sich der WLAN Client mit dem VLAN, für das er zugelassen ist
Ja, das geht natürlich aber die Frage ist ob der Mikrotik als Feature Dynamic VLANs auf Basis der Mac supportet. Da müsste auch ich hejtzt erstmal ins Router OS Handbuch sehen. Mit User/Pass geht es ja.
über Benutzername+Kennwort wird das VLAN zugewiesen (Benutzer in Gruppe radiusgroup)
Nur mal doof nachgefragt: Das meinst du jetzt fürs WLAN, oder ??
Benutzer in Gruppe radiusgroup
Ist das ne Konfig auf dem FreeRadius oder im Router OS ??
ohne Eingabe von Benutzername und Kennwort
Früher konnte man das mit dem Rechner Hostnamen verbinden:
eap
Das konnte man in den MSChapv2 Eigenschaften des 802.1x Clients einstellen bis Winblows 8. Irgendwie sind aber alle diese Buttons bei Windows 10 verschwunden oder befinden sich an anderer Stelle oder...man kann sie nur noch über die Power Shell einstellen. Ich hab sie nicht gefunden aber laut Internet sollen sie dennoch da sein:
https://www.virtualizationhowto.com/2018/12/configure-windows-10-for-802 ...
da ich ja nur ein Zertifikat für alle Benutzer habe.
Ja, aber hier verwechselst du was. Das ist nicht das User Zertifikat sondern das des Servers. Das sorgt dafür das dir niemand einen anderen, wilden Radius Server unterschieben kann.
Wenn du die User mit Zertifikat authentisieren willst, denn musst du User Zertifikate erzeugen, die auf den Usern installieren. Dann hast du eine Zertifikatsbasierte Zugangssteuerung. Natürlich klappt auch das mit dynamischen VLANs face-wink
make client
http://deployingradius.com/documents/configuration/certificates.html
Member: Spartacus
Spartacus Oct 21, 2019 at 19:07:55 (UTC)
Goto Top
Moin aqui,
danke, das Du auch hier wieder am Start bist!

Nur mal doof nachgefragt: Das meinst du jetzt fürs WLAN, oder ??

Ja, genau! Das meine ich, war sehr laienhaft ausgedrückt...and btw., bin ich ja auch!. face-wink

Ist das ne Konfig auf dem FreeRadius oder im Router OS ??

yep, das ist eine der Tabellen in der mySQL-DB.

Die Logik:
Benutzer in radcheckmit Kennwort anlegen
access_2

Benutzer in radusergroupder Gruppe zuordnen, die das VLAN bestimmt
access_1

Antwortoptionen der Gruppe in radgroupreplydefinieren
access_3

Ich glaube, das Thema stelle ich etwas zurück. Das mit den Zertifikaten ist m.E. im privaten Umfeld etwas oversized . Das mit dem MAC-Auth wäre hier sicherlich die schönste Lösung....aber ich muss erst einmal sehen, das mein Cisco hier zur Ruhe kommt. Im Moment spinnt das ganze System noch rum (wie Du ja im anderen Thread verfolgen kannst)

Wenn das läuft, mache ich hier mal weiter....

Christian
Member: aqui
aqui Oct 22, 2019 at 11:09:25 (UTC)
Goto Top
Ist aber weiter ein spannendes Projekt und wenns zum Fliegen kommt sicher ein Tutorial wert ! face-wink
Member: Spartacus
Spartacus Oct 22, 2019 at 11:14:37 (UTC)
Goto Top
...danke Dir!....aber bevor wir das hier in ein Tut gießen, muss erst einmal alles fluppen!
Member: aqui
aqui Oct 26, 2019, updated at May 05, 2023 at 09:41:40 (UTC)
Goto Top
So, ich habs zum Fliegen ! face-big-smile
Erstmal noch mit einer statischen Konfig auf den APs aber der nächste Schritt ist jetzt die CapsMan Umsetzung. Das dürfte jetzt ein Kinderspiel sein. Wenn das rennt gibts ein Tutorial dazu ! Ggf. dann auch mit einer SQL Lösung mit WebGUI die ja schon spannend ist ! face-wink
Hier sind die Schritte zur Lösung:

back-to-top1.) cAP Einrichtung von Bridge, Bridgeports und Tagging

Bridge einrichten:
radbridge
LAN und WiFi Ports der Bridge zuweisen:
radbridge
radneubri
radneubri2
VLAN Setting der Bridge:
radneubrivlan

back-to-top2.) cAP IP Adressierung

IP als DHCP Client auf den Bridge Port.
Unter System -> SNTP Client sollte man den Haken bei "enabled" setzen, damit der AP per DHCP die korrekte Uhrzeit erhält.
radneuip
Vorher ist auf dem DHCP Server, der das AP Management Netz bedient die Option 42 zu setzen (NTP Server). Als Beispiel für einen Mikrotik Router oder Switch sieht das so aus:
ntpoption
Bei einem Cisco IOS Router oder Switch z.B.
ip dhcp pool management
network 192.168.1.0 255.255.255.0
default-router 192.168.1.254
dns-server 192.168.178.1
domain-name lan.home.arpa
option 42 ip 130.149.17.21


back-to-top3.) cAP WLAN Interface und Radius

radneuwlan
Das WLAN Interface bleibt untagged. Der AP setzt selber auf die entsprechenden Client Mac Adressen den richtigen VLAN Tag laut Radius Vorgabe !
Security Profil mit WPA2 Preshared Keys und Mac Authentisierung angehakt. Das Format der Mac Adresse ist hier mit 2 Mittel Doppelpunkten gewählt um es im Radius User Setup eindeutig zu machen.
rad1
freerad
Das wars auf dem Mikrotik AP.
Radius Server Konfig sieht so aus:

back-to-top4.) FreeRadius Konfiguration:

0022:FA7B:D8A7  Cleartext-Password := "0022:FA7B:D8A7"
                        Tunnel-Type = VLAN,
                        Tunnel-Medium-Type = IEEE-802,
                        Mikrotik-Wireless-VLANID := 10,
                        Mikrotik-Wireless-Comment = "User1",
                        Mikrotik-Wireless-Forward := 1,
                        Mikrotik-Wireless-VLANID-type := 0 
Der Debug Output des FreeRadius zeigt dann auch das die VLAN Parameter übergeben werden (Ausgabe gekürzt):
(4)   Service-Type = Framed-User
(4)   NAS-Port-Id = "wlan1"
(4)   NAS-Port-Type = Wireless-802.11
(4)   User-Name = "0022:FA7B:D8A7"
(4)   Calling-Station-Id = "00-22-FA-7B-D8-A7"
(4)   Called-Station-Id = "B8-69-F4-2E-20-C9"
(4)   User-Password = "0022:FA7B:D8A7"
(4)   NAS-Identifier = "cAP-1"
(4)   NAS-IP-Address = 192.168.88.146
(4) # Executing section authorize from file /etc/freeradius/3.0/sites-enabled/default
...
(4) files: users: Matched entry 0022:FA7B:D8A7 at line 79
(4) Found Auth-Type = PAP
(4) # Executing group from file /etc/freeradius/3.0/sites-enabled/default
(4)   Auth-Type PAP {
(4) pap: Login attempt with password
(4) pap: Comparing with "known good" Cleartext-Password
(4) pap: User authenticated successfully
(4)     [pap] = ok
(4)   } # Auth-Type PAP = ok
(4) Sent Access-Accept Id 48 from 192.168.7.166:1812 to 10.1.1.149:59842 length 0
(4)   Tunnel-Type = VLAN
(4)   Tunnel-Medium-Type = IEEE-802
(4)   Mikrotik-Wireless-VLANID = 10
(4)   Mikrotik-Wireless-Comment = "User1"
(4)   Mikrotik-Wireless-Forward = 1
(4)   Mikrotik-Wireless-VLANID-Type = 0
(4) Finished request 
Tadaaa !!!
Danach ist der WLAN Client mit der Mac 0022:FA7B:D8A7 dann in VLAN 10 !! 👍

Die dynamische VLAN Variante des Tutorials findet man hier:
Dynamische VLAN Zuweisung für WLAN (u. LAN) Clients mit Mikrotik
Member: Spartacus
Spartacus Oct 27, 2019 updated at 12:37:48 (UTC)
Goto Top
Hallo,
sehr, sehr schicke Sache!
Es sieht so aus, als würde das mit CAPSMAN nun auch funzen. Hier mal die Ergänzung dazu:

Configuration:
  • Standard, nichts Besonderes eingestellt.

Data Path:
datapath

Security Configuration:
securityprofile

Acccess List:
accesslist

Hier ist mir aufgefallen, dass man das Interface nur für die cAPs einstellen sollte, die über die RADIUS-Authentifizierung laufen sollen. Sonst kommt plötzlich kein anderer Client mehr ins Netz. Bei mir ist das aktuell nur der AP00-1 mit dem 2.4 GHz-Band...d.h.: Es ist auch ein Mischbetrieb möglich!

Was jetzt noch fehlt, ist die Zuweisung eines Dummy-VLANs für alle WLAN-User, die nicht in der DB sind!
Ich könnte mir vorstellen, dass dies über den "postauth" - Prozess auf dem Freeradius gehen könnte, denn hier wird ja die "Reject"-Message verschickt.

Bis bald,
Spartacus

NACHTRAG:
Es funktioniert sogar, wenn man im FreeRadius (SQL-Tabelle radiusgroupreply) die Attribute für den Cisco-Switch und den Mikrotik parallel übergibt. So muss man keine separate Gruppe für das WLAN anlegen, sondern kann eine VLAN-Gruppe sowohl für kabelgebundene als auch für den mobilen Adapter eines Gerätes definieren. Der Cisco und auch der Mikrotik ignorieren die jeweils anderen Attribute.

group
Mitglied: 141575
141575 Oct 27, 2019 at 12:53:08 (UTC)
Goto Top
Was jetzt noch fehlt, ist die Zuweisung eines Dummy-VLANs für alle WLAN-User, die nicht in der DB sind!
https://serverfault.com/questions/177821/how-to-configure-freeradius-to- ...
Member: aqui
aqui Oct 28, 2019 updated at 09:01:20 (UTC)
Goto Top
Sehr guter Hinweis !
Check ich mal aus.
Das Dummy VLAN bekommt dann ein Captive Portal was die nicht authentisierten benutzer zu Gesucht bekommen.
Das wäre dann die Deluxe Lösung ! face-big-smile
Müsste dann so aussehen:
DEFAULT         Cleartext-Password := "%{User-Name}"
                        Tunnel-Type = VLAN,
                        Tunnel-Private-Group-ID := 99,
                        Tunnel-Medium-Type = IEEE-802,
                        Mikrotik-Wireless-VLANID := 99,
                        Mikrotik-Wireless-Comment = "unknown",
                        Mikrotik-Wireless-Forward := 1,
                        Mikrotik-Wireless-VLANID-type := 0,
                        Reply-Message := "Hello %{User-Name}, Wenden sie sich an den Admin !"
# 
Member: Spartacus
Spartacus Oct 28, 2019 at 17:26:48 (UTC)
Goto Top
Hallo,
das mit dem DEFAULT-User ist mir noch nicht ganz klar und vor Allem im Zusammenhang mit einer SQL-DB für die User. Ich hatte das o.a. DEFAULT-Profil leichtsinnigerweise in die user-Datei eingespielt und musste feststellen, dass alle meine User plötzlich im VLAN99 landeten. Die SQL-DB wurde nicht mehr gefragt.
Offenbar darf der DEFAULT-Eintrag nur am Ende der Verabeitungskette stehen, die Reihenfolge ist hier maßgeblich! Ich verstehe aber noch nicht, wie ich das in der SQL-Tabelle abbilden kann.

Gruß,
Spartacus
Member: Spartacus
Spartacus Oct 30, 2019 at 13:03:34 (UTC)
Goto Top
Hallo,
ich noch mal!
Hier komme ich mit den DEFAULT-Einträgen nicht weite! Ich habe keine Möglichkeit gefunden, wie ich unathorisierte Benutzern über die SQL-Tabellen ein DEFAULT VLAN zuzuweisen kann.

Kann jemand helfen?
Spartacus
Mitglied: 141575
141575 Oct 30, 2019 updated at 14:15:16 (UTC)
Goto Top
Das machst du folgendermaßen :
In der Config nach dem Aufruf des "SQL" Moduls checkst du mit einer Condition ob das SQL Modul "reject" zurückgibt (das ist ja der Fall wenn kein passender User in radcheck gefunden wird), ist das der Fall veränderst du den Reply mit einem success und den Attributen für dein Default VLAN. Fertig ist die Chose.
https://freeradius.org/radiusd/man/unlang.html
Member: Spartacus
Spartacus Oct 30, 2019 at 14:40:03 (UTC)
Goto Top
Moin,
In der Config nach dem Aufruf des "SQL" Moduls
...und damit geht es schon los! In welcher Config wird das SQL-Modul denn aufgerufen? Das steckt doch in vielen Dateien drin!

Ich verstehe zwar, was der Grundgedanke dieser Lösung ist, aber sorry, da weiß ich echt nicht, wo ich da anfangen soll, das geht schon sehr tief in Eingemachte! Gibt es da irgendwo Beispiele?
Mitglied: 141575
141575 Oct 30, 2019 at 16:04:26 (UTC)
Goto Top
Ich mach dir später ein Beispiel, steht aber alles in der Freeradius Doku.
Member: Spartacus
Spartacus Oct 30, 2019 at 16:51:03 (UTC)
Goto Top
Hi Chickenwing,
ganz lieben Dank für Deinen Support. Ich habe die Doku schon gelesen, aber mir fehlt der wahrscheinlich etwas der Zusammenhang in diesem Thema .Ich bin da noch etwas unsicher unterwegs!

BTW:
Ich habe hier noch ein anderes Problem und auch dazu finde ich nicht so wirklich eine stabile Lösung. Ggf. fällt Dir ja noch etwas dazu ein!

Die DB vom Radius läuft auf einem NAS. Die Platten vom NAS gehen nachts irgendwann in den Standby und brauchen dann logischerweise eine Zeit, bis sie wieder da sind. Dann hat der Radius dem aber schon ein "Reject" geschickt. Ich habe etwas an den Parametern vom RadiusClient auf dem Cisco gespielt. Gefühlt ist es auch stabiler geworden, aber so richtig rund läuft das noch nicht!

Gibt es am FreeRadius noch einen Parameter, (e.g. "Wait For Database Ready") den man verändern kann, damit der Server etwas wartet, bevor er die "Absage" schickt? Sonst müssten die Platten ständig drehen, was nicht so toll wäre! Alternativ den Radius und die DB auf die selbe Kiste.

Danke Dir,
Spartacus
Mitglied: 141575
141575 Oct 30, 2019, updated at Oct 31, 2019 at 15:15:16 (UTC)
Goto Top
In deiner aktivierten Site per default ja ./sites-enabled/default, füge in der authorize Section hinter dem Aufruf des Moduls -sql folgenden Code ein:
if (!"%{sql:SELECT * FROM radcheck WHERE Username = '%{User-Name}'}"){  
    update reply {
        &Tunnel-Type := VLAN
        &Tunnel-Private-Group-ID := 999
        &Tunnel-Medium-Type := IEEE-802        
        &Mikrotik-Wireless-VLANID := 999
        &Mikrotik-Wireless-Comment := "unknown"  
        &Mikrotik-Wireless-Forward := 1
        &Mikrotik-Wireless-VLANID-type := 0                          
    }
    update control {
        Auth-Type := Accept
    }
}
Das prüft ob der Username/MAC in der SQL DB gefunden werden kann, kann er das nicht gibt Freeradius einen Access-Accept mit den passenden Attributen für ein Fallback VLAN zurück.

screenshot
Mitglied: 141575
141575 Oct 30, 2019 updated at 18:10:37 (UTC)
Goto Top
Zitat von @Spartacus:
Gibt es am FreeRadius noch einen Parameter, (e.g. "Wait For Database Ready") den man verändern kann, damit der Server etwas wartet, bevor er die "Absage" schickt? Sonst müssten die Platten ständig drehen, was nicht so toll wäre! Alternativ den Radius und die DB auf die selbe Kiste.
In der Datei ../mods-available/sql
den Parameter entsprechend erhöhen
query_timeout = 5
Member: aqui
aqui Oct 31, 2019 at 17:03:57 (UTC)
Goto Top
Die o.a. Lösung klingt pfiffig und auch sinnvoll.
Fragt sich dann allerdings wozu dann der User "DEFAULT" nütze ist oder ob das nur ein Fake ist. Ist er aber nicht...
Hier https://wiki.ubuntuusers.de/FreeRADIUS/#Lokale-Benutzer-users steht auch das es wohl auch nicht ganz so trivial ist wie oben einfach das PW auf den Nutzernamen zu setzen. Eine Group Verknüpfung ist da wohl erforderlich.
So einfach ists also wohl nicht mit dem DEFAULT Setting.
Member: Spartacus
Spartacus Nov 02, 2019 at 11:41:24 (UTC)
Goto Top
Hallo chickenwing,
sorry, dass ich mich erst jetzt melde, aber ich bin ein paar Tage ausgefallen und konnte nicht an meinem Netzwerk basteln! Ich habe Deinen Vorschlag auf meine Bedürfnisse angepasst und in die DEFAULT-Datei eingebaut. Allerdings im Verzeichnis /etc/freeradius/3.0/sites-available/default Offenbar übernimmt er nach einem Neustart dann die "available"-Einsetllungen in die "enabled"-Konfiguration.

Es hat auf Anhieb funktioniert! Ganz lieben Dank für Deine Unterstützung! Nun surfen die Gäste im abgeschotteten VLAN face-smile

Gruß,
Spartacus
Member: Spartacus
Spartacus Nov 02, 2019 at 11:54:52 (UTC)
Goto Top
Hallo Chickenwing,
auch das habe ich eingebaut! Ich hatte diesen Parameter zwar schon in der sql-Datei gefunden, aber es fälschlicherweise nur auf das Logfile bezogen! Ich habe den Parameter nun auf 60s gestellt. Bislang läuft alles so, wie es soll!

Zusätzlich hatte ich schon am Cisco-Switch eine Einstellung verändert, die m.E. auch nicht korrekt eingestellt war, denn der SG350x vergab relativ zügig die Gaste-VLAN-ID.

cisco

Wahrscheinlich kann ich diese Funktion jetzt abschalten, da der FreeRadius ja mit dem Gäste-VLAN antwortet und dann läuft das zentral über eine Instanz.

Jetzt werde ich mich mal den SNMP-Geschichten widmen, denn ich brauche noch eine aktuelle Übersicht der Cisco-Portbelegung in meiner SQL-DB. So wie es aber aussieht, können die Trap-Einstellungen am SG350 nicht konfiguriert werden und VLAN-ID und MAC-Adresse des Users werden nicht mitgeschickt, wenn sich ein Client mit dem Port verbindet.

Gruß,
Spartacus
Member: aqui
aqui Nov 03, 2019 at 10:27:02 (UTC)
Goto Top
Ein SNMP Trap wird auch nicht versendet bei einer VLAN Zuweisung. Du kannst das nur aus der VLAN und Mac Database auslesen per SNMP GET.
Etwas Scripting und Shell um den Output dann "schön" zu machen ist ggf. auch erforderlich.
Member: Spartacus
Spartacus Nov 03, 2019 at 11:12:13 (UTC)
Goto Top
Moin,
ich habe diverse Port Mapping-Tools unter Windows gefunden, die alle Informationen auslesen. Es gibt sogar Tools, die es gleich in eine SQL-DB schreiben....aber die sind alle kostenpflichtig. Ein freies Tool, was einigermaßen sauber arbeitet, habe ich nicht gefunden!

Fazit:
Im Prinzip funktioniert es schon, das aktuelle Port-Mapping auszulesen, wenn man kommerzielle Produkte benutzt, die auch nicht ganz billig sind.
Das Ganze zu Fuß auszulesen und ins richtige Format zu packen, scheint etwas anspruchsvoller zu sein. Weiß noch nicht, ob ich das angehen werde. Meine Vorstellung ist, dass es hier einen kleinen Server gibt, der auf dem rPi rennt, den Switch regelmäßig abfragt und den Quatsch in meine MariaDb schreibt. Ein passendes freies Linux-Tool habe ich aber nicht gefunden.

Ich habe auch Versuche mit dem Paessler SNMP-Tester durchgeführt und konnte die MAC-Adressen an dem Cisco auslesen. Mit einem Walk auf "1.3.6.1.2.1.17.7.1.2.2.1.2" zeigt er das zwar an, aber in einem falchen Format. Das muss man offensichtlich konvertieren. Auch die VLANs bekomme ich ausgelesen....aber ich verstehe noch nicht, wie ich das alles zusammenbauen muss, und vor Allem, wie der ganze Kram dann in die SQL-DB kommen soll. Das scheint nicht trivial zu sein und daher hatte ich gehofft, ein paar Werkzeuge zu finden, die das Portmapping fix und fertig bereitstellen und man es nur noch in die DB schieben muss!

Christian
Member: aqui
aqui Nov 03, 2019 at 11:38:12 (UTC)
Goto Top
Das ist der Punkt warum man bei Kommerz Software das teuer bezahlen muss face-wink
Der Trick ist das mit Expect, Perl oder etwas Bash Scripting via SNMP get aufzubearbeiten und dann mit PHP weiter zu verwursten. Da braucht es aber einen Softwerker für und keinen Netzwerker... face-wink
Ist aber schon sehr cool wie weit du gekommen bist. Das ist schon Profi Niveau !
Member: FOX-OCTI
FOX-OCTI Mar 13, 2021 at 18:57:28 (UTC)
Goto Top
Hi,

hab deinen Beitrag gelesen, nachgestellt usw, aber ich bekomme es einfach nicht hin.

Ich würde mich sehr freuen, wenn du mich eventuell unterstützen könntest, das Problem zu lösen, sitze da schon ewig dran.

Statisch klappt alles, nur dynamisch per Radius leider nicht, kein Plan wieso.

Radius antwortet so:
(22) Login OK: [2A:1A:0C:12:FC:CC/2A:1A:0C:12:FC:CC] (from client WLANAP172.16.222.220 port 0 cli 2A-1A-0C-12-FC-CC)
(22) Sent Access-Accept Id 86 from 172.16.222.221:1812 to 172.16.222.220:50201 length 0
(22) Tunnel-Type = VLAN
(22) Tunnel-Medium-Type = IEEE-802
(22) Tunnel-Private-Group-Id = "88"
(22) Mikrotik-Wireless-VLANID = 88
(22) Mikrotik-Wireless-VLANID-Type = 0
(22) Mikrotik-Wireless-Comment = "User1"
(22) Mikrotik-Wireless-Forward = 1
(22) Framed-Protocol = PPP
(22) Finished request


Wichtig ist zu erwähnen, dass ich das Ganze nur als AP nutzen möchte, also ohne Firewall, Routing usw.

Hättest du eventuell die Möglichkeit mir zu helfen, ich bin leider mit meinem Latein am Ende face-sad

Eventuell könnte man auch eine kurze Remote Session machen? Wäre super cool, wenn du mir helfen könntest.

Bin leider nicht der Profi, somit kann ich dir leider nicht sagen, wie ich dir meine Config am besten zu kommen lassen kann.

Gruß

Chris
Member: aqui
aqui Mar 14, 2021 updated at 00:12:01 (UTC)
Goto Top
Du hast den Radius Server falsch konfiguriert !! "Framed-Protocol = PPP" ist falsch ! Damit kann es nicht klappen.
Hilfreich wäre einmal dein Radius Setup zu sehen. Nutzt du den FreeRadius ?
Das Tutorial zu dem Thema hast du gelesen und umgesetzt ?!
Dynamische VLAN Zuweisung für WLAN (u. LAN) Clients mit Mikrotik

Der Fehler ist aber bei dir eindeutig in der Radius Konfig und nicht am Mikrotik !