Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
abills:docs:manual:install_ubuntu:ru [2015/07/15 09:25]
asmodeus [Проверка]
abills:docs:manual:install_ubuntu:ru [2018/03/09 14:08] (текущий)
bohdan [Установка RADIUS]
Строка 1: Строка 1:
-=====Установка ABillS ​Ubuntu ​+ FreeRadius2 + RLMPerl=====+=====Установка ABillS ​Ubuntu===== 
 +** Версия системы под которую писалась инструкция [[http://​releases.ubuntu.com/​16.04.2/​ubuntu-16.04.2-server-amd64.iso|Ubuntu Server 16.04]]**
  
-Загрузить пакет ​можно по адресу [[http://​sourceforge.net/​projects/​abills/​]]\\+При установке выбраны ​только опции: 
 +  * standart system utilities 
 +  * OpenSSH Server
  
-  # cd /usr/ +Работаем в консоли,​ переходим в режим ''​root'':​ 
-  # wget http://​skylink.dl.sourceforge.net/​project/​abills/​abills/​0.56/​abills-0.56.tgz +  # sudo su
- +
  
-  # tar zxvf abills-0.5x.tgz +Сначала обновим систему и пакеты 
-  # cp /​usr/​abills/​libexec/​config.pl.default /​usr/​abills/​libexec/​config.pl+  # apt-get update -yq && apt-get upgrade -yq && apt-get dist-upgrade -yq
  
-Ubuntu 12.4 \\ +Перезагрузились и устанавливаем пакеты ''​MySQL'',​ ''​apache2''​ и библиотеки ''​perl''​
-ABillS 0.57 \\+
  
-Сначала обновим систему +  ​apt-get ​install ​-yq mysql-server mysql-client libmysqlclient-dev apache2 apache2-utils libexpat1 ssl-cert
-  ​apt-get ​update +
-  apt-get dist-upgrade +
-   +
-после установки SSH можно пользоваться внешним терминалом (например Putty) , так удобнее +
-  apt-get install ssh+
  
-Перезагрузились и устанавливаем ​следующие пакеты +==== Скачивание ABillS ==== 
- +На момент написания статьи последняя версия 0.75.110 ([[http://​sourceforge.net/​projects/​abills/​|Проверить]])\\ 
-  apt-get install mysql-server mysql-client libmysqlclient-dev apache2 apache2-doc apache2-mpm-prefork \ +<​code>​ 
-  ​apache2-utils libexpat1 ssl-cert cvs libdbi-perl libdbd-mysql-perl libdigest-md4-perl \ +# cd /usr 
-  ​libdigest-sha-perl libcrypt-des-perl+# wget https://​sourceforge.net/​projects/​abills/​files/​abills/​0.75/​abills-0.75.110.tgz 
 +# tar zxvf abills-0.75.110.tgz 
 +# cp /​usr/​abills/​libexec/​config.pl.default /​usr/​abills/​libexec/​config.pl 
 +</​code>​
    
- 
 Создаем недостающие каталоги и меняем права: Создаем недостающие каталоги и меняем права:
 +<​code>​
   mkdir /​var/​log/​httpd/​   mkdir /​var/​log/​httpd/​
   mkdir -p /​usr/​abills/​var/​log   mkdir -p /​usr/​abills/​var/​log
Строка 35: Строка 33:
   chown -Rf www-data:​www-data /​usr/​abills/​Abills/​templates   chown -Rf www-data:​www-data /​usr/​abills/​Abills/​templates
   chown -Rf www-data:​www-data /​usr/​abills/​backup   chown -Rf www-data:​www-data /​usr/​abills/​backup
- +  touch /​usr/​abills/​var/​log/​sql_errors 
- +  chown nobody /​usr/​abills/​var/​log/​sql_errors 
-====Настройка ​вебсервера====+  chmod 666 /​usr/​abills/​var/​log/​sql_errors 
 +</​code>​ 
 +  ​ 
 +====Настройка ​Apache ​====
  
   cp /​usr/​abills/​misc/​apache/​abills_httpd.conf /​etc/​apache2/​sites-enabled/​   cp /​usr/​abills/​misc/​apache/​abills_httpd.conf /​etc/​apache2/​sites-enabled/​
Строка 49: Строка 50:
   a2enmod suexec   a2enmod suexec
   a2enmod include   a2enmod include
 +  a2enmod cgi
  
 Перезапускаем apache: Перезапускаем apache:
Строка 55: Строка 57:
  
  
-====Настройка ​Абилс==== +====Настройка ​MySQL====
-  cp /​usr/​abills/​libexec/​config.pl.default /​usr/​abills/​libexec/​config.pl+
  
-из файла config.pl(основной конфигурационный файл системы) удаляем старые параметры и добавляем новые ​+  # mysql --default-character-set=utf8 -u root -p 
  
-  ​# nano /usr/abills/​libexec/​config.pl+  ​use mysql; 
 +  GRANT ALL ON abills.* TO `abills`@localhost IDENTIFIED BY "​sqlpassword";​  
 +  CREATE DATABASE abills DEFAULT CHARACTER SET utf8 COLLATE ​ utf8_general_ci;​ 
 +  flush privileges;​ 
 +  quit;
  
-  $conf{dbpasswd}='​sdfesfa';​+Добавляем БД в Mysql 
 +  mysql --default-character-set=utf8 -u root -p -D abills < /​usr/​abills/​db/​abills.sql
  
 +**Если возникает Invalid default value for '​registration'​**\\
 +Выполняем
 +  # sed -i -e "1 s/^/SET SQL_MODE='​NO_ENGINE_SUBSTITUTION,​NO_AUTO_VALUE_ON_ZERO';/;"​ /​usr/​abills/​db/​abills.sql
 +  # mysql --default-character-set=utf8 -u root -p -D abills < /​usr/​abills/​db/​abills.sql
  
-====Настройка Mysql==== 
  
-  mysql --default-character-set=utf8 -u root -p +====Perl modules==== 
 +Для работы системы нужны модули.\\
  
-  ​use mysql; +  ​# cd /​usr/​abills/​misc/​ && perl perldeps.pl apt-get -batch 
-  ​INSERT INTO user (Host, User, Password) ​ + 
-  ​VALUES ('​localhost','​abills',​ password('​sdfesfa'​));​+Улучшаем себе жизнь в будущем:​ 
 +  ​# apt-get install -yq cpanminus
   ​   ​
-  INSERT INTO db (Host, Db, User, Select_priv,​ Insert_priv,​ Update_priv,  +Если какие-то модули не установилисьможно запустить 
-  ​Delete_priv,​ Create_priv,​ Drop_priv, Index_priv, Alter_priv,  +  ​# cpanm <​ИмяМодуля>​
-  Lock_tables_priv,​ Create_tmp_table_priv,​ Create_view_priv,​ +
-  Show_view_priv,​ Execute_priv)  +
-  VALUES ('​localhost',​ '​abills',​ '​abills',​ '​Y',​ '​Y',​ '​Y',​ '​Y',​ '​Y',​  +
-  '​Y',​ '​Y',​ '​Y',​ '​Y',​ '​Y',​ '​Y',​ '​Y',​ '​Y'​);​+
   ​   ​
-  CREATE DATABASE abills DEFAULT CHARACTER SET utf8 COLLATE ​ utf8_general_ci;​ +Например у меня не установился ''​Digest::​SHA1'',​ запускаю:​ 
-  flush privileges;​ +  ​# cpanm Digest::​SHA1
- +
-Добавляем БД в Mysql +
-  ​mysql --default-character-set=utf8 -u root -p -D abills < /​usr/​abills/​abills.sql +
  
  
 ====Установка RADIUS==== ====Установка RADIUS====
 устанавливаем нужные библиотеки для сборки freeradius устанавливаем нужные библиотеки для сборки freeradius
-  apt-get install ​libmysqlclient-dev libmysqlclient-dev libgdbm3 libgdbm-dev+  apt-get install -yq libmysqlclient-dev libgdbm3 libgdbm-dev make gcc libtalloc-dev libperl-dev libhiredis-dev
  
-ищем установленные библиотеки perl  +# find /usr/lib/ | grep libperl.so  
-    +/​usr/​lib/​x86_64-linux-gnu/​libperl.so.5.22 
-  ​# find /usr/lib/ | grep libperl.so +/​usr/​lib/​x86_64-linux-gnu/​libperl.so.5.22.1
-  libperl.so.5.14.2+
  
-теперь делаем линки для подальшей компиляции +Делаем симлинк для ​того, чтоб библиотека ​подгрузилась во время компиляции 
-  ln -s /​usr/​lib/​libperl.so.5.14.2 /usr/lib/libperl.so +  ln -s /usr/lib/​x86_64-linux-gnu/​libperl.so.5.22 ​/usr/lib/x86_64-linux-gnu/libperl.so
-  ln -s /usr/lib/libperl.so.5.14.2 /​usr/​lib/​libperl.so.5.14+
  
-скачиваем ​freeradius ​версии 2 +Скачиваем ​Freeradius ​версии 2.2.9 
- +  cd /tmp 
-  wget ftp://​ftp.freeradius.org/​pub/​freeradius/​freeradius-server-2.2.7.tar.gz +  wget ftp://​ftp.freeradius.org/​pub/​freeradius/​freeradius-server-2.2.9.tar.gz 
-  tar zxvf freeradius-server-2.2.7.tar.gz +  tar zxvf freeradius-server-2.2.9.tar.gz 
-  ​ +  cd freeradius-server-2.2.9 
-  cd freeradius-server-2.2.7 +  ./configure --prefix=/​usr/​local/​freeradius --with-rlm-perl-lib-dir=/​usr/​lib/​x86_64-linux-gnu/​ \ 
-  ./configure --prefix=/​usr/​local/​freeradius --with-rlm-perl-lib-dir=/​usr/​lib/​ --with-openssl=no+   ​--with-dhcp=yes ​--with-openssl=no ​> /dev/null
   make && make install   make && make install
   ​   ​
   ln -s /​usr/​local/​freeradius/​sbin/​radiusd /​usr/​sbin/​radiusd   ln -s /​usr/​local/​freeradius/​sbin/​radiusd /​usr/​sbin/​radiusd
  
-Файл для автозапуска ,- создаем и вставляем в него следующий текст +Файл для автозапуска,​- создаем и вставляем в него следующий текст 
-  nano /​etc/​init.d/​freeradius +  ​nano /​etc/​init.d/​radiusd
-  ​+
   ​   ​
 <​code>​ <​code>​
Строка 121: Строка 121:
  
 ### BEGIN INIT INFO ### BEGIN INIT INFO
-# Provides: ​         ​freeradius+# Provides: ​         ​radiusd
 # Required-Start: ​   $remote_fs $network $syslog # Required-Start: ​   $remote_fs $network $syslog
 # Should-Start: ​     $time mysql slapd postgresql samba krb5-kdc # Should-Start: ​     $time mysql slapd postgresql samba krb5-kdc
Строка 135: Строка 135:
 . /​lib/​lsb/​init-functions . /​lib/​lsb/​init-functions
  
-PROG="freeradius"+PROG="radiusd"
 PROGRAM="/​usr/​sbin/​radiusd"​ PROGRAM="/​usr/​sbin/​radiusd"​
 PIDFILE="/​var/​run/​radiusd/​radiusd.pid"​ PIDFILE="/​var/​run/​radiusd/​radiusd.pid"​
Строка 179: Строка 179:
 esac esac
  
-exit 0</​code>​+exit 0 
 +</​code>​
  
-  ​chmod +x /​etc/​init.d/​freeradius +Включаем в автозагрузку 
-  ​ +  ​chmod +x /​etc/​init.d/​radiusd 
-  update-rc.d ​freeradius ​defaults +  update-rc.d ​radiusd ​defaults 
- +  ​update-rc.d radiusd enable
-==Настройка Freeradius==+
  
 +Устанавливаем конфигурационные файлы ABillS:
   cp /​usr/​abills/​misc/​freeradius/​v2/​radiusd.conf /​usr/​local/​freeradius/​etc/​raddb/​radiusd.conf   cp /​usr/​abills/​misc/​freeradius/​v2/​radiusd.conf /​usr/​local/​freeradius/​etc/​raddb/​radiusd.conf
   rm /​usr/​local/​freeradius/​etc/​raddb/​sites-enabled/​*   rm /​usr/​local/​freeradius/​etc/​raddb/​sites-enabled/​*
Строка 194: Строка 195:
  
 Меняем в конфиге радиуса ​ Меняем в конфиге радиуса ​
-  ​nano /​usr/​local/​freeradius/​etc/​raddb/​radiusd.conf+<​code>​ 
 +  # nano /​usr/​local/​freeradius/​etc/​raddb/​radiusd.conf
  
   prefix = /​usr/​local/​freeradius   prefix = /​usr/​local/​freeradius
Строка 200: Строка 202:
   user = freerad   user = freerad
   group = freerad   group = freerad
 +</​code>​
  
 +Благодаря модулю ''​sql'',​ можно хранить сервера доступа в базе данных (всё равно необходим перезапуск радиуса после добавления/​изменения серверов,​ но не надо править **clients.conf**). \\
 +Очищаем список серверов доступа из **/​usr/​local/​freeradius/​etc/​raddb/​clients.conf** (чтоб не было дупликатов из-за записей в базе)
 +  # echo ''​ > /​usr/​local/​freeradius/​etc/​raddb/​clients.conf
 +  # cp /​usr/​abills/​misc/​freeradius/​v2/​sql.conf /​usr/​local/​freeradius/​etc/​raddb/​
  
-из файла clients.conf ,- удаляем ​все , туда вписываем только айпи насов которые будут работать с радиусом , их их secret-ы : +Заполняем ​нужные нам параметры соединения ​с БД 
-  nano /​usr/​local/​freeradius/​etc/​raddb/​clients.conf+  ​nano /​usr/​local/​freeradius/​etc/​raddb/​sql.conf
 <​code>​ <​code>​
-client 127.0.0.1 ​+sql 
-   secret ​secretpass +        ​database ​"​mysql"​ 
-   shortname ​shorrname +        ​driver ​"​rlm_sql_${database}
-}+        server = "​localhost"​ 
 +        #port = 3306 
 +        login = "​abills"​ 
 +        password = "​sqlpassword"​ 
 +        radius_db = "​abills"​ 
 +         
 +# В самом конце файла 
 +        '​%secretkey%'​ меняем на '​test12345678901234567890'​
 </​code>​ </​code>​
  
  
-Создание ​user и group если freeradius ранее не был установлен то без этого не стартует +Создаём user и group (если freeradius ранее не был установлен то без этого не стартует) 
-  #groupadd freerad +  # groupadd freerad 
-  #useradd -g freerad -s /bash/bash freerad +  # useradd -g freerad -s /bash/bash freerad
  
   # chown -R freerad:​freerad /​usr/​local/​freeradius/​etc/​raddb   # chown -R freerad:​freerad /​usr/​local/​freeradius/​etc/​raddb
 +  # mkdir /​var/​run/​radiusd/​
 +  # chown -R freerad:​freerad /​var/​run/​radiusd/​
  
 стартуем в режиме отладки ​ стартуем в режиме отладки ​
  
-  #  ​/​usr/​local/​freeradius/​sbin/​radiusd -X +  #  radiusd -X 
- +   
-если после старта выполучаете ошибка ​ +Если ​запустилось без ошибок, запускаем 
-  symbol lookup error: /​usr/​lib/​perl/​5.10/​auto/​Cwd/​Cwd.so:​ undefined symbol: Perl_Gthr_key_ptr +  ​# service ​radiusd ​start
- +
-тогда нужно дополнительно подгрузить perl  библиотеку  +
-  ​LD_PRELOAD=/​usr/​lib/​libperl.so ​ /​usr/​local/​freeradius/​sbin/​radiusd ​-X    +
  
 ====Постнастройка Abills==== ====Постнастройка Abills====
  
-Вносим в ''​cron'' ​периодические процессы +Вносим в **/​etc/​crontab** ​периодические процессы 
-**/​etc/​crontab**+
 <​code>​ <​code>​
  ​*/​5 ​ *      *    *     ​* ​  ​root ​  /​usr/​abills/​libexec/​billd -all  ​*/​5 ​ *      *    *     ​* ​  ​root ​  /​usr/​abills/​libexec/​billd -all
Строка 241: Строка 252:
 \\ \\
 и даем доступ на ведение лога ошибок ​ и даем доступ на ведение лога ошибок ​
-  #​chmod ​777 /tmp/sql_errors+  # touch /​usr/​abills/​var/​log/​sql_errors && ​chmod 666 /usr/​abills/​var/​log/sql_errors 
 +   
 +Добавляем линки на ''​gzip''​ и ''​mysqldump''​ для создания бэкапов базы: 
 +  # ln -s /bin/gzip /​usr/​bin/​gzip 
 +  # ln -s /​usr/​bin/​mysqldump /​usr/​local/​bin/​mysqldump 
 +\\
  
-  ​ +\\  ​ 
-Веб интерфейс администратора:​\\+Веб интерфейс администратора: ​(IP адрес можно узнать с помощью ''​ip a''​)\\
 **https://​your.host:​9443/​admin/​**\\ **https://​your.host:​9443/​admin/​**\\
 \\ \\
Строка 252: Строка 268:
 **https://​your.host:​9443/​**\\ **https://​your.host:​9443/​**\\
 \\ \\
- 
- 
  
 В интерфейсе администратора прежде всего надо сконфигурировать сервера доступа NAS (Network Access Server). \\ В интерфейсе администратора прежде всего надо сконфигурировать сервера доступа NAS (Network Access Server). \\
 Переходим в меню\\ Переходим в меню\\
-**System configuration->NAS**\\+**Настройка->Сервера доступа**\\
  
 **Параметры** **Параметры**
Строка 269: Строка 283:
 ^ Disable ​               | Отключить ​                                  | ^ Disable ​               | Отключить ​                                  |
 ^ :​Manage: ​              | Секция менеджмента NAS сервера ​             | ^ :​Manage: ​              | Секция менеджмента NAS сервера ​             |
-^ IP:​PORT ​                 | IP адрес и порт для контроля соединения. Например,​ для отключения пользователя из веб-интерфейса |+^ IP:​PORT ​               | IP адрес и порт для контроля соединения. Например,​ для отключения пользователя из веб-интерфейса |
 ^ User                   | Пользователь для контроля ​                  | ^ User                   | Пользователь для контроля ​                  |
 ^ Password ​              | Пароль ​                                     | ^ Password ​              | Пароль ​                                     |
Строка 275: Строка 289:
  
  
-После заведения сервера доступа добавте ему пул адресов **IP POOLs**.+После заведения сервера доступа добавьте ему пул адресов **IP POOLs**.
 ^ FIRST IP | Первый адрес в пуле| ^ FIRST IP | Первый адрес в пуле|
 ^ COUNT    | Количество адресов | ^ COUNT    | Количество адресов |
 Одному серверу доступа может принадлежать несколько пулов адресов. Одному серверу доступа может принадлежать несколько пулов адресов.
- 
  
  
 Создание тарифного плана\\ Создание тарифного плана\\
 Меню\\ Меню\\
-**System configuration->Internet->Tarif Plans**\\+**Настройка->Интернет->Тарифные планы**\\
  
  
 Регистрация пользователя\\ Регистрация пользователя\\
-**Customers->Users->Add**\\+**Клиенты->Логины->Добавить пользователя**\\
  
  
 Заведение сервиса Internet на пользователя.\\ Заведение сервиса Internet на пользователя.\\
-**Customers->Users->Information->Services->​Internet**\\ +**Клиенты->Логины->Сервисы->Интернет**\\
  
  
Строка 299: Строка 311:
  
 Для проверки правильно ли настроен сервис нужно запустить утилиту radtest указав логин и пароль существующего пользователя. \\  Для проверки правильно ли настроен сервис нужно запустить утилиту radtest указав логин и пароль существующего пользователя. \\ 
 +  # apt-get install freeradius-utils ​
 +
 Логин: test Пароль:​ 123456 Логин: test Пароль:​ 123456
   # radtest test 123456 127.0.0.1:​1812 0 secretpass 0 127.0.0.1   # radtest test 123456 127.0.0.1:​1812 0 secretpass 0 127.0.0.1
   ​   ​
-(в версиях Ubuntu , где нету radtest , - устанавливаем freeradius-utils) 
-  # apt-get install freeradius-utils ​ 
- 
 Если всё правильно настроено,​ в журнале ошибок **/​Отчёт/​Internet/​Ошибка/​** ​ должна появиться строка \\ Если всё правильно настроено,​ в журнале ошибок **/​Отчёт/​Internet/​Ошибка/​** ​ должна появиться строка \\
- 
    
   2014-12-23 12:55:55 LOG_INFO: AUTH [test] NAS: 1 (xxx.xxx.xxx.xxx) GT: 0.03799   2014-12-23 12:55:55 LOG_INFO: AUTH [test] NAS: 1 (xxx.xxx.xxx.xxx) GT: 0.03799
  
-Если Вы увидите другие ошибки смотрите в [[abills:​docs:​modules:​dv:​ru#​%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8|список ошибок]]. Если журнал ошибок пуст значит неправильно настроено взаимодействие с RADIUS сервером.+Если Вы увидите другие ошибки смотрите в [[abills:​docs:​modules:​dv:​ru#​%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8|список ошибок]]. Если журнал ошибок пустзначит неправильно настроено взаимодействие с RADIUS сервером ​(еще раз пройдитесь по секции FreeRadius). 
 ====Дополнительно==== ====Дополнительно====
   * [[abills:​docs:​nas:​linux:​accel_ppp:​ru|Настройка NAS accel-ppp]]   * [[abills:​docs:​nas:​linux:​accel_ppp:​ru|Настройка NAS accel-ppp]]
   * [[abills:​docs:​nas:​mikrotik:​ru|Настройка NAS Mikrotik]]   * [[abills:​docs:​nas:​mikrotik:​ru|Настройка NAS Mikrotik]]
   * [[abills:​docs:​nas:​pppoe_ubuntu:​ru|Настройка PPPoE Ubuntu]]   * [[abills:​docs:​nas:​pppoe_ubuntu:​ru|Настройка PPPoE Ubuntu]]