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
#systemctl start mariadb.service
#systemctl status mariadb.service
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
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
#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;"
}
# 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
Publicar un comentario