visucius
Goto Top

Mikrotik - dyn-vLAN und MAC-auth in ROS 7.2

Hallo in die Runde,

ich stehe mal wieder auf dem Schlauch und möchte doch eigentlich nur neue Gefilde erobern face-wink

Gegeben sei ein CRS326 mit RouterOS 7.2/stable und mehreren bestehenden port-gebundenen vLANs. Entspricht im großen und ganzen aquis Anleitung hier im Forum. Das läuft auch stabil.

Ziel:
Statt portgebundenen vLANs sollen die vLANs nun über die MAC-Adresse zugeordnet werden. User-Manager und Radius sind lokal auf dem CRS installiert und es gibt ne Hand voll Anleitungen zu ähnlichen Setups (aqui, colinardo und auch citraweb/youtube) , die aber mMn. nicht genau das umsetzen was ich möchte oder zu alt für den internen ROS-internen Radius sind face-wink


UserManager:
Enabled, Router dot1x angelegt, Adresse 127.0.0.1, Passwort vergeben
User angelegt, siehe screenshot
bildschirmfoto 2022-04-10 um 16.25.59


Radius:
dot1x, enabled, 127.0.0.1, udp, Passwort (identisch zum Usermanager)
bildschirmfoto 2022-04-10 um 15.55.17


Port3 zum testen:
Bisher: PVID 33, admit only untagged and prioritiy tagged
So bekommt der Rechner natürlich eine IP aus dem 33er Netz - wie bisher auch.

jetzt: PVID 1, admit all
bildschirmfoto 2022-04-10 um 15.56.24


Stecke ich nun einen Rechner an den Port, bekommt dieser zwar nen DNS aus dem 33 vLAN aber keine (passende) IP mehr.
Im Radius Server "Status" erscheinen Requests und zahlenmäßig passende Timeouts
Im Logfile finde ich nichts vom UserManager aber ich meine irgendwo was von "not assigned" beim Status gesehen zu haben.
Im Logfile meldet sich dafür der Radius wie folgt
bildschirmfoto 2022-04-10 um 15.54.27

Aber nix passiert. Eigentlich sollte der Rechner ja jetzt eine IP aus dem 22er Netz bekommen?!

Liegt es an der Verbindung Usermanager - Radius (deren beider local-host-Adresse?!) oder ist das Port-Setup fehlerhaft?! Das mit dem Trunk-Config ist sozusagen ne Eigen-Inspiration.


Anbei noch der Rest des Setups:
/interface bridge
add admin-mac=08:55:31:5E:00:7F auto-mac=no ingress-filtering=no name=bridge vlan-filtering=yes
/interface ethernet
set [ find default-name=ether1 ] name=WAN1
set [ find default-name=ether2 ] disabled=yes name=WAN2
set [ find default-name=ether3 ] name=ether3_33
set [ find default-name=ether4 ] name=ether4_99
set [ find default-name=ether5 ] name=ether5_33
set [ find default-name=ether6 ] disabled=yes name=ether6_11
set [ find default-name=ether7 ] disabled=yes name=ether7_11
set [ find default-name=ether8 ] name=ether8_22
set [ find default-name=ether9 ] name=ether9_22
set [ find default-name=ether10 ] name=ether10_33
set [ find default-name=ether11 ] name=ether11_33
set [ find default-name=ether12 ] name=ether12_33
set [ find default-name=ether13 ] name=ether13_33
set [ find default-name=ether14 ] name=ether14_33
set [ find default-name=ether15 ] name=ether15_bonding
set [ find default-name=ether16 ] name=ether16_bonding
set [ find default-name=ether17 ] name=ether17_44
set [ find default-name=ether18 ] name=ether18_44
set [ find default-name=ether19 ] name=ether19_44
set [ find default-name=ether20 ] name=ether20_44
set [ find default-name=ether21 ] name=ether21_44
set [ find default-name=ether22 ] name=ether22_44
set [ find default-name=ether23 ] disabled=yes name=ether23_11
set [ find default-name=ether24 ] name=ether24_wifi-trunk
set [ find default-name=sfp-sfpplus1 ] disabled=yes
set [ find default-name=sfp-sfpplus2 ] disabled=yes
...
/interface vlan
add interface=bridge name=vlan1 vlan-id=1
add interface=bridge name=vlan11 vlan-id=11
add interface=bridge name=vlan22 vlan-id=22
add interface=bridge name=vlan33 vlan-id=33
add interface=bridge name=vlan44 vlan-id=44
add interface=bridge name=vlan99 vlan-id=99
/interface bonding
add mode=802.3ad name=bonding15+16 slaves=ether15_bonding,ether16_bonding
/interface ethernet switch
set 0 l3-hw-offloading=yes
/interface ethernet switch port
set 0 l3-hw-offloading=no
set 1 l3-hw-offloading=no
set 3 l3-hw-offloading=no
/interface list
add name=LAN
add name=WAN
add name=Mgmt
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip pool
add name=pool44 ranges=10.98.44.10-10.98.44.49
add name=pool33 ranges=10.98.33.10-10.98.33.49
add name=pool11 ranges=10.98.11.10-10.98.11.49
add name=pool22 ranges=10.98.22.10-10.98.22.49
add name=pool99 ranges=10.98.99.10-10.98.99.49
/ip dhcp-server
add address-pool=pool44 interface=vlan44 name=dhcp44
add address-pool=pool33 interface=vlan33 name=dhcp33
add address-pool=pool11 interface=vlan11 name=dhcp11
add address-pool=pool22 interface=vlan22 name=dhcp22
add address-pool=pool99 interface=vlan99 name=dhcp99
/port
set 0 name=serial0
/user-manager user
add attributes=Tunnel-Medium-Type:6,Tunnel-Type:13,Tunnel-Private-Group-ID:22 comment=CompaqCQ58 name=C8:CB:B8:56:7B:CD

/interface bridge port
add bridge=bridge ingress-filtering=no interface=ether3_33
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged ingress-filtering=no interface=ether4_99 pvid=99
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged ingress-filtering=no interface=ether5_33 pvid=33
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged ingress-filtering=no interface=ether6_11 pvid=11
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged ingress-filtering=no interface=ether7_11 pvid=11
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged ingress-filtering=no interface=ether8_22 pvid=22
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged ingress-filtering=no interface=ether9_22 pvid=22
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged ingress-filtering=no interface=ether10_33 pvid=33
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged ingress-filtering=no interface=ether11_33 pvid=33
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged ingress-filtering=no interface=ether12_33 pvid=33
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged ingress-filtering=no interface=ether13_33 pvid=33
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged ingress-filtering=no interface=ether14_33 pvid=33
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged ingress-filtering=no interface=ether17_44 pvid=44
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged ingress-filtering=no interface=ether18_44 pvid=44
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged ingress-filtering=no interface=ether19_44 pvid=44
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged ingress-filtering=no interface=ether20_44 pvid=44
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged ingress-filtering=no interface=ether21_44 pvid=44
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged ingress-filtering=no interface=ether22_44 pvid=44
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged ingress-filtering=no interface=ether23_11 pvid=11
add bridge=bridge ingress-filtering=no interface=ether24_wifi-trunk
add bridge=bridge ingress-filtering=no interface=sfp-sfpplus1
add bridge=bridge ingress-filtering=no interface=sfp-sfpplus2
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged interface=bonding15+16 pvid=33
/ip neighbor discovery-settings
set discover-interface-list=none
/ipv6 settings
set disable-ipv6=yes
/interface bridge vlan
add bridge=bridge tagged=bridge,ether24_wifi-trunk vlan-ids=33
add bridge=bridge tagged=ether24_wifi-trunk,bridge vlan-ids=44
add bridge=bridge tagged=bridge,ether24_wifi-trunk vlan-ids=11
add bridge=bridge tagged=bridge untagged=ether24_wifi-trunk vlan-ids=1
add bridge=bridge tagged=bridge vlan-ids=99
add bridge=bridge tagged=bridge vlan-ids=22
/interface detect-internet
set detect-interface-list=all
/interface dot1x server
add auth-types=mac-auth interface=ether3_33
/interface list member
add interface=vlan1 list=LAN
add interface=WAN1 list=WAN
add interface=WAN2 list=WAN
add interface=vlan33 list=Mgmt
add interface=vlan99 list=Mgmt
add interface=ether4_99 list=Mgmt
add interface=vlan11 list=LAN
add interface=vlan22 list=LAN
add interface=vlan33 list=LAN
add interface=vlan44 list=LAN
add interface=vlan99 list=LAN
...
/ip address
add address=10.98.1.1/26 interface=vlan1 network=10.98.1.0
add address=10.98.11.1/26 interface=vlan11 network=10.98.11.0
add address=10.98.22.1/26 interface=vlan22 network=10.98.22.0
add address=10.98.33.1/26 interface=vlan33 network=10.98.33.0
add address=10.98.44.1/26 interface=vlan44 network=10.98.44.0
add address=10.98.99.1/26 interface=vlan99 network=10.98.99.0
add address=192.168.178.254/24 interface=WAN2 network=192.168.178.0
/ip cloud
set ddns-enabled=yes
/ip dhcp-client
add interface=WAN1
/ip dhcp-server lease
add address=10.98.33.7 mac-address=52:54:00:D0:6C:14 server=dhcp33
add address=10.98.22.2 mac-address=7C:2F:80:E0:7A:9C server=dhcp22
add address=10.98.33.4 mac-address=B4:22:00:23:71:50 server=dhcp33
add address=10.98.44.2 mac-address=B4:22:00:0B:6B:BC server=dhcp44
add address=10.98.11.11 client-id=1:1e:f7:1e:68:98:dd mac-address=1E:F7:1E:68:98:DD server=dhcp11
add address=10.98.33.6 mac-address=5C:85:7E:49:BB:3E server=dhcp33
add address=10.98.33.20 client-id=1:5c:85:7e:4f:6a:9e mac-address=5C:85:7E:4F:6A:9E server=dhcp33
/ip dhcp-server network
add address=10.98.1.0/26 gateway=10.98.1.1 netmask=26
add address=10.98.11.0/26 dns-server=10.98.11.1 gateway=10.98.11.1
add address=10.98.22.0/26 dns-server=10.98.33.2,9.9.9.9 gateway=10.98.22.1
add address=10.98.33.0/26 dns-server=10.98.33.2 gateway=10.98.33.1
add address=10.98.44.0/26 dns-server=10.98.44.1,9.9.9.9 gateway=10.98.44.1
add address=10.98.99.0/26 dns-server=10.98.99.1 gateway=10.98.99.1
/ip dns
set allow-remote-requests=yes cache-size=4096KiB
/ip firewall address-list
add address=0.0.0.0/8 comment=RFC6890 list=not_in_internet
add address=172.16.0.0/12 comment=RFC6890 list=not_in_internet
add address=192.168.0.0/16 comment=RFC6890 list=not_in_internet
add address=169.254.0.0/16 comment=RFC6890 list=not_in_internet
add address=127.0.0.0/8 comment=RFC6890 list=not_in_internet
add address=224.0.0.0/4 comment=Multicast list=not_in_internet
add address=198.18.0.0/15 comment=RFC6890 list=not_in_internet
add address=192.0.0.0/24 comment=RFC6890 list=not_in_internet
add address=192.0.2.0/24 comment=RFC6890 list=not_in_internet
add address=198.51.100.0/24 comment=RFC6890 list=not_in_internet
add address=203.0.113.0/24 comment=RFC6890 list=not_in_internet
add address=100.64.0.0/10 comment=RFC6890 list=not_in_internet
add address=240.0.0.0/4 comment=RFC6890 list=not_in_internet
/ip firewall filter
add action=accept chain=input comment=wireguard dst-port=51888 protocol=udp src-address=10.98.200.0/29 src-port=51888
add action=drop chain=input comment="drop invalid" connection-state=invalid log=yes log-prefix=drop_in_invalid  
add action=accept chain=input comment="accept estdablished, related" connection-state=established,related  
add action=drop chain=input comment="block everything else" in-interface-list=!LAN log=yes log-prefix=drop_in_!LAN  
add action=fasttrack-connection chain=forward comment="FastTrack inkl. hw-offload, established, related" connection-state=established,related \  
    hw-offload=yes
add action=accept chain=forward comment="FastTrack_Fallback, established, related, untracked" connection-state=established,related,untracked  
add action=drop chain=forward comment="drop all NEW from WAN not DSTNATed" connection-nat-state=!dstnat connection-state=new in-interface-list=WAN \  
    log=yes log-prefix="drop_forw_ !NAT"  
/ip firewall nat
add action=masquerade chain=srcnat out-interface-list=WAN
/ip firewall service-port
set sip disabled=yes sip-direct-media=no
/ip route
add disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=192.168.178.1 pref-src=0.0.0.0 routing-table=main scope=30 suppress-hw-offload=no \
    target-scope=10
add check-gateway=ping comment=WAN1 disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=WAN1 routing-table=main scope=30 suppress-hw-offload=no \
    target-scope=10
add check-gateway=ping comment=WAN2 disabled=no distance=5 dst-address=0.0.0.0/0 gateway=WAN2 pref-src=0.0.0.0 routing-table=main scope=30 \
    suppress-hw-offload=no target-scope=10
add comment=WAN1-Check disabled=no distance=1 dst-address=8.8.8.8/32 gateway=WAN1 pref-src="" routing-table=main scope=30 suppress-hw-offload=no \  
    target-scope=10
add comment=WAN2-Check disabled=yes distance=1 dst-address=9.9.9.9/32 gateway=WAN2 pref-src="" routing-table=main scope=30 suppress-hw-offload=no \  
    target-scope=10
add disabled=no dst-address=192.168.66.5 gateway=zerotier1 routing-table=main suppress-hw-offload=no
/ip service
set telnet disabled=yes
set ftp disabled=yes
set www address=10.98.99.0/26,10.98.33.0/26
set ssh disabled=yes
set api disabled=yes
set winbox address=10.98.99.0/26,10.98.33.0/26
/ip ssh
set strong-crypto=yes
/radius
add address=127.0.0.1 service=dot1x
/radius incoming
set accept=yes
/system clock
set time-zone-name=Europe/Berlin
/system logging
add topics=route
add topics=dhcp
add topics=manager
add topics=radius
add topics=wireguard
/system ntp client
set enabled=yes
/system ntp server
set enabled=yes
/system ntp client servers
add address="server 0.europe.pool.ntp.org"  
add address=de.pool.ntp.org
/system package update
set channel=testing
/system routerboard settings
set boot-os=router-os
/system swos
set allow-from-ports=p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26 identity=MikroTik \
    static-ip-address=10.98.0.254
/tool bandwidth-server
set enabled=no
/tool graphing interface
add allow-address=10.98.99.0/26
add allow-address=10.98.33.0/26
/tool graphing queue
add allow-address=10.98.33.0/26
add allow-address=10.98.66.0/26
/tool graphing resource
add allow-address=10.98.99.0/26
add allow-address=10.98.33.0/26
/tool mac-server
set allowed-interface-list=Mgmt
/tool mac-server mac-winbox
set allowed-interface-list=LAN
/tool netwatch
add comment=WAN1 down-script="/ip route disable [find comment=\"WAN1\"]" host=8.8.8.8 interval=5s up-script="/ip route enable [find comment=\"WAN1\"]"  
add comment=WAN2 down-script="/ip route disable [find comment=\"WAN2\"]" host=9.9.9.9 interval=5s up-script="/ip route enable [find comment=\"WAN2\"]"  
/user-manager
set enabled=yes
/user-manager router
add address=127.0.0.1 name=dot1x

Content-Key: 2466135253

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

Printed on: December 1, 2023 at 06:12 o'clock

Member: aqui
Solution aqui Apr 10, 2022, updated at Oct 22, 2023 at 15:34:39 (UTC)
Goto Top
Bei allen Herstellern muss man die Switchports entsprechend markieren die mit MBP oder .1x arbeiten. Das wäre sehr verwunderlich wenn man das bei MT nicht müsste, denn WIE soll der Port wissen ob er eine Authentisierung machen muss oder nicht wenn man ihm das nicht dediziert sagt ?! Cisco macht es pro Port und Ruckus unter dem globalen "authentication" Konfig Block.
Hier mal als Beispiel bei einer Cisco Catalyst oder Ruckus ICX Switch Konfig:
Cisco SG 350x Grundkonfiguration

Ein 802.1x Praxisbeispiel mit Cisco WLAN Access Points mit dem Mikrotik Radius Server findest du HIER.

Alternativ ein Praxisbeispiel zur Radius Authentisierung per Mac Adresse auf Cisco Catalyst Switches und APs mit dem Mikrotik Radius.

Vermutlich liegt da der Schlüssel zu einer Lösung sofern dynamische VLANs auf Kupfer Ports überhaupt supportet sind ?!
Ich sehe mir das auf einem CRS3er hier mal an.
Mitglied: 1915348599
Solution 1915348599 Apr 10, 2022 updated at 15:50:50 (UTC)
Goto Top
dot1x auf Kupfer mit VLAN Zuweisung ist in der aktuellen 7.2er Firmware noch immer "broken", siehe
https://forum.mikrotik.com/viewtopic.php?t=184778
Der Radius sendet zwar ein AccessAccept aber der Router bekommt es nicht hin das Interface der Bridge als untagged dem VLAN hinzuzufügen, er schreibt zwar das er es hinzufügen will tut es aber nicht, kann ich hier nachstellen.

screenshot
Mitglied: 1915348599
Solution 1915348599 Apr 10, 2022 updated at 16:57:18 (UTC)
Goto Top
Habe zum Test nochmal ne Firmware 7.1.3 rausgekramt und damit funktioniert die MAC Auth und VLAN Zuweisung mit dem Usermanager wie erwartet problemlos!!

screenshot


Es ist also definitiv ein Bug wenn man die aktuelle 7.2er Firmware verwendet.

Ich sag ja der 7er Zweig hat noch immer seine Tücken, aktueller ist nicht immer gleich besser face-wink.
Member: aqui
Solution aqui Apr 10, 2022 at 17:05:19 (UTC)
Goto Top
Böses Faul ! Da kann man ja lange suchen.... face-sad
Nebenbei gefragt: Betrifft das rein nur die dynamische VLAN Zuweisung ? Sprich funktioniert wenigstens die nackte Mac Authentisierung in 7.2 ?
Und weitere Frage: Wenn man den "Enable" Haken setzt im User Manager
mt-um
implizieren die Port Angaben ja das das ggf. an sich schon der Radius ist.
Ist es da wirklich erforderlich den Radius explizit zusätzlich nochmal auf die Loopback Adresse zu setzen ?
Vermutlich wohl ja, denn man kann das shared secret ja nicht um UM setzen.
Mitglied: 1915348599
Solution 1915348599 Apr 10, 2022 updated at 17:21:43 (UTC)
Goto Top
Zitat von @aqui:
Nebenbei gefragt: Betrifft das rein nur die dynamische VLAN Zuweisung ? Sprich funktioniert wenigstens die nackte Mac Authentisierung in 7.2 ?
Nein geht beides nicht. Mac Auth und dot1x via TLS geht ebenso nicht.
Und weitere Frage: Wenn man den "Enable" Haken setzt im User Manager
mt-um
implizieren die Port Angaben ja das das ggf. an sich schon der Radius ist.
Jepp Usermanagager ist ein vollwertiger Radius Server
Ist es da wirklich erforderlich den Radius explizit zusätzlich nochmal auf die Loopback Adresse zu setzen ?
Vermutlich wohl ja, denn man kann das shared secret ja nicht um UM setzen.
Nöp ist nicht die Ursache, ich setze da aber auch als SRC immer die 127.0.0.1. Das ist aber nicht die Ursache.
Gibt ja auch unter 7.2 schön ein Access-Accept des Usermanager, aber der Router selbst macht einfach nicht die Freigabe des Ports, unter 7.1.3 die selbe Config klappt sowohl die MAC Auth als auch die EAP Auth (benötigt dann zwingend ein Server-Zertifikat im Usermanager) auf Anhieb!
Member: aqui
Solution aqui Apr 10, 2022, updated at Apr 11, 2022 at 07:04:26 (UTC)
Goto Top
Danke fürs Feedback ! Dann heisst es also mal wieder warten...oder die 7.1.3 oder 7.1.5 behalten. ๐Ÿ˜‰
Member: colinardo
Solution colinardo Apr 10, 2022 updated at 17:43:57 (UTC)
Goto Top
Servus @all.
Zitat von @Visucius:
es gibt ne Hand voll Anleitungen zu ähnlichen Setups (aqui, colinardo und auch citraweb/youtube) , die aber mMn. nicht genau das umsetzen was ich möchte oder zu alt für den internen ROS-internen Radius sind face-wink
Die sind nicht zu alt, nur RouterOS im 7er Zweig spielt hier einfach nicht immer mit face-smile.
@1915348599 hat recht, in der aktuellen Firmware ist die dynamische Zuweisung zu VLANs im dot1x Modul "broken", sowohl mit reiner MAC auth als auch über EAP & Co. Ist mir gestern auch erst aufgefallen als ich meine VMs aktualisiert habe. Dachte auch zuerst meine Config wäre fehlerhaft, war sie aber definitiv nicht.
Mit RouterOS 7.1.5 geht es übrigens auch noch.

Also, abwarten und Tee trinken oder für Tests downgraden ...
Grüße Uwe
Member: Visucius
Visucius Apr 11, 2022 at 09:19:38 (UTC)
Goto Top
Guten Morgen,

also erstmal vielen Dank für das flotte, professionelle und differenzierte Feedback!

Puh, dann bin ich ja froh, dass ich nicht mehr mit diesen billigen Plaste-Routern zu tun habe, die einfach nen halbes Jahrzehnt mit Auto-Update ihren Dienst tun. Mit dem "Profi-Equipment" darf ich jetzt Update-Veröffentlichungen lesen, die Features auf Notwendigkeit und Implikation mit meinem Setup abwägen und anschließend im Firmenforum prüfen ob evtl. bisher vorhandene Funktionen weg sind bzw. nur in einer ausgesuchten Kombination aus Prozessor, Software und magnetischem Feen- ähh Saharastaub von links bei Vollmond funktionieren ๐Ÿ˜‚

Spaß beiseite:
Wenn man den "Enable" Haken setzt im User Manager ... implizieren die Port Angaben ja das das ggf. an sich schon der Radius ist. (@aqui)
und
Jepp Usermanagager ist ein vollwertiger Radius Server (@Pretty)

Heißt das im Prinzip, ich muss den Radius-Server (Root-Menue-Ebene) gar nicht aktivieren, weil in 7.2 der Usermanager das schon inkludiert hat?! Ich dachte, der Usermanager hat nur die Zugangsdaten und ruft den (extra) Radius-Server auf um die Zugänge zu verifizieren?!

Viele Grüße

PS: Der (zusätzliche?) Radius scheint eh etwas buggy. Das Fenster ist immer erstmal leer und irgendwann erscheint dann die angelegte Zeile. Gestern habe ich versehentlich 8 Radius-Setups angelegt, weil ich dachte, die würden nicht gespeichert und irgendwann füllte sich dann das Fenster.
Member: colinardo
Solution colinardo Apr 11, 2022 updated at 10:18:30 (UTC)
Goto Top
Zitat von @Visucius:
Heißt das im Prinzip, ich muss den Radius-Server (Root-Menue-Ebene) gar nicht aktivieren, weil in 7.2 der Usermanager das schon inkludiert hat?!
Doch unter dem Punkt RADIUS werden die Radius-Clients aufgeführt und den brauchst du zwingend, da dieser ja die Anfragen der Clients an den Radius-Server(Usermanager) weiterleitet, wenn du das im Radius-Client so eingestellt hast. Der Radius-Server ist dann hier der Usermanager selbst.

Ich dachte, der Usermanager hat nur die Zugangsdaten und ruft den (extra) Radius-Server auf um die Zugänge zu verifizieren?!
Nein, der Usermanager ist in dem Fall gleichzeitig der Radius Server der dem Radius-Client sein Access-Accept/Reject übermittelt und der Client dann darufhin wiederum Zugang freischaltet/blockiert!

Hier mal zur Verdeutlichung wie das ganze abläuft.

screenshot


PS: Der (zusätzliche?) Radius scheint eh etwas buggy. Das Fenster ist immer erstmal leer und irgendwann erscheint dann die angelegte Zeile. Gestern habe ich versehentlich 8 Radius-Setups angelegt, weil ich dachte, die würden nicht gespeichert und irgendwann füllte sich dann das Fenster.
Das ist ein Anzeige-Fehler in der Winbox. Auch die Sessions können in der Usermanager GUI nicht entfernt werden, über ein Terminal kannst du es aber jederzeit machen.
Member: aqui
aqui Apr 11, 2022 at 09:52:56 (UTC)
Goto Top
der dem Radius-Client sein Access-Accept/Reject übermittelt und der Client dann darufhin wiederum Zugang freischaltet/blockiert!
Ich denke mal das ist quasi das was man beim FreeRadius in der client.conf Datei anlegt und was die Client IP Adressen oder Range und das Radius Passwort spezifiziert die Zugang zum Radius haben.
Mitglied: 1915348599
1915348599 Apr 11, 2022 updated at 10:08:22 (UTC)
Goto Top
Der Mikrotik ist halt Authenticator und Radius-Server in einem, ergo muss er eine Client- und eine Server-Config haben. Eigentlich ganz logisch face-wink. Leider steht in der GUI der Winbox fälschlicherweise "Radius-Server" wenn man einen neuen Eintrag in der Radius-Client Config anlegt, ist etwas missverständlich betitelt.
Member: aqui
aqui Apr 11, 2022 at 13:36:26 (UTC)
Goto Top
Eigentlich ganz logisch
Absolut ! ๐Ÿ˜‰
Andere Mikrotik Komponenten im Netz (oder Hersteller fremde) könnten ihn aber auch als zentralen Radius Server nutzen wo dann lediglich nur die Client Funktion erforderlich wäre. Oder z.B. alternativ bei einem Core Switch, der ja eher selten Port Security macht, zentral die Server Funktion bereitstellen.
Muss man sich auch erstmal dran gewöhnen das ein Switch gleichzeitig auch Radius Server spielen kann. ๐Ÿ˜Ž
Member: Visucius
Visucius Apr 12, 2022 updated at 14:03:01 (UTC)
Goto Top
@colinardo: Danke, jetzt glaube ich, hab ichs.

Bilder sagen mehr als tausend Worte:
bildschirmfoto 2022-04-12 um 15.57.11

@1915348599: Jo, so ist es. Wenn man dann nicht sattelfest ist, wird man über die Benennung in die falsche Richtung geschoben.

Danke nochmals an alle Teilnehmer. Habe gerade gesehen, dass sich daran offenbar auch in 7.2.1 nix geändert hat.
Member: aqui
aqui Apr 12, 2022 at 14:34:51 (UTC)
Goto Top
dass sich daran offenbar auch in 7.2.1 nix geändert hat.
face-sad
Mitglied: 1915348599
1915348599 Apr 12, 2022 updated at 15:19:55 (UTC)
Goto Top
Is halt nur eine Baustelle von hunderten ...
Es hindert ja keinen daran einfach erst mal bei 7.1.3 oder 7.1.5 zu bleiben ๐Ÿ˜‰, wenn man von den anderen offenen Ticks nicht betroffen ist. Der 7er Zweig muss halt erst mal 1-2 Jahre reifen ... Als stable verkauft auf den Markt geworfen wurde er ja ehrlich gesagt im frühen Beta-Stadium.
Member: aqui
aqui May 14, 2022 at 09:19:24 (UTC)
Goto Top
Gibt es Infos zum Verhalten in der aktuellen 7.2.3 Stable? Ist das .1x Problem da ggf. gefixt??
Member: colinardo
colinardo May 14, 2022 updated at 17:42:17 (UTC)
Goto Top
Zitat von @aqui:

Gibt es Infos zum Verhalten in der aktuellen 7.2.3 Stable? Ist das .1x Problem da ggf. gefixt??
In der aktuellen stable ist der Fehler noch vorhanden, aber im aktuellen Testing ist es gefixt (7.3.beta40)

What's new in 7.3beta40 (2022-May-11 12:18):  
*) dot1x - fixed port based VLAN ID assignment on devices without a switch chip;
*) dot1x - improved server system stability during authentication;
*) dot1x - fixed RADIUS State attribute when client is reauthenticated;
https://forum.mikrotik.com/viewtopic.php?p=933175#p933175
Member: aqui
aqui May 14, 2022 at 09:53:59 (UTC)
Goto Top
Danke für dein Feedback.
Na dann hoffen wir mal das das dann auch asap in einen .4 Stable Fix fliesst... ๐Ÿ˜‰
Member: Visucius
Visucius May 25, 2022 at 13:59:39 (UTC)
Goto Top
Hm, ich habs in der 7.3beta40 geht es bei mir noch nicht?! Hat das evtl. schon jemand mit der Version am laufen?!

@colinardo:
Ich habe noch eine Frage zu Deiner Erklärung des configs vom Dot1x-Fensters. Nur zu Sicherheit: Unter "Client" muss ich da nix eintragen?! Oder ist das ausschließlich für die Zertifikate-Auth.?

Mir ist das Verfahren noch nicht so ganz klar.

Im Usermanager definiere ich, welche MAC-Adressen, welche vLAN-Zuweisung erhalten. Aber PW habe ich da nicht hinterlegt?! Müsste ich da nicht die login-Daten des Users irgendwie ...?! Oder brauche ich sowas nciht, weil die Geräte "in der Schwebe" hängen, bis ich ihrer MAC-Adresse "freigebe" und eine vLAN zuweise?!

Vielen Dank im Voraus!
Member: colinardo
colinardo May 25, 2022 updated at 14:21:51 (UTC)
Goto Top
Zitat von @Visucius:

Hm, ich habs in der 7.3beta40 geht es bei mir noch nicht?! Hat das evtl. schon jemand mit der Version am laufen?!
Ja läuft hier im Test wieder einwandfrei!
@colinardo:
Ich habe noch eine Frage zu Deiner Erklärung des configs vom Dot1x-Fensters. Nur zu Sicherheit: Unter "Client" muss ich da nix eintragen?! Oder ist das ausschließlich für die Zertifikate-Auth.?
Das ist nur wenn sich der Mikrotik selbst gegenüber einem anderen Router authentifizieren soll, also er den Client spielt.
Im Usermanager definiere ich, welche MAC-Adressen, welche vLAN-Zuweisung erhalten. Aber PW habe ich da nicht hinterlegt?! Müsste ich da nicht die login-Daten des Users irgendwie ...?! Oder brauche ich sowas nciht, weil die Geräte "in der Schwebe" hängen, bis ich ihrer MAC-Adresse "freigebe" und eine vLAN zuweise?!
MAC Auth verwendet Standardmäßig kein Passwort, die MAC Adresse ist hierbei ja das Authentifizierungsmerkmal.
Außer du definierst im dot1x Abschnitt "mac as username and password" dann musst du im Passwort-Feld des Usermanagers auch die MAC Adresse hinterlegen weil der Radius-Client des Mikrotik dann auch ein Passwort an den Usermanager sendet und wenn das im Usermanager leer ist schlägt die Authentifizierung fehl.
Member: Visucius
Visucius May 25, 2022 updated at 14:39:31 (UTC)
Goto Top
Mist, dann kann ich mein Unvermögen doch nicht auf Mikrotik schieben face-wink

PS: Danke fürs flotte Feedback!

PPS: Wenn ich mein Logfile richtig interpretiere droppt die Firewall die UDP-Anfragen vom dot1x. Weil kinderfrei, gucke ich mir das aber erst morgen in Ruhe an.
Member: aqui
aqui Jun 07, 2022 at 11:23:54 (UTC)
Goto Top
Jemand die Radius Funktion mit der nun aktuellen Stable 7.3 schonmal wasserdicht getestet ob die o.a. Zicken dort jetzt gefixt wurden?!
Member: colinardo
colinardo Jun 07, 2022 updated at 13:40:41 (UTC)
Goto Top
Zitat von @aqui:

Jemand die Radius Funktion mit der nun aktuellen Stable 7.3 schonmal wasserdicht getestet ob die o.a. Zicken dort jetzt gefixt wurden?!
Ja, die Fixes der 7.2beta40 sind in 7.3 eingeflossen, läuft hier im Test bisher wieder unauffällig. Mal sehen wie lange diesmal ๐Ÿ™ƒ.

dot1x EAP am client:

screenshot

MAC Auth:

screenshot

Grüße Uwe
Member: aqui
aqui Jun 07, 2022 at 13:31:59 (UTC)
Goto Top
Perfekt! Dann setze ich das hier auch mal auf zum Testen....
Member: Visucius
Visucius Jun 07, 2022 updated at 13:35:14 (UTC)
Goto Top
Wie, Du testest erst, wenn alles funktioniert?!

Irgendwas mache ich hier falsch ๐Ÿ˜‚

Um den Thread bzw. Kreis zu "schließen". Bei mir hats auch funktioniert (am LAN-Port), nach der Modifikation der Firewall

@aqui: Am Wifi-Thema bin ich noch dran, war am WE keine Zeit.
Member: aqui
aqui Jun 08, 2022, updated at Sep 10, 2022 at 18:45:43 (UTC)
Goto Top
Just for Info....
Heute einmal einen Cisco Catalysten und Ruckus ICX mit reiner Mac Authentisierung (mab) sowie dynamischer VLAN Zuweisung gegen den Mikrotik Radius Server auf einem CRS Switch mit der o.a. Stable 7.3 getestet. Funktioniert fehlerlos!

back-to-topMikrotik Radius Setup

macmikr

back-to-topCisco Konfig

!
spanning-tree mode mst
spanning-tree extend system-id
!
spanning-tree mst configuration
name Mikrotik
revision 3
!
aaa new-model
!
aaa authentication login default local
aaa authentication dot1x default group radius
aaa authorization network default group radius
aaa accounting dot1x default start-stop group radius
!
dot1x system-auth-control
!
interface FastEthernet0/1
description Authentication mab plus dot1x
switchport mode access
authentication order mab dot1x
authentication port-control auto
authentication periodic
mab (eap)
dot1x pae authenticator
spanning-tree portfast
!
interface FastEthernet0/2
description Port Authentication
switchport mode access
authentication port-control auto
authentication periodic
mab (eap)
spanning-tree portfast
!
radius server labradius
address ipv4 172.30.3.1 auth-port 1812 acct-port 1813
key testing123
!

back-to-topCatalyst Logging

Jun8 2022 18:25:06 CEST: %AUTHMGR-5-START: Starting 'mab' for client (8cae.4cfe.0194) on Interface Fa0/2 AuditSessionID AC1E03140000003D00BCCD4A  
Jun8 2022 18:25:06 CEST: %MAB-5-SUCCESS: Authentication successful for client (8cae.4cfe.0194) on Interface Fa0/2 AuditSessionID AC1E03140000003D00BCCD4A
Jun8 2022 18:25:06 CEST: %AUTHMGR-7-RESULT: Authentication result 'success' from 'mab' for client (8cae.4cfe.0194) on Interface Fa0/2 AuditSessionID AC1E03140000003D00BCCD4A  
Jun8 2022 18:25:06 CEST: %AUTHMGR-5-VLANASSIGN: VLAN 20 assigned to Interface Fa0/2 AuditSessionID AC1E03140000003D00BCCD4A
Jun8 2022 18:25:06 CEST: %AUTHMGR-5-SUCCESS: Authorization succeeded for client (8cae.4cfe.0194) on Interface Fa0/2 AuditSessionID AC1E03140000003D00BCCD4A
Jun8 2022 18:25:07 CEST: %LINK-3-UPDOWN: Interface FastEthernet0/2, changed state to up

Cat2960#sh authentication int fa 0/2

Client list:
Interface  MAC Address     Method   Domain   Status         Session ID
  Fa0/2      8cae.4cfe.0194  mab      DATA     Authz Success  AC1E03140000003D00BCCD4A
  
Cat2960#sh vlan id 20

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
20   VLAN-20                          active    Fa0/2, Fa0/8, Fa0/11, Fa0/12
                                                Gi0/2 
Fazit:
Works as designed ! ๐Ÿ‘
Tests mit 802.1x und einer Kombi aus Mac und .1x folgen noch.
Sieht also bis dato sehr gut aus das das jetzt mit der 7.3er stabil rennt.

Interessant:
Zum Vergleich lief im gleichen Management Netz parallel ein FreeRadius.
Schaltet man den Cisco am Port von PAP (Default) testweise einmal auf EAP um kann der Mikrotik das Endgerät nicht mehr authentisieren obwohl alle EAP und PEAP Verfahren im Profil angehakt waren, der FreeRadius hingegen authentisiert auch EAP.
Member: colinardo
colinardo Jun 08, 2022 updated at 21:28:45 (UTC)
Goto Top
Zitat von @aqui:
Interessant:
Zum Vergleich lief im gleichen Management Netz parallel ein FreeRadius.
Schaltet man den Cisco am Port von PAP (Default) testweise einmal auf EAP um kann der Mikrotik das Endgerät nicht mehr authentisieren obwohl alle EAP und PEAP Verfahren im Profil angehakt waren, der FreeRadius hingegen authentisiert auch EAP.

EAP-? was?
Hast du im Mikrotik auch nicht vergessen ein CA-Zertifikat im Usermanager zu hinterlegen? Ohne das werden die meisten EAP Methoden fehlschlagen. EAP-TLS oder EAP-MSChapv2 läuft hier mit der 7.3 und 802.1x bis jetzt einwandfrei, s. Screenshot oben.

Grüße Uwe
Member: aqui
aqui Jun 08, 2022 updated at 21:02:17 (UTC)
Goto Top
Hi Uwe !
Nee, alles (noch) ohne Zertifikat. Bei reinem MacAuth braucht man das nicht denn MacBypass verifiziert das m.E. gar nicht. Zumindestens kann man es bei keinem Hersteller bei reiner MacAuth konfigurieren.
Macht der User Manager übrigens ganz klaglos auch ohne Zertifikat. Siehe oben... ๐Ÿ˜‰
Bei dot1x ist das natürlich anders wo der Client das ja authentifizieren kann sofern man das im Client anhakt/aktiviert.
Man kann dem MacAuth beim Cisco sagen er soll EAP statt PAP nutzen bei der Radius Anfrage:
https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/security/m1/sec-m1-cr- ...
Möglich das er da mit EAP ein Zertifikat erzwingt und das der Grund des Scheiterns ist?!
Wohlgemerkt MacAuth only, kein dot1x. Mehr hatte ich oben noch nicht getestet.
Member: colinardo
colinardo Jun 08, 2022 updated at 22:23:03 (UTC)
Goto Top
Zitat von @aqui:
Man kann dem MacAuth beim Cisco sagen er soll EAP statt PAP nutzen bei der Radius Anfrage:
Ach so, OK.
Möglich das er da mit EAP ein Zertifikat erzwingt und das der Grund des Scheiterns ist?!
Zertifikate werden für eap-tls, eap-ttls und eap-peap Methoden am MIkrotik benötigt, da EAP-MD5 das ohne certs arbeitet beim Usermananger eh wegfällt da nicht supported, müsstest du schauen welche EAP-Spielart dein Router beim Setzen des EAP Flags bei MAC auth hier benutzt (sollte dir das Debug Log deines Freeradius ja verraten). Juniper supported bspw. auch eap-peap bei der MAC auth, dann wäre im Usermanager ein Server-Cert Pflicht.
Member: aqui
aqui Jun 09, 2022, updated at Sep 10, 2022 at 18:47:18 (UTC)
Goto Top
EAP mag er, da MD5, trotz Zertifikate nicht. OK, klar das es nicht klappt wenn gar nicht supportet im MT.
Just for Info...

back-to-topFreeRadius Debug

Mit PAP (Default)
(0) eap: No EAP-Message, not doing EAP
(0)     [eap] = noop
(0) files: users: Matched entry 8cae4cfe0194 at line 78
(0)     [files] = ok
(0)     [expiration] = noop
(0)     [logintime] = noop
(0)     [pap] = updated
(0)   } # authorize = updated
(0) Found Auth-Type = PAP
(0) # Executing group from file /etc/freeradius/3.0/sites-enabled/default
(0)   Auth-Type PAP {
(0) pap: Login attempt with password
(0) pap: Comparing with "known good" Cleartext-Password
(0) pap: User authenticated successfully
(0)     [pap] = ok
(0)   } # Auth-Type PAP = ok 
Mit EAP (mab eap)
(2) eap: Peer sent EAP Response (code 2) ID 2 length 22
(2) eap: No EAP Start, assuming it's an on-going EAP conversation
(2)     [eap] = updated
(2) files: users: Matched entry 8cae4cfe0194 at line 78
(2)     [files] = ok
(2)     [expiration] = noop
(2)     [logintime] = noop
(2) pap: WARNING: Auth-Type already set.  Not setting to PAP
(2)     [pap] = noop
(2)   } # authorize = updated
(2) Found Auth-Type = eap
(2) # Executing group from file /etc/freeradius/3.0/sites-enabled/default
(2)   authenticate {
(2) eap: Expiring EAP session with state 0x68f42d2868f62994
(2) eap: Finished EAP session with state 0x68f42d2868f62994
(2) eap: Previous EAP request found for state 0x68f42d2868f62994, released from the list
(2) eap: Peer sent packet with method EAP MD5 (4)
(2) eap: Calling submodule eap_md5 to process data
(2) eap: Sending EAP Success (code 3) ID 2 length 4
(2) eap: Freeing handler
(2)     [eap] = ok
(2)   } # authenticate = ok 

back-to-topMT Log

mtlog
Alle Haken bei Outer Auth und Inner Auth testweise gesetzt.
Es ist jetzt aber eh nur kosmetische Spielerei, denn mit dem Default PAP rennt es ja fehlerlos.
Member: colinardo
colinardo Jun 09, 2022 updated at 08:00:13 (UTC)
Goto Top
(2) eap: Peer sent packet with method EAP MD5 (4
Der Cisco probiert es mit EAP-MD5 und das supported der Usermanager wie erwähnt nicht, wäre auch ehrlich gesagt kein großer Gewinn.
Member: aqui
aqui Jun 09, 2022, updated at Jul 04, 2022 at 10:32:46 (UTC)
Goto Top
Danke für das Feedback. Hatte ich im Eifer des Gefechts glatt überlesen.
MD5 ist ja auch schon etwas "antik" und nicht mehr empfehlenswert.
Member: aqui
aqui Jun 09, 2022, updated at May 05, 2023 at 09:48:16 (UTC)
Goto Top
Just for Info zum Abgesang auch nochmal Dot1x mit und ohne Zertifikat getestet mit Mac und Windows 10/11 (Linux hat Kollege @colinardo in seinem umfassenden Tutorial zu dem Thema ja schon erledigt) und auch das klappt fehlerlos mit dem MT Radius.
Auch die kombinierte Port Authentisierung mit MAB und Dot1x am Cisco Catalysten als auch am Ruckus ICX 7xxx klappt vollkommen fehlerlos.
!
interface GigabitEthernet0/4
description Authentication map plus dot1x
switchport mode access
authentication event fail action authorize vlan 10
authentication order mab dot1x
authentication port-control auto
authentication periodic
mab
dot1x pae authenticator
spanning-tree portfast
!

dot1x
Der Mac macht es dem User (wie gewohnt) sehr leicht indem er beim Dot1x Erstkontakt automatisch das Server Zertifikat in die Schlüsselbundverwaltung importiert. face-wink

Auch die gleiche Radius Authentisierung im WLAN Umfeld funktioniert ebenso fehlerlos.
Works as designed mit dem MT Radius Server. ๐Ÿ‘
Member: loni78
loni78 Oct 07, 2022 at 08:53:25 (UTC)
Goto Top
Hallo zusammen,

ich möchte gerne nochmals zum ersten Frage zurückkommen. Ich beschäftige mich erst seit kurzem mit dem RouterOS. Ich habe jetzt unter ROS 7.1.3 einen Radius aufgesetzt und soweit funktioniert auch alles (DOT1x Port based MAC Auth mit Radius).

Ich würde gerne ROS gerne auf 7.5 upgraden. Funktioniert dort auch alles oder gibt es noch Probleme insbesondere mit DOT1X / User Manager / Radius?

Grüße
Rafael
Member: colinardo
colinardo Oct 07, 2022 updated at 09:16:18 (UTC)
Goto Top
Servus Rafael.
Zitat von @loni78:
Ich würde gerne ROS gerne auf 7.5 upgraden. Funktioniert dort auch alles oder gibt es noch Probleme insbesondere mit DOT1X / User Manager / Radius?
Zur Zeit keine Probleme, funktioniert hier mit der aktuellen Stable(7.5) oder dem aktuellen RC (7.6RC1) nach meinen letzten Tests problemlos, zumindest auf der von mir getesteten Hardware (RB4011/RB951G und CHR(x86)).

Grüße Uwe
Member: Visucius
Solution Visucius Oct 07, 2022 at 09:29:00 (UTC)
Goto Top
Hier hat sich auch in der aktuellen RC1, bzw. der folgenden 7.6 nochmal was getan:

https://mikrotik.com/download/changelogs/testing-release-tree

*) dot1x - fixed incorrect error when using "mac-auth";
*) radius - require "policy" policy for "login" service configuration;
*) user-manager - accept any username for outer authentication;
*) user-manager - added "comment" parameter for batch user creation;
*) user-manager - added support for multiple accounting sessions;
*) user-manager - added variables to print profile name and end time in voucher templates;
*) user-manager - allow specifying router's address as subnet;
*) user-manager - fixed "migrate-legacy-db" command;
*) user-manager - fixed session expiry when it is stopped by Disconnect-Request;
*) user-manager - forced username verification against client's certificate for EAP-TLS;
*) user-manager - use "Class" attribute to associate user's accounting session;
*) user - removed unused "dude" policy;
Member: aqui
aqui Oct 07, 2022 at 11:53:35 (UTC)
Goto Top
Kann ich bestätigen. Stable 7.5 rennt derzeit mit Radius soweit fehlerfrei.
Member: loni78
loni78 Oct 08, 2022 at 23:20:32 (UTC)
Goto Top
So, erstmal vielen Dank für die Antworten.

Ich habe ein Netinstall gemacht und jetzt den Radius (User Manager) unter 7.5 installiert. Vlans eingerichtet usw. Genauso wie ich es unter 7.1.3 gemacht habe. Dort hat auch alles funktioniert. Wenn ich einen neuen "Server" unter Dot1X einrichte, bekomme ich die folgende Meldung:

1

Ich weiß gar nicht was das genau bedeuten soll. Ich habe "normale" Vlans eingerichtet. Die wie folgt aussehen:

3


Hatte das jemand auch schonmal??

Grüße
Rafael
Member: colinardo
colinardo Oct 09, 2022 updated at 05:53:01 (UTC)
Goto Top
Aktualisiere mal dein Winbox, oder benutze das Terminal zum Anlegen.
/interface dot1x server add auth-types=mac-auth interface="ether7 Gaszähler" mac-auth-mode=mac-as-username-and-password  
Member: aqui
aqui Oct 09, 2022 at 10:04:00 (UTC)
Goto Top
Hast du den Bootloader unter System --> Routerboard ebenfalls auf 7.5 gezogen?
Ansonsten wie Kollege @colinardo schon sagt die WinBox unbedingt auf Ver. 3.3.7 updaten
Member: loni78
loni78 Oct 10, 2022 at 07:25:34 (UTC)
Goto Top
So, ist ein Bug…… Der Support hat aber wirklich schnell geantwortet:

Hello,

Thank you for contacting MikroTik Support.

Should be fixed in the latest RouterOS 7.6rc1 version. See the related changelog entry below:

*) dot1x - fixed incorrect error when using "mac-auth";
Member: Visucius
Visucius Oct 10, 2022 at 14:22:54 (UTC)
Goto Top
jo, habe ich ja am 7.10. geschrieben ๐Ÿ˜