Freeradius 2.x.x - Monitoração

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

[ Hits: 8.177 ]

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

Análise de conexões ativas

Script para monitoramento de processos em execução no sistema

Extração do áudio de um DVD

Montar pasta remota NFS em Zenity

Script para copiar CD.


  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts