LINUX.ORG.RU
ФорумAdmin

2McMCC по поводу плагина passmysql...


0

0

Авторизация работает, время от времени возникает такая ошибка:

В виндовом vpn клиенте пишется:
"Ошибка: 737: Обнаружено замыкание на себя"

Вот что в логах:

Aug 27 17:56:59 gateway pptpd[10624]: CTRL: Client 192.168.10.2 control connection started
Aug 27 17:57:01 gateway pptpd[10624]: CTRL: Starting call (launching pppd, opening GRE)
Aug 27 17:57:01 gateway pppd[10631]: Plugin passmysql.so loaded.
Aug 27 17:57:01 gateway pppd[10631]: MySQL plugin initialized.
Aug 27 17:57:01 gateway pptpd[10624]: GRE: Bad checksum from pppd.
Aug 27 17:57:01 gateway pppd[10631]: pppd 2.4.2 started by root, uid 0
Aug 27 17:57:01 gateway pppd[10631]: Using interface ppp5
Aug 27 17:57:01 gateway pppd[10631]: Connect: ppp5 <--> /dev/pts/7
Aug 27 17:57:01 gateway pppd[10631]: Modem hangup
Aug 27 17:57:01 gateway pppd[10631]: Connection terminated.
Aug 27 17:57:02 gateway pppd[10631]: Exit.
Aug 27 17:57:02 gateway pptpd[10624]: CTRL: Client 192.168.10.2 control connection finished
Aug 27 17:57:02 gateway /etc/hotplug/net.agent: assuming ppp5 is already up
Aug 27 17:57:02 gateway /etc/hotplug/net.agent: NET unregister event not supported

anonymous

Надо более полную информацию, просто эта ни о чем не говорит,
включи полный дебаг и смотри на каком этапе слетает... А если
без плагина попробовать, тоже самое будет?

McMCC ★★★
()
Ответ на: комментарий от McMCC

Кстати, было бы неплохо добавить туда вот такой патчик...
--- passmysql.c.orig    2004-08-27 01:42:57.000000000 +0400
+++ passmysql.c 2004-08-27 19:12:33.000000000 +0400
@@ -150,8 +150,11 @@
  char saresponse[MS_AUTH_RESPONSE_LENGTH+1];

  status = conn_db(mhost, muser, mpass, namedb);
-    if(!status)
-       return -1;
+ if(!status)
+ {
+    info("Not connected to MySQL... BYE!!!");
+    return NEW_CHAP_FAILURE;
+ }

  queryz = (char*)malloc(1024);

McMCC ★★★
()
Ответ на: комментарий от McMCC

1. Что-то не хочет debug-ить, добовляю в option.pptp параметр debug, толку ноль.

2. Если убрать плагин, с такой ошибкой не вылетает.

3. Есть такая особенность, при авторизации с помощью плагина в логах постоянно появляется такая строчка:
Unknown CHAP method authentication!!!
При этом авторизация всё равно происходит и всё работает.

З.Ы. Патч выше, добвил.

anonymous
()
Ответ на: комментарий от anonymous

Какая то мистика :-(((

Добился чтоб дебагирил, такими параметрами:
debug
logfile /var/log/ppp.log

Но при этом не хочет вылетать эта ошибка, убираю эти параметры, вылетает, добовляю не хочет вылетать... :-( Непонимаю...

anonymous
()
Ответ на: комментарий от anonymous

Не удалось мне добиться этой ошибки при включенных подробных логах, вот лог нормального подключения:

  2744  Plugin passmysql.so loaded.
  2745  MySQL plugin initialized.
  2746  using channel 352
  2747  Using interface ppp5
  2748  Connect: ppp5 <--> /dev/pts/7
  2749  sent [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0x99f9c804> <pcomp> <accomp>]
  2750  rcvd [LCP ConfReq id=0x0 <magic 0x2a4d5a6e> <pcomp> <accomp> <callback CBCP> <mrru 1614> <endpoint 

[local:47.d0.2d.d1.16.57.4f.9d.ae.1e.cb.cc.47.e9.da.2c.00.00.00.f0]>]
  2751  sent [LCP ConfRej id=0x0 <callback CBCP> <mrru 1614>]
  2752  rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0x99f9c804> <pcomp> <accomp>]
  2753  rcvd [LCP ConfReq id=0x1 <magic 0x2a4d5a6e> <pcomp> <accomp> <endpoint 

[local:47.d0.2d.d1.16.57.4f.9d.ae.1e.cb.cc.47.e9.da.2c.00.00.00.f0]>]
  2754  sent [LCP ConfAck id=0x1 <magic 0x2a4d5a6e> <pcomp> <accomp> <endpoint 

[local:47.d0.2d.d1.16.57.4f.9d.ae.1e.cb.cc.47.e9.da.2c.00.00.00.f0]>]
  2755  sent [LCP EchoReq id=0x0 magic=0x99f9c804]
  2756  sent [CHAP Challenge id=0x1d <18a242d2a9bbed8e85394b417d30d9ab>, name = "gateway"]
  2757  rcvd [LCP code=0xc id=0x2 2a 4d 5a 6e 4d 53 52 41 53 56 35 2e 30 30]
  2758  sent [LCP CodeRej id=0x2 0c 02 00 12 2a 4d 5a 6e 4d 53 52 41 53 56 35 2e 30 30]
  2759  rcvd [LCP code=0xc id=0x3 2a 4d 5a 6e 4d 53 52 41 53 2d 30 2d 41 4e 44 52 45 59]
  2760  sent [LCP CodeRej id=0x3 0c 03 00 16 2a 4d 5a 6e 4d 53 52 41 53 2d 30 2d 41 4e 44 52 45 59]
  2761  rcvd [LCP EchoRep id=0x0 magic=0x2a4d5a6e]
  2762  rcvd [CHAP Response id=0x1d 

<bc043b91309ac947ab30eb6c40e541e60000000000000000a8b40bceeb2c5e2a89894d01625c
2337319aaee9f4eb616300>, name = "andreytest"]
  2763  Unknown CHAP method authentication!!!
  2764  sent [CHAP Success id=0x1d "S=5F959821D0323FA5DFFF97C0921CF52EA830CBD5 M=Access granted"]
  2765  sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 192.168.10.2>]
  2766  rcvd [CCP ConfReq id=0x4 <mppe +H -M +S -L -D +C>]
  2767  sent [CCP ConfReq id=0x1 <mppe -H -M +S -L -D -C>]
  2768  sent [CCP ConfNak id=0x4 <mppe -H -M +S -L -D -C>]
  2769  rcvd [IPCP ConfReq id=0x5 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-wins 0.0.0.0> <ms-dns3 0.0.0.0> <ms-wins 0.0.0.0>]
  2770  sent [IPCP ConfRej id=0x5 <ms-wins 0.0.0.0> <ms-wins 0.0.0.0>]
  2771  rcvd [IPCP ConfRej id=0x1 <compress VJ 0f 01>]
  2772  sent [IPCP ConfReq id=0x2 <addr 192.168.10.2>]
  2773  rcvd [CCP ConfAck id=0x1 <mppe -H -M +S -L -D -C>]
  2774  rcvd [CCP ConfReq id=0x6 <mppe -H -M +S -L -D -C>]
  2775  sent [CCP ConfAck id=0x6 <mppe -H -M +S -L -D -C>]
  2776  MPPE 128-bit stateful compression enabled
  2777  rcvd [IPCP ConfReq id=0x7 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
  2778  sent [IPCP ConfNak id=0x7 <addr 10.1.0.1> <ms-dns1 10.0.0.252> <ms-dns3 10.0.0.253>]
  2779  rcvd [IPCP ConfAck id=0x2 <addr 192.168.10.2>]
  2780  rcvd [IPCP ConfReq id=0x8 <addr 10.1.0.1> <ms-dns1 10.0.0.252> <ms-dns3 10.0.0.253>]
  2781  sent [IPCP ConfAck id=0x8 <addr 10.1.0.1> <ms-dns1 10.0.0.252> <ms-dns3 10.0.0.253>]
  2782  local  IP address 192.168.10.2
  2783  remote IP address 10.1.0.1
  2784  Script /etc/ppp/ip-up started (pid 18288)
  2785  Script /etc/ppp/ip-up finished (pid 18288), status = 0x0

Буду пробовать дальше.

anonymous
()
Ответ на: комментарий от anonymous

>3. Есть такая особенность, при авторизации с помощью плагина в логах 
>постоянно появляется такая строчка: 
>Unknown CHAP method authentication!!! 
>При этом авторизация всё равно происходит и всё работает.

Это похоже моя ошибка:), я забыл break'и поставить..
--- passmysql.c.orig    2004-08-27 01:42:57.000000000 +0400
+++ passmysql.c 2004-08-28 00:55:45.000000000 +0400
@@ -248,8 +251,11 @@
                                  saresponse, "Access granted");
                code = NEW_CHAP_SUCCESS;        /* they are the same! */
         }
+       break;
+
     default:
         info("Unknown CHAP method authentication!!!");
+       break;
  }

  if(code != NEW_CHAP_SUCCESS)

McMCC ★★★
()
Ответ на: комментарий от anonymous

А что думаете на счёт ошибки 737???

Если в файле options.pptp нет строчки logfile /var/log/ppp.log, ошибка происходит на 10-15 попытку соединения, если эта строчка есть, то уже раз 300 или более логинились, ошибки этой не возникет.. :-( Что за странности?

anonymous
()
Ответ на: комментарий от anonymous

>А что думаете на счёт ошибки 737???

Что на этот счет думает $M, мне никак не представляется:), а вот
ловить ее надо в логе pppd, незнаю как, но поймать надо... Может
отсутствующие break'и были виноваты?!

McMCC ★★★
()
Ответ на: комментарий от McMCC

Почему же виндовс виновата.

В логах вот что написано:

Aug 28 01:29:50 gateway pptpd[23654]: GRE: Bad checksum from pppd.

Кстати, вот особенность ещё интересная:
Если мы НЕ включаем плагин passmysql, или в файле option.pptp есть строка "logfile /var/log/ppp.log" с включенным плагином, то в логах нет строки "GRE: Bad checksum from pppd", и поэтому, мне кажется, из ста попыток подключения ни одна не вызывает ошибку...

Если же подключен плагин без строчки "logfile /var/log/ppp.log", то в логах при каждом подключении есть запись "GRE: Bad checksum from pppd" и из десяти попыток подключения одна вызывет ошибку...

anonymous
()
Ответ на: комментарий от anonymous

Это не из-за break, с ним, все симптомы те же, только строчка с "Unknown CHAP method authentication!!!" изчезла.

anonymous
()
Ответ на: комментарий от anonymous

>Почему же виндовс виновата.

Я имел ввиду другое, это их код ошибки...

>Если же подключен плагин без строчки "logfile /var/log/ppp.log", то в
>логах при каждом подключении есть запись "GRE: Bad checksum from
>pppd" и из десяти попыток подключения одна вызывет ошибку...

Т.е., я правильно понимаю, что Bad checksum from pppd возникает
только при той ошибке? Если так, то надо попробовать запустить
pptpd в фоновый режим, и смотреть его сообщения, есть у него
для этого ключик...только не забудь выгрузить демон pptpd перед
этим...


McMCC ★★★
()
Ответ на: комментарий от anonymous

>Это не из-за break, с ним, все симптомы те же, только строчка с
>"Unknown CHAP method authentication!!!" изчезла.

Да это я так:), просто предположил, бывают в жизни разные чудеса:)...

McMCC ★★★
()
Ответ на: комментарий от McMCC

Да правильно поняли...

Дальше что я сделал. Я взял и строчку logfile /var/log/ppp.log в
файле конфигурации написал после описания плагина (до этого она была
первой), в логах появилось "GRE: Bad checksum from pppd" и наконец то
я смог увидеть логи при этой ошибки, правда ничего подозрительного сам я не увидел:

anonymous
()
Ответ на: комментарий от anonymous

  7187  using channel 457
  7188  Using interface ppp0
  7189  Connect: ppp0 <--> /dev/pts/0
  7190  sent [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0x84393f4e> <pcomp> <accomp>]
  7191  rcvd [LCP ConfNak id=0x0 <magic 0x7a7651c8> <auth chap MS-v2>]
  7192  rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0x84393f4e> <pcomp> <accomp>]
  7193  rcvd [LCP ConfReq id=0x1 <magic 0x244b043e> <pcomp> <accomp> <callback CBCP> <mrru 1614> <endpoint [local:47.d0.2d.d1.16.57.4f.9d.ae.1e.cb.cc.47.e9.da.2c.00.00.00.4b]>]
  7194  sent [LCP ConfRej id=0x1 <callback CBCP> <mrru 1614>]
  7195  rcvd [LCP ConfReq id=0x2 <magic 0x244b043e> <pcomp> <accomp> <endpoint [local:47.d0.2d.d1.16.57.4f.9d.ae.1e.cb.cc.47.e9.da.2c.00.00.00.4b]>]
  7196  sent [LCP ConfAck id=0x2 <magic 0x244b043e> <pcomp> <accomp> <endpoint [local:47.d0.2d.d1.16.57.4f.9d.ae.1e.cb.cc.47.e9.da.2c.00.00.00.4b]>]
  7197  sent [LCP EchoReq id=0x0 magic=0x84393f4e]
  7198  sent [CHAP Challenge id=0x4 <6a23441bd135be325f99fb916b2f9fb3>, name = "gateway"]
  7199  rcvd [LCP code=0xc id=0x3 24 4b 04 3e 4d 53 52 41 53 56 35 2e 30 30]
  7200  sent [LCP CodeRej id=0x2 0c 03 00 12 24 4b 04 3e 4d 53 52 41 53 56 35 2e 30 30]
  7201  rcvd [LCP code=0xc id=0x4 24 4b 04 3e 4d 53 52 41 53 2d 30 2d 41 4e 44 52 45 59]
  7202  sent [LCP CodeRej id=0x3 0c 04 00 16 24 4b 04 3e 4d 53 52 41 53 2d 30 2d 41 4e 44 52 45 59]
  7203  rcvd [LCP EchoRep id=0x0 magic=0x244b043e]
  7204  rcvd [CHAP Response id=0x4 <598d16d066838708c59431e2e95a4bf700000000000000006cf7f855fb36bd65046c85b4d0fb
cf4d36756358d5fa122d00>, name = "andreytest"]
  7205  sent [CHAP Success id=0x4 "S=1392BBAED5072EDE83DD7E27F70D30D9193143F4 M=Access granted"]
  7206  sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 192.168.10.2>]
  7207  rcvd [CCP ConfReq id=0x5 <mppe +H -M +S -L -D +C>]
  7208  sent [CCP ConfReq id=0x1 <mppe -H -M +S -L -D -C>]
  7209  sent [CCP ConfNak id=0x5 <mppe -H -M +S -L -D -C>]
  7210  rcvd [IPCP ConfReq id=0x6 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-wins 0.0.0.0> <ms-dns3 0.0.0.0> <ms-wins 0.0.0.0>]
  7211  sent [IPCP ConfRej id=0x6 <ms-wins 0.0.0.0> <ms-wins 0.0.0.0>]
  7212  rcvd [IPCP ConfRej id=0x1 <compress VJ 0f 01>]
  7213  sent [IPCP ConfReq id=0x2 <addr 192.168.10.2>]
  7214  rcvd [CCP ConfAck id=0x1 <mppe -H -M +S -L -D -C>]
  7215  rcvd [CCP ConfReq id=0x7 <mppe -H -M +S -L -D -C>]
  7216  sent [CCP ConfAck id=0x7 <mppe -H -M +S -L -D -C>]
  7217  MPPE 128-bit stateful compression enabled
  7218  rcvd [IPCP ConfReq id=0x8 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
  7219  sent [IPCP ConfNak id=0x8 <addr 10.1.0.1> <ms-dns1 10.0.0.252> <ms-dns3 10.0.0.253>]
  7220  rcvd [IPCP ConfAck id=0x2 <addr 192.168.10.2>]
  7221  rcvd [IPCP ConfReq id=0x9 <addr 10.1.0.1> <ms-dns1 10.0.0.252> <ms-dns3 10.0.0.253>]
  7222  sent [IPCP ConfAck id=0x9 <addr 10.1.0.1> <ms-dns1 10.0.0.252> <ms-dns3 10.0.0.253>]
  7223  local  IP address 192.168.10.2
  7224  remote IP address 10.1.0.1
  7225  Script /etc/ppp/ip-up started (pid 24466)
  7226  Script /etc/ppp/ip-up finished (pid 24466), status = 0x0
  7227  rcvd [LCP TermReq id=0xa "$K\004>\000<\37777777715t\000\000\000\000"]
  7228  LCP terminated by peer ($K^D>^@<M-Mt^@^@^@^@)
  7229  Script /etc/ppp/ip-down started (pid 24474)
  7230  sent [LCP TermAck id=0xa]
  7231  Modem hangup
  7232  Connection terminated.
  7233  Connect time 0.4 minutes.
  7234  Sent 1587 bytes, received 2507 bytes.
  7235  Waiting for 1 child processes...
  7236    script /etc/ppp/ip-down, pid 24474
  7237  Script /etc/ppp/ip-down finished (pid 24474), status = 0x0
  7238  Connect time 0.4 minutes.
  7239  Sent 1587 bytes, received 2507 bytes.
  7240  using channel 458
  7241  Using interface ppp0
  7242  Connect: ppp0 <--> /dev/pts/0
  7243  sent [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0x4119ae38> <pcomp> <accomp>]
  7244  Modem hangup
  7245  Connection terminated.

anonymous
()
Ответ на: комментарий от anonymous

Еще бы увидеть лог без этой ошибки...

P.S. Помнится давно была такая хрень, только не с этим плагином,
выяснилось, что причиной была работа MPPE, вот если ее отключить,
то нормально будет? Если да, то возможно надо искать другой патч
для работы MPPE...

McMCC ★★★
()
Ответ на: комментарий от anonymous

Судя по логу, авторизация все же проходит и дальше к плагину нет
обращений, может плагин жрет память в стеке у pppd? Хмм...
можно попробовать уменьшить выделяемые размеры у
static char mhost[MAXNAMELEN] = "localhost";
static char muser[MAXNAMELEN] = "nobody";
static char mpass[MAXNAMELEN] = "anonymous";
static char namedb[MAXNAMELEN] = "pppusers";
static char tabdb[MAXNAMELEN] = "vpnauth";

MAXNAMELEN в них заменить типа на MAXNAMELENZ,
а выше вставить define
#define MAXNAMELENZ 64

McMCC ★★★
()
Ответ на: комментарий от McMCC

Всё осталось так же. При этом было сделано:

1. Дописано MAXNAMELENZ, толкьо я сделал вообще 32.
Отключил mppe, в логах стала появиляться такя строчка:
kernel: mppe_decomp_alloc: options rejected: o[0]=12, o[1]=06, o[2]=00, o[3]=00, o[4]=00, o[5]=00

2. Запускал pptpd с параметрами --debug и --fg, как вместе, так и по отдельности, больше тех логов что выше написаны, нет. Изредко появляются две строчки:
Aug 28 03:08:19 gateway pptpd[31963]: GRE: read(fd=4,buffer=804d560,len=8196) from PTY failed: status = -1 error = Input/output error, usually caused by unexpected termination of pppd, check option syntax and pppd logs
Aug 28 03:08:19 gateway pptpd[31963]: CTRL: PTY read or GRE write failed (pty,gre)=(4,5)
И с ошибкой никакого закономерности не имеют.

3. Скачал, собрал пакет, установил последний pptpd-1.2.1. Кстати, при сборки пакета есть пакет вида: pptpd-debuginfo-1.2.1.i686.rpm, может его для дебага как то можно приспособить (сам я ни разу пакеты типа debuginfo не ставил).

anonymous
()
Ответ на: комментарий от anonymous

Вот конфигурационный файл, который вроде не вызывет такой ошибки:

ipparam PoPToP

lock

#debug
logfile /var/log/ppp.log

#mtu 1490
#mru 1490

ms-dns 10.0.0.252
ms-dns 10.0.0.253

nobsdcomp
deflate 0

auth
refuse-pap
refuse-eap
refuse-chap
refuse-mschap
require-mschap-v2

nomppc
nomppe-40
nomppe-56
require-mppe-128
#mppe-stateless

ipcp-accept-local
ipcp-accept-remote
lcp-echo-interval 30
lcp-echo-failure 2

plugin passmysql.so
mysqlhost localhost
mysqluser billing
mysqlpass lingbilnetdb
mysqlnamedb billing
mysqltabdb vpnusers

Стоит только строке "logfile /var/log/ppp.log" оказаться после блока
описания plugin, или вообще её убрать начинютя эти ошибки и в логах
при каждом подключении "GRE: Bad checksum from pppd."

anonymous
()
Ответ на: комментарий от anonymous

Судя по логу, плагин тут не причем, он отрабатывает и все идет дальше,
была только одна мысль, это отъедание памяти плагином у pppd, однако
уменьшение ничего не дало, значит надо смотреть дальше, больше похоже на ошибку в самом pppd, может стоит попробовать убрать
все патчи типа mppe+mppc из кода, как ppp так и ядра? Кстати, зачем
вам MPPC? Если вы его не используете, то в pppd есть своя реализация
MPPE....

McMCC ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.