답변1
즉,
- 대신 비밀번호 해시 형식을 지정해야 합니다
Cleartext-Password
. - 비밀번호 로깅을 방지하려면
auth_goodpass
및 'no'를 설정해야 합니다 .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_goodpass
및 선택 항목을 찾으세요 .auth_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 솔트된 비밀번호를 생성하기 위해 github에서 다음 스크립트를 사용했습니다(비밀번호와 솔트를 변경하려면 마지막 2줄을 편집해야 합니다).https://gist.github.com/bestrocker221/f506eee8ccadc60cab71d5f633b7cc07