BYOD and base on MAC
Luc Paulin
paulinster at gmail.com
Wed Jan 31 21:41:24 CET 2018
Sorry if the file's format isn't correct but unless that I didn't
understand documentation correctly I follow what's on the following url
https://wiki.freeradius.org/guide/mac-auth#plain-mac-auth_raddb-authorized_macs
.
Here's the authorized mac module section
[root at radius-corp-01_{{PROD}} raddb]# cat
mods-enabled/stingray-authorize-mac
files authorized_macs {
# The default key attribute to use for matches. The content
# of this attribute is used to match the "name" of the
# entry.
key = "%{Calling-Station-ID}"
usersfile = ${confdir}/authorized_macs
# If you want to use the old Cistron 'users' file
# with FreeRADIUS, you should change the next line
# to 'compat = cistron'. You can the copy your 'users'
# file from Cistron.
#compat = no
}
And this is the the content of "user/mac" address that should be authorized
[root at radius-corp-01_{{PROD}} raddb]# cat authorized_macs
18-65-90-CB-4C-69
Reply-Message = "Device with MAC Address %{Calling-Station-Id} authorized
for network access"
And here the debug output starting from rewrite_calling_station_id section
(9) policy rewrite_calling_station_id {
(9) if (&Calling-Station-Id && (&Calling-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i))
{
(9) if (&Calling-Station-Id && (&Calling-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i))
-> TRUE
(9) if (&Calling-Station-Id && (&Calling-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i))
{
(9) update request {
(9) EXPAND %{toupper:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}}
(9) --> 18-65-90-CB-4C-69
(9) &Calling-Station-Id := 18-65-90-CB-4C-69
(9) } # update request = noop
(9) [updated] = updated
(9) } # if (&Calling-Station-Id && (&Calling-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})$/i))
= updated
(9) ... skipping else: Preceding "if" was taken
(9) } # policy rewrite_calling_station_id = updated
(9) authorized_macs: EXPAND %{Calling-Station-ID}
(9) authorized_macs: --> 18-65-90-CB-4C-69
(9) [authorized_macs] = noop
(9) if (!ok) {
(9) if (!ok) -> TRUE
(9) if (!ok) {
(9) update reply {
(9) Tunnel-Type := VLAN
(9) Tunnel-Medium-Type := IEEE-802
(9) Tunnel-Private-Group-Id := 155
(9) } # update reply = noop
(9) } # if (!ok) = noop
(9) ... skipping else: Preceding "if" was taken
(9) [exec] = noop
(9) policy remove_reply_message_if_eap {
(9) if (&reply:EAP-Message && &reply:Reply-Message) {
(9) if (&reply:EAP-Message && &reply:Reply-Message) -> FALSE
(9) else {
(9) [noop] = noop
(9) } # else = noop
(9) } # policy remove_reply_message_if_eap = noop
(9) } # post-auth = updated
(9) Login OK: [lpaulin] (from client clx3-fw-1 port 1 cli 18-65-90-CB-4C-69)
(9) Sent Access-Accept Id 113 from 10.250.33.157:1812 to 10.1.0.81:1507
length 0
(9) MS-MPPE-Recv-Key =
0x6348f6c554161e58e38f723fb920ebdc99ddc48c18fcb74796f63d1eeb881f82
(9) MS-MPPE-Send-Key =
0x2f4ad046e69da27b4afe756aedd922a65e0ec1095ed728e70f315a77f7c3c788
(9) EAP-Message = 0x03790004
(9) Message-Authenticator = 0x00000000000000000000000000000000
(9) User-Name = "lpaulin"
(9) Tunnel-Type := VLAN
(9) Tunnel-Private-Group-Id := "155"
(9) Tunnel-Medium-Type := IEEE-802
(9) Idle-Timeout := 60
(9) Session-Timeout := 60
(9) Termination-Action := RADIUS-Request
(9) Juniper-Local-User-Name := "SU"
(9) Juniper-Junosspace-Profile := "devops_users"
(9) Finished request
--
!!!!!
( o o )
--------------oOO----(_)----OOo--------------
Luc Paulin
email: paulinster(at)gmail.com
Skype: paulinster
2018-01-31 15:22 GMT-05:00 Alan DeKok <aland at deployingradius.com>:
> On Jan 31, 2018, at 3:16 PM, Luc Paulin <paulinster at gmail.com> wrote:
> >
> > Great thanx Alan, I agree that mac can be easilly spoofed, but the goal
> > here is mainly to move the user's device to another vlan than corp and
> not
> > doing authentication. We may eventually move to EAP-TLS, but this is at
> > least a first step.
> >
> > Yes I check the format and it's exacly the same ... Here's the output of
> > the debug section for authorized_mac.
> >
> > =======
> > <------ LINES BEFORE REWRITE_CALLING_STATION_ID REMOVED --->
>
> Including deleting the "authorized_mac" config...
> >
> > And here's the authorized_macs file content
> > [root at radius-corp-01_{{PROD}} raddb]# cat authorized_macs
> > 18-65-90-CB-4C-69
> > Reply-Message = "Device with MAC Address %{Calling-Station-Id} authorized
> > for network access"
>
> What the heck is that?
>
> You can't just invent a configuration file format and use it. You MUST
> read the docs.
>
> So.. what is the "authorized_macs" module? How did you configure it?
> Why do you think that putting random things into it will make it do what
> you want?
>
> Alan DeKok.
>
>
> -
> List info/subscribe/unsubscribe? See http://www.freeradius.org/
> list/users.html
>
More information about the Freeradius-Users
mailing list