Hotspot con Daloradius, Freeradius 3, Mariadb, Centos 7, Mikrotik, crea tu propio usermanager

En esta ocasión les dejo un tutorial de como instalar  Daloradius + Freeradius 3 +  Mariadb + Centos 7 + Mikrotik Hotspot, para poder administrar distintos sitios de Hotspot, esta implementacion te ahorra mucho esfuerzo y eficienta tus procesos para todos aquellos que quieren comenzar un WISP.

Antes de iniciar, es necesario contar un centos 7 instalacion minima, con librerias de desarrollo instaladas.

1.- Se desabilita el SELINUX

# vim /etc/selinux/config

SELINUX=disabled

Reiniciamos el centos para poder continua.


2.- Instalamos el modulo EPEL para centos 7

#  rpm -iUvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

3.-Configuración de la IP de la maquina.

Utilizamos desde la consola la opción nmtui para configurar la IP de la maquina.

#nmtui

4.- Configurar Firewall

Los puertos que se utilizan para la operacion del servidor son:

80    TCP
1812 TCP/UDP
1813 TCP/UDP

#firewall-cmd --zone=public --permanent --add-port=80/tcp

#firewall-cmd --zone=public --permanent --add-port=1812/tcp

#firewall-cmd --zone=public --permanent --add-port=1813/tcp

#firewall-cmd --zone=public --permanent --add-port=1812/udp

#firewall-cmd --zone=public --permanent --add-port=1813/udp

#firewall-cmd --reload

5.-Cargamos el repo de Mariadb

#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
#------------------------------------------
6.- Actualizamos los paquetes del servidor.

#yum update -y

7.-Instalamos los paquetes del Servidor: Apache, php, Freeradius

yum -y install freeradius freeradius-utils freeradius-mysql httpd httpd-devel mariadb-server mariadb php-pear php-devel php-mysql php-common php-gd php-mbstring php-mcrypt php php-xml phpmyadmin php-pear-DB 

8.- Configuramos los servicios para que inicien automáticamente.

#systemctl enable radiusd.service

#systemctl enable httpd.service

#systemctl enable mariadb.service

9.- Iniciamos los servicios.

#systemctl start httpd.service

#systemctl start mariadb.service

#systemctl status mariadb.service

10.- Ejecutamos la configuracion de seguridad para mariadb, referencia: https://mariadb.com/kb/en/mariadb/mysql_secure_installation/

#mysql_secure_installation

11.- Creamos la base de datos radius e importamos el esquema de Freeradius.

# mysql -u root -p -e "CREATE DATABASE radius"

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

12.- Le damos privilegios al usuario radius para la base de datos radius.

Ingresamos a la base. con el usuario root y el password que se asigno el la configuracion de la base de datos.

#mysql -u root -p
Enter password:


MariaDB [(none)]> GRANT ALL ON radius.* TO radius@localhost IDENTIFIED BY "tu_password";

MariaDB [(none)]>FLUSH PRIVILEGES;

MariaDB [(none)]>\q

13.- Habilitamos el modulo sql en el freeradius.

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

14.- Modificamos el modulo sql del freeradius para colocar el nombre de la base, usuario y contraseña.

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

        driver = "rlm_sql_mysql"
        dialect = "mysql"
        server = "localhost"
        port = 3306
        login = "radius"
        password = "tu_password"

        radius_db = "radius"
        read_clients = yes

        client_table = "nas"
}
----------------------------------------------
#chgrp -h radiusd /etc/raddb/mods-enabled/sql

15.- Descargamos en la carpeta tmp el Daloradius, e importamos el esquema a la base de datos.

#cd /tmp/

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

# unzip master.zip

# mv daloradius-master/ daloradius

#cd daloradius/

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

16.- Movemos la carpeta daloradius a la carpeta del servidor http y le asignamos permisos al usuario apache

#mv daloradius/ /var/www/html/

#chown -R apache.apache daloradius/

#chmod 664 /var/www/html/daloradius/library/daloradius.conf.php


17.- Configuramos el Daloradius

# vim daloradius/library/daloradius.conf.php
----------------------------------------------
$configValues['CONFIG_DB_USER'] = 'radius';
$configValues['CONFIG_DB_PASS'] = 'tu_password';
$configValues['CONFIG_DB_NAME'] = 'radius';

----------------------------------------------

18.- Importante, Para que el Daloradius funcion el atributo de Access-period para limitar el tiempo de conexion de los usuarios, es necesario modificar lo siguiente:

#vim /etc/raddb/mods-available/sqlcounter
Agregamos al final del archivo lo siguiente
#----------------------------------------------
sqlcounter accessperiod {
        sql_module_instance = sql
        dialect = ${modules.sql.dialect}
       counter_name = Max-Access-Period-Never
       check_name = Access-Period

       key = User-Name
       reset = never
        query= "SELECT TIMESTAMPDIFF(SECOND, acctstarttime, NOW()) FROM radacct WHERE UserName='%{User-Name}' ORDER BY acctstarttime LIMIT 1;"
        }
#----------------------------------------------

19.-Reiniciamos los servicios.

#systemctl restart radiusd.service

#systemctl restart httpd

20.Iniciamos Sesion en Daloradius

http://tu_ip/daloradius/login.php

Usuario:administrator

Contraseña:radius


Comentarios

Entradas populares de este blog

Script para generar reporte de hotspot y enviar un email, sin user manager. Mikrotik

Instalación de Paneles Solares México Interconexion CFE