在freeradius radius server中使用SHA1用户密码字段

我有专有的networking应用程序,以sha1 $ 79b2c $ b3704ec5703ef28ded379cf6c6de4c4160aa029b的forms存储用户密码。 这是一个盐腌sha1哈希。

  1. 我也想用freeradius这个预设的信息。 Crypt-Password属性在半径中定义,但AFAIK只是密码的md5散列。 我试过这个,但是这没有按照我的预期工作。 我怎样才能使用相同的ceredentials在freeradiusvalidation用户? 是否可以运行一些脚本并接受其返回值?

  2. 如果我更改专有Web应用程序以保存另一个表单上的用户信用,我应该select与Freeradius兼容吗? 除了Cleartext和MD5。

  • 基于半径证书(eap)authentication
  • OpenWRTdynamicVLAN
  • 在Linux中通过命令行openVPN断开连接
  • Freeradius身份validation失败,原因不明
  • FreeRADIUS 2应该使用与默认不同的Python
  • 如何在freeRADIUS中按用户使用Calling-Station-Id?
  • 2 Solutions collect form web for “在freeradius radius server中使用SHA1用户密码字段”

    我已经find了如何做的问题部分B:

    表单sha1 $ 79b2c $ b3704ec5703ef28ded379cf6c6de4c4160aa029b包含以下部分:sha1 $ SALT $ SALTEDPASSWORD

    在半径,这被命名为SSHA密码参考: http : //www.packtpub.com/article/freeradius-authentication-storing-passwords参考: http ://freeradius.org/radiusd/man/rlm_pap.txt

    1-使用Ref1中的脚本创build一个Salted SHA1散列。 prop-to-ssha.pl UserClearPass SALT

    这个输出可以被认为是属性

    SSHA密码:= OUTPUTOFPERLSCRIPT

    这工作。 我可以自动化我的专有应用程序,并创build用户时创build一个半径密码input。

    对于问题的第一部分,我还没有答案。

    这在Java中工作

    // Salted SHA1 with a random salt appended String salt = UUID.randomUUID().toString().replaceAll("-", ""); hashPass = Base64.encodeBase64String(ArrayUtils.addAll( DigestUtils.sha1(currPass.concat(salt)), salt.getBytes())); 

    你现在可以用'SSHA-Password'属性在RadCheck表中添加'hashPass'。 Base64DigestUtils来自Apache Commons。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.