Перейти к содержимому
Калькуляторы

dantist

А пробовали сделать выдачу адресов из пула RADIUS, а не accel-ppp?

Вот рабочий конфиг, который используется для соединения клиентов с офисной сетью с RADIUS-авторизацией на Windows RRAS и выдачей ip из пула accel-ppp:

 

 

[modules]

log_file

pptp

l2tp

 

auth_mschap_v2

 

radius

ippool

sigchld

pppd_compat

 

[core]

log-error=/var/log/accel-ppp/core.log

thread-count=4

 

[common]

#single-session=replace

#sid-case=upper

#sid-source=seq

 

[ppp]

verbose=1

min-mtu=1280

mtu=1380

mru=1380

ccp=1

#check-ip=0

mppe=require

ipv4=require

ipv6=deny

ipv6-intf-id=0:0:0:1

ipv6-peer-intf-id=0:0:0:2

ipv6-accept-peer-intf-id=1

lcp-echo-interval=20

#lcp-echo-failure=3

lcp-echo-timeout=120

#unit-cache=1000

 

[auth]

#any-login=0

#noauth=0

 

[pptp]

verbose=1

#echo-interval=30

 

[pppoe]

verbose=1

#ac-name=xxx

#service-name=yyy

#pado-delay=0

#pado-delay=0,100:100,200:200,-1:500

#ifname-in-sid=called-sid

#tr101=1

#padi-limit=0

#ip-pool=pppoe

#interface=eth1,padi-limit=1000

interface=eth0

 

[l2tp]

verbose=1

#dictionary=/usr/local/share/accel-ppp/l2tp/dictionary

#hello-interval=60

#timeout=60

#rtimeout=5

#retransmit=5

#host-name=accel-ppp

#dir300_quirk=0

#secret=

#dataseq=allow

#reorder-timeout=0

#ip-pool=l2tp

 

[ipoe]

verbose=1

username=ifname

#password=username

lease-time=600

max-lease-time=3600

#unit-cache=1000

#l4-redirect-table=4

#l4-redirect-ipset=l4

#l4-redirect-on-reject=300

shared=0

ifcfg=1

mode=L2

start=dhcpv4

#proxy-arp=0

#nat=0

#proto=100

#relay=10.10.10.10

#attr-dhcp-client-ip=DHCP-Client-IP-Address

#attr-dhcp-router-ip=DHCP-Router-IP-Address

#attr-dhcp-mask=DHCP-Mask

#attr-l4-redirect=L4-Redirect

#local-net=192.168.0.0/16

#lua-file=/etc/accel-ppp.lua

#offer-delay=0,100:100,200:200,-1:1000

#vlan-mon=eth0,10-200

#vlan-timeout=60

#vlan-name=%I.%N

#ip-pool=ipoe

interface=eth0

 

 

[dns]

dns1=192.168.2.5

dns2=192.168.3.4

 

[wins]

#wins1=172.16.0.1

#wins2=172.16.1.1

 

[radius]

dictionary=/usr/share/accel-ppp/radius/dictionary

nas-identifier=pptpd

nas-ip-address=192.168.2.2

gw-ip-address=192.168.2.2

server=192.168.2.4,,auth-port=1812,acct-port=1813,req-limit=1,fail-time=0

verbose=9

 

[client-ip-range]

disable

 

[ip-pool]

gw-ip-address=192.168.2.2

attr=Framed-Pool

192.168.2.100-254

 

[log]

log-file=/var/log/accel-ppp/accel-ppp.log

log-emerg=/var/log/accel-ppp/emerg.log

log-fail-file=/var/log/accel-ppp/auth-fail.log

copy=1

level=3

 

[log-pgsql]

conninfo=user=log

log-table=log

 

[pppd-compat]

ip-up=/etc/ppp/ip-up

ip-down=/etc/ppp/ip-down

ip-change=/etc/ppp/ip-change

radattr-prefix=/var/run/radattr

verbose=1

 

[chap-secrets]

gw-ip-address=192.168.2.2

 

[shaper]

up-limiter=police

down-limiter=tbf

verbose=1

 

[cli]

telnet=127.0.0.1:2000

tcp=127.0.0.1:2001

password=123

 

[snmp]

master=0

agent-name=accel-ppp

 

[connlimit]

limit=10/min

burst=3

timeout=60

 

[ipv6-pool]

fc00:0:1::/48,64

delegate=fc00:1::/36,48

 

[ipv6-dns]

#fc00:1::1

#fc00:1::2

#fc00:1::3

#dnssl=suffix1.local.net

#dnssl=suffix2.local.net.

 

[ipv6-dhcp]

verbose=1

pref-lifetime=604800

valid-lifetime=2592000

route-via-gw=1

 

 

Изменено пользователем purecopper

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо за конфиг.Попробую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Засабмитил баг в redhat по поводу их косяка с ядром в 6.5. Пока идут в несознанку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Попробывал предложенный конфиг.

Лог стал очень коротким

[2013-12-23 19:10:41]:  info: ppp0: send [RADIUS(1) Access-Request id=1 <User-Name "testuser"> <NAS-Identifier "accel-ppp"> <NAS-IP-Address$
[2013-12-23 19:10:41]:  info: ppp0: recv [RADIUS(1) Access-Accept id=1 <Framed-IP-Netmask 255.255.255.255> <Framed-Protocol PPP> <PPPD-Upst$
[2013-12-23 19:10:41]:  warn: ppp0: ppp: no free IPv4 address
[2013-12-23 19:10:41]:  info: ppp0: testuser: authentication succeeded
[2013-12-23 19:10:41]:  warn: ppp0: IPCP: discarding packet
[2013-12-23 19:10:41]:  info: ppp0: disconnected

 

Но суть осталась таже. Не выделяются адреса.

 

К тому же в дрогом логе появилось

Это

 

iprange: iprange module disabled so improper ip address assigning may cause kernel soft lockup!

radius: no dm_coa_secret specified, DM/CoA disabled...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

[ip-pool]

gw-ip-address=192.168.10.1

attr=Framed-Pool

192.168.10.5-100,name=ippool_god_mode

192.168.20.1-100,name=ippool_all_users

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

xeb

а есть мысли что делать с центос/рхел 6.5?

проблема в том, что они бэкпортировали в новое своё ядро 2.6.32-431 модуль gre.c, причём ни в одном из ванильных ядер с 2.6.37 по 3.12 этого файла нет в том виде, в котором он у RH. Судя по содержимому это их вольная компиляция из gre_demux.c и gre_offload.c. Если при этом пробовать собрать поверх этого pptp.c из какого-нибудь из свежих ядер, то оно ругается на отсутствующий хедер-файл ppp_ioctl.h

В общем, надо что-нибудь делать :)

Изменено пользователем Victor Safronov

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Abram, спасибо, уже нашел по таймауту аттрибут Radius: Session-Timeout, все ок.

Насчет "не отвечаю" - так и не понял, как это сделать во FreeRadius. Если возвращать из скрипта вместо RLM_MODULE_OK - RLM_MODULE_REJECT, accel начинает сыпать аккаунтинги один за другим. А чтобы совсем не ответить - не нашел опции.

Повесил пока в acct-interim-update проверку услуги и обрыв через accel-cmd terminate. Правда, при этом FreeRadius отбрасывает stop-пакет аккаунтинга из accel-cmd. Не слать бы его тогда совсем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А кто-нибудь сталкивался с тем, что macos клиенты не получают ДНС сервер, указанный в accel-ppp? Быстрое гугление не дало внятного ответа

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Засабмитил баг в redhat по поводу их косяка с ядром в 6.5. Пока идут в несознанку.

а можно линк?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Victor Safronov

Собрать нормальное, свежее, не ванильное ядро не вариант?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А поддерживать такое ядро на пару десятках серверов дядя вася будет? :) Я проверил на ядре 3.10.x из ELRepo все отлично работает, так как попросил включить модуль l2tp, который по дефолту выключен, обещали со следующего релиза исправить. Но все таки хотелось бы работать на родной ядре CentOS, имхо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Насчет "не отвечаю" - так и не понял, как это сделать во FreeRadius. Если возвращать из скрипта вместо RLM_MODULE_OK - RLM_MODULE_REJECT, accel начинает сыпать аккаунтинги один за другим. А чтобы совсем не ответить - не нашел опции.

Сейчас в своём коде посмотрел - я возвращаю RLM_MODULE_REJECT.

Да, accel в таком случае несколько раз переспрашивает, но это нормально. На самом деле, здесь виноват протокол RADIUS (sic!). Я искал этот момент в RFC - написано, что если RADIUS-сервер не может сделать запись accounting, то он не должен отвечать вообще. Reject-а у accounting не предусмотрено. accel, как порядочный RADIUS-клиент, сначала пытается повторить попытку (а вдруг проблема с сетью? а вдруг ещё ответит?), после чего вырубает сессию.

FreeRADIUS, кстати, умеет кешировать запросы и для 2-3 одинаковых accounting request-ов может запустить обработчик всего один раз. Посмотрите в эту сторону.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

[ip-pool]

gw-ip-address=192.168.10.1

attr=Framed-Pool

192.168.10.5-100,name=ippool_god_mode

192.168.20.1-100,name=ippool_all_users

 

Я понял что в этом куске какой то косяк. Но какой? Я никак не пойму.Не тот диапазон Адресов?

Хорошо. Переделал на это. Раз говорят что выдаваемые адреса должны попадать в диапазон 192.168.0.0/20.

Хотя это не радует, если это так.

 

[radius]
nas-identifier=accel-ppp
nas-ip-address=127.0.0.1
gw-ip-address=192.168.5.1
server=127.0.0.1,password,auth-port=1812,acct-port=1813,req-limit=0,fail-time=0
dae-server=127.0.0.1:3799,password
verbose=5
timeout=2
max-try=1
acct-interim-interval=60


[client-ip-range]
192.168.0.0/20

[ip-pool]
gw-ip-address=192.168.5.1
attr=Framed-Pool
192.168.5.5-100,ippool_god_mode
192.168.5.100-150,ippool_all_users

 

Но результат тот же - адреса не выдаются.

 

Что еще может быть?

 

Да и еще. Насколько информативность сообщения изменяется при сборке с ключами дебуг или релиз?

Сейчас собран с релиз. Добавит ли инфо для анализа дебуг?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Насчет "не отвечаю" - так и не понял, как это сделать во FreeRadius. Если возвращать из скрипта вместо RLM_MODULE_OK - RLM_MODULE_REJECT, accel начинает сыпать аккаунтинги один за другим. А чтобы совсем не ответить - не нашел опции.

Сейчас в своём коде посмотрел - я возвращаю RLM_MODULE_REJECT.

Да, accel в таком случае несколько раз переспрашивает, но это нормально. На самом деле, здесь виноват протокол RADIUS (sic!). Я искал этот момент в RFC - написано, что если RADIUS-сервер не может сделать запись accounting, то он не должен отвечать вообще. Reject-а у accounting не предусмотрено. accel, как порядочный RADIUS-клиент, сначала пытается повторить попытку (а вдруг проблема с сетью? а вдруг ещё ответит?), после чего вырубает сессию.

FreeRADIUS, кстати, умеет кешировать запросы и для 2-3 одинаковых accounting request-ов может запустить обработчик всего один раз. Посмотрите в эту сторону.

Стоял большой таймаут ожидания ответов RADIUS, поэтому accel и слал аккаунтинг один за другим... Все ок :)

 

 

Чем отличается soft и hard?

terminate csid <id> [soft|hard]- terminate session by calling station id

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Засабмитил баг в redhat по поводу их косяка с ядром в 6.5. Пока идут в несознанку.

а можно линк?

Он относится к ветке kernel и потому закрыт по дефолту от посторонних. https://bugzilla.redhat.com/show_bug.cgi?id=1044593 вот линк, который вас, скорее всего пошлёт :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

xeb

хоть как-нибудь отзовитесь по проблеме :)

просто нужно понимать, есть ли смысл ждать фикса через сам модуль, или ничего не остаётся как использовать в центосе свежее ядро, с уже включённым модулем?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вот линк, который вас, скорее всего пошлёт :)

да, не захотели показывать - редиски :)

 

Неужели никто не сталкивался с багом/фичей на MacOS (я насчет не получения ДНС сервера) ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

хоть как-нибудь отзовитесь по проблеме :)
ну можно конечно бэкпортировать пптп, но сейчас времени нет, может в новогодние каникулы...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Неужели никто не сталкивался с багом/фичей на MacOS (я насчет не получения ДНС сервера) ?
лог подключения есть ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

лог подключения есть ?

Нужно с каким то уровнем отладки или достаточно простого?

Изменено пользователем ALex_hha

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Держи

 

Dec 24 10:34:54 perflect accel-pppd: accel-ppp version 1.7.3
Dec 24 10:48:42 perflect accel-pppd: pptp: new connection from 46.4.xxx.xxx
Dec 24 10:48:42 perflect accel-pppd: :: recv [PPTP Start-Ctrl-Conn-Request <Version 1> <Framing 1> <Bearer 1> <Max-Chan 0>]
Dec 24 10:48:42 perflect accel-pppd: :: send [PPTP Start-Ctrl-Conn-Reply <Version 1> <Result 1> <Error 0> <Framing 3> <Bearer 3> <Max-Chan 1>]
Dec 24 10:48:42 perflect accel-pppd: :: recv [PPTP Outgoing-Call-Request <Call-ID 466> <Call-Serial 0> <Min-BPS 300> <Max-BPS 100000000> <Bearer 3> <Framing 3> <Window-Size 64> <Delay 0>]
Dec 24 10:48:42 perflect accel-pppd: :: send [PPTP Outgoing-Call-Reply <Call-ID e> <Peer-Call-ID 466> <Result 1> <Error 0> <Cause 0> <Speed 100000000> <Window-Size 64> <Delay 0> <Channel 0>]
Dec 24 10:48:42 perflect accel-pppd: ppp0:: connect: ppp0 <--> pptp(46.4.xxx.xxx)
Dec 24 10:48:42 perflect accel-pppd: ppp0:: send [LCP ConfReq id=1 <auth MSCHAP-v2> <magic 41a7c4c9> <mru 1396>]
Dec 24 10:48:42 perflect accel-pppd: ppp0:: recv [PPTP Set-Link-Info]
Dec 24 10:48:42 perflect accel-pppd: ppp0:: recv [LCP ConfReq id=1 < 2 6 0 0 0 0 > <magic 7ace0c2> <pcomp> <accomp>]
Dec 24 10:48:42 perflect accel-pppd: ppp0:: send [LCP ConfRej id=1  < 2 6 0 0 0 0 > <pcomp> <accomp>]
Dec 24 10:48:42 perflect accel-pppd: ppp0:: recv [LCP ConfReq id=2 <magic 7ace0c2>]
Dec 24 10:48:42 perflect accel-pppd: ppp0:: send [LCP ConfAck id=2 ]
Dec 24 10:48:45 perflect accel-pppd: ppp0:: send [LCP ConfReq id=1 <auth MSCHAP-v2> <magic 41a7c4c9> <mru 1396>]
Dec 24 10:48:45 perflect accel-pppd: ppp0:: recv [LCP ConfAck id=1 <auth MSCHAP-v2> <magic 41a7c4c9> <mru 1396>]
Dec 24 10:48:45 perflect accel-pppd: ppp0:: send [MSCHAP-v2 Challenge id=1 <a9713561a3f535dc6b2fc862aa7b2d8>]
Dec 24 10:48:45 perflect accel-pppd: ppp0:: recv [MSCHAP-v2 Response id=1 <4dd1befce42b6bfaefb7a3b4566f142>, <1d1048e55e53ba13fb894a77723235a0d6291a48acab8b64>, F=0, name="adomoradov"]
Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: send [MSCHAP-v2 Success id=1 "S=B16FB07072D20A586F1AB7A779BBC5914EAB1847 M=Authentication succeeded"]
Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: send [CCP ConfReq id=1 <mppe +H -M +S -L -D -C>]
Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: send [iPCP ConfReq id=1 <addr 192.168.1.1>]
Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: adomoradov: authentication succeeded
Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: recv [CCP ConfReq id=1 <mppe +H -M +S -L -D -C> (mppe enabled)]
Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: send [CCP ConfAck id=1]
Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: recv [CCP ConfAck id=1 <mppe +H -M +S -L -D -C>]
Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: recv [iPCP TermAck id=1]
Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: recv [iPCP ConfReq id=1 <addr 0.0.0.0> <dns1 0.0.0.0> <dns2 0.0.0.0>]
Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: send [iPCP ConfNak id=1 <addr 192.168.1.10> <dns2 8.8.8.8>]
Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: IPV6CP: discarding packet
Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: send [LCP ProtoRej id=3 <8057>]
Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: recv [iPCP ConfReq id=2 <addr 192.168.1.10> <dns1 0.0.0.0> <dns2 8.8.8.8>]
Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: send [iPCP ConfAck id=2]
Dec 24 10:48:48 perflect accel-pppd: ppp0:adomoradov: send [iPCP ConfReq id=1 <addr 192.168.1.1>]
Dec 24 10:48:48 perflect accel-pppd: ppp0:adomoradov: recv [iPCP ConfAck id=1 <addr 192.168.1.1>]

 

Конфиг accel

[modules]
log_syslog

pptp
l2tp
ippool

auth_mschap_v2
chap-secrets

[core]
log-error=/var/log/accel-ppp/core.log
thread-count=4

[ppp]
verbose=1
min-mtu=1280
mtu=1396
mru=1396
ipv4=require
mppe=require
ipv6=deny
single-session=deny

[lcp]
echo-interval=30
echo-failure=3

[pptp]
verbose=1
mppe=require

[l2tp]
verbose=1
mppe=require
secret=1234567

[dns]
dns2=8.8.8.8
dns2=8.8.4.4

[client-ip-range]
disable

[ip-pool]
gw-ip-address=192.168.1.1
192.168.1.10-50

[log]
log-emerg=/var/log/accel-ppp/emerg.log
syslog=accel-pppd,daemon
copy=1
level=5

[chap-secrets]
chap-secrets=/etc/ppp/chap-secrets

[cli]
telnet=127.0.0.1:2000
tcp=127.0.0.1:2001
password=1234567

 

P.S.

пока делал вроде нашел причину. Проблема была в том, что у меня была очепятка в конфиге

 

[dns]

dns2=8.8.8.8

dns2=8.8.4.4

 

после исправления на

[dns]

dns1=8.8.8.8

dns2=8.8.4.4

 

все заработало, только вот не понятно, почему windows/linux работали даже с такой очепяткой, а macos нет

Изменено пользователем ALex_hha

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

192.168.5.5-100,ippool_god_mode => 192.168.5.5-100,name=ippool_god_mode

 

Ну это уже переделал.

на это. Кусок уже привел выше, но повторю

 

[radius]

nas-identifier=accel-ppp

nas-ip-address=127.0.0.1

gw-ip-address=192.168.5.1

server=127.0.0.1,password,auth-port=1812,acct-port=1813,req-limit=0,fail-time=0

dae-server=127.0.0.1:3799,password

verbose=5

timeout=2

max-try=1

acct-interim-interval=60

 

 

[client-ip-range]

192.168.0.0/20

 

[ip-pool]

gw-ip-address=192.168.5.1

attr=Framed-Pool

192.168.5.5-100,ippool_god_mode

192.168.5.100-150,ippool_all_users

 

Но результат тот же. Не выделяются адреса и все тут.

 

Уже всякая фигня чудится. Может я как ко не так собираю аксель? Я для теста поднял 32 бит дебиан на другой машине. Собрал ассель на нем. Результат все такой же :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.