Интересные и полезные заметки

Установка сервера FreeRADIUS и веб-интерфейса Daloradius на операционной системе CentOS 7 и RHEL 7

Предварительные действия:


Устанавливаем сервер Apache


# yum -y update
# yum groupinstall "Development Tools" -y
# yum -y install httpd httpd-devel

Разрешаем запуск сервера Apache


# systemctl enable httpd
# systemctl start httpd

Проверяем, запущен-ли сервер Apache


[root@freeradius ~]# systemctl status httpd
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2016-08-06 22:03:15 UTC; 8s ago

Docs: man:httpd(8)

man:apachectl(8)

Main PID: 3824 (httpd)
Status: "Processing requests..."
CGroup: /system.slice/httpd.service

├─3824 /usr/sbin/httpd -DFOREGROUND
├─3825 /usr/sbin/httpd -DFOREGROUND
├─3826 /usr/sbin/httpd -DFOREGROUND
├─3827 /usr/sbin/httpd -DFOREGROUND
├─3828 /usr/sbin/httpd -DFOREGROUND
└─3829 /usr/sbin/httpd -DFOREGROUND

Aug 06 22:03:15 freeradius systemd[1]: Starting The Apache HTTP Server...
Aug 06 22:03:15 freeradius httpd[3824]: AH00558: httpd: Could not reliably determine th...age
Aug 06 22:03:15 freeradius systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

Устанавливаем и настраиваем MySQL сервер баз данных


Мы установим и настроим MariaDB 10, используя следующие шаги:



  1. Добавить официальный репозиторий MariaDB в CentOS 7


# vim /etc/yum.repos.d/MariaDB.repo

Добавим следующее содержание в файл:


[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1


  1. Обновим систему с использованием нового репозитория и установим MariaDB


# yum -y update 
# yum install -y mariadb-server mariadb


Вам будет задан вопрос об установке GPG ключей для репозитория MariaDB. Просто нажмите y для подтверждения.



  1. Запускаем и разрешаем автозапуск сервера MariaDB при загрузке


# systemctl start mariadb
# systemctl enable mariadb

Проверяем статус сервера


[root@radius ~]# systemctl status mariadb
[root@radius ~]# systemctl is-enabled mariadb.service
enabled


  1. Запускаем скрипт настройки безопасности сервера MariaDB. Вами будет установлен пароль пользователя root. В целях повышения безопасности рекомендуется удалить всех анонимных пользователей и запретить удаленный вход на сервер. Пример рекомендуемых изменений Вы можете увидеть на примере далее.


[root@freeradius ~]# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB

SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!


  1. Разрешаем только локальные подключения к серверу.


# vim /etc/my.cnf 
[mysqld]
bind-address=127.0.0.1


Настраиваем базу данных для сервера freeradius


# mysql -u root -p -e " CREATE DATABASE radius"
# mysql -u root -p -e "show databases"
# mysql -u root -p
MariaDB [(none)]> GRANT ALL ON radius.* TO radius@localhost IDENTIFIED BY "radiuspassword";
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q
Bye

Устанавливаем php 7 на ОС CentOS 7


 cd ~
curl 'https://setup.ius.io/' -o setup-ius.sh
sudo bash setup-ius.sh
sudo yum remove php-cli mod_php php-common
sudo yum -y install mod_php70u php70u-cli php70u-mysqlnd php70u-devel php70u-gd php70u-mcrypt php70u-mbstring php70u-xml php70u-pear
sudo apachectl restart

Проверяем версию установленного php


# php -v
PHP 7.0.9 (cli) (built: Jul 21 2016 11:48:03) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

Если у Вас возникнут трудности с использованием PHP версии 7, удалите эту версию и установите PHP 5


yum -y install php-pear php-devel php-mysql php-common php-gd php-mbstring php-mcrypt php php-xml

Устанавливаем сервер FreeRADIUS


# yum -y install freeradius freeradius-utils freeradius-mysql
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.linode.com
* epel: ftp.osuosl.org
* extras: mirrors.linode.com
* ius: ius.mirror.constant.com
* updates: mirrors.linode.com
Resolving Dependencies
--> Running transaction check
---> Package freeradius.x86_64 0:3.0.4-6.el7 will be installed
--> Processing Dependency: libnaaeap.so.0()(64bit) for package: freeradius-3.0.4-6.el7.x86_64
---> Package freeradius-mysql.x86_64 0:3.0.4-6.el7 will be installed
---> Package freeradius-utils.x86_64 0:3.0.4-6.el7 will be installed
--> Running transaction check
---> Package tncfhh-libs.x86_64 0:0.8.3-16.el7 will be installed
--> Processing Dependency: tncfhh = 0.8.3 for package: tncfhh-libs-0.8.3-16.el7.x86_64
--> Processing Dependency: libxerces-c-3.1.so()(64bit) for package: tncfhh-libs-0.8.3-16.el7.x86_64
--> Processing Dependency: libtncutil.so.0()(64bit) for package: tncfhh-libs-0.8.3-16.el7.x86_64
--> Processing Dependency: liblog4cxx.so.10()(64bit) for package: tncfhh-libs-0.8.3-16.el7.x86_64
--> Running transaction check
---> Package log4cxx.x86_64 0:0.10.0-16.el7 will be installed
---> Package tncfhh.x86_64 0:0.8.3-16.el7 will be installed
---> Package tncfhh-utils.x86_64 0:0.8.3-16.el7 will be installed
---> Package xerces-c.x86_64 0:3.1.1-8.el7_2 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================
Package Arch Version Repository Size
=============================================================================================
Installing:
freeradius x86_64 3.0.4-6.el7 base 985 k
freeradius-mysql x86_64 3.0.4-6.el7 base 81 k
freeradius-utils x86_64 3.0.4-6.el7 base 188 k
Installing for dependencies:
log4cxx x86_64 0.10.0-16.el7 base 452 k
tncfhh x86_64 0.8.3-16.el7 base 680 k
tncfhh-libs x86_64 0.8.3-16.el7 base 160 k
tncfhh-utils x86_64 0.8.3-16.el7 base 33 k
xerces-c x86_64 3.1.1-8.el7_2 updates 878 k

Transaction Summary
=============================================================================================
Install 3 Packages (+5 Dependent packages)

Total download size: 3.4 M
Installed size: 11 M
Is this ok [y/d/N]: y
Downloading packages:
(1/8): freeradius-mysql-3.0.4-6.el7.x86_64.rpm | 81 kB 00:00:00
(2/8): freeradius-3.0.4-6.el7.x86_64.rpm | 985 kB 00:00:00
(3/8): freeradius-utils-3.0.4-6.el7.x86_64.rpm | 188 kB 00:00:00
(4/8): log4cxx-0.10.0-16.el7.x86_64.rpm | 452 kB 00:00:00
(5/8): tncfhh-0.8.3-16.el7.x86_64.rpm | 680 kB 00:00:00
(6/8): tncfhh-libs-0.8.3-16.el7.x86_64.rpm | 160 kB 00:00:00
(7/8): tncfhh-utils-0.8.3-16.el7.x86_64.rpm | 33 kB 00:00:00
(8/8): xerces-c-3.1.1-8.el7_2.x86_64.rpm | 878 kB 00:00:00
---------------------------------------------------------------------------------------------
Total 11 MB/s | 3.4 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : log4cxx-0.10.0-16.el7.x86_64 1/8
Installing : xerces-c-3.1.1-8.el7_2.x86_64 2/8
Installing : tncfhh-utils-0.8.3-16.el7.x86_64 3/8
Installing : tncfhh-0.8.3-16.el7.x86_64 4/8
Installing : tncfhh-libs-0.8.3-16.el7.x86_64 5/8
Installing : freeradius-3.0.4-6.el7.x86_64 6/8
Installing : freeradius-mysql-3.0.4-6.el7.x86_64 7/8
Installing : freeradius-utils-3.0.4-6.el7.x86_64 8/8
Verifying : freeradius-mysql-3.0.4-6.el7.x86_64 1/8
Verifying : tncfhh-0.8.3-16.el7.x86_64 2/8
Verifying : xerces-c-3.1.1-8.el7_2.x86_64 3/8
Verifying : freeradius-utils-3.0.4-6.el7.x86_64 4/8
Verifying : tncfhh-libs-0.8.3-16.el7.x86_64 5/8
Verifying : freeradius-3.0.4-6.el7.x86_64 6/8
Verifying : log4cxx-0.10.0-16.el7.x86_64 7/8
Verifying : tncfhh-utils-0.8.3-16.el7.x86_64 8/8

Installed:
freeradius.x86_64 0:3.0.4-6.el7 freeradius-mysql.x86_64 0:3.0.4-6.el7
freeradius-utils.x86_64 0:3.0.4-6.el7

Dependency Installed:
log4cxx.x86_64 0:0.10.0-16.el7 tncfhh.x86_64 0:0.8.3-16.el7
tncfhh-libs.x86_64 0:0.8.3-16.el7 tncfhh-utils.x86_64 0:0.8.3-16.el7
xerces-c.x86_64 0:3.1.1-8.el7_2

Complete!

Теперь нам надо запустить и разрешить автозапуск сервера freeradius при загрузке системы.


# systemctl start radiusd.service
# systemctl enable radiusd.service

Created symlink from /etc/systemd/system/multi-user.target.wants/radiusd.service to /usr/lib/systemd/system/radiusd.service.

Проверим статус службы:


# systemctl status radiusd.service


Так-же необходимо разрешить в Вашем файерволе доступ к портам, на которых запущен сервер freeradius

– по умолчанию используются порты udp 1812 и 1813.





Проверим, запущен-ли наш сервер freeradius.

И запустим его для отладки с параметром -X


# ss -tunlp | grep radiusd


Если сервер запущен, то запуск в режиме отладки не получится, сначала нам необходимо завершить все запущенные процессы freeradius, используя команду:


# pkill radius

Затем запустим его в режиме отладки:


# radiusd -X


Настройка FreeRADIUS


Для настройки FreeRADIUS на использование базы данных MariaDB, пройдите по следующим шагам.



  1. Импортируем файл sql со стандартным содержимым базы данных freeradius


# mysql -u root -p radius < /etc/raddb/mods-config/sql/main/mysql/schema.sql


  1. Перейдем к настройке freeradius


– Создадим ссылку /etc/raddb/mods-enabled


# ln -s /etc/raddb/mods-available/sql /etc/raddb/mods-enabled/

Настроим модуль SQL /raddb/mods-available/sql и поменяем параметры доступа к базе данных в соответствии с нашими настройками:


 # vim /etc/raddb/mods-available/sql


  • секция SQL должна выглядеть следующим образом.


sql {


driver = "rlm_sql_mysql"
dialect = "mysql"

# Connection info:

server = "localhost"

port = 3306
login = "radius"
password = "radiuspassword"

# Database table configuration for everything except Oracle

radius_db = "radius"
}

# Установите параметр read_clients в ‘yes’ для получения списка клиентов и базы данных (таблица ‘nas’)
# Клиенты будут загружаться ТОЛЬКО при запуске сервера freeradius.
read_clients = yes

# Укажем название таблицы для поиска клиентов
client_table = “nas”

Поменяем группу пользователей для доступа к файлу /etc/raddb/mods-enabled/sql на radiusd:


# chgrp -h radiusd /etc/raddb/mods-enabled/sql

Устанавливаем и настраиваем Daloradius


Устанавливаем Daloradius


Веб-интерфейс Daloradius используется для управлением базой данных сервера freeradius.

Загрузка с Github:


# wget https://github.com/lirantal/daloradius/archive/master.zip
# unzip master.zip
# mv daloradius-master/ daloradius

Загрузка с Sourceforge:


# wget http://liquidtelecom.dl.sourceforge.net/project/daloradius/daloradius/daloradius0.9-9/daloradius-0.9-9.tar.gz
# tar zxvf daloradius-0.9-9.tar.gz
# mv daloradius-0.9-9 daloradius

Перейдем в папку Daloradius для дальнейшей настройки


# cd daloradius

Настраиваем daloradius



  • Импортируем дамп таблиц Daloradius в базу данных


# mysql -u root -p radius < contrib/db/fr2-mysql-daloradius-and-freeradius.sql 
# mysql -u root -p radius < contrib/db/mysql-daloradius.sql


  • Настраиваем параметры подключения к базе данных daloRADIUS:


# cd ..
# mv daloradius /var/www/html/

Даем разрешение на веб папку и устанавливаем привилегии на конфигурационный файл daloradius.


# chown -R apache:apache /var/www/html/daloradius/
# chmod 664 /var/www/html/daloradius/library/daloradius.conf.php

Для настройки подключения к базе данных Daloradius, внесем изменения в файл daloradius.conf.php.


# vim /var/www/html/daloradius/library/daloradius.conf.php

Изменять следует переменные:


CONFIG_DB_USER
CONFIG_DB_PASS
CONFIG_DB_NAME

Для того, что бы убедить что всё работает, перезапустим службы radiusd,httpd и mysql:


# systemctl restart radiusd.service 
# systemctl restart mariadb.service
# systemctl restart httpd

Если всё перезапустилось без ошибок, пробуем перейти на веб-интерфейс по адресу Вашего сервера, например:


http://192.168.1.10/daloradius/login.php

Для входа в интерфейс первый раз, необходимо использовать следующие учётные данные:

Имя пользователя: administrator

Пароль: radius



Заключение


Поздравляем! Теперь у Вас есть сервер FreeRadius работающий с базой данных MySQL и веб-интерфейсом Daloradius. Удачного администрирования!