RADIUS-sever:檢查前先對密碼進行雜湊處理

RADIUS-sever:檢查前先對密碼進行雜湊處理

我確實必須設定一個 RADIUS 伺服器,以便使用 pfSense 的強制入口網站進行身份驗證。不幸的是,RADIUS 資料庫中的所有密碼都使用某種演算法進行雜湊處理。我確實使用 MySQL 資料庫。

由於使用者以明文形式向 RADIUS 伺服器提交密碼,我確實想知道是否可以在 RADIUS 伺服器上對提交的密碼進行雜湊處理,然後檢查使用者名稱和雜湊密碼是否存在。

如果可以避免,我不想在客戶端對密碼進行雜湊處理。 pfSense 的強制入口網站是目前唯一使用 RADIUS 伺服器的應用程式。但如果我想擴展我的基礎設施,我必須在每個客戶端上實作哈希演算法。

通常是否有可能以這種方式修改 RADIUS 伺服器?也許透過修改核心?不幸的是,我不知道在資料庫中查找提交的資料在哪個文件中。

有沒有人給我一些提示,我必須去哪裡看?

(我使用 Ubuntu Server 12.04 x86、freeradius、freeradius-mysql)

答案1

或者,如果您想使用外部 PHP 腳本,您可以將以下內容放入授權中:

authorize {
    update {
        Tmp-String-0 := `/usr/bin/php5 -f /path/to/cpauth.php '%{User-Name}' '%{User-Password}'`
    }

    if (Tmp-String-0 == 'Accept') {
        update control {
            Auth-type := Accept
        }
    }
    else {
        reject
    }
}

然後回顯「接受」或「拒絕」。

答案2

配置 rlm_sql 模組的實例。

新增查詢以authorize {}檢索哈希密碼。

update control {
    <password-attribute> := "%{sql:SELECT password FROM foo_table WHERE user=%{User-Name}}"
}

密碼屬性可以是明文-密碼MD5-密碼SMD5-密碼加密-密碼SHA2-密碼SHA-密碼SSHA-密碼LM-密碼NT-密碼之一。

然後調用該pap模組。 pap 模組應將 Auth-Type 設定為pap,並對使用者密碼值進行雜湊處理,以匹配用於密碼屬性值的方案並進行比較。

相關內容