Страница 1 из 1
mpd5 и reject в up-script
Добавлено: 2009-05-28 15:09:59
savio
Стоит вопрос о привязке VPN-логина к локальной айпишке (в сети)
в up-script'е я делаю проверку, и вот не знаю как сделать reset текущего подключения.
Re: mpd5 и reject в up-script
Добавлено: 2009-05-28 15:12:29
paradox
кого чего?
через линк даун
гуглим по форуму
Re: mpd5 и reject в up-script
Добавлено: 2009-05-28 15:38:35
savio
попробую обяснить поподробнее
mpd5+freeradius+mysql
1) юзер конектиться к VPN-серверу
2) /usr/local/billing2_vpn/firewall/linkup.php - мой up-script
3) айпишка с которой законектился юзер смотрю в БД таблице
radacct полу
CalledStationId
4) айпишка с которой должен конектится - в БД моего биллинга.
5) если айпишки не совпадают то сделать разрыв только что установленой сесии.
вот как сделать я не знаю.
P.S. Заметил, что если специально сделать ошибку в up-scripte, то у клиента возникает ошибка 629. в логах mpd
Код: Выделить всё
...
May 28 15:35:25 bosyak mpd: [B-5] IFACE: No interface to proxy arp on for 192.168.1.22
May 28 15:35:25 bosyak mpd: [B-5] system: command "/usr/local/billing2_vpn/firewall/linkup.php ng3 inet 192.168.0.1/32 192.168.1.22 'mylogin' " returned 65280
May 28 15:35:25 bosyak mpd: [B-5] IPCP: parameter negotiation failed
May 28 15:35:25 bosyak mpd: [B-5] IPCP: state change Opened --> Stopping
May 28 15:35:25 bosyak mpd: [B-5] IPCP: SendTerminateReq #3
May 28 15:35:25 bosyak mpd: [B-5] IPCP: LayerDown
May 28 15:35:25 bosyak mpd: [B-5] IPCP: rec'd Terminate Ack #3 (Stopping)
...
мне это подошло бы идеально, но как вызвать такую ошибку

тогда когда мне нужно я не знаю.....
Re: mpd5 и reject в up-script
Добавлено: 2009-05-28 15:52:34
paradox
1) юзер конектиться к VPN-серверу
2) /usr/local/billing2_vpn/firewall/linkup.php - мой up-script
3) айпишка с которой законектился юзер смотрю в БД таблице radacct полу CalledStationId
4) айпишка с которой должен конектится - в БД моего биллинга.
5) если айпишки не совпадают то сделать разрыв только что установленой сесии.
ну полный изврат = ))))
а зачем такое?
не проще блочить аккаунт и все
и он еще на етапе авторизации отфутболит его
а вообще этим как бы радиус занимаеться
Re: mpd5 и reject в up-script
Добавлено: 2009-05-28 16:02:34
savio
так мне ж нужно не всех блочить, а некоторых. часть аккаунтов имеет флаг account_ip_check=true, а часть false.
радиус настолько грамотный что может часть блочить а часть нет?
Re: mpd5 и reject в up-script
Добавлено: 2009-05-28 16:05:25
paradox
радиус все может
и проверка у него идет гараздо раньше чем когда ты делаешь через ап скрипт
Re: mpd5 и reject в up-script
Добавлено: 2009-06-01 11:06:14
savio
да-да. радиус очень умный, тока вы не говорите КАК это сделать, я например не знаю как.
может всетаки кто то вкурсе как закрыть сесию из up-script'а?
Re: mpd5 и reject в up-script
Добавлено: 2009-06-01 11:19:33
paradox
теоретически никак
скрипт для этого не предназначен
практически через одно место
как то уже было озвучено на форуме
ищи
Re: mpd5 и reject в up-script
Добавлено: 2009-06-01 11:25:45
savio
у себя на веб-морде биллинга есть функция сброса сесии. использую скрипт, который через консоль mpd это делает, но вот из up-script он не срабатывает почемуто....
Re: mpd5 и reject в up-script
Добавлено: 2009-06-01 11:28:29
savio
думаю стоит использовать вот такое решение
http://wiki.bgbilling.ru/index.php/Наст ... reeBSD_MPD
изврат какойто но не более моего

Re: mpd5 и reject в up-script
Добавлено: 2009-06-03 11:15:34
savio
нда.... чего-то не хочет разрывать с up-script'а. скрипт переделал на php. если запускать вручную, то скрипт отрабатывает. с помощью сокетов закрываю соединение через web-интерфейс mpd
а вот при конекте up-script "зависает"
Код: Выделить всё
# ps ax|grep php
68544 ?? S 0:00,00 sh -c /usr/local/billing2_vpn/firewall/linkup.php ng18 inet XXX.XXX.38.34/32 XXX.XXX.39.16 'msavio' >/dev/null 2>&1
68546 ?? S 0:00,03 /usr/local/bin/php /usr/local/billing2_vpn/firewall/linkup.php ng18 inet XXX.XXX.38.34/32 XXX.XXX.39.16 msavio
68590 p1 S+ 0:00,00 grep php
#
и весит. как только делаю
killall php впн соединение разрывается, тоесть скрипт выполняет свой функционал.
почему он зависает?