Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
abills:docs:manual:install_centos:ru [2017/07/07 09:47]
anton [Дополнительная конфигурация системы]
abills:docs:manual:install_centos:ru [2019/02/14 13:42] (текущий)
asmodeus
Строка 13: Строка 13:
 Обновляем систему и ставим дополнительные пакеты:​ Обновляем систему и ставим дополнительные пакеты:​
   # yum update -y   # yum update -y
-  # yum install -y wget gcc make nano perl+  # yum install -y wget gcc make nano perl ntp ntpdate
   ​   ​
  В файле конфига изменяем ''​SELINUX=enforcing''​ на ''​SELINUX=disabled''​ (Если не знаете что делать потом с SELINUX)  В файле конфига изменяем ''​SELINUX=enforcing''​ на ''​SELINUX=disabled''​ (Если не знаете что делать потом с SELINUX)
Строка 44: Строка 44:
 При изменении значения в $conf{secretkey} поменяйте его также в файле **/​usr/​abills/​db/​abills.sql** При изменении значения в $conf{secretkey} поменяйте его также в файле **/​usr/​abills/​db/​abills.sql**
   ​   ​
-==== Установка MySQL==== +==== Установка MySQL ====
-===   ​*CentOS 7.xx (MariaDB) ​===+
 Подключаем репозиторий Подключаем репозиторий
   # yum -y install http://​www.percona.com/​downloads/​percona-release/​redhat/​0.1-4/​percona-release-0.1-4.noarch.rpm   # yum -y install http://​www.percona.com/​downloads/​percona-release/​redhat/​0.1-4/​percona-release-0.1-4.noarch.rpm
Строка 78: Строка 77:
   # systemctl is-enabled mysql || systemctl enable mysql   # systemctl is-enabled mysql || systemctl enable mysql
  
-==== Установка модулей Perl====+=== Настройка === 
 +**Заливаем БД ABillS** (пароль тот же что и в **config.pl** и **sql.conf** ) 
 +  # mysql --default-character-set=utf8 -u root 
 + 
 +  use mysql; 
 +  SET GLOBAL validate_password_policy=0;​ 
 +  GRANT ALL ON abills.* TO `abills`@localhost IDENTIFIED BY "​sqlpassword"; ​  
 +  CREATE DATABASE abills DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;​ 
 +  flush privileges;​ 
 +  quit; 
 +   
 +Добавляем базу данных abills: 
 +  # cd /​usr/​abills/​db/​ 
 +  # mysql --default-character-set=utf8 -D abills < 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 
 +==== Установка модулей Perl ====
 Запускаем скрипт установки зависимостей Perl Запускаем скрипт установки зависимостей Perl
   # cd /​usr/​abills/​misc/​ && perl perldeps.pl rpm -batch   # cd /​usr/​abills/​misc/​ && perl perldeps.pl rpm -batch
Строка 93: Строка 111:
 ==== Установка и настройка Apache ==== ==== Установка и настройка Apache ====
 Устанавливаем Устанавливаем
-  # yum -y install httpd httpd-devel httpd-tools+  # yum -y install httpd httpd-devel httpd-tools ​mod_ssl
   ​   ​
 Создаём сертификат (можно использовать значения по умолчанию) Создаём сертификат (можно использовать значения по умолчанию)
Строка 113: Строка 131:
 ==== Установка и настройка Freeradius ==== ==== Установка и настройка Freeradius ====
 Устанавливаем пакеты,​ необходимые для сборки Устанавливаем пакеты,​ необходимые для сборки
-  # yum -y install gdbm gdbm-devel install perl-ExtUtils-Embed gcc+  # yum -y install gdbm gdbm-devel install perl-ExtUtils-Embed gcc libtalloc-devel
   ​   ​
 Ищем куда установились библиотеки perl Ищем куда установились библиотеки perl
Строка 120: Строка 138:
  
 Устанавливаем сам Freeradius Устанавливаем сам Freeradius
-  # wget ftp://​ftp.freeradius.org/​pub/​freeradius/​freeradius-server-2.2.9.tar.gz +  ​# cd /tmp 
-  # tar zxvf freeradius-server-2.2.9.tar.gz +  ​# wget ftp://​ftp.freeradius.org/​pub/​freeradius/​freeradius-server-3.0.17.tar.gz 
-  # cd freeradius-server-2.2.9+  # tar zxvf freeradius-server-3.0.17.tar.gz 
 +  # cd freeradius-server-3.0.17
  
 Здесь используем ранее найденную папку с библиотекой (**/​usr/​lib64/​perl5/​CORE/​**) Здесь используем ранее найденную папку с библиотекой (**/​usr/​lib64/​perl5/​CORE/​**)
Строка 130: Строка 149:
 Копируем конфигурационные скрипты (выполнять построчно):​ Копируем конфигурационные скрипты (выполнять построчно):​
 <​code>​ <​code>​
-  # cp /​usr/​abills/​misc/​freeradius/​v2/​radiusd.conf /​usr/​local/​freeradius/​etc/​raddb/​radiusd.conf+
   # rm -f /​usr/​local/​freeradius/​etc/​raddb/​sites-enabled/​*   # rm -f /​usr/​local/​freeradius/​etc/​raddb/​sites-enabled/​*
-  # cp /​usr/​abills/​misc/​freeradius/​v2/​default_rlm_perl /​usr/​local/​freeradius/​etc/​raddb/​sites-enabled/​abills_default +  # cp /​usr/​abills/​misc/​freeradius/​v3/​default_rlm_perl /​usr/​local/​freeradius/​etc/​raddb/​sites-enabled/​abills_default 
-  # cp /​usr/​abills/​misc/​freeradius/​v2/users_perl /​usr/​local/​freeradius/​etc/​raddb/​users +  # cp /​usr/​abills/​misc/​freeradius/​v3/users_perl /​usr/​local/​freeradius/​etc/​raddb/​users 
-  # cp /​usr/​abills/​misc/​freeradius/​v2/perl /​usr/​local/​freeradius/​etc/​raddb/​modules/​+  # cp /​usr/​abills/​misc/​freeradius/​v3/perl /​usr/​local/​freeradius/​etc/​raddb/​modules/​
   ​   ​
   ln -s /​usr/​local/​freeradius/​sbin/​radiusd /​usr/​sbin/​radiusd   ln -s /​usr/​local/​freeradius/​sbin/​radiusd /​usr/​sbin/​radiusd
Строка 147: Строка 166:
   group = freerad   group = freerad
  
-В файле ''​/​usr/​local/​freeradius/​etc/​raddb/​clients.conf'' ​удалить ​всё и вписать:   +Благодаря модулю ''​sql''​, можно хранить сервера доступа в базе данных (всё равно необходим перезапуск радиуса после добавления/изменения серверов, но не надо править **clients.conf**). \\ 
-   +Очищаем список серверов доступа из **/​usr/​local/​freeradius/​etc/​raddb/​clients.conf** (чтоб не было дупликатов из-за записей в базе) 
-  client 127.0.0.1 { +  # echo ''​ > /​usr/​local/​freeradius/​etc/​raddb/​clients.conf 
-   ​secret = secretpass +  # cp /​usr/​abills/​misc/​freeradius/​v2/​sql.conf /​usr/​local/​freeradius/​etc/​raddb/​
-   ​shortname = shorrname +
-  } +
-   +
-Создание user и group если freeradius ​ранее не был установлен то без ​этого не стартует:+
  
 +Заполняем нужные нам параметры соединения с БД
 +  # nano /​usr/​local/​freeradius/​etc/​raddb/​sql.conf
 +<​code>​
 +sql {
 +        database = "​mysql"​
 +        driver = "​rlm_sql_${database}"​
 +        server = "​localhost"​
 +        #port = 3306
 +        login = "​abills"​
 +        password = "​sqlpassword"​
 +        radius_db = "​abills"​
 +        ​
 +# В самом конце файла
 +        '​%secretkey%'​ меняем на '​test12345678901234567890'​
 +</​code>​
 +
 +Создаём 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 freerad:​freerad /​var/​run/​radiusd/​ 
- 
-Запускаем Radius в режиме отладки:​ 
-  # /​usr/​local/​freeradius/​sbin/​radiusd -X 
-  ​ 
-Если нет ошибок,​ включаем radiusd в автозагрузку:​\\ 
-Делаем ссылку на скрипт запуска в каталог /​etc/​init.d\\ 
-  # ln -s /​usr/​local/​freeradius/​sbin/​rc.radiusd /​etc/​init.d/​radiusd 
  
-Вставляем в конец первого комментария ''/​etc/​init.d/​radiusd''​ (описание программы,​ под"# Copyright...",​ **вставляем ​комментарием**):​\\ +Запуск radius ​в режиме отладки ​
-  # nano /​etc/​init.d/​radiusd+
 <​code>​ <​code>​
-  ​chkconfig: ​58 74 +  ​#  /​usr/​sbin/​radiusd ​-X 
-  description: ​radiusd ​is service access provider Daemon.+</​code>​ 
 +или 
 +<​code>​ 
 +  ​# radiusd ​-X
 </​code>​ </​code>​
  
-Даем ​права ​на запись в каталог run: +Если нет ошибок,​ включаем ​radiusd в автозагрузку:\\ 
-  # chown freerad:freerad ​/usr/local/freeradius/var/run/radiusd/+Скачиваем systemd скрипт  
 +  # wget http://abills.net.ua/misc/centos7.radiusd 
 +  # mv centos7.radiusd ​/etc/systemd/system/​radiusd.service 
 +  # systemctl daemon-reload 
 +  # systemctl enable radiusd
  
 Проверяем: ​ Проверяем: ​
   # service radiusd start   # service radiusd start
   # ps ax | grep rad   # ps ax | grep rad
-В списке запущенных процесов ищем наш /​usr/​local/​freeradius/​bin/​radiusd\\+В списке запущенных процесов ищем наш ​**/​usr/​local/​freeradius/​bin/​radiusd**\\
   ​   ​
-Включаем в автозапуск:​\\ +Добавляем сервис в файрвол
-  # chkconfig radiusd on +
-   +
-**Важно** +
-В CentOS 7.2 Для корректной работы,​ необходимо добавить ​сервис в файрвол+
   # firewall-cmd --permanent --zone=public --add-service=radius   # firewall-cmd --permanent --zone=public --add-service=radius
   ​   ​
   ​   ​
-==== Настройка базы данных ==== 
  
-  # mysql --default-character-set=utf8 -u root -p 
- 
-  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; 
-  ​ 
-Добавляем базу данных abills: 
-  # cd /​usr/​abills/​db/​ 
- 
-  # mysql --default-character-set=utf8 -D abills < abills.sql -p 
-  ​ 
-  ​ 
 ====Периодические процесы==== ====Периодические процесы====
  
-Вносим в cron периодические процессы **/​etc/​crontab**. Данные программы занимаются контролем состояния сессий (billd), месячной и дневной абонплатой,​ тарифных планов по расписанию (periodic) \\+Вносим в cron периодические процессы ​( в конец файла ​**/​etc/​crontab** ​). Данные программы занимаются контролем состояния сессий (billd), месячной и дневной абонплатой,​ тарифных планов по расписанию (periodic) \\
  
 <​code>​ <​code>​
-*/5   ​            ​  ​root    /​usr/​abills/​libexec/​billd -all + */5 *     root      /​usr/​abills/​libexec/​billd -all 
-    ​            ​  ​root    /​usr/​abills/​libexec/​periodic daily +       root      /​usr/​abills/​libexec/​periodic daily 
-    ​            ​  ​root    /​usr/​abills/​libexec/​periodic monthly+       root      /​usr/​abills/​libexec/​periodic monthly
 </​code>​ </​code>​
  
 Если нет файла, устанавливаем:​ Если нет файла, устанавливаем:​
   # yum -y install crontab   # yum -y install crontab
-==== Установка и настройка accel-ppp: ==== +
-[[abills:​docs:​nas:​linux:​accel_pptp:​ru?&#​centos| Установка и настройка accel-ppoe]]+
 ==== Тестирование ==== ==== Тестирование ====
 Тестирование Freeradius: Тестирование Freeradius:
Строка 227: Строка 236:
   # ./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
   ​   ​
 +При правильной конфигурации БД и Freeradius, получим
 +<​code>​
 +Sending Access-Request of id 200 to 127.0.0.1 port 1812
 +        User-Name = "​test"​
 +        User-Password = "​123456"​
 +        NAS-IP-Address = 127.0.0.1
 +        NAS-Port = 0
 +        Message-Authenticator = 0x00000000000000000000000000000000
 +rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=200, length=44
 +        Acct-Interim-Interval = 300
 +        Session-Timeout = 2122244
 +        Framed-IP-Address = 10.0.0.182
 +        Framed-IP-Netmask = 255.255.255.255
 +
 +</​code>​
 +==== Вход в веб интерфейс ====
 +Смотрим IP адрес ​
 +  # ip a
 +У меня вывело:​
 +<​code>​
 +[root@centos bin]# ip a
 +1: lo: <​LOOPBACK,​UP,​LOWER_UP>​ mtu 65536 qdisc noqueue state UNKNOWN qlen 1
 +    link/​loopback 00:​00:​00:​00:​00:​00 brd 00:​00:​00:​00:​00:​00
 +    inet 127.0.0.1/8 scope host lo
 +       ​valid_lft forever preferred_lft forever
 +    inet6 ::1/128 scope host
 +       ​valid_lft forever preferred_lft forever
 +2: enp0s3: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc pfifo_fast state UP qlen 1000
 +    link/ether 08:​00:​27:​7e:​c5:​ab brd ff:​ff:​ff:​ff:​ff:​ff
 +    inet 192.168.1.121/​24 brd 192.168.1.255 scope global dynamic enp0s3
 +       ​valid_lft 38566sec preferred_lft 38566sec
 +    inet6 fe80::​a00:​27ff:​fe7e:​c5ab/​64 scope link
 +       ​valid_lft forever preferred_lft forever
 +</​code>​
 +Мой локальный адрес:
 +  192.168.1.121
 +
 +Открываем браузер
 +  https://​192.168.1.121:​9443/​admin/​
 +  ​
 +Логин ''​abills'',​ пароль ''​abills''​\\
 +
 ==== Настройка серверов доступа ==== ==== Настройка серверов доступа ====
 В интерфейсе администратора надо сконфигурировать сервера доступа NAS (Network Access Server). В интерфейсе администратора надо сконфигурировать сервера доступа NAS (Network Access Server).
  
-Выбираем свой в меню справа.+Выбираем свой в меню справа ​(Вверху этой страницы блок ''​Сервера доступа''​). 
 + 
 +==== Установка и настройка accel-ppp: ==== 
 +[[abills:​docs:​nas:​linux:​accel_pptp:​ru?&#​centos| Установка и настройка accel-ppoe]]