sector 0 Опубликовано: 2012-11-21 02:57:17 Share Опубликовано: 2012-11-21 02:57:17 Доброго времени суток, уважаемые форумчане ! Возник вопрос, а как же происходит дисконнект пользователя путем скрипта OnDisconnect Установил систему все прописал, смотрю логи как работают скрипты OnConnect и OnDisconnect когда все установил и запустил инета у пользователей так и не появилось, прописал в iptables iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE eth0-глобал eth1- внутрь Пакеты заходили при смене MAC-адреса через Ubilling пользователь соответственно отрубается. Далее попробовал отключить пользователя в профиле смотрю в лог и отключаю, проскочил скрипт OnDisconnect а потом опять тут же OnConnect и соответственно у пользователя Интернет остался. Подскажите пожалуйста в какую сторону смотреть ? Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2012-11-21 06:16:02 Share Опубліковано: 2012-11-21 06:16:02 Посмотреть еще /var/log/stargazer.log и лог юзера. Но последний в базе, по этому его смотреть не очень удобно. Ссылка на сообщение Поделиться на других сайтах
sector 0 Опубліковано: 2012-11-21 07:19:32 Автор Share Опубліковано: 2012-11-21 07:19:32 как бы ничего криминального не увидел В профиле - CHANGE Down kemob_h525ap525_siwn ON 1 В stg лог - 2012-11-21 14:18:28 -- Admin 'admin', 127.0.0.1: User 'kemob_h525ap525_siwn': 'disabled' parameter changed from '0' to '1'. Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2012-11-21 08:27:56 Share Опубліковано: 2012-11-21 08:27:56 А как определили что после OnDisconnect вызвался OnConnect? Ссылка на сообщение Поделиться на других сайтах
DarkSpider 36 Опубліковано: 2012-11-21 08:44:00 Share Опубліковано: 2012-11-21 08:44:00 На самом деле в первую очередь нужно понять что такое firewall (а точнее iptables). Как формируются его правила. Что они делают при старте и в файлах OnConnect/OnDisconnect. Тогда прийдет прозрение как включается и отключается пользователь. Ссылка на сообщение Поделиться на других сайтах
sector 0 Опубліковано: 2012-11-21 10:53:25 Автор Share Опубліковано: 2012-11-21 10:53:25 На самом деле в первую очередь нужно понять что такое firewall (а точнее iptables). Как формируются его правила. Что они делают при старте и в файлах OnConnect/OnDisconnect. Тогда прийдет прозрение как включается и отключается пользователь. Вы намекаете что не нужно мне было прописывать маскарад ? тогда получается что при стандартных файлов интернет у пользователей не работает ? или как ? А как определили что после OnDisconnect вызвался OnConnect? В лог-файле Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2012-11-21 12:51:28 Share Опубліковано: 2012-11-21 12:51:28 ... А как определили что после OnDisconnect вызвался OnConnect? В лог-файле Это понятно, вы об этом еще в первом посте написали. Кто пишет этот лог и что за информация в нем? Ссылка на сообщение Поделиться на других сайтах
DarkSpider 36 Опубліковано: 2012-11-21 12:53:15 Share Опубліковано: 2012-11-21 12:53:15 Если оооооочень вкратце то : iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #этим Вы включаете общее разрешительное правило для NAT выпускать пользователей в инет OnConnect iptables -t mangle -I FORWARD -d $IP -j ACCEPT #разрешаем пропуск пакетов к пользователю iptables -t mangle -I FORWARD -s $IP -j ACCEPT #разрешаем пропуск пакетов от пользователя OnDisconnect iptables -t mangle -D FORWARD -d $IP -j ACCEPT #убираем пропуск пакетов к пользователю iptables -t mangle -D FORWARD -s $IP -j ACCEPT #убираем пропуск пакетов от пользователя По идее этого должно хватить. Но в моем случае этого недостаточно, поэтому в OnDisconnect я добавляю еще пару запрещающих правил. iptables -t mangle -I FORWARD -d $IP -j DROP #запрещаем пропуск пакетов к пользователю iptables -t mangle -I FORWARD -s $IP -j DROP #запрещаем пропуск пакетов от пользователя Инет у пользователя отрубается на OnDisconnect. Это простейшее объяснение , а не призыв делать именно так. Почему ? Потому что : В OnConnect по такой схеме нужно сначала удалить правила запрещающие пропуск пакетов, а только потом создать разрешающее. Использовать такую схему (линейную) - можно только до 100-300 абонентов. (на каждого абона получается от 1 до 5 правил - итого Ваш роутер просто загнется от нагрузки) При большем количестве нужно использовать ipset Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2012-11-21 13:09:36 Share Опубліковано: 2012-11-21 13:09:36 как бы ничего криминального не увидел Ну вобще-то так и выглядит вырубание при помощи "Отключен". Другой вопрос, что штатная операция reset() может последовательно вызывать down 1/0 и накрывать предыдущее значение. Она вызывается как минимум при: смене тарифа, смене MAC, смене IP, собственно тыканьи на "Ресет", изменении оверрайда скорости а также при изменениях CF и тегов если включены соответствующие опции в alter.ini. В таких случаях следует вырубать пользователя при помощи либо "ВсегдаОнлайн" либо при помощи "Замораживалки". Ссылка на сообщение Поделиться на других сайтах
sector 0 Опубліковано: 2012-11-21 14:33:04 Автор Share Опубліковано: 2012-11-21 14:33:04 Замораживалка так же не работает после нажатия кнопки ресет пользователь становиться включенным . Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2012-11-21 14:34:30 Share Опубліковано: 2012-11-21 14:34:30 Что значит "не работает"? Если в логе старгейзера пользователю выставляется отвал - значит он отвалился. Если же этого фактически не произошло - значит это проблема того, что нарисовано в OnConnect/OnDisconnect. Ссылка на сообщение Поделиться на других сайтах
sector 0 Опубліковано: 2012-11-21 14:38:21 Автор Share Опубліковано: 2012-11-21 14:38:21 Если оооооочень вкратце то : iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #этим Вы включаете общее разрешительное правило для NAT выпускать пользователей в инет OnConnect iptables -t mangle -I FORWARD -d $IP -j ACCEPT #разрешаем пропуск пакетов к пользователю iptables -t mangle -I FORWARD -s $IP -j ACCEPT #разрешаем пропуск пакетов от пользователя OnDisconnect iptables -t mangle -D FORWARD -d $IP -j ACCEPT #убираем пропуск пакетов к пользователю iptables -t mangle -D FORWARD -s $IP -j ACCEPT #убираем пропуск пакетов от пользователя По идее этого должно хватить. Но в моем случае этого недостаточно, поэтому в OnDisconnect я добавляю еще пару запрещающих правил. iptables -t mangle -I FORWARD -d $IP -j DROP #запрещаем пропуск пакетов к пользователю iptables -t mangle -I FORWARD -s $IP -j DROP #запрещаем пропуск пакетов от пользователя Инет у пользователя отрубается на OnDisconnect. Это простейшее объяснение , а не призыв делать именно так. Почему ? Потому что : В OnConnect по такой схеме нужно сначала удалить правила запрещающие пропуск пакетов, а только потом создать разрешающее. Использовать такую схему (линейную) - можно только до 100-300 абонентов. (на каждого абона получается от 1 до 5 правил - итого Ваш роутер просто загнется от нагрузки) При большем количестве нужно использовать ipset я читал про большую нагрузку. но мне бы так как есть сначала запустить а потом будет видно но больше 80 пользователей у меня не предвидеться. Ссылка на сообщение Поделиться на других сайтах
sector 0 Опубліковано: 2012-11-21 14:40:00 Автор Share Опубліковано: 2012-11-21 14:40:00 Что значит "не работает"? Если в логе старгейзера пользователю выставляется отвал - значит он отвалился. Если же этого фактически не произошло - значит это проблема того, что нарисовано в OnConnect/OnDisconnect. в логах изменении видно. и видно как в логах появляется OnDisconnect но потом сразу же появляется OnConnect и все работает Думаю что с файером что-то накрутил ... завтра гляну ... в повседневной жизни я Packet Filter от OpenBSD использую и сервера у меня на FreeBSD. есть один хот спот он работает только под Debian и Ubuntu поэтому захотелось их скрестить но пока не получается корректно запустить STG+Ubilling ... Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2012-11-21 14:50:10 Share Опубліковано: 2012-11-21 14:50:10 ... после нажатия кнопки ресет пользователь становиться включенным . Наверное, причина в этом. Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2012-11-21 14:52:24 Share Опубліковано: 2012-11-21 14:52:24 Packet Filter от OpenBSD использую и сервера у меня на FreeBSD. есть ...И при этом Ubilling настоятельно рекомендует использовать BSD системы для своей работы. Для случаев если нужно организовать уровень доступа на каком-то внешнем NAS есть эпический rscriptd. под Debian и Ubuntu Как еще где-то пол сотни сетей использующих Ubilling на разношерстных линуксах забив на неродность системы. Вон тот же Спайдер, например. Наверное, причина в этом. Однозначно. Поэтому по-умолчанию пользователя стоит гасить не "отключенностью" а ВсегдаОнлайном или Морозильником, как рекомендовалось раньше. Ресеты зовутся для практически по каждому чиху, для надежности сохранения актуальности пользовательского состояния. Ссылка на сообщение Поделиться на других сайтах
sector 0 Опубліковано: 2012-11-21 14:59:59 Автор Share Опубліковано: 2012-11-21 14:59:59 завтра покручу еще. посмотрим что из этого выйдет спасибо за ответы ! думаю что завтра еще вернусь Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2012-11-21 15:01:20 Share Опубліковано: 2012-11-21 15:01:20 ... Наверное, причина в этом. Однозначно. Поэтому по-умолчанию пользователя стоит гасить не "отключенностью" а ВсегдаОнлайном или Морозильником, как рекомендовалось раньше. Ресеты зовутся для практически по каждому чиху, для надежности сохранения актуальности пользовательского состояния. Но вот видишь, у товарища не работает. Сломался твой морозильник, наверное Ссылка на сообщение Поделиться на других сайтах
sector 0 Опубліковано: 2012-11-21 15:02:53 Автор Share Опубліковано: 2012-11-21 15:02:53 ... А как определили что после OnDisconnect вызвался OnConnect? В лог-файле Это понятно, вы об этом еще в первом посте написали. Кто пишет этот лог и что за информация в нем? в скриптах OnConnect и OnDisconnect есть строчка которая включает логирование. вот там и подглядел. информацию не готов сейчас привести. Ссылка на сообщение Поделиться на других сайтах
sector 0 Опубліковано: 2012-11-21 15:09:33 Автор Share Опубліковано: 2012-11-21 15:09:33 Приведите пожалуйста пример рабочих скриптов если вас не затруднит. Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2012-11-21 15:21:14 Share Опубліковано: 2012-11-21 15:21:14 Приведите пожалуйста пример рабочих скриптов если вас не затруднит. Я практически уверен что вопрос не в скриптах. Ссылка на сообщение Поделиться на других сайтах
sector 0 Опубліковано: 2012-11-21 15:25:36 Автор Share Опубліковано: 2012-11-21 15:25:36 Приведите пожалуйста пример рабочих скриптов если вас не затруднит. Я практически уверен что вопрос не в скриптах. а в чем ? Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2012-11-21 15:40:21 Share Опубліковано: 2012-11-21 15:40:21 ... Я практически уверен что вопрос не в скриптах. а в чем ? Где-то логика хромает... Или вы, например, отключаете не через AO или "заморозку" и потом делаете reset. Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2012-11-21 15:43:30 Share Опубліковано: 2012-11-21 15:43:30 Сломался твой морозильник, наверное Не, сами пользуемся, отморозков предостаточно На будущее планирую убить двух зайцев - сделать управляемой опицю ресета и заодно рассматривать ее в AlwaysOnline ипостасии как хотфикс проблемы до 2.409. Ссылка на сообщение Поделиться на других сайтах
DarkSpider 36 Опубліковано: 2012-11-21 18:02:58 Share Опубліковано: 2012-11-21 18:02:58 Да приведите Вы примеры стартовых скриптов и скриптов OnConnect/OnDisconnect (На крайняк можно в личку). Примеров скриптов на форуме достаточно. В невероятных количествах. На вкус и цвет. Кстати есть телепатическая теория : Стоит рега с АО, у всех юзеров АО, и ессно при ресете юзер будет все-равно в сети ) Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2012-11-21 18:10:45 Share Опубліковано: 2012-11-21 18:10:45 Кстати есть телепатическая теория : Стоит рега с АО, у всех юзеров АО, и ессно при ресете юзер будет все-равно в сети ) Ну при ресете он должен сохранять свое предыдущее состояние. Именно по этому по дефолту ресет использует "Down". Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас