Linha 200: | Linha 200: | ||
==Accel-PPP Configuração== | ==Accel-PPP Configuração== | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:auto; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">joe /etc/accel-ppp.conf</div> | ||
+ | <div class="mw-collapsible-content"> | ||
<blockquote><pre> | <blockquote><pre> | ||
[modules] | [modules] | ||
Linha 532: | Linha 535: | ||
# interface=eth0 | # interface=eth0 | ||
</pre></blockquote> | </pre></blockquote> | ||
+ | </div></div> | ||
+ | =Dicionario do Mikrotik= | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:auto; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">find / -name 'dictionary*'</div> | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <blockquote><pre> | ||
+ | # MikroTik vendor specific dictionary | ||
+ | # Copyright (C) MikroTikls, SIA | ||
+ | # | ||
+ | # You may freely redistribute and use this software or any part of it in source | ||
+ | # and/or binary forms, with or without modification for any purposes without | ||
+ | # limitations, provided that you respect the following statement: | ||
+ | # | ||
+ | # This software is provided 'AS IS' without a warranty of any kind, expressed or | ||
+ | # implied, including, but not limited to, the implied warranty of | ||
+ | # merchantability and fitness for a particular purpose. In no event shall | ||
+ | # MikroTikls SIA be liable for direct or indirect, incidental, consequential or | ||
+ | # other damages that may result from the use of this software, including, but | ||
+ | # not limited to, loss of data, time and (or) profits. | ||
+ | # | ||
+ | # $Id: dictionary.mikrotik,v 1.8 2019/12/20 11:02:37 strods Exp $ | ||
+ | # | ||
+ | # MikroTik Attributes | ||
+ | |||
+ | VENDOR Mikrotik 14988 | ||
+ | |||
+ | BEGIN-VENDOR Mikrotik | ||
+ | |||
+ | ATTRIBUTE Mikrotik-Recv-Limit 1 integer | ||
+ | ATTRIBUTE Mikrotik-Xmit-Limit 2 integer | ||
+ | ATTRIBUTE Mikrotik-Group 3 string | ||
+ | ATTRIBUTE Mikrotik-Wireless-Forward 4 integer | ||
+ | ATTRIBUTE Mikrotik-Wireless-Skip-Dot1x 5 integer | ||
+ | ATTRIBUTE Mikrotik-Wireless-Enc-Algo 6 integer | ||
+ | ATTRIBUTE Mikrotik-Wireless-Enc-Key 7 string | ||
+ | ATTRIBUTE Mikrotik-Rate-Limit 8 string | ||
+ | ATTRIBUTE Mikrotik-Realm 9 string | ||
+ | ATTRIBUTE Mikrotik-Host-IP 10 ipaddr | ||
+ | ATTRIBUTE Mikrotik-Mark-Id 11 string | ||
+ | ATTRIBUTE Mikrotik-Advertise-URL 12 string | ||
+ | ATTRIBUTE Mikrotik-Advertise-Interval 13 integer | ||
+ | ATTRIBUTE Mikrotik-Recv-Limit-Gigawords 14 integer | ||
+ | ATTRIBUTE Mikrotik-Xmit-Limit-Gigawords 15 integer | ||
+ | ATTRIBUTE Mikrotik-Wireless-PSK 16 string | ||
+ | ATTRIBUTE Mikrotik-Total-Limit 17 integer | ||
+ | ATTRIBUTE Mikrotik-Total-Limit-Gigawords 18 integer | ||
+ | ATTRIBUTE Mikrotik-Address-List 19 string | ||
+ | ATTRIBUTE Mikrotik-Wireless-MPKey 20 string | ||
+ | ATTRIBUTE Mikrotik-Wireless-Comment 21 string | ||
+ | ATTRIBUTE Mikrotik-Delegated-IPv6-Pool 22 string | ||
+ | ATTRIBUTE Mikrotik-DHCP-Option-Set 23 string | ||
+ | ATTRIBUTE Mikrotik-DHCP-Option-Param-STR1 24 string | ||
+ | ATTRIBUTE Mikortik-DHCP-Option-Param-STR2 25 string | ||
+ | ATTRIBUTE Mikrotik-Wireless-VLANID 26 integer | ||
+ | ATTRIBUTE Mikrotik-Wireless-VLANIDtype 27 integer | ||
+ | ATTRIBUTE Mikrotik-Wireless-Minsignal 28 string | ||
+ | ATTRIBUTE Mikrotik-Wireless-Maxsignal 29 string | ||
+ | ATTRIBUTE Mikrotik-Switching-Filter 30 string | ||
+ | |||
+ | # MikroTik Values | ||
+ | |||
+ | VALUE Mikrotik-Wireless-Enc-Algo No-encryption 0 | ||
+ | VALUE Mikrotik-Wireless-Enc-Algo 40-bit-WEP 1 | ||
+ | VALUE Mikrotik-Wireless-Enc-Algo 104-bit-WEP 2 | ||
+ | VALUE Mikrotik-Wireless-Enc-Algo AES-CCM 3 | ||
+ | VALUE Mikrotik-Wireless-Enc-Algo TKIP 4 | ||
+ | VALUE Mikrotik-Wireless-VLANIDtype 802.1q 0 | ||
+ | VALUE Mikrotik-Wireless-VLANIDtype 802.1ad 1 | ||
+ | |||
+ | END-VENDOR Mikrotik | ||
+ | </pre></blockquote> | ||
+ | </div></div> | ||
+ | Você pode pegar o dicionário do Mikrotik direto no site deles. | ||
+ | |||
+ | https://wiki.mikrotik.com/wiki/Manual:RADIUS_Client/vendor_dictionary | ||
__NOEDITSECTION__ | __NOEDITSECTION__ |
Edição das 18h54min de 26 de junho de 2020
Índice
Controllr > Accel-PPP
O Accel-PPP é um software compilado para ser usando em diversos serviços de autenticação, compatível com o protocolo Radius. Como por exemplo autenticação PPPoE, IPoE, etc... Essa ferramenta pode ser usada em conjunto com o Controllr.
Instalação do Debian10
Você pode usar tanto o Ubuntu quando o Debian, ou outro derivado do LINUX que seja compatível para instalar o seu Accel-PPP. No exemplo a seguir, iremos ensinar como pode ser instalado no Debian versão 10.4.0 (Download 64x ISO)
- Baixe a ISO e realize a instalação do seu Debian.
- OBS: Se preferir, no momento da instalação escolha somente a opção via terminal shell (SSH), sem interface gráfica (web)
- Dicas Debian
- Habilitar login root via putty:
- Instale o editor de arquivos joe
- Habilitar login root via putty:
apt-get install joe -- Comandos JOE CURSOR MOVER MARCAR BLOCO ^B esquerda ^U tela anterior ^KB início ^P cima ^V tela posterior ^KK final ^Z palavra anterior ^A início da linha ^KM mover ^X palavra posterior ^E fim da linha ^KC copiar ^F direita ^KU início do arquivo ^KW salvar ^N baixo ^KV final do arquivo ^KY apagar ^KL mover para linha ^K/ filtro DELETAR MISCELÂNEA SAIR ^D caracter ^KJ reformatar ^KX salvar ^Y linha ^T opções ^C abortar ^W palavra a direita ^R refrescar ^KZ shell ^O palavra a esquerda ^@ inserir ARQUIVO ^J final da linha SPELL ^KE editar ^_ desfazer ^[N palavra ^KR inserir ^^ refazer ^[L arquivo ^KD salvar BUSCA ^KF procurar texto ^L procurar próximo *^ = CTRL*
- Abra o arquivo:
joe /etc/ssh/sshd_config
- Edite as linha tirando o # e mudando para yes
PermitRootLogin yes
- Após editar o arquivo:
CTRL + K
CTRL + X
- Depois reinicie o SSH
/etc/init.d/ssh restart
Agora vamos instalar o Accel-PPP
- Baixe os pacotes do Accel-PPP no seu Debian
apt-get install -y build-essential cmake gcc linux-headers-`uname -r` git libpcre3-dev libssl-dev liblua5.1-0-dev -- Se não tiver o LIB SNMP instale-o, depois rode novamente o comando acima apt-get install libsnmp-dev
- Agora crie um diretório para baixar o projeto do git
mkdir -p /usr/local/src/accel mkdir -p /usr/local/src/accel/build
- Agora entre nesse diretório criado
cd /usr/local/src/accel
- Depois irar fazer o clone do projeto do git do Accel-PPP
git clone https://github.com/xebd/accel-ppp.git
- Antes de Compilar, rode o PATCH do Mikrotik Rate Limit
Compilação
- Após clonar do git acesse o diretório da Build
cd /usr/local/src/accel/build
- Dentro do diretório da Build, irá escolher o que será compilado, conforme sua necessidade
cmake -DCPACK_TYPE=Debian10 -DBUILD_IPOE_DRIVER=TRUE -DBUILD_VLAN_MON_DRIVER=TRUE -DRADIUS=TRUE -DNETSNMP=TRUE -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr -DKDIR=/usr/src/linux-headers-$(uname -r) ../accel-ppp
- Agora irá compilar o Accel-PPP no Debian
make
- Após irá copiar o modulo do Kernel Vlan_mon e IPoE em seguida carregue-os
cp drivers/ipoe/driver/ipoe.ko /lib/modules/$(uname -r) cp drivers/vlan_mon/driver/vlan_mon.ko /lib/modules/$(uname -r) depmod -a modprobe vlan_mon modprobe ipoe
- Devemos adicionar os módulos para iniciarem com o Boot
echo "vlan_mon" >> /etc/modules echo "ipoe" >> /etc/modules
- Iremos criar o pacote .DEB
cpack -G DEB apt install ./accel-ppp.deb
Instalação do Accel-PPP Completa no seu Debian
- Agora habilite o seu Accel-PPP para iniciar com o seu Debian
systemctl enable accel-ppp
- O pacote vem com um modelo de exemplo, jogue esse modelo de configuração no seu Accel-PPP e edite-o conforme a sua necessidade.
cp /etc/accel-ppp.conf.dist /etc/accel-ppp.conf
- Apos a edição do arquivo, sempre reinicie o seu Accel-PPP
systemctl restart accel-ppp systemctl status accel-ppp
Patch Mikrotik Rate Limit
--- git a/accel-ppp/accel-pppd/shaper/shaper.c b/accel-ppp/accel-pppd/shaper/shaper.c --- a/accel-ppp/accel-pppd/shaper/shaper.c +++ b/accel-ppp/accel-pppd/shaper/shaper.c @@ -196,7 +196,9 @@ static struct shaper_pd_t *find_pd(struct ap_session *ses, int create) static void parse_string_simple(const char *str, int dir, int *speed, int *burst, int *tr_id) { char *endptr; + char *endstr; long int val; + long int bandw; val = strtol(str, &endptr, 10); if (*endptr == 0) { @@ -211,15 +213,38 @@ static void parse_string_simple(const char *str, int dir, int *speed, int *burst *speed = conf_multiplier * val; return; } else { - if (*endptr == '/' || *endptr == '\\' || *endptr == ':') { - if (dir == ATTR_DOWN) - *speed = conf_multiplier * val; - else - *speed = conf_multiplier * strtol(endptr + 1, &endptr, 10); + if (*endptr == 'k' || *endptr == 'K' || *endptr == 'm' || *endptr == 'M') { + endstr = endptr; + endptr++; + if (*endptr == '/' || *endptr == '\\' || *endptr == ':') { + if (dir == ATTR_UP) { + bandw = conf_multiplier * val; + if (*endstr == 'm' || *endstr == 'M') { + *speed = bandw * 1024; + } else { + *speed = bandw; + } + } else { + bandw = conf_multiplier * strtol(endptr + 1, &endptr, 10); + if (*endptr == 'm' || *endptr == 'M') { + *speed = bandw * 1024; + } else { + *speed = bandw; + } + } + } + } else { + if (*endptr == '/' || *endptr == '\\' || *endptr == ':') { + if (dir == ATTR_DOWN) + *speed = conf_multiplier * val; + else + *speed = conf_multiplier * strtol(endptr + 1, &endptr, 10); + } } } } + static void parse_string(const char *str, int dir, int *speed, int *burst, int *tr_id) { long int val;
Poderá copiar do Pastebin
Esse patch deve ser jogado no seu Accel-PPP para que você consiga usar o vendor Mikrotik Rate limit no Shaper.
- Copie essas linhas de código e salve com a extensão .patch
- Depois jogue esse arquivo no diretório
cd /usr/local/src/accel
- Poderá transferir via SCP, segue exemplo de como transferir usando o CMD do Windows:
scp -P (porta ssh)(diretório onde se encontra o arquivo) (usuário@X.X.X.X):(diretório que irá mandar o arquivo) scp -P 22 D:/ISO/MK-rate-limit.patch root@192.168.142.227:/usr/local/src/accel
- Outra opção é fazer tudo via shell
cd /usr/local/src/accel touch MK-rate-limit.patch joe MK-rate-limit.patch -- Colar o script CTRL + K CTRL + X --Por fim rodar o patch patch -p 1 < MK-rate-limit.patch -- Confira se subiu o patch corretamente cat /usr/local/src/accel/accel-ppp/accel-pppd/shaper/shaper.c | grep -A50 'static void parse_string_simple'
Agora volte para a compilação do seu Accel-PPP
Accel-PPP Configuração
Dicionario do Mikrotik
Você pode pegar o dicionário do Mikrotik direto no site deles.
https://wiki.mikrotik.com/wiki/Manual:RADIUS_Client/vendor_dictionary