Sunteți pe pagina 1din 15

FreeRADIUS es el servidor RADIUS más implementado, ya que es compatible con todos

los protocolos de autenticación comunes, siendo de código abierto y la administración


simplificada de usuarios gracias a su GUI web dialupadmin. El servidor también viene con
módulos para la integración de sistemas de bases de datos y LDAP como MySQL,
PostgreSQL, Oracle, etc.
Antes de las instalaciones, recomiendo apagar SELinux o configurarlo en modo permisivo
# setenforce 0
# sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
# cat /etc/selinux/config

# This file controls the state of SELinux on the system.


# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

PRERREQUISITOS

 Actualización de Sistema operativo (Centos 7).


# yum -y update
# yum groupinstall "Development Tools" –y

 Instalacion Servidor Httpd


# yum -y install httpd httpd-devel

 Una vez que la instalación compite, puede habilitar e iniciar su servicio HTTPD
utilizando los siguientes comandos. También puede verificar el estado de ejecución
del servicio HTTPD utilizando los siguientes comandos. Como en la siguiente
captura de pantalla.
# systemctl enable httpd
# systemctl start httpd
# systemctl status httpd
INSTALACION MARIA DB

 Primero, instale la última versión de la base de datos MariaDB:


https://downloads.mariadb.org/mariadb/repositories/#mirror=best&distro=CentOS&distro_r
elease=centos7-amd64–centos7&version=10.3

 Agregar repositorio de mariadB


# vim /etc/yum.repos.d/MariaDB.repo
***==============***
# MariaDB 10.3 CentOS repository list - created 2018-12-24 09:55 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

INSTALACION MARIADB
# sudo yum install MariaDB-server MariaDB-client
# yum update -y && yum install -y mariadb-server mariadb

 Iniciar servicio de MariaDB


# systemctl enable mariadb
# systemctl start mariadb
# systemctl status mariadb

INICIALICE LA BASE DE DATOS


# mysql_secure_installation
***===================****
Set root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
Permitir solo la conexión local al servidor mysql. Este es un mecanismo de seguridad.
# vim /etc/my.cnf
[mysqld]
bind-address=127.0.0.1

 Crear la base de datos de FREERADIUS


# mysql -u root –p

 Crear la base de datos, usuario Y CLAVE


MariaDB [(none)]> CREATE DATABASE radius_db;
Query OK, 1 row affected (0.000 sec)
MariaDB [(none)]> GRANT ALL ON radius_db.* TO radius_user@localhost IDENTIFIED BY
"radius@pass";
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> \q

INSTALAR PHP 7 EN CENTOS 7

 Antes de instalar PHP en CentOS 7


Para seguir esta guía de instalación de PHP en CentOS no necesitas muchos requisitos,
pero al menos esto sí deberías tener preparado:

 Un sistema CentOS 7 actualizado.


 Acceso al sistema como root o un usuario con privilegios de sudo.
 Conexión a Internet.
También hay que saber que los repositorios oficiales de CentOS 7 sólo ofrecen hasta la
versión de PHP 5.4.16, que es una versión obsoleta e insegura.
Por ello nos apoyaremos en los repositorios EPEL que nos permitirán incluir paquetes
mucho más actualizados.
Cómo añadir EPEL con soporte de PHP 7 en CentOS 7
En primer lugar, instalaremos el soporte para EPEL y herramientas de yum:
# sudo yum -y install epel-release yum-utils

 Añadiremos el siguiente repositorio:


# sudo yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

 Ahora configuramos el repositorio para especificar la versión de PHP 7 que nos


interesa. Disponemos de la 7.0, 7.1, 7.2 y 7.3. En esta guía utilizaremos PHP 7.3,
así que seleccionaremos esta versión con yum-config-manager:
# sudo yum-config-manager --enable remi-php73

 Si quieres otra de las versiones de PHP 7, sólo tienes que cambiar el último
parámetro del comando por remi-php70, remi-php71 ó remi-php72.
 El último paso es actualizar la información de los repositorios con yum update:
# sudo yum -y update

 Hecho esto, si disponías de una versión anterior de PHP, como la 5.4.16 oficial de
CentOS… ¡sorpresa, te has actualizado a PHP 7!
CÓMO INSTALAR PHP EN CENTOS 7

 Independientemente de si has ampliado los repositorios del sistema con soporte


EPEL o no, para instalar PHP en CentOS 7 usaremos yum a través de consola.
 Si no lo has hecho antes, actualiza la información de los repositorios:
# sudo yum -y update

 A continuación instalamos el paquete php con sus respectivas dependencias:


# sudo yum -y install php

 Con esto queda instalado PHP en CentOS; sin embargo, los cambios no tendrán
efecto en el servidor web hasta que lo reiniciemos. Usaremos el comando systemctl
para reiniciar el servidor:
# sudo systemctl restart httpd
Comprobando la instalación de PHP

 Para comprobar el correcto funcionamiento de PHP con el servidor web, crearemos


un pequeño ejemplo de archivo .php en alguna ruta accesible desde el navegador,
por ejemplo, /var/www/html/info.php:
<?php
phpinfo();
?>

 Accediendo a través del navegador a la pequeña página que acabamos de crear


obtendremos toda la información sobre la instalación de PHP que acabamos de
realizar, desde la versión instalada hasta los módulos instalados:
 Es muy recomendable echar un vistazo a la gran cantidad de información que nos
ofrece la función phpinfo() sobre la configuración por defecto de PHP en CentOS 7,
ya que podremos observar, entre otras cosas:
 La versión de PHP instalada en el sistema.
 La zona horaria con la que trabajarán las aplicaciones PHP.
 PHP no desplegará información sobre los errores que se produzcan en los scripts,
útil si se trata de un entorno de producción, pero poco recomendable si es un entorno
de desarrollo.
 La localización de los archivos de configuración de PHP.
 Los módulos cargados y disponibles para nuestras aplicaciones.
 Y mucha más información que, en un primer momento, quizás no sea necesaria,
pero cuando posteriormente se presente algún problema o necesitemos ajustar o
extender nuestra configuración de PHP sí que nos vendrá bien conocer.
CONFIGURACIÓN DE PHP EN CENTOS 7

 Acabamos de ver, entre otras cosas, dónde está php.ini en CentOS 7, que es el
archivo fundamental para configurar PHP. Su ubicación por defecto es /etc/php.ini y
ese es el archivo que tenemos que editar para modificar ciertos comportamientos
de PHP en nuestras aplicaciones.
 Con nuestro editor favorito (aquí cada uno que elija el que más le guste) y privilegios
de root, modificaremos php.ini:
# sudo nano /etc/php.ini
Zona horaria del servidor

 Por ejemplo, sería útil definir la zona horaria con la que debería trabajar PHP. Como
podremos ver, una vez que estemos en el editor, no se establece ninguna zona
horaria, ya que la cláusula date.timezone aparece sin ningún valor asignado y
desactivada mediante comentarios:
[...]
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =
[...]

 Para configurar la zona horaria de nuestro interés, desactivaremos el comentario


borrando el punto y coma y especificaremos el valor del huso horario:
[...]
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Madrid
[...]
Manejo de información sobre errores en PHP

 También hemos visto que la instalación de PHP en CentOS 7 es muy sigilosa en


cuanto a información de errores que se puedan producir en las aplicaciones web.
Es el comportamiento que cabe esperar en una distribución lista prácticamente para
poner en producción.
 Hagamos la prueba creando un pequeño script, que llamaré error.php, situado en
alguna ubicación accesible desde el navegador, por ejemplo en
/var/www/html/error.php:

<?php
echo 'hola, mundo;
?>

 Obviamente, al faltar la comilla final del texto del mensaje, no va a funcionar.


Observemos qué ocurre cuando abrimos esta página en el navegador:
 Según el navegador que estemos usando podremos observar desde una desoladora
pantalla completamente en blanco o, como en este caso, un escueto mensaje del
navegador, informándonos de que el servidor web devuelve un error 500 (error de
la aplicación). Pero sólo eso.
 Si estamos trabajando en un entorno local o de desarrollo sí querremos que PHP
nos ofrezca la mayor información posible sobre estos errores. Para ello,
modificaremos ese comportamiento modificando algunas líneas más en /etc/php.ini.
Los valores por defecto (los de producción) son los siguientes:
[...]
; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
; http://php.net/error-reporting
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
[...]
; Default Value: On
; Development Value: On
; Production Value: Off
; http://php.net/display-errors
display_errors = Off
[...]
; Default Value: Off
; Development Value: On
; Production Value: Off
; http://php.net/display-startup-errors
display_startup_errors = Off
[...]

 Te habrás fijado en que los propios comentarios nos dan información sobre los
valores de producción (Production) y desarrollo (Development) para cada cláusula,
y que los valores asignados por defecto corresponden con los de producción.
 Hacemos los cambios con los valores recomendados para desarrollo y nos quedará
algo así:

[...]
; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
; http://php.net/error-reporting
error_reporting = E_ALL
[...]
; Default Value: On
; Development Value: On
; Production Value: Off
; http://php.net/display-errors
display_errors = On
[...]
; Default Value: Off
; Development Value: On
; Production Value: Off
; http://php.net/display-startup-errors
display_startup_errors = On
[...]

 Una vez hechos y revisados los cambios, recargamos la configuración del servidor
web para que aplique los nuevos ajustes.
# sudo systemctl reload httpd

 Y recargamos la misma página de prueba:


 Ahora sí que tenemos mensajes informativos ofrecidos directamente por PHP, que
nos orienta de forma aproximada sobre dónde se encuentra el error y de qué se
puede tratar.
 Ahora sólo tienes que elegir si la configuración de tu servidor CentOS 7 es de
desarrollo o de producción.
Configuración de PHP 7.3 en php.ini

 En el caso de que hayas instalado PHP 7.3, busca la sección [Pcre] en php.ini y
añade esta línea al final de la sección:
pcre.jit = 0

 Esto evitará molestos errores de inicio en ciertas aplicaciones como WordPress, por
poner un ejemplo.
Activando los cambios de configuración

 Recuerda que cualquier cambio en la configuración de PHP a través de php.ini no


entra en vigor hasta que recargas la configuración del servidor web.
 Al terminar de editar la configuración no olvides lanzar el siguiente comando:
# sudo systemctl reload httpd
Configuración de los módulos de PHP en CentOS 7

 PHP por defecto incluye activados varios módulos adicionales. Algunos de estos
módulos pueden configurarse individualmente desde el propio /etc/php.ini, en
secciones dedicadas a ellos. Pero otros módulos, presentes o que se añadan más
tarde, pueden tener sus propios archivos individuales de configuración.

 Los archivos de configuración de los módulos de PHP se encuentran en /etc/php.d/,


dato que también nos ofrece la función phpinfo().
 Si necesitas ajustar la configuración de algún módulo concreto, comprueba si existe
un archivo .ini en /etc/php.d/ o una sección dentro de /etc/php.ini.

 La instalación por defecto de PHP en CentOS 7 incluye estos archivos de


configuración para módulos:

# ls /etc/php.d/curl.ini fileinfo.ini json.ini phar.ini zip.ini


Cómo instalar módulos de PHP en CentOS 7

 Aparte de los módulos de PHP que vienen incluidos en la instalación básica, los
repositorios de CentOS 7 incluyen muchos más.
 Mediante yum podemos buscar e instalar módulos adicionales y extender las
capacidades de nuestras aplicaciones.
 Por ejemplo, si estás siguiendo esta serie de tutoriales, en una entrada anterior
dediqué un tutorial a cómo instalar MariaDB en CentOS 7. Si tienes instalado un
servidor de bases de datos como MariaDB o MySQL entonces querrás poder usarlos
con tus aplicaciones web.
 Si no sabes cómo se llama exactamente el paquete que estás buscando, prueba a
buscar con yum filtrando con grep.
 Por ejemplo, podemos buscar el módulo de PHP para MySQL. Especificando la
versión concreta de PHP reduciremos resultados:

# yum search php73 |grep -i mysql


php73-php-mysqlnd.x86_64 : A module for PHP applications that use MySQL
php73-php-pecl-mysql.x86_64 : MySQL database access functions
php73-php-pecl-mysql-xdevapi.x86_64 : MySQL database access functions

 O podemos probar suerte con los metapaquetes (los que no llevan número de
versión):
# yum search php |grep -i ^php- |grep -i mysql
php-mysql.x86_64 : A module for PHP applications that use MySQL databases
php-mysqlnd.x86_64 : A module for PHP applications that use MySQL databases
php-ZendFramework-Db-Adapter-Mysqli.noarch : Zend Framework database adapter for
php-ZendFramework-Db-Adapter-Pdo-Mysql.noarch : Zend Framework database adapter
php-pear-MDB2-Driver-mysql.noarch : MySQL MDB2 driver
php-pear-MDB2-Driver-mysqli.noarch : MySQL Improved MDB2 driver
php-pecl-mysql.x86_64 : MySQL database access functions
php-pecl-mysql-xdevapi.x86_64 : MySQL database access functions
php-pecl-mysqlnd-ms.x86_64 : A replication and load balancing plugin for mysqlnd
php-pecl-mysqlnd-ms-devel.x86_64 : Mysqlnd_ms developer files (header)
php-pecl-mysqlnd-qc.x86_64 : A query cache plugin for mysqlnd
php-pecl-mysqlnd-qc-devel.x86_64 : Mysqlnd_qc developer files (header)

 La búsqueda nos arroja varios paquetes, normalmente el metapaquete php-mysql


suele apuntar al paquete que corresponde a la versión de PHP que tenemos
instalada. En caso de dudas, yum info te dará más información. Elige el paquete que
te interese e instálalo:
~$ sudo yum -y install php-mysql

 Y tendremos instalado este módulo con sus correspondientes dependencias. Pero


el módulo no funcionará hasta recargar la configuración del servidor web (ya sabes,
con systemctl reload).
 Enlazando con el apartado anterior, el módulo PHP de MySQL que acabamos de
instalar tiene su propio archivo de configuración en /etc/php.d/, por si tuvieras que
ajustar algún parámetro.
Tomado de: (https://comoinstalar.me/como-instalar-php-en-centos-7/)
INSTALACION FREERADIUS

 freeRADIUS y los paquetes relevantes están disponibles a través del repositorio


base de CentOS . Por lo tanto, podemos instalarlo fácilmente usando el comando
yum
# yum install -y freeradius freeradius-utils freeradius-mysqL
INICIAR SERVICIOS FREERADIUS
# systemctl start radiusd.service
# systemctl enable radiusd.service
# systemctl status radiusd.service

 Ahora tenemos que configurar firewalld para permitir que los paquetes de radio y
httpd entren y salgan.
 El servidor Radius usa los puertos udp 1812 y 1813 . Esto se puede confirmar al ver
el contenido del archivo /usr/lib/firewalld/services/radius.xml. Puede cat este archivo
y ver.
# cat /usr/lib/firewalld/services/radius.xml

 Primero inicie y active Firewalld por seguridad


# systemctl enable firewalld
# systemctl start firewalld
# systemctl status firewalld
 Confirme que Firewalld está funcionando o no
# firewall-cmd –state

 Agregue reglas permanentes a la zona predeterminada para permitir servicios http,


https y radius
# firewall-cmd --get-services | egrep 'http|https|radius'
# firewall-cmd --add-service={http,https,radius} –permanent

 Vuelva a cargar Firewalld para que los cambios surtan efecto


# firewall-cmd –reload

 Podemos confirmar que los servicios se agregaron correctamente a la zona


predeterminada
# firewall-cmd --get-default-zone
# firewall-cmd --list-services --zone=public

 Puede ver los tres servicios presentes, por lo tanto, estamos bien para continuar
# ss -tunlp | grep radiusd

 Si desea ejecutar el servidor radius en modo de depuración. Puede ejecutar este


comando radiusd -X Si el modo de depuración no se puede vincular a los puertos,
es posible que primero deba eliminar el demonio del servidor radius. Obtendrá este
tipo de masaje si su servidor de radio no puede vincular el puerto.

 En este caso, primero debes matar al demonio de radio y luego puedes comenzar a
radiusd –X
# pkill radius

 Luego puede iniciar el servidor radius en modo de depuración y verá a continuación


un mensaje de texto si su servicio radius se ejecuta con éxito en modo de
depuración.
# radiusd –X
CONFIGURACION DE FREERADIUS

 Importe el esquema de la base de datos Radius para poblar la base de datos radius
# mysql -u root -p radius < /etc/raddb/mods-config/sql/main/mysql/schema.sql
Configurar radio en este punto

 En primer lugar, tenemos que crear un enlace flexible para SQL en / etc / raddb /
mods-enabled
# ln -s /etc/raddb/mods-available/sql /etc/raddb/mods-enabled/

 Luego podemos configurar el módulo SQL / raddb / mods-available / sql y cambiar


los parámetros de conexión de la base de datos para adaptarnos a nuestro entorno
de la siguiente manera:
 La sección sql debe ser similar a la siguiente.
# vi /etc/raddb/mods-available/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"
}
# Set to ‘yes’ to read radius clients from the database (‘nas’ table)
# Clients will ONLY be read on server startup.
read_clients = yes
# Table to keep radius client info
client_table = “nas”

Luego cambie el grupo a la derecha de / etc / raddb / mods-enabled / sql a radiusd: -


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

 Paso 1 - Instalar el servidor httpd


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

 Inicie y habilite el servidor httpd:


# systemctl enable httpd
# systemctl start httpd

 Verifique el estado del servidor httpd para asegurarse de que se esté ejecutando:
# systemctl status httpd
Salida:
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2019-05-05 12:48:15 UTC; 4s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 29382 (httpd)
Status: "Processing requests..."
CGroup: /system.slice/httpd.service
├─29382 /usr/sbin/httpd -DFOREGROUND
├─29383 /usr/sbin/httpd -DFOREGROUND
├─29384 /usr/sbin/httpd -DFOREGROUND
├─29385 /usr/sbin/httpd -DFOREGROUND
├─29386 /usr/sbin/httpd -DFOREGROUND
└─29387 /usr/sbin/httpd -DFOREGROUND

May 05 12:48:14 dracula_backup systemd[1]: Starting The Apache HTTP Server...


May 05 12:48:14 dracula_backup httpd[29382]: AH00558: httpd: Could not reliably
determ...ge
May 05 12:48:15 dracula_backup systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

 Paso 2 - Descarga daloRADIUS


 Descargar Método # 1
 Descargar desde Github
# wget https://github.com/lirantal/daloradius/archive/master.zip
# unzip master.zip
# mv daloradius-master/ daloradius

 Descargar Método # 2
Descargar desde 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

 Cd en el daloradiusdirectorio:
# cd daloradius

 Paso 3 - Agregue el esquema SQL daloRADIUS


 Importar tablas daloRADIUS MySQL
# mysql -u root -p radius < contrib/db/fr2-mysql-daloradius-and-freeradius.sql
# mysql -u root -p radius < contrib/db/mysql-daloradius.sql

 Paso 4: configure las opciones de daloRADIUS DB


 Configure los detalles de conexión de la base de datos daloRADIUS:
# cd ..
# mv daloradius /var/www/html/

 Cambie los permisos para la carpeta http de daloRADIUS y configure los permisos
adecuados para el archivo de configuración:
# chown -R apache:apache /var/www/html/daloradius/
# chmod 664 /var/www/html/daloradius/library/daloradius.conf.php

 Ahora necesitaremos modificar daloradius.conf.phppara agregar nuestra


información SQL.
 Usando su editor de texto favorito abra el archivo:
# vim /var/www/html/daloradius/library/daloradius.conf.php

 Para los propósitos de este tutorial, las variables relevantes son:


CONFIG_DB_USER
CONFIG_DB_PASS
CONFIG_DB_NAME

 Suponiendo que haya seguido nuestro tutorial sobre cómo configurar FreeRADIUS
en CentOS 7 usando MariaDB / MySQL , las variables mencionadas anteriormente
deberían tener este aspecto:
$configValues['CONFIG_DB_USER'] = 'radius';
$configValues['CONFIG_DB_PASS'] = 'radiuspassword';
$configValues['CONFIG_DB_NAME'] = 'radius';
 Guarde y cierre el archivo cuando haya terminado.
 Ahora asegurémonos de que todo funcione reiniciando FreeRADIUS, MariaDB o
MySQL y httpd:
# systemctl restart radiusd.service
# systemctl restart mariadb.service
# systemctl restart httpd

 Ahora ejecuta:
# yum install php-pear
# pear install DB

 Paso 5 - Iniciar sesión en daloRADIUS


 Y eso es.
 Ha instalado con éxito daloRADIUS en su máquina CentOS 7 y debe poder acceder
a él visitando:
http://your-server-ip-address/daloradius/login.php
Las credenciales predeterminadas son las siguientes:
Nombre de usuario: administrador
Contraseña: radio
Asegúrese de cambiar su contraseña de inmediato.

S-ar putea să vă placă și