AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[freeradius](server)

Martin Hope
TNM
Asked: 2024-03-15 18:20:22 +0800 CST

Freeradius:将属性从模块启动的虚拟服务器传递到主服务器

  • 5

我目前在一个问题上停留了相当长一段时间。我们有一个 freeradius 服务器,可以处理来自计算机的 eap_tls 请求和电话的 mab 身份验证。为了实现这一目标,我们创建了一个主服务器(sites-enabled/freerad)。它工作正常并能够正确验证用户身份,但我们想要详细记录信息,这就是问题开始的地方。

您会看到,记录访问接受请求很简单,因为只有一种方法可以成功验证用户身份,但是有不止一种方法可以拒绝它们(我们有证书黑名单、正则表达式匹配、Idap 身份验证以及在同一请求中使用的其他内容) )。我们想知道用户被拒绝的确切原因。

我计划的方法是根据拒绝用户的内容将属性的值 (control:Tmp- String-1) 设置为消息。该属性的值在虚拟服务器 (sites-enabled/check-eap-tls) 中给出,它本身由 eap 模块调用作为 tls 虚拟服务器(我们希望它只处理一次请求)。然后,我们的 linelog 模块应该获取该值并使用它来形成日志,从而将失败的确切原因传输到日志中。

日志行模块在该属性中找不到任何值。此外,主服务器也没有找到任何内容。我测试了在主服务器的授权部分设置属性,它确实有效,但是我无法根据拒绝的确切原因设置错误消息,因为这个原因是在 check-eap-tls 服务器中定义的。避免这种情况的一种方法是将属性从虚拟服务器 check-eap-tls 传递到主服务器。我在网上查了一下,找不到任何相关信息,因此请求您的帮助。

这是我的主服务器的配置:

    listen {
                type = "auth"
                ipaddr = 192.168.64.164
                port = 1819
    }

        authorize {

                rewrite_calling_station_id_dot

                if ( &User-Name == "bob") {
                        update control {
                                &Auth-Type := eap
                        }
                }

                else {

                        ldap-phone
                        if (ok) {
                                        update control {
                                                &Tmp-String-0 = "ok"
                                        }
                        }

                        elsif (notfound) {
                                        update control {
                                                &Tmp-String-0 = "notfound"
                                        }
                        }

                        else {
                                        update control {
                                                &Tmp-String-0 = "fail"
                                        }
                        }

                        update control {
                                &Auth-Type := ldap-phone
                        }
                }
        }

        authenticate {

                Auth-Type eap {
                        eap
                }

                Auth-Type ldap-phone {
                        if (&control:Tmp-String-0 == "ok") {
                                update reply {
                                        &cisco-avpair := "device-traffic-class=voice"
                                }
                                accept
                        }
                        elsif (&control:Tmp-String-0 == "notfound") {
                                update control {
                                &Tmp-String-1 := "Invalid User"
                                }
                                reject
                        }
                        else {
                                update control {
                                &Tmp-String-1 := "Error ldap-phone module Failed"
                                }
                                reject
                        }
                }
        }

        post-auth {

                Post-Auth-Type Reject {
                        update reply {
                                &Tunnel-Private-Group-Id := 105
                                &Tunnel-Type := 13
                                &Tunnel-Medium-Type := 6
                        }

                        auth_log
                        linelog_access
                        remove_reply_message_if_eap
                }

                Post-Auth-Type Accept {
                        update control {
                                &Tmp-String-1 := "Login OK"
                        }       
                                
                        auth_log
                        linelog_access
                        remove_reply_message_if_eap
                }

                auth_log
                linelog_access
                remove_reply_message_if_eap
        }
}

以下是由 eap 模块作为 tls 服务器启动的 check-eap-tls 虚拟服务器的配置:

server check-eap-tls {

        authorize {

                #CHECK IF MATCH WITH BLACKLIST

                CN-blacklist
                if (ok) {
                        update control {
                                &Auth-Type := Reject
                                &Tmp-String-1 := "Invalid Certificate"
                        }
                }

                #CHECK IF MATCH WITH REGEXP

                elsif !("%{TLS-Client-Cert-Common-Name}" =~ /^[A-z.]*@example\.org/) {
                        update control {
                                &Auth-Type := Reject
                                &Tmp-String-1 := "Invalid Certificate"
                        }
                }

                #CHECK IF MATCH WITH MAC

                else {
                        ldap-vlan
                        if (updated) {
                                update control {
                                        &Auth-Type := Accept
                                }
                        }
                        elsif (notfound) {
                                update control {
                                        &Auth-Type := Reject
                                        &Tmp-String-1 := "Invalid User"
                                }
                        }
                        else {
                                update control {
                                        &Auth-Type := Reject
                                        &Tmp-String-1 := "Error ldap-vlan module Failed"
                                }
                        }
                }
        }

        post-auth {
                update reply {
                        &Tunnel-Type := 13
                        &Tunnel-Medium-Type := 6
                }
        }
}

这是测试连接的调试输出。它是故意被拒绝的(证书已被列入黑名单)。请注意,这只是请求的最后一个数据包,因为它是这种情况下唯一重要的数据包:

注意:我无法发布完整的调试日志,无论哪种方式,这都表明 linelog 确实正在运行,只是没有获取属性的值并将其默认为“未知”字符串

(7) linelog_access: EXPAND messages.%{%{reply:Packet-Type}:-default}
(7) linelog_access:    --> messages.Access-Reject
(7) linelog_access: EXPAND %t : Auth: (8 CHIFFRES) %{%{control:Tmp-String-1}:-unknown}: [%{%{User-Name}:-unknown}] (from client %{%{control:Client-Shortname}:-unknown} port %{%{NAS-Port}:-unknown} cli %{%{Calling-Station-Id}:-unknown})
(7) linelog_access:    --> Fri Mar 15 10:57:11 2024 : Auth: (8 CHIFFRES) unknown: [bob] (from client test port REDACTED cli REDACTED)
(7) linelog_access: EXPAND /var/log/freeradius/linelog-access
(7) linelog_access:    --> /var/log/freeradius/linelog-access
(7)     [linelog_access] = ok

这是用于生成日志的 linelog_access 模块的配置:

linelog linelog_access {
        #
        #  Used if the expansion of "reference" fails.
        #
        delimiter = "\n"

        format = ""

        filename = ${logdir}/linelog-access

        permissions = 0600

        reference = "messages.%{%{reply:Packet-Type}:-default}"

        messages {
                Access-Accept = "%t : Auth: (8 CHIFFRES) %{%{control:Tmp-String-1}:-unknown}:>
                Access-Reject = "%t : Auth: (8 CHIFFRES) %{%{control:Tmp-String-1}:-unknown}:>
                default = "%t : Auth: (8 CHIFFRES) %{%{control:Tmp-String-1}:-unknown}: [%{%{>
                Access-Challenge = "%t - Sent challenge: %{User-Name} ;"
        }

}

最后,这是linelog产生的日志:

Fri Mar 15 10:57:11 2024 : Auth: (8 CHIFFRES) unknown: [bob] (from client test port REDACTED cli REDACTED)

应该是这样的:

Fri Mar 15 10:57:11 2024 : Auth: (8 CHIFFRES) Invalid Certificate: [bob] (from client test port REDACTED cli REDACTED)

另请注意,这是我第一次发表此类帖子。对于给您带来的不便,我深表歉意。

freeradius
  • 1 个回答
  • 28 Views
Martin Hope
another_netadmin
Asked: 2022-09-01 05:54:09 +0800 CST

FreeRADIUS / Active Directory / 计算机身份验证

  • 1

我正在寻找一种简单的转弯方式:

User-Name = "host/DESKTOP-F6E023D.msad.domain.net" 

到以下:

Stripped-User-Name := DESKTOP-F6E023D$
realm := msad.domain.net

在我的虚拟服务器配置中,我使用 unlang 完成了以下操作:

if ( User-Name =~ /^host\/(.*)\.msad\.domain\.net$/i ) {
     update request {
          Stripped-User-Name := "%{1}$"
          realm := "msad.domain.net"        
     }
}

我希望使我的虚拟服务器配置更通用,并处理多个域并将该功能移动到模块/策略中。我试图创建一个策略,但正在努力使用正则表达式来拆分该字符串,以便我可以分配剥离用户名和领域值。任何帮助将不胜感激。

./policy.d/filter

filter_computer_auth {
        if (&User-Name =~ /^host\/(.+)[\.](.*)$/) {
                update request {
                        &Stripped-User-Name := "%{1}$"
                        &realm := "%{2}"
                }
        }
}

产量:

Stripped-User-Name := DESKTOP-F6E023D.msad.cnylab$
realm := net
freeradius
  • 2 个回答
  • 60 Views
Martin Hope
Lasse Michael Mølgaard
Asked: 2022-04-18 12:17:37 +0800 CST

Freeradius 与 dhcp 服务器:调用 perl 模块返回错误

  • 1

这是我之前的问题的延续,即从 Freeradius DHCP 服务器实现结合 Strongswan VPN 服务器发送静态路由。

在使用 tcpdump 和 Wireshark 调试 Freeradius 时,我发现我可以通过向dhcp 服务器配置文件的我的和部分添加DHCP-Classless-Static-Route和DHCP-Site-specific-25(又名 Microsoft 静态路由)选项来从 Freeradius DHCP 服务器发送无类静态路由。DHCP-DiscoverDHCP-Request

但是:如果我将默认网关设置为Strongswan 文档0.0.0.0建议的那样,Microsoft VPN 客户端似乎不接受静态路由。

至少我在使用route print -4.

此外,当我0.0.0.0通过 VPN 接口用作标准网关时,我无法在 Windows 客户端上手动添加路由。

然而:

假设我想192.168.200.0/24通过 VPN 访问子网,我的 VPN 服务器将地址分配192.168.201.2/24给我的 Windows 客户端。然后实际上可以通过使用 windows 命令通过 192.168.201.2 访问子网 192.168.200.0/24 来在 windows 客户端创建静态路由:

route add 192.168.200.0 mask 255.255.255.0 192.168.201.2

我知道它看起来有点奇怪,但我可以 ping192.168.200.0子网上的任何主机,所以只要它有效,我就很高兴。:-)

但是:如果我可以通过从我的 VPN 服务器通告路由而不是在所有 VPN 客户端上手动进行,我会更高兴。:-)

这意味着我必须对 Freeradius 中的 DHCP 配置进行一些动态编程。在我的情况下,这意味着我必须在 DHCP-Discover 和 DHCP-request 中引用 perl 模块,该模块获取分配的客户端 vpn ip 地址,将其转换为八位字节并将其与也以八位字节形式给出的静态路由组合。

一个例子:

子网192.168.200.0/24将被编码为0x18c0a8c8首先编码子网掩码。

客户端192.168.201.2/24将被编码,0xc0a8c902因为它只是将 IP 地址中的每个数字转换为十六进制。

路由的最终编码将是:0x18c0a8c8c0a8c902因为它只是两个字符串的连接。

然后我必须使用update reply以下代码:

  update reply {
    &DHCP-Classless-Static-Route = 0x18c0a8c8c0a8c902
    &DHCP-Site-specific-25 = 0x18c0a8c8c0a8c902
  }

如果还有更多路由,则所有路由将连接成一个长字符串。

棘手的部分:

假设您具有freeradius/3.0/sites-available/dhcp文件中的 Freeradius DHCP 服务器的默认配置。

DHCP-Discover 和 DHCP-Request 文件的一般结构如下:

dhcp DHCP-Request {
  update reply {
    &DHCP-Message-Type = DHCP-Ack
  }

  update reply {
    # General DHCP options, such as default GW, DNS, IP-address lease time etc.
  }

  update control {
    &Pool-Name := "vpn_pool"
  }

  dhcp_sqlippool

  ok
}

然后据我所知,我需要在dhcp_sqlippool被调用之后和返回之前调用我的 perl 模块ok,因为dhcp_sqlippool它是将 ipaddress 分配给 VPN 客户端的模块。

这意味着我的版本将类似于:

dhcp DHCP-Request {
  update reply {
    &DHCP-Message-Type = DHCP-Ack
  }

  update reply {
    # General DHCP options, such as default GW, DNS, IP-address lease time etc.
  }

  update control {
    &Pool-Name := "vpn_pool"
  }

  dhcp_sqlippool

  perl

  # If perl module returned no error
  if(ok) {
    update reply {
      # Perl-Route contains a hex encoded string with all routes.
      &DHCP-Classless-Static-Route = Perl-Route
      &DHCP-Site-specific-25 = Perl-Route      
    }
  }

  # Not sure if this one is needed?
  update reply {
    &DHCP-End-Of-Options = 255
  }

  ok
}

为了使其工作,我必须在freeradius/3.0/mods-enabled文件夹下启用 perl 并修改文件名以freeradius/3.0/mods-enabled/perl将其指向我的 perl 模块。比如:

filename = ${modconfdir}/${.:instance}/dhcp/Options.pm

但是我如何以正确的方式引用对 perl 的调用呢?

我以为我必须启用该行并在我的 perl 模块func_post_auth = post_auth中freeradius/3.0/mods-enabled/perl创建一个sub post_auth部分来处理来自 Freeradius 的调用,但据我在日志中看到的,我在 Freeradius 中收到以下错误:

(8) perl: perl_embed:: module = /etc/freeradius/3.0/mods-config/perl/dhcp/Options.pm , 
func = post_auth exit status= Undefined subroutine &main::post_auth called.
...
(8)     [perl] = fail
(8)   } # dhcp DHCP-Discover = fail

那么我没有看到的是什么?

perl freeradius dhcp-server
  • 1 个回答
  • 108 Views
Martin Hope
btongeorge
Asked: 2022-03-01 09:55:19 +0800 CST

FreeRADIUS 只接受一个用户的任何密码

  • 0

无论用户提交的密码如何,我都需要在 FreeRADIUS 上配置一个用户进行身份验证并生成访问接受。我可以看到如何为所有用户执行此操作,但如何为单个用户执行此操作?

radius freeradius freeradius2
  • 1 个回答
  • 314 Views
Martin Hope
Thomas
Asked: 2022-01-20 00:28:25 +0800 CST

具有混合 CA 的 FreeRadius

  • 1

是否可以使用两个不同的 CA 运行 FreeRadius(版本 3.0.13)?所以我有一个来自一个 CA 的服务器证书,而客户端证书来自另一个 CA?

我们当前的设置/etc/raddb/mods-enabled/eap看起来有点像:

...
tls-config tls-common {
  certificate_file = ${certdir}/server.pem  # certificate only from CA ONE
  ca_file = ${cadir}/ca.pem                 # complete chain from CA TWO
  auto_chain = no
  ca_path = ${cadir}                        # contains all certs/complete chains from both CAs
}
...

这是我在日志中看到的错误:

Mon Dec 20 13:15:30 2021 : ERROR: (352) eap_tls: ERROR: TLS Alert read:fatal:unknown CA
Mon Dec 20 13:15:30 2021 : ERROR: (352) eap_tls: ERROR: TLS_accept: Failed in error
Mon Dec 20 13:15:30 2021 : ERROR: (352) eap_tls: ERROR: Failed in __FUNCTION__ (SSL_read)

一旦客户端和服务器从同一个 CA 获得证书,一切正常。

那么服务器和客户端是否可以有不同的 CA?如果是,我需要做什么才能完成这项任务?

certificate certificate-authority pki freeradius
  • 1 个回答
  • 230 Views
Martin Hope
user161458
Asked: 2022-01-19 07:04:28 +0800 CST

freeradius 和 openldap:vlan 归属与 radtest 一起使用,但不适用于 wpa_supplicant

  • 0

我的服务 freeradius 和 openldap 都在同一台服务器上。模式 Freeradius 被加载到 openldap 中。

我将radiusProfileDN用户配置为链接到组。在这个组中,我已经radiusReplyAttribute设置了vlan的信息。

  • radtest当我在本地(或从远程且已通过身份验证的客户端)使用该命令时,我收到一个包含 vlan 信息的 Access-Accept 数据包(半径协议)。Wireshark 捕获显示数据包中的 vlan 信息。
  LDAP + Radius                      LDAP + Radius ----- Switch ----- Client
    <--------                              <-----------------------------
    -------->              or              ----------------------------->
   *vlan info*                                       *vlan info*
  • 当我使用该工具wpa_supplicant(peap-gtc 协议)时,我成功进行了身份验证,但客户端端口未添加到 vlan 组。Wireshark 捕获显示交换机和 Radius 服务器之间交换的 Access-Accept 数据包中没有 vlan 信息。
LDAP + Radius ----- Switch ----- Client
  <------------------    <----------
  ------------------>    ---------->
    *no vlan info*      wpa_supplicant

从 openldap 的日志中,使用 radtest 或 wpa_supplicant 进行身份验证的步骤相同:

  1. 'mygroup' 上的 radiusReplyAttribute 允许读取访问权限
  2. 结果在缓存中(radiusReplyAttribute)
  3. send_search_entry 退出
  4. send_ldap_result & send_ldap_response

在 ldap 服务器中,我尝试将 vlan 信息直接放在用户中,或者放在已经为 vlan 信息制作的“变量”中,但我得到了相同的结果。

你知道我的问题来自哪里吗?它似乎与 wpa_supplicant 使用不同的协议有关,而不是 radtest 命令和 freeradius (也许我错过了配置中的一行)?

vlan openldap freeradius
  • 1 个回答
  • 205 Views
Martin Hope
Lasse Michael Mølgaard
Asked: 2021-05-23 15:27:48 +0800 CST

如何设置代理半径服务器 (FreeRadius 3)

  • 0

我正在尝试设置一个代理 Freeradius 服务器,将所有请求转发到另一个 Freeradius 服务器。

参考如下图:

通过 VPN 的代理半径服务器

此设置的原因是我希望用户通过 VPN 连接到本地 LAN,但由于 ISP 的 NAT 实施,本地站点无法访问。

但是,我能够建立从本地 LAN 到 VPN 服务器的 site2site VPN 连接,因此我希望用户能够通过公共 VPN 服务器与本地网络建立 VPN 连接,前提是他们是本地网络上的有效用户.

我有一个在本地 LAN 上运行的 Freeradius 服务器,可以根据数据库验证用户 - 这部分工作正常。

配置VPN服务器端

据我了解,我唯一需要在服务器上修改的是文件proxy.conf。

假设登录 VPN 的用户名在表单上,[email protected]​​那么我只需将以下条目添加到proxy.conf:

realm example.com {
    type = radius
    secret = VeryS3cretPassw0rd

    authhost = local-radius.example.com:1812
    accthost = local-radius.example.com:1813

    nostrip
}

该nostrip条目确保代理请求不会@从用户名中删除 -postfix。

我还需要将以下内容添加到/etc/hosts:

   # VPN Address of local-radius.example.com
 
   192.168.100.2   local-radius.example.com

配置本地radius服务器端

在本地半径服务器上,我需要更新client.conf,以便对本地半径服务器和源自 VPN ip 地址的任何查询都是允许的。比如这个条目:

client vpn-net {

        # Allow requests originating from VPN subnet.

        ipaddr          = 192.168.100.0/24
        secret          = VeryS3cretPassw0rd
}

在 VPN 服务器上运行以下命令按预期工作:

radtest -t mschap [email protected] SecretPassword local-radius.example.com:1812 0 VeryS3cretPassw0rd

我收到以下回复:

Sent Access-Request Id 108 from 0.0.0.0:47466 to 192.168.100.2:1812 length 148
        User-Name = "[email protected]"
        MS-CHAP-Password = "SecretPassword "
        NAS-IP-Address = 127.0.1.1
        NAS-Port = 0
        Message-Authenticator = 0x00
        Cleartext-Password = "SecretPassword"
        MS-CHAP-Challenge = ....
        MS-CHAP-Response = ...
Received Access-Accept Id 108 from 192.168.100.2:1812 to 192.168.100.1:47466 length 84
        MS-CHAP-MPPE-Keys = ...
        MS-MPPE-Encryption-Policy = Encryption-Required
        MS-MPPE-Encryption-Types = 4

但是在 VPN 服务器上运行以下命令失败:

radtest -t mschap [email protected] SecretPassword localhost:18120 0 testing123

该命令的输出是:

Sent Access-Request Id 104 from 0.0.0.0:39558 to 127.0.0.1:18120 length 148
        User-Name = "[email protected]"
        MS-CHAP-Password = "SecretPassword"
        NAS-IP-Address = 127.0.1.1
        NAS-Port = 0
        Message-Authenticator = 0x00
        Cleartext-Password = "SecretPassword"
        MS-CHAP-Challenge = ...
        MS-CHAP-Response = ...
Received Access-Reject Id 104 from 127.0.0.1:18120 to 127.0.0.1:39558 length 20
(0) -: Expected Access-Accept got Access-Reject

在 VPN 服务器上运行命令freeradius -X会给出以下输出:

(0) mschap: Found MS-CHAP attributes.  Setting 'Auth-Type  = mschap'
(0)     [mschap] = ok
(0) suffix: Checking for suffix after "@"
(0) suffix: Looking up realm "example.com" for User-Name = "[email protected]"
(0) suffix: Found realm "example.com"
(0) suffix: Adding Realm = "example.com"
(0) suffix: Proxying request from user [email protected] to realm example.com
(0) suffix: Preparing to proxy authentication request to realm "example.com"
(0)     [suffix] = updated
(0) ntdomain: Request already has destination realm set.  Ignoring
(0)     [ntdomain] = noop
(0) eap: No EAP-Message, not doing EAP
(0)     [eap] = noop
(0)     [files] = noop
(0)     [expiration] = noop
(0)     [logintime] = noop
(0)     [pap] = noop
(0)   } # authorize = updated
(0) There was no response configured: rejecting request

在本地网络上监视 freeradius 表明从未从 vpn 服务器调用该服务器,所以我错过了什么?

proxy freeradius freeradius2
  • 1 个回答
  • 3035 Views
Martin Hope
csib
Asked: 2021-02-26 06:05:45 +0800 CST

数据库中已存在用户的 Strongswan 中央身份验证

  • 1

我已经阅读了很多关于将 Strongswan 验证为 SQL/PAM 的内容,但找不到任何想法/解决方案如何针对已经有大量使用 bcrypt+salt 加密的用户名和密码组合的数据库进行身份验证。我不知道明文密码,所以我不明白如何启动它。

我编写了一个自定义 Radius 服务器(使用 pyrad),但它只支持 PAP,这在当今不是一个好的解决方案。所以基本上,通过这个解决方案,我能够实现我的目标,但它真的不安全。在每个客户端中,我都必须禁用 MSCHAPv2 并仅启用 PAP。

我已经为此搜索了几天,但对我来说,如果没有明文密码,似乎不可能对它们进行身份验证。也许我不了解整个过程,但我还没有为我的案例找到任何解决方案。用我的 SQL 数据尝试了 Freeradius,但密码的存储方式与 Freeradius 期望的不同。

你能推荐如何实现这一目标的技术/想法吗?
我想以某种方式对它们进行身份验证。

谢谢!

linux ipsec radius freeradius strongswan
  • 1 个回答
  • 30 Views
Martin Hope
Matthias Wimmer
Asked: 2020-07-23 13:21:56 +0800 CST

FreeRadius 不在调试模式下记录请求

  • 1

抱歉,这里是半径新手……

我尝试获取由 NixOS 打包运行的 FreeRadius 服务器版本 3.0.20,以对 dlink 接入点上的用户进行身份验证。我正在运行启用了调试日志记录的服务器。

我从默认配置开始并遵循入门指南。所以我添加了testing使用testing Cleartext-Password := "password". 我可以确认此身份验证使用radtest testing password 127.0.0.1 0 testing123. 我也将其视为日志文件中的成功登录。– 酷,到目前为止有效。

接下来,我尝试使用相同的用户和密码通过接入点进行身份验证。所以我添加了接入点的IP,并在接入点中clients.conf配置了radius服务器和共享密钥。

client ap2 {
    ipaddr = 192.168.1.32
    secret = testing123
}

尝试进行身份验证时,我看到请求进入 tcpdump,但 FreeRadius 完全忽略了它:没有记录任何内容。

为了交叉检查并验证 radius 服务器不仅在 localhost 上侦听,我添加了另一个非 localhost-client 并radtest再次使用该源 IP:一切仍然有效。

再次检查tcpdump这是工作请求:

192.168.1.144.57243 > 192.168.1.144.1812: [bad udp cksum 0x84d7 -> 0x44fd!] RADIUS, length: 77
    Access-Request (1), id: 0x2c, Authenticator: 106b49030bec802e1bd156ff48e3589a
      User-Name Attribute (1), length: 9, Value: testing
        0x0000: 7465 7374 696e 67
      User-Password Attribute (2), length: 18, Value:
        0x0000: d112 7b01 9c70 9548 d4a1 db33 c648 739e
      NAS-IP-Address Attribute (4), length: 6, Value: 127.0.1.1
        0x0000: 7f00 0101
      NAS-Port Attribute (5), length: 6, Value: 0
        0x0000: 0000 0000
      Message-Authenticator Attribute (80), length: 18, Value: &7u...s..L....|..
        0x0000: 2637 75c2 ead6 73cc d64c ee9f a97c d8d7

这是来自 FreeRadius 的回应:

192.168.1.144.1812 > 192.168.1.144.57243: [bad udp cksum 0x849e -> 0x427b!] RADIUS, length: 20
    Access-Accept (2), id: 0x2c, Authenticator: 750e916c6b56f85eed550088c6cf30fc

相比之下,这是来自 DLink 的请求:

192.168.1.32.36759 > 192.168.1.144.1812: [udp sum ok] RADIUS, length: 103
    Access-Request (1), id: 0x6a, Authenticator: e7e4df28fcd96772ffb508c4df564d
      User-Name Attribute (1), length: 9, Value: testing
        0x0000: 7465 7374 696e 67
      User-Password Attribute (2), length: 18, Value:
        0x0000: a7cb 807f a0dc fdca 8bd4 e19f cbf4 3e79
      Calling-Station-Id Attribute (31), length: 19, Value: 98:f6:21:c0:cc:9d
        0x0000: 3938 3a66 363a 3231 3a63 303a 6363 3a39
        0x0010: 64
      NAS-Identifier Attribute (32), length: 19, Value: c4:e9:0a:21:61:b0
        0x0000: 6334 3a65 393a 3061 3a32 313a 3631 3a62
        0x0010: 30
      NAS-IP-Address Attribute (4), length: 6, Value: 192.168.1.32
        0x0000: c0a8 0120
      NAS-Port-Type Attribute (61), length: 6, Value: Wireless - IEEE 802.11
        0x0000: 0000 0013
      NAS-Port Attribute (5), length: 6, Value: 255
        0x0000: 0000 00ff

FreeRadius 根本没有记录这个请求,也没有发送任何响应。

我可能最想知道的第一件事:为什么 FreeRadius 在记录另一个请求时不记录来自 DLink 接入点的请求?

知道我错过了什么,为什么没有从 FreeRadius 到接入点的响应 UDP 数据包?

一个“奖励”问题:在接入点的 UI 中,身份验证机制称为“SPAP”,但“用户密码属性”看起来像普通的“PAP”身份验证。PAP和SPAP有什么区别?SPAP 代表什么?我找不到任何协议文档。

radius freeradius
  • 1 个回答
  • 826 Views
Martin Hope
eri
Asked: 2020-03-28 05:16:32 +0800 CST

如何使用 Freeradius 从 post-auth 发送日志?

  • 0

我想在 post-auth 部分向远程系统日志发送消息。简单的字符串

"'%{User-Name}', '%{reply:Packet-Type}', '%{Calling-Station-Id}'"

FreeRADIUS 3 怎么做?

或者..

如何按设施或优先级拆分日志?

security syslog freeradius rsyslog
  • 1 个回答
  • 1176 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve