Freeradius 2.x.x - Monitoração

Publicado por Tiago MDR (última atualização em 04/07/2010)

[ Hits: 7.482 ]

Download freeradius_status.sh

Download 1277760709.freeradius_status.sh (versão 2)




Olá a todos do vivaolinux!

Aqui vai a minha primeira contribuição para o site através de um script simples para a monitoração do Freeradius (no caso a versão utilizada é a 2.1.8).

Antes de mais nada, estou assumindo que você tenha um servidor de Freeradius pronto e funcionando.

Como a maioria já deve saber, a partir da versão 2 do Freeradius o SNMP não é mais suportado e a monitoração só é possivel via comando :(

Antes de executar o script abaixo, ***LEIA*** o Wiki http://wiki.freeradius.org/Status e o README dos scripts no fonte do Freeradius. Isso é importante devido a dois fatores:

1º - É necessario ativar essa monitoração (conforme descrito no link acima); e
2º - O comando descrito no site NÃO funciona. Eu, pelo menos, tentei de tudo quanto é forma, mas não deu certo, sendo assim, caso tenha curiosidade, com algumas modificações o comando passa a funcionar:

echo "Message-Authenticator = 0x00, FreeRADIUS-Statistics-Type = 35, FreeRADIUS-Stats-Client-IP-Address = 127.0.0.1, FreeRADIUS-Stats-Server-IP-Address = 127.0.0.1, FreeRADIUS-Stats-Server-Port = 1812" | radclient 127.0.0.1:18120 status adminsecret

O comando acima retornará, os seguintes valores de amostra:
Received response ID 52, code 2, length = 224
        FreeRADIUS-Total-Access-Requests = 25
        FreeRADIUS-Total-Access-Accepts = 69
        FreeRADIUS-Total-Access-Rejects = 16
        FreeRADIUS-Total-Access-Challenges = 0
        FreeRADIUS-Total-Auth-Responses = 85
        FreeRADIUS-Total-Auth-Duplicate-Requests = 0
        FreeRADIUS-Total-Auth-Malformed-Requests = 0
        FreeRADIUS-Total-Auth-Invalid-Requests = 0
        FreeRADIUS-Total-Auth-Dropped-Requests = 0
        FreeRADIUS-Total-Auth-Unknown-Types = 0
        FreeRADIUS-Total-Accounting-Requests = 15
        FreeRADIUS-Total-Accounting-Responses = 15
        FreeRADIUS-Total-Acct-Duplicate-Requests = 0
        FreeRADIUS-Total-Acct-Malformed-Requests = 0
        FreeRADIUS-Total-Acct-Invalid-Requests = 0
        FreeRADIUS-Total-Acct-Dropped-Requests = 0
        FreeRADIUS-Total-Acct-Unknown-Types = 0

ATENÇÃO: O "adminsecret" é a chave padrão para checar o status do servidor, ela pode ser alterada posteriormente.

PS1: O freeradius que utilizo atualmente foi instalado via yum em um Fedora Core 12 x64.
PS2: Coloquei os comentarios em inglês e não tive tempo de coloca-los em portugues.

Sem mais, segue o script.

  



Versões atualizadas deste script

Versão 2 - Enviado por Tiago MDR em 28/06/2010

Changelog: - Correção de erros ortográficos :)
- Teste realizado no Debian Lenny


Download 1277760709.freeradius_status.sh


Esconder código-fonte

#!/bin/sh
# Sample script to collect Freeradius 2.x.x monitoration data.
# -------------------------------------------------------------------------
# Tested under Fedora Core / CemtOS 5.2 / RHEL
# -------------------------------------------------------------------------
# Author: Tiago Milson De Rizzo
# -------------------------------------------------------------------------
# Last updated Apr/26/2010
# -------------------------------------------------------------------------
# Usage: ./freeradius_status.sh parameter
# Example: ./freeradius_status.sh Access-Accepts

STATS="/root/scripts/radius_stats.txt"
ECHO="/bin/echo"
RADCLIENT="/usr/bin/radclient"
###################################
#Infos for:
#Server parameters
FREERAD_STS_CLI_SRV_IP="127.0.0.1"
FREERAD_STS_SRV_IP="127.0.0.1"
FREERAD_STS_SRV_PORT="1812"

#The port 18120 needs to be enabled in the server. The Freeradius 2.x.x documentation
#Tells how to do it http://wiki.freeradius.org/Status
##WARNING##WARNING##WARNING##WARNING##WARNING##WARNING##WARNING##WARNING##WARNING##WARNING##
##THE COMMAND LISTED IN THE http://wiki.freeradius.org/Status IS WRONG!!!!!
##IF YOU NEED TO EXECUTE THE CODE BY HAND, USE THE ONE LISTED BELOW THE "GENERATE STATISTICS" COMMENT
##REWRITING IT AS NEEDED

#radclient parameters
FREERAD_SRV_IP="127.0.0.1"
FREERAD_SRV_STS_PORT="18120"
FREERAD_SECRET="adminsecret"
###################################
# check for valid command line parameters in the radclient output
[ -z "$1" ] && exit;
[     "$1" != 'Access-Accepts' \
   -a "$1" != 'Access-Rejects' \
   -a "$1" != 'Access-Challenges' \
   -a "$1" != 'Auth-Responses' \
   -a "$1" != 'Auth-Duplicate-Requests' \
   -a "$1" != 'Auth-Malformed-Requests' \
   -a "$1" != 'Auth-Invalid-Request' \
   -a "$1" != 'Auth-Dropped-Requests' \
   -a "$1" != 'Auth-Unknown-Types' \
   -a "$1" != 'Accounting-Requests' \
   -a "$1" != 'Accounting-Responses' \
   -a "$1" != 'Acct-Duplicate-Requests' \
   -a "$1" != 'Acct-Malformed-Requests' \
   -a "$1" != 'Acct-Invalid-Requests' \
   -a "$1" != 'Acct-Dropped-Requests' \
   -a "$1" != 'Acct-Unknown-Types' \
] && exit;

#Generate statistics
$ECHO "Message-Authenticator = 0x00, FreeRADIUS-Statistics-Type = 35, FreeRADIUS-Stats-Client-IP-Address = $FREERAD_STS_CLI_SRV_IP, FreeRADIUS-Stats-Server-IP-Address = $FREERAD_STS_SRV_IP, FreeRADIUS-Stats-Server-Port = $FREERAD_STS_SRV_PORT" | \
${RADCLIENT} $FREERAD_SRV_IP:$FREERAD_SRV_STS_PORT status $FREERAD_SECRET > $STATS

#Grab the file statistics and from the file generated
tail -17 ${STATS}| /usr/bin/awk "/$1/ { result=\$3 } END { print result ? result : 0 }"

Scripts recomendados

Procura 1.0

Script para conversão do OpenOffice para a lingua portuguesa (pt-BR) a partir do BrOffice

del_user - cuida dos 4 passos para remover um usuário do sistema

Mostra o Ip-ppp0

Converter Arquivos de Áudio


  

Comentários
[1] Comentário enviado por antoniocjb em 15/03/2014 - 10:07h

Bom dia. Eu tenho freeradius 2 instalado no freebsd 9.2 autenticando PPPoE no Mikrotik 5.26 e estou a sofrer com problema de conexões presa . Preciso usar esse Script de vocês, mas não estou conseguindo acessar o link http://wiki.freeradius.org/Status. Por Favor alguém me ajude.


Contribuir com comentário