Ключевые слова:chap, pptp, crypt, ppp, (найти похожие документы)
From: rust
Date: Wed, 2 Jan 2006 18:21:07 +0000 (UTC)
Subject: MS-CHAP авторизация и шифрованные пароли в базе.
Оригинал: http://nibs.net.ua:81/forum/read.php?f=3&i=3800&t=3800&v=f
> MS-CHAP авторизация. Возможно ли хранить шифрованные пароли в базе ?
pptpd+ pppd 2.4.2 + mppe + freeradius + portslave
Уже два года работает все нормально.
Паролей в palintext нет в базе.
Для диалапщиков PAP пароли
Для VPN - хеши CHAP -создаем через утилитку smbencrypt
Она лежит уже два года в /freeradius/src/modules/rlm_mschap/
[root@gate rlm_mschap]# ./smbencrypt qwe
LM Hash NT Hash
-------------------------------- --------------------------------
7E4A072A9B79B2C4AAD3B435B51404EE 117C45B86F0EB51467D24AF3C306298A
Правим её немного, что бы выдавало только NT хеш вот так
[root@gate rlm_mschap]# smbencrypt qwe
117C45B86F0EB51467D24AF3C306298A
Патч:
--- smbencrypt.c.orig Wed Mar 17 11:42:24 2004+ smbencrypt.c Wed Mar 17 11:43:06 2004
@@ -70,8 +70,6 @@
char ntpass[33];
char lmpass[33];
- fprintf(stderr, "LM Hash \tNT Hash\n");
- fprintf(stderr, "--------------------------------\t--------------------------------\n");
fflush(stderr);
for (i = 1; i < argc; i++ ) {
l = strlen(password);
@@ -80,7 +78,7 @@
tohex (hash, 16, lmpass);
ntpwdhash (hash, argv);
tohex (hash, 16, ntpass);
- printf("%s\t%s\n", lmpass, ntpass);
+ printf("%s\n", ntpass);
}
return 0;
}
Делаем make
Кидаем в /usr/sbin/smbencrypt
Вставлять можно в mysql скриптом (отрывок из рабочего скрипта) так
if(!strcmp($auth,"CHAP"))
{
$ntpass=exec("smbencrypt $userpass1");
$query="insert into radcheck (UserName, Attribute, Value, Op) values ('$username1','NT-Password','$ntpass',':=','$ntpass')";
}
else /* PAP */
{
$query="insert into radcheck (UserName, Attribute, Value, Op) values ('$username1','Crypt-Password',encrypt('$userpass1'),':=')";
}
$result=mysql_query($query);
> А если изначально, давным-давно пароли были заведены под PAP, спустя
> много лет переведены в базу в неизменном виде. И давно есть желание -
> переделать все это под MS-CHAPv2. Я так понимаю, без напрягания
> пользователей сделать это невозможно? А вот напрягать и не хочется - их
> слишком много. Как выкручиваться?
единственный и РЕАЛЬНЫЙ как по мне способ
это включать полный debug и вылавливать в логах login/password
других способов я - невижу....