radius auth fix

This commit is contained in:
2025-12-23 19:43:36 +05:00
parent 943621c016
commit dad5a4ca01
6 changed files with 60 additions and 2 deletions

View File

@@ -78,7 +78,7 @@
"*default": "CGRateS.org" "*default": "CGRateS.org"
}, },
"client_dictionaries": { "client_dictionaries": {
"*default": ["/usr/share/cgrates/radius/dict/"] "*default": ["/usr/share/cgrates/radius/dict/", "/etc/cgrates/dictionary.mikrotik"]
} }
}, },

43
dictionary.mikrotik Normal file
View File

@@ -0,0 +1,43 @@
# MikroTik RADIUS Dictionary
# Standard attributes missing from default dictionary
# RFC 2869 - RADIUS Extensions
ATTRIBUTE NAS-Port-Id 87 string
ATTRIBUTE Message-Authenticator 80 octets
# MikroTik Vendor-Specific Attributes (Vendor ID: 14988)
VENDOR Mikrotik 14988
BEGIN-VENDOR Mikrotik
ATTRIBUTE Mikrotik-Recv-Limit 1 integer
ATTRIBUTE Mikrotik-Xmit-Limit 2 integer
ATTRIBUTE Mikrotik-Group 3 string
ATTRIBUTE Mikrotik-Wireless-Forward 4 integer
ATTRIBUTE Mikrotik-Wireless-Skip-Dot1x 5 integer
ATTRIBUTE Mikrotik-Wireless-Enc-Algo 6 integer
ATTRIBUTE Mikrotik-Wireless-Enc-Key 7 string
ATTRIBUTE Mikrotik-Rate-Limit 8 string
ATTRIBUTE Mikrotik-Realm 9 string
ATTRIBUTE Mikrotik-Host-IP 10 ipaddr
ATTRIBUTE Mikrotik-Mark-Id 11 string
ATTRIBUTE Mikrotik-Advertise-URL 12 string
ATTRIBUTE Mikrotik-Advertise-Interval 13 integer
ATTRIBUTE Mikrotik-Recv-Limit-Gigawords 14 integer
ATTRIBUTE Mikrotik-Xmit-Limit-Gigawords 15 integer
ATTRIBUTE Mikrotik-Wireless-PSK 16 string
ATTRIBUTE Mikrotik-Total-Limit 17 integer
ATTRIBUTE Mikrotik-Total-Limit-Gigawords 18 integer
ATTRIBUTE Mikrotik-Address-List 19 string
ATTRIBUTE Mikrotik-Wireless-MPKey 20 string
ATTRIBUTE Mikrotik-Wireless-Comment 21 string
ATTRIBUTE Mikrotik-Delegated-IPv6-Pool 22 string
ATTRIBUTE Mikrotik-DHCP-Option-Set 23 string
ATTRIBUTE Mikrotik-DHCP-Option-Param-STR1 24 string
ATTRIBUTE Mikrotik-DHCP-Option-Param-STR2 25 string
ATTRIBUTE Mikrotik-Wireless-VLANID 26 integer
ATTRIBUTE Mikrotik-Wireless-VLANIDtype 27 integer
ATTRIBUTE Mikrotik-Wireless-Minsignal 28 string
ATTRIBUTE Mikrotik-Wireless-Maxsignal 29 string
END-VENDOR Mikrotik

View File

@@ -32,8 +32,15 @@
"type": "*constant", "value": "*attributes"} "type": "*constant", "value": "*attributes"}
], ],
"reply_fields": [ "reply_fields": [
{"tag": "RejectCode", "path": "*rep.*radReplyCode",
"filters": ["*notempty:~*cgrep.Error:"],
"type": "*constant", "value": "AccessReject", "blocker": true},
{"tag": "RejectMessage", "path": "*rep.Reply-Message",
"filters": ["*notempty:~*cgrep.Error:"],
"type": "*variable", "value": "~*cgrep.Error"},
{"tag": "SessionTimeout", "path": "*rep.Session-Timeout", "type": "*variable", {"tag": "SessionTimeout", "path": "*rep.Session-Timeout", "type": "*variable",
"value": "~*cgrep.MaxUsage{*duration_seconds}", "mandatory": true}, "value": "~*cgrep.MaxUsage{*duration_seconds}",
"filters": ["*notempty:~*cgrep.MaxUsage:"]},
{"tag": "AcctInterimInterval", "path": "*rep.Acct-Interim-Interval", {"tag": "AcctInterimInterval", "path": "*rep.Acct-Interim-Interval",
"type": "*constant", "value": "60"}, "type": "*constant", "value": "60"},
{"tag": "FramedIPAddress", "path": "*rep.Framed-IP-Address", "type": "*variable", {"tag": "FramedIPAddress", "path": "*rep.Framed-IP-Address", "type": "*variable",

View File

@@ -1,4 +1,5 @@
#Tenant,Account,ActionPlanId,ActionTriggersId,AllowNegative,Disabled #Tenant,Account,ActionPlanId,ActionTriggersId,AllowNegative,Disabled
cgrates.org,test,AP_PPPOE_INIT,,,
cgrates.org,pppoe_user1,AP_PPPOE_INIT,,, cgrates.org,pppoe_user1,AP_PPPOE_INIT,,,
cgrates.org,pppoe_user2,AP_PPPOE_INIT,,, cgrates.org,pppoe_user2,AP_PPPOE_INIT,,,
cgrates.org,pppoe_user3,AP_PPPOE_INIT,,, cgrates.org,pppoe_user3,AP_PPPOE_INIT,,,
1 #Tenant Account ActionPlanId ActionTriggersId AllowNegative Disabled
2 cgrates.org test AP_PPPOE_INIT
3 cgrates.org pppoe_user1 AP_PPPOE_INIT
4 cgrates.org pppoe_user2 AP_PPPOE_INIT
5 cgrates.org pppoe_user3 AP_PPPOE_INIT

View File

@@ -1,5 +1,11 @@
#Tenant,ID,Contexts,FilterIDs,ActivationInterval,AttributeFilterIDs,Path,Type,Value,Blocker,Weight #Tenant,ID,Contexts,FilterIDs,ActivationInterval,AttributeFilterIDs,Path,Type,Value,Blocker,Weight
# PPPoE user credentials and RADIUS reply attributes # PPPoE user credentials and RADIUS reply attributes
# User: test - Test user for MikroTik PPPoE
cgrates.org,ATTR_PPPOE_TEST,*sessions,*string:~*req.Account:test,,,,,,false,20
cgrates.org,ATTR_PPPOE_TEST,,,,,*req.Password,*constant,test,,
cgrates.org,ATTR_PPPOE_TEST,,,,,*req.RequestType,*constant,*prepaid,,
cgrates.org,ATTR_PPPOE_TEST,,,,,*req.MikrotikRateLimit,*constant,10M/10M,,
# User: pppoe_user1 - 10Mbps plan with static IP # User: pppoe_user1 - 10Mbps plan with static IP
cgrates.org,ATTR_PPPOE_USER1,*sessions,*string:~*req.Account:pppoe_user1,,,,,,false,20 cgrates.org,ATTR_PPPOE_USER1,*sessions,*string:~*req.Account:pppoe_user1,,,,,,false,20
cgrates.org,ATTR_PPPOE_USER1,,,,,*req.Password,*constant,SecurePass123,, cgrates.org,ATTR_PPPOE_USER1,,,,,*req.Password,*constant,SecurePass123,,
1 #Tenant,ID,Contexts,FilterIDs,ActivationInterval,AttributeFilterIDs,Path,Type,Value,Blocker,Weight
2 # PPPoE user credentials and RADIUS reply attributes
3 # User: test - Test user for MikroTik PPPoE
4 cgrates.org,ATTR_PPPOE_TEST,*sessions,*string:~*req.Account:test,,,,,,false,20
5 cgrates.org,ATTR_PPPOE_TEST,,,,,*req.Password,*constant,test,,
6 cgrates.org,ATTR_PPPOE_TEST,,,,,*req.RequestType,*constant,*prepaid,,
7 cgrates.org,ATTR_PPPOE_TEST,,,,,*req.MikrotikRateLimit,*constant,10M/10M,,
8 # User: pppoe_user1 - 10Mbps plan with static IP
9 # User: pppoe_user1 - 10Mbps plan with static IP cgrates.org,ATTR_PPPOE_USER1,*sessions,*string:~*req.Account:pppoe_user1,,,,,,false,20
10 cgrates.org,ATTR_PPPOE_USER1,*sessions,*string:~*req.Account:pppoe_user1,,,,,,false,20 cgrates.org,ATTR_PPPOE_USER1,,,,,*req.Password,*constant,SecurePass123,,
11 cgrates.org,ATTR_PPPOE_USER1,,,,,*req.Password,*constant,SecurePass123,, cgrates.org,ATTR_PPPOE_USER1,,,,,*req.RequestType,*constant,*prepaid,,

View File

@@ -1,5 +1,6 @@
#Tenant,Category,Subject,ActivationTime,RatingPlanId,RatesFallbackSubject #Tenant,Category,Subject,ActivationTime,RatingPlanId,RatesFallbackSubject
# PPPoE users with time-based billing # PPPoE users with time-based billing
cgrates.org,generic,test,2024-01-01T00:00:00Z,RP_DATA_TIME,
cgrates.org,generic,pppoe_user1,2024-01-01T00:00:00Z,RP_DATA_TIME, cgrates.org,generic,pppoe_user1,2024-01-01T00:00:00Z,RP_DATA_TIME,
cgrates.org,generic,pppoe_user2,2024-01-01T00:00:00Z,RP_DATA_TIME, cgrates.org,generic,pppoe_user2,2024-01-01T00:00:00Z,RP_DATA_TIME,
cgrates.org,generic,pppoe_user3,2024-01-01T00:00:00Z,RP_DATA_TIME, cgrates.org,generic,pppoe_user3,2024-01-01T00:00:00Z,RP_DATA_TIME,
1 #Tenant,Category,Subject,ActivationTime,RatingPlanId,RatesFallbackSubject
2 # PPPoE users with time-based billing
3 cgrates.org,generic,test,2024-01-01T00:00:00Z,RP_DATA_TIME,
4 cgrates.org,generic,pppoe_user1,2024-01-01T00:00:00Z,RP_DATA_TIME,
5 cgrates.org,generic,pppoe_user2,2024-01-01T00:00:00Z,RP_DATA_TIME,
6 cgrates.org,generic,pppoe_user3,2024-01-01T00:00:00Z,RP_DATA_TIME,