10th May 2008

Servidor Radius en Ubuntu Server


Nuestro escenario es la necesidad de un servidor Radius para poder configurar el addon de ipcop “CopSpot”.

Debemos tener instalado Ubuntu como LAMP (no voy a entrar en detalle de como instalar Apache+PHP+Mysql).

Instalamos Freeradius–> apt-get install freeradius

Instalamos el proxy entre Freeradius y mysql –> apt-get install freeradius-mysql

El fichero radiusd.conf debe quedar como muestro:

bind_address = *
proxy_requests  = no

authorize {
 preprocess
# auth_log
# attr_filter
 chap
 mschap
# digest
# IPASS
 suffix
# ntdomain
 eap
 files
 sql
# etc_smbpasswd
# ldap
# daily
# checkval
}

authenticate {
 Auth-Type PAP {
  pap
 }

 Auth-Type CHAP {
  chap
 }

 Auth-Type MS-CHAP {
  mschap
 }

# digest
# pam
# unix

# Auth-Type LDAP {
#  ldap
# }

 eap
}

preacct {
 preprocess
 acct_unique
# IPASS
 suffix
# ntdomain
 files
}

accounting {
 detail
# daily
 unix
 sql
 radutmp
# sradutmp
# main_pool
# pgsql-voip
}

session {
 radutmp
 sql
}
En clients.conf debemos habilitar el cliente correspondiente. Por defecto disponemos de localhost para poder ralizar pruebas:

client 127.0.0.1 {
        secret          = radiussecret
        nastype         = other         # localhost isn’t usually a NAS…
}
Cualquier otro cliente qeu deba acceder:

client 192.168.1.1 {
        secret          = radiussecret
        short-name      = loquequeramos
}
y en users debemos comentar las siguientes lineas para que el radius solo valide sobre sql y no sobre las cuentas unix:

#DEFAULT Auth-Type = System
# Fall-Through = 1
Por ultimo en /etc/freeradius/sql.conf añadimos estas lineas para que freeradius pueda acceder a mysql:

 # Connect info
        server = “localhost”
        login = “radius”
        password = “radiuspassword”
Creamos la bd en mysql –>

# mysql -u root -p
> create database radius;
> quit

Creamos las tablas de la BD y concedemos permisos al usuario–>

cd /usr/share/doc/packages/freeradius/doc/examples/
mysql -uroot -p radius root@localhost IDENTIFIED BY ‘contraseña de root‘;
> quit

Si queremos dar de alta algun usuario directamente desde mysql usaremos:

 INSERT INTO radcheck (UserName, Attribute, Value) VALUES (’chux’, ‘Password’, ‘clave qeu deseamos’);
Ahora instalamos DialUpAdmin que es una interface web para manejar el servidor Radius, para esto tendremos que bajar el tar.gz de la pagina www.freeradius.org y descomprimirlo –>

cp -r freeradius-x.x.x/dialup_admin /usr/local/

ln -s /usr/local/dialup_admin/htdocs /var/www/html/dialupadmin

Una vez Configurado dialupdadmin, nos queda insertar unas tablas necesarias que encontraremos en el paquete tar.gz descomprimido anteriormente. En mi caso en la siguiente ruta “freeradius-server-2.0.4/dialup_admin/sql/mysql/”–>

mysql -h mysql.host.com -u username -p radius
Editamos el fichero dialup_admin/conf/admin.conf para configurar correctamente los datos de acceso a nuestra bd mysql-->
sql_type: mysql 
sql_server: localhost 
sql_port: 3306 
sql_username:  radiususer 
sql_password: radius69passwd 
sql_database:  radius 
Podemos ejecutar en modo debuf el freeradisu medianete freeradius -X

posted in Linux | 2 Comments