Exportação automática do MK-AUTH para MIKROTIK por: M4D3


Segue script para exportação da access-list e cadastro de clientes do pppoe secret (pode ser adaptado para hotspot facilmente).

#!/bin/bash
#======== EXPORTACAO DE DADOS MKAUTH PARA MIKROTIK ========#
##---------------==== COMPILADO POR: ====------------------##
##---------- LUCIANO RAMPANELLI - M4D3@HOTMAIL.COM ---------##
#--------------------- www.nimoc.com.br ----------------------#
#===============================================#

banco=mkradius
table=sis_cliente
campo=ativo

#IP DE CADA AP OU SERVIDOR QUE IRA RECEBER OS DADOS
ap1=172.16.16.251
ap2=172.16.16.252

#USUARIO FTP PARA ENVIO DE ARQUIVOS
ftp_user="ftpuser"
ftp_pass="ftpuser123"

#USUARIO SSH PARA EXECUCAO DE COMANDOS
ssh_user="sshuser"
#DEVE SER CADASTRADO SEM SENHA, LIBERAR APENAS IP DO MKAUTH NO MIKROTIK PARA ESTE USUARIO

#ARQUIVOS DESTINO
arquivo1="access-list.rsc"
arquivo2="secret.rsc"


#EXPORTACAO DO BANCO DE DADOS
if [ "$1" = "s" ];then
        mysql -u root -pvertrigo -e\
     "SELECT login, mac, plano, tipo, senha FROM $table WHERE $campo = '$1'" $banco |awk '{ print $1, $2, $3, $4, $5 }' |grep -v "login mac plano tipo senha" |grep -v "NULL" > /tmp/.lmp
fi

count=`cat /tmp/.lmp|wc -l`
indice=$count

#MONTAGEM DA STRING DE IMPORTACAO DOS MACS PARA A ACCESS-LIST
echo "/interface wireless access-list " > $arquivo1
   while [ $count -gt 0 ]; do
     login=`cat /tmp/.lmp |awk '{ print $1 }' |sed -n $count"p"`
     mac=`cat /tmp/.lmp |awk '{ print $2 }' |sed -n $count"p"`
     if [ ! -z $login ]; then
      echo "add comment="$login" disabled=no interface=all mac-address=$mac signal-range=-78.120 forward=no" >> $arquivo1
     fi
    count=`echo $count-1|bc`
   done
cat $arquivo1
echo " "

count=`cat /tmp/.lmp|wc -l`
indice=$count

#MONTAGEM DA STRING DE IMPORTACAO DOS CLIENTES PPPOE
echo "/ppp secret " > $arquivo2
   while [ $count -gt 0 ]; do
     login=`cat /tmp/.lmp |awk '{ print $1 }' |sed -n $count"p"`
     mac=`cat /tmp/.lmp |awk '{ print $2 }' |sed -n $count"p"`
     plano=`cat /tmp/.lmp |awk '{ print $3 }' |sed -n $count"p"`
     tipo=`cat /tmp/.lmp |awk '{ print $4 }' |sed -n $count"p"`
     senha=`cat /tmp/.lmp |awk '{ print $5 }' |sed -n $count"p"`
     if [ $tipo = "pppoe" ]; then
      echo "add caller-id=$mac name=$login password=$senha profile=$plano service=$tipo disabled=yes" >> $arquivo2
     fi
    count=`echo $count-1|bc`
   done
cat $arquivo2
echo " "

#ENVIO DE ARQUIVOS POR FTP
echo "Enviando arquiovos..."
ftp -in $ap1 << ap1
        user $ftp_user $ftp_pass
        send $arquivo1
        send $arquivo2
        bye
        EOF
        quit
ap1

ftp -in $ap2 << ap2
                   user $ftp_user $ftp_pass
                   send $arquivo1
                   send $arquivo2
                   bye
           EOF
           quit
ap2

echo " "

#EXECUCAO DE COMANDOS VIA SSH
echo "Importando dados..."
ssh $ssh_user@$ap1 << sh1
           /ppp secret export file=bkp_secret.rsc
           /ppp secret remove [/ppp secret find]
           /import $arquivo2
           /interface wireless access-list export file=bkp_access-list.rsc
           /interface wireless access-list remove [/interface wireless access-list find]
           /import $arquivo1
           /quit
sh1

ssh $ssh_user@$ap2 << sh2
                   /ppp secret export file=bkp_secret.rsc
                   /ppp secret remove [/ppp secret find]
                   /import $arquivo2
                   /interface wireless access-list export file=bkp_access-list.rsc
                   /interface wireless access-list remove [/interface wireless access-list find]
                   /import $arquivo1
                   /quit
sh2

rm -fr $arquivo1
rm -fr $arquivo2

echo "Exportado(s) $indice registro(s)"

#DOCUMENTACAO
#http://thobias.org/doc/shell_bd.html#toc11

#DEPENDENCIAS
#apt-get update
#apt-get install ftp bc -y


#PARA RODAR DIGITE

#mka2mk.sh s

Salve o script acima como mka2mkt.sh
Dê de permissao de execução: chmod +x mka2mkt.sh
E rode o script após configurar os parametros com: ./mka2mkt.sh s

A letra 's' identifica os clientes ativos, mas você pode alterar para usar como bem entender.


O agendamento pode ser feito para rodar durante a madrugada pelo crontab, mantendo seu MK-AUTH sincronizado com mikrotik.


É isso pessoal, dúvidas é só perguntar, convido os colegas a aprimorarem o script bem como a complementarem com novas funções.

Valeu

Luciano Rampanelli - M4D3

Para adicionar comentários, você deve ser membro de MK-AUTH.

Join MK-AUTH

Votos 0
Enviar-me um email quando as pessoas responderem –

Respostas

  • aqui tambem nao esta funcionando, e depois q add um novo ramal o mkauth parou de enviar automatico

    Tiago Das Neves Rodrigues disse:

    esses Scripts aqui nunca mais foi comentado. está file dando erro. alguem sabe. meu mk-auth desligou esses dias e os clientes não conseguia logar ai tive que ir até ele e ver oque ki tava pegando kkkk

  • esses Scripts aqui nunca mais foi comentado. está file dando erro. alguem sabe. meu mk-auth desligou esses dias e os clientes não conseguia logar ai tive que ir até ele e ver oque ki tava pegando kkkk

  • Ola amigo  jonas oliveira da silva o seu script ta dando erro quando tem 2 arquivo com a mesma extensão

    nao teria como colocar pra ele pega sempre o mais novo  cp -u `find /usr/local/mkauth/backup -mtime -1 -name '*.tgz

    jonas oliveira da silva disse:

    Abri outro tópico com o script e um tutorial mostrando como aplicar as configurações....

    Desde já peço desculpas ao Luciano, não estou desvalorizando o seu tópico, dou nota 10 para ele, abri outro tópico porque o meu script tem outra estrutura, mais tem essa mesma função de exportar do mk-auth e importar no mikrotik "autmatico"

    um abraço a todos!

    LINK PARA  EXPORTAR BACKUP MK-AUTH E IMPORTAR NO MIKROTIK "TUDO AUTOMATICO"

  • Abri outro tópico com o script e um tutorial mostrando como aplicar as configurações....

    Desde já peço desculpas ao Luciano, não estou desvalorizando o seu tópico, dou nota 10 para ele, abri outro tópico porque o meu script tem outra estrutura, mais tem essa mesma função de exportar do mk-auth e importar no mikrotik "autmatico"

    um abraço a todos!

    LINK PARA  EXPORTAR BACKUP MK-AUTH E IMPORTAR NO MIKROTIK "TUDO AUTOMATICO"

  • Pois é o script está tão perfeito! kkkk

    envia os arquivos por ftp, importa nos mikrotiks, envia um e-mail com um relatório dos registros e os arquivos em anexo... tá show!

    deixa eu abusar do brinquedo ai depois deixo vocês bricarem tambem kkk...



    Claudvan Lima disse:

    Estou no aguardo!

    Eu numca consegui fazer exportar do mk-auth para meu mikrotik...

    jonas oliveira da silva disse:

    Tambem nao tive sucesso com esse script, parece que falta alguns detalhes,

    mais gostei da ideia, nota 10!

    adaptei e consegui desenvolver outro script para importar para o mikrotik que está 100%

    o script tem essa mesma função exportar mk-auth e importar mikrotik" pppoe, hotspot, access-list" todos

    depois envia os comandos ssh para importar os arquivos, "serve pra mais de um miktorik" (meu caso).

    assim que eu estiver com um tempinho vou postar aqui.

  • acompanhando...

  • Estou no aguardo!

    Eu numca consegui fazer exportar do mk-auth para meu mikrotik...

    jonas oliveira da silva disse:

    Tambem nao tive sucesso com esse script, parece que falta alguns detalhes,

    mais gostei da ideia, nota 10!

    adaptei e consegui desenvolver outro script para importar para o mikrotik que está 100%

    o script tem essa mesma função exportar mk-auth e importar mikrotik" pppoe, hotspot, access-list" todos

    depois envia os comandos ssh para importar os arquivos, "serve pra mais de um miktorik" (meu caso).

    assim que eu estiver com um tempinho vou postar aqui.

  • Tambem nao tive sucesso com esse script, parece que falta alguns detalhes,

    mais gostei da ideia, nota 10!

    adaptei e consegui desenvolver outro script para importar para o mikrotik que está 100%

    o script tem essa mesma função exportar mk-auth e importar mikrotik" pppoe, hotspot, access-list" todos

    depois envia os comandos ssh para importar os arquivos, "serve pra mais de um miktorik" (meu caso).

    assim que eu estiver com um tempinho vou postar aqui.

  • alguem teve sucesso com esse script?

  • amigo esse script esta parando depois do login no ftp e no ssh, no caso aqui so tenho 1 rb que gerencia a rede...

This reply was deleted.