So verschlüsseln Sie das Benutzerkennwort in Freeradius

So verschlüsseln Sie das Benutzerkennwort in Freeradius

Ich habe vor Kurzem einen Freeradius-Server eingerichtet und möchte das derzeit im Klartext vorliegende Benutzerkennwort in der Datei /etc/freeradius/3.0/users in ein verschlüsseltes ändern.

So sieht es auf dem Server aus.

Bildbeschreibung hier eingeben

Wenn ich mich beim Server authentifiziere, kann ich den Benutzernamen und das Passwort in der /var/log/freeradius/radius.logDatei sehen. Wie kann ich es verschlüsseln? Ich verwende Debian.

Bildbeschreibung hier eingeben

Antwort1

Zusamenfassend,

  1. Sie müssen ein Passwort-Hash-Format anstelle von angeben Cleartext-Passwordund
  2. Sie müssen auth_goodpassund auth_badpassauf „Nein“ setzen, um die Protokollierung von Passwörtern zu verhindern.

Angeben eines Hash-Formats

Wie in derrlm_pap man-Seitegibt es eine Reihe von Passwort-Hash-Einstellungen, die anstelle von verwendet werden können Cleartext-Password. Betrachten wir ein einfaches Beispiel MD5-Password:

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

Sie können ganz einfach einen MD5-Passwort-Hash wie folgt generieren:

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

Wenn wir dies mit unserem Server testen, sehen wir, dass es authentifiziert wird:

$ 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"

Sie können Ihren Hash auch mit der allgemeinen Password-With-HeaderOption angeben:

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

Dies hat die gleiche Wirkung wie die MD5-PasswordVersion. Die Liste der akzeptierten Header befindet sich auf dieserrlm_papManpage.

Einer der interessantesten verfügbaren Header ist , Crypt-Passwordweil er Passwort-Hashes durch libcrypt laufen lässt und daher mit allen Hashes funktioniert, die Sie in finden /etc/shadow. Auf einem Debian-System hasht yescrypt beispielsweise:

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

(Das Passwort lautet in diesem Fall a38sgena)

Deaktivieren der Protokollierung von Passwörtern

Um die Protokollierung von Passwörtern zu deaktivieren, suchen Sie in der Datei nach den folgenden auth_goodpassund Auswahlmöglichkeiten:auth_badpassradiusd.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

Stellen Sie sicher, dass diese auf „Nein“ eingestellt sind. Dann werden in Ihrer Protokollierung keine Passwörter mehr aufgenommen.

Antwort2

Hier ist die Liste der Attribute, die der Hashing-Methode entsprechen: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

Vergessen Sie nicht, dass das Protokoll und die Methode, die Sie zur Authentifizierung Ihres Clients verwenden, Einfluss darauf haben, welche Hashing-Methode Sie verwenden können.

Sie finden eine Tabelle, die ich zur Konfiguration meines Freeradius-Servers hinsichtlich Protokoll- und Kennwortkompatibilität verwendet habe:http://deployingradius.com/documents/protocols/compatibility.html

Protokoll- und Passwortkompatibilität

Um ein mit SHA256 gesalzenes Passwort zu generieren, habe ich das folgende Skript auf GitHub verwendet (Sie müssen die letzten beiden Zeilen bearbeiten, um das Passwort und das Salt zu ändern):https://gist.github.com/bestrocker221/f506eee8ccadc60cab71d5f633b7cc07

verwandte Informationen