ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: Inet-Admins
Inet-Admins mailing list archive (inet-admins@info.east.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [inet-admins] MS Windows <-> linux pppd



Hello Alexander,

December 13, 2001, 01:53:03, you wrote:

AVA>                 Hello!

AVA>         Кто может посоветовать решение одной очень
AVA> странной проблемы: при установлении удаленного соединения,
AVA> windows присылает введенный login в виде "DOMAIN\\login".
AVA> Причем, если у пользователя поле домен в настройках сети
AVA> пустое, то присылается просто "login". Но тоже не всегда.
AVA> Иногда, начинает присылаться пробел в имени домена, например
AVA> " \\login". Помогает удаление этого соединения, и создание
AVA> нового с нуля. Причем абонент клянется и божится, что "ничего
AVA> не трогал, оно само...". В лабораторных условиях выяснилось много
AVA> интересного про этот эффект в разных версиях виндов, но легче
AVA> от этого не стало.
AVA>         Проявляется ли эта проблема еще у кого-нибудь, и как
AVA> решается? Очень не хочется размножать записи в chap-secrets для
AVA> каждого возможного написания логина...
Иногда решается снятием галки с Logon to network, а для неизлучимых
пациентов типа NT/Win2k,ME/XP  & VPN a-la PPTP вот патч.
Option chapms-nodomain.
Подходит с 2.3.8-2.3.11 & imho 2.4.x


--- ppp-2.3.11/pppd/auth.c.orig Mon Aug  7 15:18:26 2000
+++ ppp-2.3.11/pppd/auth.c      Mon Aug  7 15:20:07 2000
@@ -245,6 +245,8 @@ option_t auth_options[] = {
       "Refuse MSCHAP-v2 authentication" },
     { "-chapms-v2", o_special_noarg, nochapms_v2,
       "Refuse MSCHAP-v2 authentication" },
+    { "chapms-nodomain", o_bool, &chapms_nodomain,
+      "Do not use MS Domain prefix in username, clean it out", 1 },
 #endif
     { "name", o_string, our_name,
       "Set local name for authentication",
--- ppp-2.3.11/pppd/chap.c.orig Mon Aug  7 15:12:14 2000
+++ ppp-2.3.11/pppd/chap.c      Mon Aug  7 15:18:22 2000
@@ -408,6 +408,7 @@ ChapReceiveChallenge(cstate, inp, id, le
     u_char *rchallenge;
     int secret_len;
     char secret[MAXSECRETLEN];
+    char *rcl_name;
     char rhostname[256];
     MD5_CTX mdContext;
     u_char hash[MD5_SIGNATURE_SIZE];
@@ -444,6 +445,16 @@ ChapReceiveChallenge(cstate, inp, id, le
                   rhostname));
     }
 
+     /* Clean out MS NT Domain\\ from username  
+                               addon patch by SysMan@sysman.net */
+
+     if( (rcl_name = strrchr(rhostname,'\\')) != (char *) NULL && 
+               chapms_nodomain ) 
+     {
+       rcl_name++;
+       strlcpy(rhostname, rcl_name, sizeof(rhostname));
+     }
+ 
     /* get secret for authenticating ourselves with the specified host */
     if (!get_secret(cstate->unit, cstate->resp_name, rhostname,
                    secret, &secret_len, 0)) {
@@ -517,6 +528,7 @@ ChapReceiveResponse(cstate, inp, id, len
     u_char *remmd, remmd_len;
     int secret_len, old_state;
     int code;
+    char *rcl_name;
     char rhostname[256];
     MD5_CTX mdContext;
     char secret[MAXSECRETLEN];
@@ -565,6 +577,16 @@ ChapReceiveResponse(cstate, inp, id, len
        len = sizeof(rhostname) - 1;
     BCOPY(inp, rhostname, len);
     rhostname[len] = '\000';
+
+     /* Clean out MS NT Domain\\ from username  
+                               addon patch by SysMan@sysman.net */
+
+     if( (rcl_name = strrchr(rhostname,'\\')) != (char *) NULL && 
+               chapms_nodomain ) 
+     {
+       rcl_name++;
+       strlcpy(rhostname, rcl_name, sizeof(rhostname));
+     }
 
     /*
      * Get secret for authenticating them with us,
--- ppp-2.3.11/pppd/chap_ms.c.orig      Mon Aug  7 15:05:46 2000
+++ ppp-2.3.11/pppd/chap_ms.c   Mon Aug  7 15:08:01 2000
@@ -79,11 +79,15 @@ static void ChapMS_NT __P((char *, int, 
 #ifdef MSLANMAN
 static void    ChapMS_LANMan __P((char *, int, char *, int, MS_ChapResponse *));
 #endif
-
 #ifdef MSLANMAN
 bool   ms_lanman = 0;          /* Use LanMan password instead of NT */
                                /* Has meaning only with MS-CHAP challenges */
 #endif
+#ifdef CHAPMS
+bool  chapms_nodomain = 0;     /* Clean out MS NT domain from username 
+                                                     in chapms authorization */
+#endif 
+
 
 static void
 ChallengeResponse(challenge, pwHash, response)
--- ppp-2.3.11/pppd/pppd.h.orig Mon Aug  7 15:11:21 2000
+++ ppp-2.3.11/pppd/pppd.h      Mon Aug  7 15:11:54 2000
@@ -226,6 +226,9 @@ extern struct       bpf_program active_filter;
 extern bool    ms_lanman;      /* Use LanMan password instead of NT */
                                /* Has meaning only with MS-CHAP challenges */
 #endif
+#ifdef CHAPMS
+extern bool    chapms_nodomain;        /* strip MS NT domain from chap username */
+#endif
 
 extern char *current_option;   /* the name of the option being parsed */
 extern int  privileged_option; /* set iff the current option came from root */
 




-- 
Best regards,
 Alex                            mailto:sysman@iem.gov.lv
================================================
     Network and Computer security officer.
         Ministry of interior affairs.
Phones: +371-7208258,7208204   Mobile: +371-9208665


=============================================================================
"inet-admins" Internet access mailing list. Maintained by East Connection ISP.
Mail "unsubscribe inet-admins" to Majordomo@info.east.ru if you want to quit.
Archive is accessible on http://info.east.ru/rus/inetadm.html



 




Copyright © Lexa Software, 1996-2009.