Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: [HOWTO] Ubuntu 11.04+abills0.5 для малого офиса или мелкого провайдера.  (Прочитано 125334 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Procik

  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Насчёт проверки депозита. Исправил скрипт
#!/bin/sh
export CDATE=$(date "+%Y-%m-%d_%H:%M:%S")

IP_PPTP=${PPP_REMOTE}

UNAME=`/usr/bin/radwho|grep ${IP_PPTP}|awk '{print $2}'|head -n 1`
USERBALANCE=$( /usr/bin/mysql -uroot -pcjhjhz -B abills -e \
            "SELECT SUM(users.credit + bills.deposit) FROM users \
            INNER JOIN bills ON (users.uid=bills.uid) \
            WHERE users.id='$UNAME'" | /usr/bin/tail -n 1 )

iptables -t nat -I PREROUTING -s ${IP_PPTP} -j RETURN
iptables -D FORWARD -s ${IP_PPTP} -d 0/0 -j DROP
iptables -D FORWARD -s 0/0 -d ${IP_PPTP} -j DROP
iptables -t nat -D PREROUTING -s ${IP_PPTP} -p tcp -m multiport --dport 80,81,82,8080,3128,443 -j DNAT --to-destination x.x.x.x:81

if [ "x$USERBALANCE" != "x" ] && [ "x$USERBALANCE" != "xNULL" ]; then
    echo "$CDATE $UNAME $USERBALANCE negative" >> /var/log/no_money.log
    if [ "x$( /usr/bin/awk 'BEGIN { if('$USERBALANCE'<=0.1) print("NEGATIVE") }' )" = "xNEGATIVE" ]; then
        echo "$CDATE User [$1] $UNAME [${IP_PPTP}] add rules (negative deposit $USERBALANCE)" >> /var/log/no_money.log

iptables -t nat -D PREROUTING -s ${IP_PPTP} -j RETURN
iptables -t nat -D PREROUTING -s ${IP_PPTP} -j RETURN
iptables -I FORWARD -s ${IP_PPTP} -d 0/0 -j DROP
iptables -I FORWARD -s 0/0 -d ${IP_PPTP} -j DROP
iptables -t nat -I PREROUTING -s ${IP_PPTP} -p tcp -m multiport --dport 80,81,82,8080,3128,443 -j DNAT --to-destination x.x.x.x:81
    else
        echo "$CDATE User [$1] $UNAME [${IP_PPTP}] logged in (deposit: $USERBALANCE)" >> /var/log/no_money.log
    fi
fi
По поводу ограничения в 2 Гб. Никто не пробовал через Octets-Direction ограничить только исходящий трафик? Там по дефолту суммарный.
« Последнее редактирование: 06 Ноября 2011, 23:52:41 от Procik »

Оффлайн Nesmit

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
Да, с ядерным. Пересобирал rp-pppoe. Впрочем подобное легко повторяется и с pptp, т.е. зависание.

Если вспомню, сообщу.
По поводу ограничения в 2 Гб. Никто не пробовал через Octets-Direction ограничить только исходящий трафик? Там по дефолту суммарный.
Есть другие способы ограничивать и считать трафик. Только скрипты что идут с абилсом, по слухам, насильно сделаны тормозными. А когда на форуме опубликовали правильный код, то это сообщение затерли.
Слухами земля полнится. :)

Оффлайн bancher

  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
    • Весна Красна
Здраствуйте настраивал все по этому ману! на виндвой машине ошибка 691
может кто сталкивался с этой проблемой буду благодарен
предоставляю syslog
 
(Нажмите, чтобы показать/скрыть)

Оффлайн Procik

  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Установил Octets-Direction на исходящий трафик, полёт нормальный, скоростя пропускаем небольшие, хватает.
« Последнее редактирование: 04 Ноября 2011, 16:51:00 от Procik »

Оффлайн Nesmit

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
Здраствуйте настраивал все по этому ману! на виндвой машине ошибка 691
может кто сталкивался с этой проблемой буду благодарен
Jan  1 08:59:29 ubuntu pppd[888]: rc_check_reply: received invalid reply digest from RADIUS server
Jan  1 08:59:29 ubuntu pppd[888]: Peer test1 failed CHAP authentication
Ну во первых начнем с того что в 99% случаев народ сам ошибается и ман тут не причем.
во вторых инфы недостаточно. То что в логе написано только говорит о том что фрирадиус и ppp сервер не договорились о протоколе аунтификации. Внимательно поглядите ветку на предмет дебага ошибок и какие логи нужны.

Пользователь решил продолжить мысль 04 Ноября 2011, 22:33:43:
Установил Octets-Direction на исходящий трафик, полёт нормальный, скоростя пропускаем небольшие, хватает.
Замечательно, надеюсь на подводные камни не нарветесь. Время покажет.
« Последнее редактирование: 04 Ноября 2011, 22:33:43 от Nesmit »

Оффлайн Farton

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Дано Ubuntu 10.04.3, ABillS 0.52b
Нужно rlm_perl
В начале делаем как написано на сайте биллинга
Запускаем freeradius -X и видим:
freeradius: symbol lookup error: /usr/lib/perl/5.10/auto/Cwd/Cwd.so: undefined symbol: Perl_Gthr_key_ptr
Пробую запустить с путем к библиотеке
sudo LD_PRELOAD=/usr/lib/libperl.so.5.10.0 freeradius -X
Получаю те же матюки
farton@gate:~$ ls -l /usr/lib/ | grep libperl
lrwxrwxrwx  1 root root       17 2011-06-01 17:17 libperl.so.5.10 -> libperl.so.5.10.1
-rw-r--r--  1 root root  1487368 2011-04-22 23:05 libperl.so.5.10.1

Пробую запустить указав прямо на файл, а не симлинк
sudo LD_PRELOAD=/usr/lib/libperl.so.5.10.1 freeradius -X

Listening on authentication address * port 1812
Listening on accounting address * port 1813
Listening on proxy address * port 1814
Ready to process requests.
Как говорится It works! Осталось добавить изменения в стартовый скрипт в /etc/init.d/freeradius
case "$1" in
        start)
                log_daemon_msg "Starting $DESCR" "$PROG"
                LD_PRELOAD=/usr/lib/libperl.so.5.10.1 start-stop-daemon --start --quiet --pidfi

А accel-ppp в качестве наса никто не использовал?
Я попробовал, авторизует, считает, но принудительно разорвать сессию не могу, получаю ошибку
Radius Hangup failed. Can't find NAS IP and port. NAS: 1 USER: Информация
Отключен
Сервер доступа ID 1
Сервер доступа IP 127.0.0.1
Порт 0
SESSION_ID 10a07b4bf3d228b8 0

 

Оффлайн Nesmit

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
Ну блин, КРУТО :) теперь на P4 можно гонять до 100 зверей или при канале в 20 мегабит до 500 хомячков.
Теперь давай по подробнее, я впишу в How To

Оффлайн Farton

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Теперь давай по подробнее, я впишу в How To
Что именно поподробнее?
Правда заметил одну странность в логах, про авторизацию пишет 2 раза.
2011-11-06 00:13:21 LOG_INFO AUTH user124 CID: ХХХ GT: 0.06251 NAS
2011-11-06 00:13:21 LOG_INFO AUTH user124 CID: XXX GT: 0.00507 NAS

Пользователь решил продолжить мысль 06 Ноября 2011, 11:56:33:
Двойную авторизацию победил, надо было просто еще все что к exec авторизации относиться закомментировать sites-enabled/default
2011-11-06 11:49:56 LOG_INFO AUTH farton CID: XXX GT: 0.00512 NAS ServerТеперь надо собраться с мыслями и написать понятно  :idiot2:

Пользователь решил продолжить мысль 06 Ноября 2011, 13:33:57:
C accel-ppp c завершением сессии разобрался, надо в конфиге accel-ppp.conf использовать параметр
[radius]
dae-server=127.0.0.1:3799,testing123
И в биллинге в свойствах nas сервера использовать секцию
:Управление:
IP:PORT: 127.0.0.1:3799
Пользователь:
Пароль:         testing123
Поле пользователь не заполняется 

Пользователь решил продолжить мысль 06 Ноября 2011, 14:00:28:
И про шейпинг через модуль IPN. В том виде в котором он опубликован у меня не заработало, пока не изменил
это
$TCQD root &>/dev/null
$TCQD ingress &>/dev/null
на это
$TCQD root >    /dev/null
$TCQD ingress > /dev/null

Иначе при первом подключении скорость ограничивалась, а если отключиться и подключиться обратно ограничение не работало и клиент получал весь канал.

« Последнее редактирование: 06 Ноября 2011, 14:00:28 от Farton »

Оффлайн Nesmit

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
Описывай по шагам, что делал где нажимал. Новички очень любят ставить биллинг и только диву даешься почему у них 691 ошибка выскакивает. 
accel-ppp умеет сам регулировать скорость на интерфейсе. Причем менять можно в режиме реального времени.
« Последнее редактирование: 06 Ноября 2011, 22:26:03 от Nesmit »

Оффлайн Farton

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
accel-ppp умеет сам регулировать скорость на интерфейсе. Причем менять можно в режиме реального времени.

В данный момент pppd c гигавордсами трудится, поэтому шейпер нужен. Про accel-ppp тоже написать подробно или не надо?

Оффлайн Nesmit

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
нада, потом перенесут в документацию :)

Оффлайн Farton

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Проблему с подвисшими сессиями решил. Проблема была в том что выдавались одинаковые IP из пула, но в мониторинге этого не наблюдалось.
Обнаружил при помощи route. Хотя может глаза у меня кривые :D
На форуме разработчика можно почитать
Ну а если на пальцах, то вот. Галки нужно напротив пулов поставить. Этим и объяснились одинаковые глюки с pppoe и pptp, хотя они работают на разных уровнях.

Оффлайн Nesmit

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
Точно, теперь вспомнил, вот блин память.   :'(
Помница я в 0.42 нечаянно сделал пару пулов и они пересеклись. Решил быстро и по этому не помню как.
А при переезде на 0.5 у меня встал геморой с нехваткой ip. Через час после старта сервера в онлайне 30 клиентов, а ip больше не выдаются.
Искать проблему не было времени, откатился на стабильно работающую 0.42
И еще через некоторое время, сменился род деятельности и с биллингами пока не работаю :(

Оффлайн fet4

  • Любитель
  • *
  • Сообщений: 75
    • Просмотр профиля
И про шейпинг через модуль IPN. В том виде в котором он опубликован у меня не заработало, пока не изменил
это
$TCQD root &>/dev/null
$TCQD ingress &>/dev/null
на это
$TCQD root >    /dev/null
$TCQD ingress > /dev/null
Иначе при первом подключении скорость ограничивалась, а если отключиться и подключиться обратно ограничение не работало и клиент получал весь канал.
Как понял, что надо изменить? не совсем понимаю что ты изменил, но у меня тоже существует проблема - что при переподключениях пользователю отдается весь канал ???

Оффлайн Farton

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Как понял, что надо изменить? не совсем понимаю что ты изменил, но у меня тоже существует проблема - что при переподключениях пользователю отдается весь канал ???
Вот содержимое ip-pre-up с моего сервера
#!/bin/sh

TC="/sbin/tc"
TCQA="$TC qdisc add dev $IFNAME"
TCQD="$TC qdisc del dev $IFNAME"

$TCQD root > /dev/null
$TCQD ingress > /dev/null

$TCQA root handle 1: htb
$TCQA handle ffff: ingress

/usr/abills/libexec/linkupdown ipn up $IFNAME $PEERNAME $IPREMOTE OS=Linux

P.S. Все никак не соберусь описать страдания по rlm_perl, времени нет совсем  :-\

 

Страница сгенерирована за 0.032 секунд. Запросов: 25.