Freeradius中如何加密使用者密碼

Freeradius中如何加密使用者密碼

我最近設定了一個 freeradius 伺服器,並希望將 /etc/freeradius/3.0/users 檔案中目前以明文形式的使用者密碼變更為加密的。

這就是伺服器上的樣子。

在此輸入影像描述

當我在伺服器上進行身份驗證時,我可以在/var/log/freeradius/radius.log檔案中看到使用者名稱和密碼。我怎樣才能加密?我正在使用Debian。

在此輸入影像描述

答案1

簡而言之,

  1. 您需要指定密碼雜湊格式而不是Cleartext-Password, 和
  2. 您需要將auth_goodpass和設定auth_badpass為“否”以防止記錄密碼。

指定哈希格式

如中所述rlm_pap 手冊頁,有許多密碼哈希設定可以用來代替Cleartext-Password。讓我們舉一個簡單的例子MD5-Password

#bob    Cleartext-Password := "hello"
bob     MD5-Password:= "7d793037a0760186574b0282f2f435e7"
        Reply-Message := "Hello, %{User-Name}"

您可以輕鬆產生 md5 密碼哈希,如下所示:

$ echo -n world | md5sum | awk '{print $1}'
7d793037a0760186574b0282f2f435e7
$

當我們對我們的伺服器進行測試時,我們看到它通過了身份驗證:

$ radtest bob world localhost 1 testing123
Sent Access-Request Id 214 from 0.0.0.0:34920 to 127.0.0.1:1812 length 73
        User-Name = "bob"
        User-Password = "world"
        NAS-IP-Address = 127.0.1.1
        NAS-Port = 1
        Message-Authenticator = 0x00
        Cleartext-Password = "world"
Received Access-Accept Id 214 from 127.0.0.1:1812 to 127.0.0.1:34920 length 32
        Reply-Message = "Hello, bob"

您也可以使用通用選項指定哈希Password-With-Header

#bob    Cleartext-Password := "hello"
bob     Password-With-Header := "{md5}7d793037a0760186574b0282f2f435e7"
        Reply-Message := "Hello, %{User-Name}"

MD5-Password這與該版本具有相同的效果。接受的標頭列表就在上面rlm_pap手冊頁。

最有趣的可用標頭之一是Crypt-Password因為它將通過 libcrypt 運行密碼哈希,因此可以使用您在/etc/shadow.例如,在 Debian 系統上,yescrypt 雜湊值:

bob     Crypt-Password := "$y$j9T$2fOq6bdva3zoX6OfH.JvY0$PbUGbp1U.UXFAnGrkDrYnLZEDK.PXO/HXDsBn4mCsM8"
        Reply-Message := "Hello, %{User-Name}"

(本例中的密碼是a38sgena

停用密碼記錄

若要停用密碼記錄,請在檔案中找到auth_goodpassauth_badpass選擇radiusd.conf

#  Log passwords with the authentication requests.
#  auth_badpass  - logs password if it's rejected
#  auth_goodpass - logs password if it's correct
#
#  allowed values: {no, yes}
#
auth_badpass = no
auth_goodpass = no

確保這些設定為“否”,您的日誌記錄將停止包含密碼。

答案2

以下是與哈希方法對應的屬性列表:https://freeradius.org/radiusd/man/rlm_pap.txt

Header          Attribute           Description
------          ---------           -----------
{clear}         Cleartext-Password  Clear-text passwords
{cleartext}     Cleartext-Password  Clear-text passwords
{crypt}         Crypt-Password      Unix-style "crypt"ed passwords
{md5}           MD5-Password        MD5 hashed passwords
{base64_md5}    MD5-Password        MD5 hashed passwords
{smd5}          SMD5-Password       MD5 hashed passwords, with a salt
{sha}           SHA-Password        SHA1 hashed passwords
                SHA1-Password       SHA1 hashed passwords
{ssha}          SSHA-Password       SHA1 hashed passwords, with a salt
{sha2}          SHA2-Password       SHA2 hashed passwords
{sha224}        SHA2-Password       SHA2 hashed passwords
{sha256}        SHA2-Password       SHA2 hashed passwords
{sha384}        SHA2-Password       SHA2 hashed passwords
{sha512}        SHA2-Password       SHA2 hashed passwords
{ssha224}       SSHA2-224-Password  SHA2 hashed passwords, with a salt
{ssha256}       SSHA2-256-Password  SHA2 hashed passwords, with a salt
{ssha384}       SSHA2-384-Password  SHA2 hashed passwords, with a salt
{ssha512}       SSHA2-512-Password  SHA2 hashed passwords, with a salt
{nt}            NT-Password         Windows NT hashed passwords
{nthash}        NT-Password         Windows NT hashed passwords
{md4}           NT-Password         Windows NT hashed passwords
{x-nthash}      NT-Password         Windows NT hashed passwords
{ns-mta-md5}    NS-MTA-MD5-Password Netscape MTA MD5 hashed passwords
{x- orcllmv}    LM-Password         Windows LANMAN hashed passwords
{X- orclntv}    NT-Password         Windows NT hashed passwords

不要忘記,您用於驗證客戶端身份的協定和方法將影響您可以使用的雜湊方法。

您可以找到我用來設定 Freeradius 伺服器的協定和密碼相容性的表格:http://deployingradius.com/documents/protocols/compatibility.html

協定和密碼相容性

為了產生 sha256 salt 密碼,我在 github 上使用了以下腳本(您需要編輯最後兩行來更改密碼和鹽):https://gist.github.com/bestrocker221/f506eee8ccadc60cab71d5f633b7cc07

相關內容