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


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

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

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

Оффлайн Nesmit

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
ubuntu 11.04
pptpd 1.3.4-2
freeradius2.1.0
abills 0.5
dictionary.microsoft

Разработчик биллинга находится здесь: http://abills.net.ua

Цели:
1.Обеспечить интернетом локальную сеть.
2.Учет трафика
3.Учет финансов
4.Создание тарифных планов.
5.Ограничение по скорости
6.Шифрование 128bit, причин много.
7.Без шифрования, но используя mschapv2.
8.Шифрование личного кабинета (apache SSL)
9.Возможность модернизации:  интеграция почтового сервера с биллингом и т.д. Есть много модулей платных и нет.

Список литературы :
Мною найдено 2 полезные статьи по установки abills.
http://habrahabr.ru/blogs/linux/23650/ - наша основа
http://silverghost.org.ua/2008/10/13/ustanovka-billinga-abills-na-ubuntu-804-lts-server-mikrotik-router-os-v-kachestve-servera-dostupa/ - наша основа №2
еще:
http://www.opennet.ru/base/net/abills_server.txt.html — не менее полезная, но microtik'а у нас нет.
http://www.xakep.ru/magazine/xa/112/136/1.asp — pppoe
Описание параметров в pptpd
http://www.compress.ru/article.aspx?id=18183&iid=842
http://www.volmed.org.ru/wiki/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%B1%D0%B8%D0%BB%D0%BB%D0%B8%D0%BD%D0%B3%D0%BE%D0%B2%D0%BE%D0%B9_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_abills_%2B_VPN_%2B_radius_%2B_mysql#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_.D0.BF.D0.BE.D0.B4.D0.BA.D0.BB.D1.8E.D1.87.D0.B5.D0.BD.D0.B8.D1.8F_.D0.BA_Totol_Control
http://abills.asmodeus.com.ua/forum/viewtopic.php?f=2&t=3281&start=0
В принципе, эта установка ничем не отличается от использования PPPoE или  microtik в качестве NAS. Последнее выгоднее, если клиентов станет больше 100 и без головной боли.

Информацию будем брать из первых 2х статей, они ближе всего к нашей теме. Получится переработанная 1я статья с добавлением некоторых деталей из 2й + мои дороботки.

ВНИМАНИЕ! Перед тем как начать ставить систему. Определитесь, какие сетевые карты вы используете. Рекомендую использовать карты intel или 3com. PPTP на реалтеках глючит и срываются туннели без видимых причин.
1. Устанавливаем систему:
Мой выбор пал на дистрибутив Ubuntu 9.10,  это уже проверенная система в которой отработан набор пакетов.  Обновиться до 10.04, которой осталось 1,5 месяца проблем не составит.  Хороший Админ — ленивый Админ. Зачем нам головная боль?  Первый сервер на LTS 8.04 простоял 1,5 года пока не накрылся жесткий диск. За это время биллинг никто не трогал.

После установки обновляемся, ставим все самое последнее:
#apt-get update
#apt-get dist-upgrade
И ребут.

заходим под рутом.
$ sudo -s -H
2. Устанавливаем необходимые пакеты одной строчкой:
#apt-get install mysql-server mysql-client libmysqlclient15-dev apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt libdbi-perl libdbd-mysql-perl libdigest-md4-perl libdigest-sha1-perl libcrypt-des-perl freeradius radiusclient1 radiusclient1 pptpd
Во время установки MySQL сервер 2 раза спрашивает пароль root для mysql server, скоро понадобится!

Запускаем установленные модули для апача:
a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod include

Перезапускаем apache:
/etc/init.d/apache2 restart
a2enmod rewrite - ОБЯЗАТЕЛЕН, иначе получите ошибку при входе в админку!
 
3. Скачиваем abills 0.50, с сайта http://abills.net.ua распаковываем в /usr/abills или воспользуемся cvs и скачаем стабильный релиз.
Ссылка на файлы: http://sourceforge.net/projects/abills/files/

4. Создаем недостающие каталоги и меняем права:
mkdir /usr/abills/backup
chown -R www-data:www-data /usr/abills/backup
mkdir /usr/abills/cgi-bin/admin/nets
chown -R www-data:www-data /usr/abills/cgi-bin/
mkdir /usr/abills/var
mkdir /usr/abills/var/log
chown -R freerad:freerad /usr/abills/var

Далее редактируем /etc/sudoers добавляем строку. По этой команде убиваются vpn туннели.
Цитировать
www-data ALL=NOPASSWD: /usr/abills/misc/pppd_kill

5. Настраиваем freeradius, информация с сервера разработчика с правками под наш дистрибутив:
в /etc/freeradius/radiusd.conf в секции modules описываем секции:

Цитировать
#abills_preauth
exec abills_preauth {
  program = "/usr/abills/libexec/rauth.pl pre_auth"
  wait = yes
  input_pairs = request
  shell_escape = yes
  #output = no
  output_pairs = config
}

#abills_postauth
exec abills_postauth {
  program = "/usr/abills/libexec/rauth.pl post_auth"
  wait = yes
  input_pairs = request
  shell_escape = yes
  #output = no
  output_pairs = config
}

#abills_auth
exec abills_auth {
  program = "/usr/abills/libexec/rauth.pl"
  wait = yes
  input_pairs = request
  shell_escape = yes
  output = no
  output_pairs = reply
 }

#abills_acc
  exec abills_acc {
  program = "/usr/abills/libexec/racct.pl"
  wait = yes
  input_pairs = request
  shell_escape = yes
  output = no
  output_pairs = reply
}
в секции exec, фаил /etc/freeradius/modules/exec приведем к следующему виду:

exec {                                                       
   wait = yes                                           
   input_pairs = request                                 
   shell_escape = yes                                   
   output = none                                         
   output_pairs = reply                                 
}
Файл /etc/freeradius/sites-enabled/default - правим секции authorize, preacct, post-auth. Остальное в этих секциях комментируем или удалим.
authorize {
  preprocess
  abills_preauth
  mschap
  files
  abills_auth
 }
 
preacct {
  preprocess
  abills_acc
 }

post-auth {
  Post-Auth-Type REJECT {
     abills_postauth
   }
}

в /etc/freeradius/users
Цитировать
DEFAULT Auth-Type = Accept

Редактируем /etc/freeradius/clients.conf коментируем все, в конец добавляем (клиент/сервер на локальной машине, если будут на разных кодовое слово лучше поменять)
Цитировать
client localhost {
ipaddr = 127.0.0.1
secret = radsecret
shortname = shortname
}

Переходим к редактированию файла /etc/freeradius/dictionary, добавляем в конец
Цитировать
# Limit session traffic
ATTRIBUTE       Session-Octets-Limit            227     integer
# What to assume as limit - 0 in+out, 1 in, 2 out, 3 max(in,out)
ATTRIBUTE       Octets-Direction                228     integer
# Connection Speed Limit
ATTRIBUTE       PPPD-Upstream-Speed-Limit       230     integer
ATTRIBUTE       PPPD-Downstream-Speed-Limit     231     integer
ATTRIBUTE       PPPD-Upstream-Speed-Limit-1     232     integer
ATTRIBUTE       PPPD-Downstream-Speed-Limit-1   233     integer
ATTRIBUTE       PPPD-Upstream-Speed-Limit-2     234     integer
ATTRIBUTE       PPPD-Downstream-Speed-Limit-2   235     integer
ATTRIBUTE       PPPD-Upstream-Speed-Limit-3     236     integer
ATTRIBUTE       PPPD-Downstream-Speed-Limit-3   237     integer
ATTRIBUTE Acct-Interim-Interval 85 integer

После этого перезапускаем радиус:
/etc/init.d/freeradius restartЕсли пишет ошибку, то команда freeradius -X выдает лог и служит для поиска онных.

6. Настраиваем radiusclient.
Редактируем /etc/radiusclient/servers
Цитировать
127.0.0.1 radsecret

dictionary.microsoft кладем в /etc/radiusclient/
эти файлы отвечают за поддержку mschap v2 и mppe
взять фаил можно с http://cakebilling.googlecode.com/files/etc.tar.bz2 без него mschap2 и mppe работать отказывается.
в фаил dictionary добавляем строки:
Цитировать
INCLUDE /etc/radiusclient/dictionary.microsoft

# Limit session traffic
ATTRIBUTE       Session-Octets-Limit            227     integer
# What to assume as limit - 0 in+out, 1 in, 2 out, 3 max(in,out)
ATTRIBUTE       Octets-Direction                228     integer
# Connection Speed Limit
ATTRIBUTE       PPPD-Upstream-Speed-Limit       230     integer
ATTRIBUTE       PPPD-Downstream-Speed-Limit     231     integer
ATTRIBUTE       PPPD-Upstream-Speed-Limit-1     232     integer
ATTRIBUTE       PPPD-Downstream-Speed-Limit-1   233     integer
ATTRIBUTE       PPPD-Upstream-Speed-Limit-2     234     integer
ATTRIBUTE       PPPD-Downstream-Speed-Limit-2   235     integer
ATTRIBUTE       PPPD-Upstream-Speed-Limit-3     236     integer
ATTRIBUTE       PPPD-Downstream-Speed-Limit-3   237     integer
ATTRIBUTE       Acct-Interim-Interval            85     integer

правим фаил /etc/hosts
Цитировать
127.0.0.1   localhost vpn-server
127.0.1.1   localhost vpn-server
vpn-server - это имя ВАШЕГО сервера, меняете на ваше усмотрение. Иначе радиус клиент не сможет соединиться с радиус-сервером.

7. Далее необходимо создать БД для AbillS
mysql -u root -p
Цитировать
GRANT ALL ON abills.* TO abills@localhost IDENTIFIED BY "yourpassword";
 CREATE DATABASE abills;
Вариант2: Можно поступить проще, установить пакет phpmyadmin и сделать все за 1 минуту включая генерирование стойкого пароля.
sudo apt-get install phpmyadmin
далее
http://ip-адрес-вашего-сервера/phpmyadmin/
вводим логин root и пароль, для управления сервером и
закладка «Привилегии» –> «Добавить нового пользователя»
Имя пользователя: abills
Хост: localhost
Пароль:нажать кнопку сгенерировать, пароль запомнить или записать.
Поставить галку: Создать базу данных с именем пользователя в названии и предоставить на нее полные привилегии.
Жмем Ок, база создана.

После импорта файла abills.sql, может возникнуть проблема с кодировкой базы, по этому желательно поправить добавив в него принудительно указанную кодировку. Например:

CREATE TABLE `nas_ippools` (
  `pool_id` int(10) unsigned NOT NULL default 0,
  `nas_id` smallint(5) unsigned NOT NULL default '0',
  UNIQUE KEY `nas` (`nas_id`,`pool_id`)
) DEFAULT CHARSET=cp1251  ;
Заодно можно поправить секретный код, который шифрует пароли.
Цитировать
INSERT INTO admins (id, name, regdate, password, gid, aid, disable, phone, web_options) VALUES ('abills','abills','2005-06-16', ENCODE('abills', 'abills345678901234567890'), 0, 1,0,'', '');
Цитировать
INSERT INTO admins (id, name, regdate, password, gid, aid, disable, phone, web_options) VALUES ('system','System user','2005-07-07', ENCODE('test', 'abills345678901234567890'), 0, 2, 0,'', '');

Теперь дамп БД из каталога с abills нужно занести в БД
mysql -u root -p abills < abills.sql 
Настраиваем конфигурационный фаил Abills
В папке /usr/abills/libexec выполняем
cd /usr/abills/libexec
cp config.pl.default config.pl , затем его редактируем.

Указываем верные реквизиты доступа к БД, также меняем некоторые параметры:
$conf{dbhost}='localhost';
$conf{dbname}='abills';
$conf{dbuser}='abills';
$conf{dbpasswd}='SxTcBAx7dYfR7cG7';
$conf{dbcharset}='cp1251';
$conf{default_language}='russian';
$conf{periodic_check}='yes';
$conf{ERROR_ALIVE_COUNT} = 10;
$conf{secretkey}="abills345678901234567890";
$conf{RADIUS2}=1;
Отключаем лишние модули:
@MODULES = ('Dv',
#            'Voip',
#            'Docs',
#            'Mail',
            'Sqlcmd');

Для тех у кого сбрасывает подключенных пользователей по достижению 1.8 гб надо в файле config.pl за комментировать (поставить перед ней #) такую строчку:
$conf{MAX_SESSION_TRAFIC} = 2047;

8.Правим конф /usr/abills/Abills/defs.conf
меняем только приведенные ниже строки
$SNMPWALK = '/usr/bin/snmpwalk';
$SNMPSET = '/usr/bin/snmpset';
$GZIP = '/bin/gzip';
$TAR='/bin/tar';
$MYSQLDUMP = '/usr/bin/mysqldump';
$IFCONFIG='/sbin/ifconfig';
Теперь будет работать backup, изначально конфиг заточен под freeBSD.

8. Создаем сертификат для Apache
mkdir /etc/apache2/ssl
отвечаем на вопросы следующей команды:
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
a2enmod ssl

 Заменяем текст из  /etc/apache2/sites-available/default-ssl на приведенный.
<VirtualHost *:443> 
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
   DocumentRoot /usr/abills/cgi-bin/
    Alias /abills "/usr/abills/cgi-bin/"
    <Directory "/usr/abills/cgi-bin"> 
  <IfModule mod_rewrite.c> 
      RewriteEngine on   
        RewriteCond %{HTTP:Authorization} ^(.*)
       RewriteRule ^(.*) - [E=HTTP_CGI_AUTHORIZATION:%1] 
      Options Indexes ExecCGI SymLinksIfOwnerMatch   
     </IfModule>   
    AddHandler cgi-script .cgi   
    Options Indexes ExecCGI FollowSymLinks   
    AllowOverride none   
    DirectoryIndex index.cgi   
    #Options ExecCGI       
   <Files ~ ".(db|log)$">     
     Order allow,deny       
    Deny from all     
  </Files> 
 </Directory>     
#Admin interface   
 <Directory "/usr/abills/cgi-bin/admin"> 
  AddHandler cgi-script .cgi   
   Options Indexes ExecCGI FollowSymLinks   
    AllowOverride none 
  DirectoryIndex index.cgi 
  order deny,allow 
  allow from all   
 </Directory> 
ErrorLog /var/log/apache2/error-abills.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access-abills.log combined
 </virtualhost>
Меняем кодироку на cp1251 здесь /etc/apache2/conf.d/charset
Цитировать
AddDefaultCharset cp1251

Создаем симлинк:
ln -s /etc/apache2/sites-available/default-ssl /etc/apache2/sites-enabled/default-ssl

Перезапускаем apache
#/etc/init.d/apache2 restartПроверяем работу сервера, заходим по адресу:
https://ip-адрес-вашего-сервера/admin/
Если все завершилось успешно, гут. Если нет, читаем логи. В них вся сила!

9. Настройка pptpd:
Редактируем /etc/pptpd.conf
ppp /usr/sbin/pppd
option /etc/ppp/pptpd-options
connections 500
localip 192.168.160.1
remoteip 192.168.160.1-254

Редактируем /etc/ppp/options, добавляем строку
Цитировать
+mschap-v2

Редактируем /etc/ppp/pptpd-options, добавляем строки:

ms-dns 192.168.160.1 # или любой удобный для вас днс сервер
asyncmap 0
lcp-echo-failure 30
lcp-echo-interval 5
ipcp-accept-local
ipcp-accept-remote

plugin radius.so
plugin radattr.so

По умолчанию конф настроен на mschap-v2+mppe.

Пишем скрипт шейпера и даем права запуска.
touch /etc/ppp/ip-up.d/shaper
chmod 744 /etc/ppp/ip-up.d/shaper
nano /etc/ppp/ip-up.d/shaper

#!/bin/sh

if [ -f /var/run/radattr.$1 ]
   then
   DOWNSPEED=`/usr/bin/awk  '/PPPD-Downstream-Speed-Limit/ {print $2}'  /var/run/radattr.$1`
   UPSPEED=`/usr/bin/awk  '/PPPD-Upstream-Speed-Limit/ {print $2}'  /var/run/radattr.$1`
   
# echo $DOWNSPEED
# echo $UPSPEED >
 
    /sbin/tc qdisc del dev $1 root    > /dev/null
    /sbin/tc qdisc del dev $1 ingress > /dev/null

 ##### speed server->client
   if [ "$UPSPEED" != "0" ] ;
   then
#     /sbin/tc qdisc add dev $1 root handle 1: htb default 20 r2q 1
     /sbin/tc qdisc add dev $1 root handle 1: htb default 20
       /sbin/tc class add dev $1 parent 1: classid 1:1 htb rate ${UPSPEED}kbit burst 4k
     /sbin/tc class add dev $1 parent 1:1 classid 1:10 htb rate ${UPSPEED}kbit burst 4k prio 1
     /sbin/tc class add dev $1 parent 1:1 classid 1:20 htb rate ${UPSPEED}kbit burst 4k prio 2
     /sbin/tc qdisc add dev $1 parent 1:10 handle 10: sfq perturb 10 quantum 1500
     /sbin/tc qdisc add dev $1 parent 1:20 handle 20: sfq perturb 10 quantum 1500
     /sbin/tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match ip tos 0x10 0xff flowid 1:10
     /sbin/tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:10
     /sbin/tc filter add dev $1 parent 1: protocol ip prio 10 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u160x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flowid 1:10
   fi
 ##### speed client->server
   if [ "$DOWNSPEED" != "0" ] ;
   then
     /sbin/tc qdisc add dev $1 handle ffff: ingress
     /sbin/tc filter add dev $1 parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate ${DOWNSPEED}kbit burst 12k drop flowid :1
   fi
 fi
Есть еще один способ шейпить. Через модуль IPN. Об этом способе можно почитать на форуме разработчика.

10. По желанию, устанавливаем squid, делаем его прозрачным.
#apt-get install squidменяем строки в файле /etc/squid/squid.conf
с
Цитировать
http_port 3128
на
Цитировать
http_port 3128 transparent
По умолчанию, в конфиге прописаны все возможные сети, убираем комментарий :
Цитировать
http_access allow localnet
перезапускаем сервис
# /etc/init.d/squid restart

11. Включаем нат и прописываем следущие строчки в фаил  rc.local
 правила фаервола:
ip адрес 192.168.1.10, смотрит в сторону adsl роутера.

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

iptables -F
iptables -F -t nat
iptables -F -t mangle
iptables -X
iptables -X -t nat
iptables -X -t mangle

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

iptables -A INPUT -p TCP  --dport 22 -j ACCEPT

iptables -A INPUT -p UDP -s 0/0 --sport 53 -j ACCEPT
iptables -A INPUT -p UDP -s 0/0  --dport 53 -j ACCEPT

iptables -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -i ppp+ -o eth1 -j ACCEPT

#Открываем Фовардинг
echo "1" > /proc/sys/net/ipv4/ip_forward

exit 0
Скрипт примитивный, но для начала хватит.

12. В /etc/crontab заносим следующее.
*/5 *  *  *  *   root    /usr/abills/libexec/billd -all
1    0  *  *  *   root    /usr/abills/libexec/periodic daily
1    0  1  *  *   root    /usr/abills/libexec/periodic monthly
#backup
1    3  *  *  *   root     /usr/abills/libexec/periodic backup
Скрипт billd, желательно прописать в rc.local
13. Настрока Abills
Открываем web-интерфейс админки по адресу https://ip-адрес-вашего-сервера/admin/
Логин/пароль abills/abills их можно будет потом сменить.

По умолчанию. NAS, пользователь и тариф уже создан. Мы изменим под свои условия.
Идем Система->Сервер доступа
Ip пишем 127.0.0.1
Выбираем тип pppd:pppd + Radius
Alive (sec.): 120
RADIUS Parameters (,): Acct-Interim-Interval=60
Теперь добавляем IP POOLs:
ставим 192.168.160.2-192.168.160.254

 Заводим группы тарифов:
/ Система/ Internet/ Тарифные планы/ Группы/
добавил: безлимит, GID: 0
Идем в/ Система/ Internet/ Тарифные планы/
#: 1
Название: «безлимит»
Группа: «1:безлимит»
Дневная а/п: 10
добавить

Определяем скорости:
/ Система/ Internet/ Тарифные планы/
жмем на, выбранный тариф «Интервалы»
жмем кнопку добавить, затем Трафик
вписываем скорости, добавить.


Теперь заводим пользователя:
/ Клиенты/ Логины/ Internet/ Пользователи Добавить/
создаем клиента: пароль, логин, ФИО, кредит. И сразу можно положить деньги на счет.

Тут главное сначала создать группы тарифов, а потом сами тарифы. Кроме этого читайте на WiKi подробно про все опции. Обычно начинают орать раньше чем поймут что опции означают.

По данной инструкции мной было поднято 4 сервера и успешно работают.
Уже не актуально, абиллс радует своей стабильностью и гибкостью, остальное в ваших руках.

 Если нужно убрать шифрование, делаем так:
Убираем строчку "require-mppe-128" в файле /etc/ppp/pptpd-options  Это даст бОльшую стабильность VPN туннелей и разгрузит ЦПУ.
Скриншоты результата:


Статистика соединений

Все, удачи.


Пользователь решил продолжить мысль 15 Март 2010, 09:51:01:

На хабаре рекомендовали заняться модулем rlm_perl:ru, это разгрузит процц.
http://abills.net.ua/wiki/doku.php/abills:docs:rlm_perl:ru
И хотелось бы добавить, 0.5 почти не отличается от 0.4. Только чуть симпатичнее.

Твики:
Цитировать
и так, чиним пинг в мониторинге.
открываем файлик
/usr/abills/Abills/modules/Dv/webinterface
ищем "/sbin/ping", убираем "/sbin/"
теперь можно пинговать из веб интерфейса

По совет у пользователя Squid007, я настроил паралельно и PPPoE сервер. В этом нет ничего сложного:
И так, формируем фаил с настройками
Цитировать
# cat /etc/ppp/pppoe-server-options
logfile /var/log/pppoe.log
debug
mtu 1472
mru 1472
#auth
refuse-pap
refuse-chap
refuse-mschap
refuse-mschap
require-mschap-v2
#require-mschap
#refuse-mschap-v2

#login
default-asyncmap
ktune
lcp-echo-interval 30
lcp-echo-failure 5
ipcp-accept-local
ipcp-accept-remote
# Прописываем здесь IP-адрес DNS-сервера, который будет выдаваться клиентам
ms-dns 192.168.160.1
proxyarp
nodefaultroute

plugin radius.so
plugin radattr.so

Теперь запускаем из консоли:
modprobe pppoe
pppoe-server -I eth1 -L 192.168.160.1 -O /etc/ppp/pppoe-server-options

В принципе все готово, но в данном случае сервер запущен в режиме пользователя и он не держит более 64х пользователей. Для того что бы это исправить, нужно запустить сервер в режиме ядра, т.е. с параметром "-k". Но есть одно но. pppoe собран без поддержки модуля ядра. И по этому придется собирать самому. Еще нужен параметр "-N" он позволяет подключать большее число пользователей. В итоге, после всех манипуляций, получается следующая команда запуска сервера PPPoE:
modprobe pppoe
pppoe-server -k -N 500 -I eth1 -L 192.168.160.1 -O /etc/ppp/pppoe-server-options

Вот по этим ссылкам вы можете это проделать сами:
http://vladimir-stupin.blogspot.com/2009/02/pppoe-debian.html
http://vladimir-stupin.blogspot.com/2009/02/deb-pppoe.html

Список проблем абиллса 0.40:
- не снимается месячный баланс
- не корректно снимается дневной баланс
- таблица с детальной статистикой по сессиям не чистится
- при смене тарифа и установленной платы за смену тарифа, деньги снимаются в любом случае. (Эта мера для защиты от смены тарифа в течении дня)

Так же возникли трудности с bind9, при подключении абонента скрипт его реконфигурации запускается каждый раз при подключении и отключении. Рекомендую его удалить. То же самое с postfix.
« Последнее редактирование: 30 Октябрь 2011, 00:24:12 от Nesmit »

Оффлайн obsessionsys

  • Любитель
  • *
  • Сообщений: 54
    • Просмотр профиля
    • IT-MEHANIKA
Nesmit Супер, еще раз статья отличная. Еще бы описать как произвести патч pptp на количество больше 100
Спасибо!
Что бы хорошее становилось лучшим, а лучшее - совершенным!

Оффлайн Nesmit

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
вот как раз сегодня буду биться с ним до победного.

Оффлайн obsessionsys

  • Любитель
  • *
  • Сообщений: 54
    • Просмотр профиля
    • IT-MEHANIKA
Извини, позволил себе вынести статью в pdf и немного навести красивостей. Выкладываю.
Что бы хорошее становилось лучшим, а лучшее - совершенным!

Оффлайн Nesmit

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
Замени скрипт шейпера, я нечаянно поломал.

Оффлайн obsessionsys

  • Любитель
  • *
  • Сообщений: 54
    • Просмотр профиля
    • IT-MEHANIKA
Замени скрипт шейпера, я нечаянно поломал.

Заменить скрипт шейпера который в этой теме? Или тем старым, который под abills 0.40 в другом топике?

Пользователь решил продолжить мысль 17 Март 2010, 06:01:08:
Ты в шейпере закоментил строку и вставлена строка без r2q 1:

#     /sbin/tc qdisc add dev $1 root handle 1: htb default 20 r2q 1

В прошлом топике обговаривали что если скорость свыше 128 kb то r2q 1 надо заменить на r2q 10
Внимание! В строке "/sbin/tc qdisc add dev $1 root handle 1: htb default 20 r2q 1" шейпера , лучше поставить "r2q 10", если у вас ругань в логах и вы используете тарифы со скоростью выше 128 кбит. (спасибо Squid007)

Или я что-то не понял?
« Последнее редактирование: 17 Март 2010, 10:15:09 от obsessionsys »
Что бы хорошее становилось лучшим, а лучшее - совершенным!

Оффлайн Nesmit

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
r2q 10 можно поставить, если скорости больше мегабита. в логах кстати отбивается
я вообще одно время не использовал.
Вчера поменял burst 4k на burst 1k, получил кучу причитаний от клиентов :) веб дико тормозил.
Теперь сижу читаю, восстанавливаю в памяти как конфигурируется шейпер. Текущий мне совсем не нравится.

Оффлайн obsessionsys

  • Любитель
  • *
  • Сообщений: 54
    • Просмотр профиля
    • IT-MEHANIKA
Тогда с твоего позволения выкладываю обновленный файл в pdf-е с шейпером с этого топика. Но у меня шейпер с параметром default 20 r2q 10  и burst 4k отлично работает, ну пока никто не жаловался. Какую скорость поставлю такая и есть, тестировал у себя.


Пользователь решил продолжить мысль 17 Март 2010, 08:29:49:
Я так понял что ты хочешь задействовать встроенный модуль шейпера от abillsа IPN?  Или доработать этот?

Выкладываю ссылку на самописный модуль карточек от SilverGhost. Встроенный модуль карточек от Abills стоит уже 70$, SilverGhost распространяет его по GPLv3 лицензии, т.е. бесплатно.

Ссылка на ресурс и инструкцией : http://silverghost.org.ua/2009/06/02/modul-kartochek-dlya-abills/

Ссылка для скачивания svn:
Цитировать
svn co --username anonymous http://svn.in-lan.net.ua/svn/ABills/cards/ /usr/abills/cgi-bin/cards
« Последнее редактирование: 17 Март 2010, 10:32:51 от obsessionsys »
Что бы хорошее становилось лучшим, а лучшее - совершенным!

Оффлайн Nesmit

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
Цитировать
Я так понял что ты хочешь задействовать встроенный модуль шейпера от abillsа IPN?  Или доработать этот?
хочу свой, но пока не знаю как зашейпить грамотно исходящий трафик с включенным NAT + 2 внешних канала .)

Вот пример другого шейпера, который берет данные из базы.
http://abills.net.ua/forum/viewtopic.php?f=6&t=4921

Пользователь решил продолжить мысль 17 Март 2010, 08:52:28:
на r2q 10
у меня ругань в логах, что типа слишком большое значение. скорости 1-2 мегабита
И вот это почитай:
http://www.volmed.org.ru/wiki/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%B1%D0%B8%D0%BB%D0%BB%D0%B8%D0%BD%D0%B3%D0%BE%D0%B2%D0%BE%D0%B9_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_abills_%2B_VPN_%2B_radius_%2B_mysql#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_.D0.B4.D0.BB.D1.8F_freeradius_1.7..2A
« Последнее редактирование: 17 Март 2010, 11:02:03 от Nesmit »

Оффлайн stmc

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1713
  • Arch Linux
    • Просмотр профиля
    • Моя страница на Launchpad
надо было статью изначально в http://help.ubuntu.ru/wiki писать, на форуме затеряться может

Оффлайн obsessionsys

  • Любитель
  • *
  • Сообщений: 54
    • Просмотр профиля
    • IT-MEHANIKA
Ну по поводу зомби я даже как то не подумал, сейчас проверил, да зомби висят. В файле acct_users заменил Exec-Program на Exec-Program-Wait

Nesmit извини конечно меня за мой наверно тупой вопрос, я не могу найти логи pptpd, где они должны быть. Понимаю что /var/log , а в какой файл должны сваливаться..

Пользователь решил продолжить мысль 17 Март 2010, 11:41:36:
надо было статью изначально в http://help.ubuntu.ru/wiki писать, на форуме затеряться может
Наверно на то и поиск на форуме есть, стоит только ввести abills и пожалуйста все статьи с форума. А вообщем с тобой согласен.
« Последнее редактирование: 17 Март 2010, 11:41:36 от obsessionsys »
Что бы хорошее становилось лучшим, а лучшее - совершенным!

Оффлайн Slimer

  • Любитель
  • *
  • Сообщений: 62
    • Просмотр профиля
логи от pptpd лежат в файле messages. Конец файла смотреть надо.

Спасибо за хав-ту. Почти все работает. Только пакеты не ходят. Вроде пакеты отправляются, а клиент принять не может. но это уже мой косяк, надо копать. Выражаю глубокую благодарность за проделанную работу! =)

Оффлайн Nesmit

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
Ну по поводу зомби я даже как то не подумал, сейчас проверил, да зомби висят. В файле acct_users заменил Exec-Program на Exec-Program-Wait

Nesmit извини конечно меня за мой наверно тупой вопрос, я не могу найти логи pptpd, где они должны быть. Понимаю что /var/log , а в какой файл должны сваливаться..
что за зомби?
почти во все сваливаются. кернел, если проблема с шейпером

Пользователь решил продолжить мысль 17 Март 2010, 13:26:08:
логи от pptpd лежат в файле messages. Конец файла смотреть надо.

Спасибо за хав-ту. Почти все работает. Только пакеты не ходят. Вроде пакеты отправляются, а клиент принять не может. но это уже мой косяк, надо копать. Выражаю глубокую благодарность за проделанную работу! =)
логи лежат в разных местах, в зависимости что происходит. например в даймонлог

Какие у тебя пакеты неходят? пинги до 192.168.160.1 идут?
Да уж спасибо, постарался. С этим материалом я собирался инвайт получить.

Пользователь решил продолжить мысль 17 Март 2010, 17:30:50:
Скачиваем исходники
   mkdir pptpd-path
   cd pptpd-path
   apt-get source pptpd
   apt-get build-dep pptpd

патчим фаил: defaults.h
компилим:
dpkg-buildpackage -rfakeroot
Я такое уже делал на 8.04, давно. И что то похоже не получилось.
« Последнее редактирование: 17 Март 2010, 17:30:50 от Nesmit »

Оффлайн Slimer

  • Любитель
  • *
  • Сообщений: 62
    • Просмотр профиля
Я уже разобрался, спасибо, сделал перенаправление сразу на айпишник модема, а не на сетевушку, поэтому и не шли пакетики. Еще оказывается абилис не желает конектить, если у юзера нет денежного счета. Я когда юзера создавал, ему денежный счет не открывал, т.к. он мне не нужен. Оказывается необходимо.
Могу инвайт дать, скажи свой ящик в личку если хочешь =)

Оффлайн Nesmit

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

 

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