Freeradius 2.x.x - Monitoração
Publicado por Tiago MDR (última atualização em 04/07/2010)
[ Hits: 7.847 ]
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ã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
#!/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 }"
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Estou com sede em aprender sobre o nosso querido Linux. (1)
big linux sem audio como resolver (2)
Como faz para dar um update-grub por shell script [RESOLVIDO] (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta