Jump to content
Sign in to follow this  
Cat76

Обрыв VPN-соединения (PPPD) у клиентов каждые 5 мин

Recommended Posts

Добрый день!

Есть Федора 8. На ней поднят VPN-сервер (pptpd) с Radius-авторизацией.

Клиенты подключаются по VPN с авторизацией в AD и максимум через каждые 5 мин (300 сек)происходит обрыв соединения (Connect time expired), инициируемый pppd.

Вот кусок лога:

Dec 2 18:16:23 shata pppd[4619]: Connect: ppp0 <--> /dev/pts/0

Dec 2 18:16:26 shata pptpd[4618]: CTRL: Ignored a SET LINK INFO packet with real ACCMs!

Dec 2 18:16:27 shata pppd[4619]: MPPE 128-bit stateless compression enabled

Dec 2 18:16:29 shata pppd[4619]: Cannot determine ethernet address for proxy ARP

Dec 2 18:16:29 shata pppd[4619]: local IP address 192.168.135.21

Dec 2 18:16:29 shata pppd[4619]: remote IP address 192.168.135.200

Dec 2 18:16:29 shata pppd[4619]: pptpd-logwtmp.so ip-up ppp0 "логин клиента""ip клиента"

Dec 2 18:16:30 shata pppd[4444]: Connect time expired

Dec 2 18:16:30 shata pppd[4444]: pptpd-logwtmp.so ip-down ppp2

Dec 2 18:16:30 shata pppd[4444]: Connect time 5.0 minutes.

Dec 2 18:16:30 shata pppd[4444]: Sent 29206 bytes, received 48356 bytes.

Dec 2 18:16:30 shata pppd[4444]: MPPE disabled

Dec 2 18:16:30 shata pppd[4444]: Connection terminated.

Dec 2 18:16:30 shata pppd[4444]: Exit.

Вот конфиг pptpd.conf:

option /etc/ppp/options.pptpd

debug

logwtmp

connections 50

localip 192.168.135.21

remoteip 192.168.135.200-249

Вот конфиг ppp.conf:

pptp:

enable proxy

set dns 10.0.1.5

set ifaddr 192.168.135.21

set timeout 36000

enable MSChapV2

Вот конфиг options.pptpd:

auth

name pptpd

require-mschap-v2

require-mppe-40

require-mppe-128

ms-dns 10.0.1.5

ms-dns 10.0.2.250

proxyarp

debug

kdebug 255

lock

nobsdcomp

noaccomp

nodeflate

nodefaultroute

nologfd

plugin radius.so

plugin radattr.so

lcp-echo-failure 30

lcp-echo-interval 5

ipcp-accept-local

ipcp-accept-remote

Вот конфиг options.pptp:

noauth

refuse-eap

refuse-chap

refuse-mschap

nobsdcomp

nodeflate

persist

maxfail 5000

Никто из клиентов (их порядка 600) более 5 минут (300с) в VPN-сессии не держится.

В чем могут быть проблемы?

Share this post


Link to post
Share on other sites

Цитата:

Dec 2 18:16:29 shata pppd[4619]: Cannot determine ethernet address for proxy ARP

proxyarp не работает - noproxyarp в конфиге

Цитата:

Dec 2 18:16:30 shata pppd[4444]: Connect time 5.0 minutes.

Смотрите логи радиуса - это не он по каким то причинам рассчитывает максимальное время сессии и вырубает?

Share this post


Link to post
Share on other sites

Добрый вечер!

Поставил noproxyarp в конфиге.

По логам радиуса видно, что ему не хватает MySQL, но думаю. это не должно влиять.

Насчет времени обрыва сессий ничего не нашел Sad

detail-20081208:

Mon Dec 8 09:16:12 2008

Acct-Session-Id = "493CC9B25CBA00"

User-Name = "agrotechpack"

Class = 0x37d005690000013700010a00001701c9427df1c87a0400000000000063 eb

Acct-Status-Type = Start

Service-Type = Framed-User

Framed-Protocol = PPP

Calling-Station-Id = ".312"

Acct-Authentic = RADIUS

NAS-Port-Type = Async

Framed-IP-Address = 192.168.135.200

NAS-IP-Address = 10.0.2.250

NAS-Port = 2

Acct-Delay-Time = 0

Client-IP-Address = 10.0.2.250

Acct-Unique-Session-Id = "e91329ef3ec65063"

Timestamp = 1228720572

Radius.log:

Mon Dec 8 17:14:06 2008 : Error: rlm_sql_mysql: Mysql error 'Access denied for user 'radius'@'localhost' (using password: YES)'

Mon Dec 8 17:14:06 2008 : Error: rlm_sql (sql): Failed to connect DB handle #4

Mon Dec 8 17:14:06 2008 : Info: rlm_sql (sql): There are no DB handles to use! skipped 5, tried to connect 1

Mon Dec 8 17:14:13 2008 : Info: rlm_sql (sql): There are no DB handles to use! skipped 5, tried to connect 0

Mon Dec 8 17:14:15 2008 : Info: rlm_sql (sql): There are no DB handles to use! skipped 5, tried to connect 0

Mon Dec 8 17:14:28 2008 : Info: rlm_sql (sql): There are no DB handles to use! skipped 5, tried to connect 0

Mon Dec 8 17:14:35 2008 : Info: rlm_sql (sql): There are no DB handles to use! skipped 5, tried to connect 0

Mon Dec 8 17:14:41 2008 : Info: rlm_sql (sql): There are no DB handles to use! skipped 5, tried to connect 0

Mon Dec 8 17:14:48 2008 : Info: rlm_sql (sql): There are no DB handles to use! skipped 5, tried to connect 0

Mon Dec 8 17:15:01 2008 : Info: rlm_sql (sql): There are no DB handles to use! skipped 5, tried to connect 0

Mon Dec 8 17:15:03 2008 : Info: rlm_sql (sql): There are no DB handles to use! skipped 5, tried to connect 0

Mon Dec 8 17:15:23 2008 : Info: rlm_sql (sql): Trying to (re)connect unconnected handle 4..

Mon Dec 8 17:15:23 2008 : Info: rlm_sql_mysql: Starting connect to MySQL server for #4

Mon Dec 8 17:15:23 2008 : Error: rlm_sql_mysql: Couldn't connect socket to MySQL server radius@localhost:radius

Mon Dec 8 17:15:23 2008 : Error: rlm_sql_mysql: Mysql error 'Access denied for user 'radius'@'localhost' (using password: YES)'

Mon Dec 8 17:15:23 2008 : Error: rlm_sql (sql): Failed to connect DB handle #4

Mon Dec 8 17:15:23 2008 : Info: rlm_sql (sql): There are no DB handles to use! skipped 5, tried to connect 1

Share this post


Link to post
Share on other sites

Цитата:

Dec 2 18:16:30 shata pppd[4444]: Connect time expired

Dec 2 18:16:30 shata pppd[4444]: Connect time 5.0 minutes.

И всетаки ктото выдает вам время соединения в 5 минут

pppd и pptpd по идее не умеют это считать - значит остается радиус.

Share this post


Link to post
Share on other sites

Да, похоже, это радиус:

Выбрав из лога все записи по id, имеем:

Dec 9 13:54:50 shata pppd[5668]: Plugin radius.so loaded.

Dec 9 13:54:50 shata pppd[5668]: RADIUS plugin initialized.

Dec 9 13:54:50 shata pppd[5668]: Plugin radattr.so loaded.

Dec 9 13:54:50 shata pppd[5668]: RADATTR plugin initialized.

Dec 9 13:54:50 shata pppd[5668]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded.

Dec 9 13:54:50 shata pppd[5668]: pptpd-logwtmp: $Version$

Dec 9 13:54:50 shata pppd[5668]: pppd 2.4.4 started by root, uid 0

Dec 9 13:54:50 shata pppd[5668]: Using interface ppp1

Dec 9 13:54:50 shata pppd[5668]: Connect: ppp1 <--> /dev/pts/2

Dec 9 13:54:53 shata pppd[5668]: MPPE 128-bit stateless compression enabled

Dec 9 13:54:55 shata pppd[5668]: Cannot determine ethernet address for proxy ARP

Dec 9 13:54:55 shata pppd[5668]: local IP address 192.168.135.21

Dec 9 13:54:55 shata pppd[5668]: remote IP address 192.168.135.201

Dec 9 13:54:55 shata pppd[5668]: pptpd-logwtmp.so ip-up ppp1 TVBV_009 92.112.122.193

Dec 9 13:55:25 shata pppd[5668]: rc_send_server: no reply from RADIUS server shata.tas.com:1813

Dec 9 13:55:25 shata pppd[5668]: Accounting START failed for TVBV_009

Dec 9 13:59:55 shata pppd[5668]: Connect time expired

Dec 9 13:59:55 shata pppd[5668]: pptpd-logwtmp.so ip-down ppp1

Dec 9 13:59:55 shata pppd[5668]: Connect time 5.0 minutes.

Dec 9 13:59:55 shata pppd[5668]: Sent 24313 bytes, received 32032 bytes.

Dec 9 13:59:55 shata pppd[5668]: MPPE disabled

Dec 9 13:59:55 shata pppd[5668]: Connection terminated.

Dec 9 13:59:55 shata pppd[5668]: Exit.

То есть после сообщений

rc_send_server: no reply from RADIUS server shata.tas.com:1813

и Accounting START failed если клиент досрочно разрывает соединение - все ок. а если нет - сессия после этого длится еще 4.5 минуты и выполняется pptpd-logwtmp.so ip-down.

Вот что выдает check-radiusd-config:

Ignoring deprecated command-line option -pStarting - reading configuration files ...

reread_config: reading radiusd.conf

Config: including file: /etc/raddb/proxy.conf

Config: including file: /etc/raddb/clients.conf

Config: including file: /etc/raddb/snmp.conf

Config: including file: /etc/raddb/eap.conf

Config: including file: /etc/raddb/sql.conf

Config: including file: /etc/raddb/sql.conf

main: prefix = "/usr"

main: localstatedir = "/var"

main: logdir = "/var/log/radius"

main: libdir = "/usr/lib"

main: radacctdir = "/var/log/radius/radacct"

main: hostname_lookups = no

main: snmp = no

main: max_request_time = 30

main: cleanup_delay = 5

main: max_requests = 1024

main: delete_blocked_requests = 0

main: port = 0

main: allow_core_dumps = no

main: log_stripped_names = no

main: log_file = "/var/log/radius/radius.log"

main: log_auth = yes

main: log_auth_badpass = yes

main: log_auth_goodpass = no

main: pidfile = "/var/run/radiusd/radiusd.pid"

main: bind_address = 10.0.2.250 IP address [10.0.2.250]

main: user = "radiusd"

main: group = "radiusd"

main: usercollide = no

main: lower_user = "no"

main: lower_pass = "no"

main: nospace_user = "no"

main: nospace_pass = "no"

main: checkrad = "/usr/sbin/checkrad"

main: proxy_requests = yes

proxy: retry_delay = 15

proxy: retry_count = 3

proxy: synchronous = no

proxy: default_fallback = yes

proxy: dead_time = 120

proxy: post_proxy_authorize = no

proxy: wake_all_if_all_dead = no

security: max_attributes = 200

security: reject_delay = 1

security: status_server = no

main: debug_level = 0

read_config_files: reading dictionary

read_config_files: reading naslist

Using deprecated naslist file. Support for this will go away soon.

read_config_files: reading clients

read_config_files: reading realms

/etc/raddb/radiusd.conf[290]: Host billing not found

Billing - это сервер authserver(под Windows 2003), прописан в servers, в hosts.

Почему на него может ругаться?

Share this post


Link to post
Share on other sites

похоже проблема в биллинге (который и радиус же) - озвучить что именно стоит на 2003 можете?

На Биллинге радиус переставил.

Сервер Радиуса shata(порт 1813)-authhost поднят на Федоре, mySQL на нем не поднят.

Радиус-сервер авторизации (accthost) billing(порт 1812)поднят на Windows 2003 (авторизация в домене).

Сейчас ругается, что есть несколько радиус-серверов check-radiusd-config:

Ignoring deprecated command-line option -pStarting - reading configuration files ...

reread_config: reading radiusd.conf

Config: including file: /etc/raddb/proxy.conf

Config: including file: /etc/raddb/clients.conf

Config: including file: /etc/raddb/snmp.conf

Config: including file: /etc/raddb/eap.conf

Config: including file: /etc/raddb/sql.conf

Config: including file: /etc/raddb/sql.conf

main: prefix = "/usr"

main: localstatedir = "/var"

main: logdir = "/var/log/radius"

main: libdir = "/usr/lib"

main: radacctdir = "/var/log/radius/radacct"

main: hostname_lookups = no

main: snmp = no

main: max_request_time = 30

main: cleanup_delay = 5

main: max_requests = 1024

main: delete_blocked_requests = 0

main: port = 0

main: allow_core_dumps = no

main: log_stripped_names = no

main: log_file = "/var/log/radius/radius.log"

main: log_auth = no

main: log_auth_badpass = yes

main: log_auth_goodpass = no

main: pidfile = "/var/run/radiusd/radiusd.pid"

main: bind_address = 10.0.2.250 IP address [10.0.2.250]

main: user = "radiusd"

main: group = "radiusd"

main: usercollide = no

main: lower_user = "no"

main: lower_pass = "no"

main: nospace_user = "no"

main: nospace_pass = "no"

main: checkrad = "/usr/sbin/checkrad"

main: proxy_requests = yes

proxy: retry_delay = 5

proxy: retry_count = 3

proxy: synchronous = no

proxy: default_fallback = yes

proxy: dead_time = 120

proxy: post_proxy_authorize = no

proxy: wake_all_if_all_dead = no

security: max_attributes = 200

security: reject_delay = 1

security: status_server = no

main: debug_level = 0

read_config_files: reading dictionary

read_config_files: reading naslist

Using deprecated naslist file. Support for this will go away soon.

read_config_files: reading clients

read_config_files: reading realms

There appears to be another RADIUS server running on the authentication port 1812

Share this post


Link to post
Share on other sites

Цитата:

ервер Радиуса shata(порт 1813)-authhost поднят на Федоре, mySQL на нем не поднят.

Радиус-сервер авторизации (accthost) billing(порт 1812)поднят на Windows 2003 (авторизация в домене).

вообще то 1812 это авторизация а 1813 порт - аккаунтинг должно быть по стандарту. Может напутали?

И я чтото не понял - у вас авторизуется клиент на одной машине а аккаунтинг льется на другую?

Share this post


Link to post
Share on other sites

Здравствуйте!

Это я опечатался.

Схема такая - accthost (1813) поднят на Федоре,

authhost (1812) - Radius на Windows 2003.

Причем если сделать авторизацию и аккаутинг только на Windows 2003 (в proxy.conf), ситуация остается аналогичная - те же 5 мин. Авторизация в винде необходима, так как внешние клиенты регистрируются в AD.

Может не в авторизации дело?

Share this post


Link to post
Share on other sites

Если на винде и авторизовывать и подключаться к ней, то журнал пишет следующее:

Пользователю "postmodernfoto" предоставлен доступ.

Полное-имя-пользователя = tas.com/Клиенты/Постмодерн ФОТО ТОВ

NAS-IP-адрес = 10.0.2.250

NAS-идентификатор = <нет данных>

Понятное-имя-клиента = shata

IP-адрес-клиента = 10.0.2.250

Идентификатор-вызывающей-станции = .391

Тип-NAS-порта = <нет данных>

NAS-порт = 1

Имя-политики-прокси = Использовать проверку подлинности Windows для всех пользователей

Поставщик-проверки-подлинности = Windows

Сервер-проверки-подлинности = <не определено>

Имя-политики = Разрешить доступ, если разрешены входящие подключения

Тип-проверки-подлинности = MS-CHAPv2

EAP-тип = <не определено>

Причем все подключения почему-то идентифицируются по адресу инет-сервера 10.0.2.250.

Share this post


Link to post
Share on other sites

Добрый вечер!

Все оказалось довольно просто - в Radius под Windows 2003 в политике удаленного доступа есть параметр "Время, в течение которого клиент может быть подключен".

Его значение по умолчанию 5 минут.

Спасибо за помощь.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...