Mudanças entre as edições de "Controllr/Manual/Accel-PPP"

De BrByte Wiki
 
(17 revisões intermediárias por um outro usuário não estão sendo mostradas)
Linha 4: Linha 4:
 
Essa ferramenta pode ser usada em conjunto com o [https://controllr.brbyte.com Controllr.]
 
Essa ferramenta pode ser usada em conjunto com o [https://controllr.brbyte.com Controllr.]
  
==Instalação do Accel-PPP==
+
==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.  
+
Você pode usar tanto o Ubuntu quanto 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 <b>[https://www.debian.org/distrib/ Debian]</b> versão 10.4.0 ([https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.4.0-amd64-netinst.iso Download 64x ISO])
 
No exemplo a seguir, iremos ensinar como pode ser instalado no <b>[https://www.debian.org/distrib/ Debian]</b> versão 10.4.0 ([https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.4.0-amd64-netinst.iso Download 64x ISO])
  
Linha 14: Linha 14:
 
** Habilitar login root via putty:
 
** Habilitar login root via putty:
 
*** Instale o editor de arquivos joe
 
*** Instale o editor de arquivos joe
<blockquote><pre>apt-get install joe</pre></blockquote>
+
<blockquote><pre>
 +
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*
 +
</pre></blockquote>
 
* Abra o arquivo:
 
* Abra o arquivo:
 
<blockquote><pre>joe /etc/ssh/sshd_config</pre></blockquote>
 
<blockquote><pre>joe /etc/ssh/sshd_config</pre></blockquote>
Linha 40: Linha 66:
 
* Depois irar fazer o clone do projeto do git do Accel-PPP
 
* Depois irar fazer o clone do projeto do git do Accel-PPP
 
<blockquote><pre>git clone https://github.com/xebd/accel-ppp.git</pre></blockquote>
 
<blockquote><pre>git clone https://github.com/xebd/accel-ppp.git</pre></blockquote>
 +
* Antes de Compilar, rode o PATCH do [[Controllr/Manual/Accel-PPP#Patch Mikrotik Rate Limit | <b>Mikrotik Rate Limit</b>]]
 +
===Compilação===
 
* Após clonar do git acesse o diretório da Build
 
* Após clonar do git acesse o diretório da Build
 
<blockquote><pre>cd /usr/local/src/accel/build</pre></blockquote>
 
<blockquote><pre>cd /usr/local/src/accel/build</pre></blockquote>
Linha 76: Linha 104:
  
 
==Patch Mikrotik Rate Limit==
 
==Patch Mikrotik Rate Limit==
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="width:auto; overflow:auto;">
 +
<div style="font-weight:bold;line-height:1.6;">MK-rate-limit.patch</div>
 +
<div class="mw-collapsible-content">
 
<blockquote><pre>
 
<blockquote><pre>
 
--- git a/accel-ppp/accel-pppd/shaper/shaper.c b/accel-ppp/accel-pppd/shaper/shaper.c
 
--- git a/accel-ppp/accel-pppd/shaper/shaper.c b/accel-ppp/accel-pppd/shaper/shaper.c
Linha 136: Linha 166:
 
  long int val;
 
  long int val;
 
</pre></blockquote>
 
</pre></blockquote>
 
+
</div></div>
 
Poderá copiar do Pastebin
 
Poderá copiar do Pastebin
  
Linha 143: Linha 173:
 
Esse patch deve ser jogado no seu Accel-PPP para que você consiga usar o vendor Mikrotik Rate limit no Shaper.  
 
Esse patch deve ser jogado no seu Accel-PPP para que você consiga usar o vendor Mikrotik Rate limit no Shaper.  
  
* Copie esses linhas de código e salve com a extensão <font style="color:red"><b>.patch</b></font>
+
* Copie essas linhas de código e salve com a extensão <font style="color:red"><b>.patch</b></font>
 
* Depois jogue esse arquivo no diretório <code><font style="color:black">cd /usr/local/src/accel</font></code>
 
* Depois jogue esse arquivo no diretório <code><font style="color:black">cd /usr/local/src/accel</font></code>
 
** Poderá transferir via SCP, segue exemplo de como transferir usando o CMD do Windows:  
 
** Poderá transferir via SCP, segue exemplo de como transferir usando o CMD do Windows:  
Linha 161: Linha 191:
 
CTRL + X
 
CTRL + X
 
--Por fim rodar o patch
 
--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'
 +
</pre></blockquote>
 +
 +
Agora volte para a [[Controllr/Manual/Accel-PPP#Compilação | <b>compilação do seu Accel-PPP</b>]]
 +
 +
 +
==Accel-PPP Configuração==
 +
 +
Esse é o exemplo de configuração que melhor se enquadra em conjunto com o [https://controllr.brbyte.com  Controllr.]<br>
 +
A configuração pode ser modificada conforme a sua necessidade.<br>
 +
O manual dos módulos, se encontra nesses links abaixo:
 +
 +
https://accel-ppp.org/accel-ppp.conf.html
 +
 +
https://accel-ppp.org/wiki/doku.php?id=configfile
 +
 +
Os campos com <i class="fas fa-hashtag"></i> estão desabilitados, para habilitar basta remover o <i class="fas fa-hashtag"></i>.
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:auto; overflow:auto;">
 +
<div style="font-weight:bold;line-height:1.6;">accel-ppp.conf</div>
 +
<div class="mw-collapsible-content">
 +
<blockquote><pre>
 +
[modules]
 +
log_file
 +
log_syslog
 +
ppp
 +
pppoe
 +
auth_pap
 +
radius
 +
ippool
 +
pppd_compat
 +
shaper
 +
sigchld
 +
# log_tcp
 +
# log_pgsql
 +
# pptp
 +
# l2tp
 +
# sstp
 +
# ipoe
 +
# auth_mschap_v2
 +
# auth_mschap_v1
 +
# auth_chap_md5
 +
# chap-secrets
 +
# net-snmp
 +
# logwtmp
 +
# connlimit
 +
# ipv6_nd
 +
# ipv6_dhcp
 +
# ipv6pool
 +
 +
[log]
 +
log-file=/var/log/accel-ppp/accel-ppp.log
 +
log-emerg=/var/log/accel-ppp/emerg.log
 +
log-fail-file=/var/log/accel-ppp/auth-fail.log
 +
log-debug=/var/log/accel-ppp/debug.log
 +
color=1
 +
per-session=1
 +
level=5
 +
# copy=1
 +
# syslog=accel-pppd,daemon
 +
# log-tcp=127.0.0.1:3000
 +
# per-user-dir=per_user
 +
# per-session-dir=per_session
 +
 +
[core]
 +
log-error=/var/log/accel-ppp/core.log
 +
thread-count=4
 +
 +
[common]
 +
verbose=1
 +
single-session=replace
 +
sid-case=upper
 +
sid-source=seq
 +
check-ip=1
 +
# max-sessions=1000
 +
# max-starting=0
 +
# single-session-ignore-case=0
 +
 +
[dns]
 +
dns1=8.8.8.8
 +
dns2=1.1.1.1
 +
 +
[wins]
 +
#wins1=172.16.0.1
 +
#wins2=172.16.1.1
 +
 +
[cli]
 +
telnet=127.0.0.1:2000
 +
tcp=127.0.0.1:2001
 +
# sessions-columns=ifname,username,ip,ip6,ip6-dp,type,state,uptime,uptime-raw,calling-sid,called-sid,sid,comp,rx-bytes,tx-bytes,rx-bytes-raw,tx-bytes-raw,rx-pkts,tx-pkts
 +
# verbose=1
 +
# password=123
 +
 +
[auth]
 +
verbose=1
 +
any-login=0
 +
noauth=0
 +
 +
[ppp]
 +
verbose=1
 +
min-mtu=1452
 +
mtu=1480
 +
mru=1480
 +
accomp=deny
 +
pcomp=deny
 +
ccp=0
 +
ipv4=require
 +
ipv6=deny
 +
lcp-echo-interval=20
 +
lcp-echo-timeout=120
 +
unit-cache=100
 +
unit-preallocate=1
 +
# mppe=require
 +
# ipv6-intf-id=0:0:0:1
 +
# ipv6-peer-intf-id=0:0:0:2
 +
# ipv6-accept-peer-intf-id=1
 +
# lcp-echo-failure=3
 +
 +
[pppoe]
 +
verbose=1
 +
ac-name=Accel-PPP
 +
service-name=Accel-PPP
 +
accept-any-service=1
 +
pado-delay=0,100:100,200:200,500:500,-1:700
 +
called-sid=ifname:mac
 +
padi-limit=50
 +
ip-pool=pool-accel
 +
sid-uppercase=0
 +
interface=ens33
 +
vlan-mon=ens33,1-4095
 +
vlan-timeout=240
 +
vlan-name=%I.%N
 +
# pado-delay=0
 +
# tr101=1
 +
# ipv6-pool=pppoe
 +
# ipv6-pool-delegate=pppoe
 +
# ifname=pppoe%d
 +
# interface=ens33,padi-limit=1000
 +
 +
[radius]
 +
verbose=1
 +
interim-verbose=1
 +
dictionary=/usr/share/accel-ppp/radius/dictionary
 +
nas-identifier=Accel-PPP
 +
nas-ip-address=192.168.142.227
 +
gw-ip-address=192.168.142.227
 +
server=192.168.142.22,brbyte,auth-port=1812,acct-port=0,req-limit=50,fail-timeout=20,max-fail=30,weight=1
 +
server=192.168.142.22,brbyte,auth-port=0,acct-port=1813,req-limit=50,fail-timeout=20,max-fail=30,weight=1
 +
dae-server=192.168.142.227:3799,brbyte
 +
acct-timeout=300
 +
acct-delay-time=0
 +
acct-interim-interval=60
 +
# timeout=5
 +
# max-try=30
 +
# acct-on=1
 +
# server=192.168.142.xx,brbyte,auth-port=1812,acct-port=1813,req-limit=50,fail-timeout=0,backup
 +
# acct-on=0
 +
# acct-interim-jitter=0
 +
# attr-tunnel-type=My-Tunnel-Type
 +
 +
[ip-pool]
 +
verbose=1
 +
gw-ip-address=192.168.142.227
 +
attr=Framed-Pool
 +
192.168.1.1-255,name=pool-accel
 +
# vendor=Mikrotik
 +
# attr=Mikrotik-Host-IP
 +
# 192.168.0.2-255
 +
# 192.168.2.1-255,name=pool2
 +
# 192.168.3.1-255,name=pool3
 +
# 192.168.4.1-255,name=pool4,next=pool1
 +
# 192.168.4.0/24
 +
 +
[shaper]
 +
verbose=1
 +
vendor=Mikrotik
 +
attr=Mikrotik-Rate-Limit
 +
up-limiter=police
 +
down-limiter=tbf
 +
# down-burst-factor=0.1
 +
# up-burst-factor=1.0
 +
# latency=50
 +
# mpu=0
 +
# mtu=0
 +
# r2q=10
 +
# quantum=1500
 +
# moderate-quantum=1
 +
# cburst=1534
 +
# ifb=ifb0
 +
# leaf-qdisc=sfq perturb 10
 +
# leaf-qdisc=fq_codel [limit PACKETS] [flows NUMBER] [target TIME] [interval TIME] [quantum BYTES] [[no]ecn]
 +
# rate-multiplier=1
 +
# fwmark=1
 +
# rate-limit=2048/1024
 +
 +
[client-ip-range]
 +
disable
 +
 +
[log-pgsql]
 +
# conninfo=user=log
 +
# log-table=log
 +
 +
[pppd-compat]
 +
verbose=1
 +
# ip-up=/etc/ppp/ip-up
 +
# ip-down=/etc/ppp/ip-down
 +
radattr-prefix=/var/run/radattr
 +
# ip-pre-up=/etc/ppp/ip-pre-up
 +
# ip-change=/etc/ppp/ip-change
 +
# fork-limit=16
 +
 +
[chap-secrets]
 +
verbose=1
 +
gw-ip-address=192.168.142.227
 +
#chap-secrets=/etc/ppp/chap-secrets
 +
#encrypted=0
 +
#username-hash=md5
 +
 +
[snmp]
 +
# master=0
 +
# agent-name=Accel-PPP
 +
 +
[connlimit]
 +
# limit=10/min
 +
# burst=3
 +
# timeout=60
 +
 +
[pptp]
 +
# verbose=1
 +
# echo-interval=30
 +
# ip-pool=pptp
 +
# ipv6-pool=pptp
 +
# ipv6-pool-delegate=pptp
 +
# ifname=pptp%d
 +
 +
[ipv6-pool]
 +
# gw-ip6-address=fc00:0:1::1
 +
# vendor=
 +
# attr-prefix=Delegated-IPv6-Prefix-Pool
 +
# attr-address=Stateful-IPv6-Address-Pool
 +
# fc00:0:1::/48,64
 +
# fc00:0:2::/48,64,name=pool1
 +
# fc00:0:3::/48,64,name=pool2,next=pool1
 +
# delegate=fc00:1::/36,48
 +
# delegate=fc00:2::/36,48,name=pool3
 +
# delegate=fc00:3::/36,48,name=pool4,next=pool3
 +
 +
[ipv6-dns]
 +
# fc00:1::1
 +
# fc00:1::2
 +
# fc00:1::3
 +
# dnssl=suffix1.local.net
 +
# dnssl=suffix2.local.net.
 +
 +
[ipv6-dhcp]
 +
# verbose=1
 +
# pref-lifetime=604800
 +
# valid-lifetime=2592000
 +
# route-via-gw=1
 +
 +
[l2tp]
 +
# verbose=1
 +
# dictionary=/usr/local/share/accel-ppp/l2tp/dictionary
 +
# hello-interval=60
 +
# timeout=60
 +
# rtimeout=1
 +
# rtimeout-cap=16
 +
# retransmit=5
 +
# recv-window=16
 +
# host-name=accel-ppp
 +
# dir300_quirk=0
 +
# secret=
 +
# dataseq=allow
 +
# reorder-timeout=0
 +
# ip-pool=l2tp
 +
# ipv6-pool=l2tp
 +
# ipv6-pool-delegate=l2tp
 +
# ifname=l2tp%d
 +
 +
[sstp]
 +
# verbose=1
 +
# cert-hash-proto=sha1,sha256
 +
# cert-hash-sha1=
 +
# cert-hash-sha256=
 +
# accept=ssl,proxy
 +
# ssl-protocol=tls1,tls1.1,tls1.2,tls1.3
 +
# ssl-dhparam=/etc/ssl/dhparam.pem
 +
# ssl-ecdh-curve=prime256v1
 +
# ssl-ciphers=DEFAULT
 +
# ssl-prefer-server-ciphers=0
 +
# ssl-ca-file=/etc/ssl/sstp-ca.crt
 +
# ssl-pemfile=/etc/ssl/sstp-cert.pem
 +
# ssl-keyfile=/etc/ssl/sstp-key.pem
 +
# host-name=domain.tld
 +
# http-error=allow
 +
# timeout=60
 +
# hello-interval=60
 +
# ip-pool=sstp
 +
# ipv6-pool=sstp
 +
# ipv6-pool-delegate=sstp
 +
# ifname=sstp%d
 +
 +
[ipoe]
 +
# verbose=1
 +
# username=ifname
 +
# password=username
 +
# lease-time=600
 +
# renew-time=300
 +
# max-lease-time=3600
 +
# unit-cache=1000
 +
# l4-redirect-table=4
 +
# l4-redirect-ipset=l4
 +
# l4-redirect-on-reject=300
 +
# l4-redirect-ip-pool=pool1
 +
# shared=0
 +
# ifcfg=1
 +
# mode=L2
 +
# start=dhcpv4
 +
# start=up
 +
# ip-unnumbered=1
 +
# proxy-arp=0
 +
# nat=0
 +
# proto=100
 +
# relay=10.10.10.10
 +
# vendor=Custom
 +
# weight=0
 +
# attr-dhcp-client-ip=DHCP-Client-IP-Address
 +
# attr-dhcp-router-ip=DHCP-Router-IP-Address
 +
# attr-dhcp-mask=DHCP-Mask
 +
# attr-dhcp-lease-time=DHCP-Lease-Time
 +
# attr-dhcp-opt82=DHCP-Option82
 +
# attr-dhcp-opt82-remote-id=DHCP-Agent-Remote-Id
 +
# attr-dhcp-opt82-circuit-id=DHCP-Agent-Circuit-Id
 +
# attr-l4-redirect=L4-Redirect
 +
# attr-l4-redirect-table=4
 +
# attr-l4-redirect-ipset=l4-redirect
 +
# lua-file=/etc/accel-ppp.lua
 +
# offer-delay=0,100:100,200:200,-1:1000
 +
# vlan-mon=eth0,10-200
 +
# vlan-timeout=60
 +
# vlan-name=%I.%N
 +
# ip-pool=ipoe
 +
# ipv6-pool=ipoe
 +
# ipv6-pool-delegate=ipoe
 +
# idle-timeout=0
 +
# session-timeout=0
 +
# soft-terminate=0
 +
# check-mac-change=1
 +
# calling-sid=mac
 +
# local-net=192.168.0.0/16
 +
# interface=eth0
 +
</pre></blockquote>
 +
</div></div>
 +
<br>
 +
Módulos que devem se atentar em substituir os dados.
 +
 +
<blockquote><pre>
 +
[pppoe]
 +
verbose=1
 +
ac-name=Accel-PPP /******** Nome do seu servidor Accel  ********/
 +
service-name=Accel-PPP /******** Nome do seu servidor Accel ********/
 +
ip-pool=pool-accel /******** Nome da Pool que irá entregar os IPs. Se não for usar basta marcar # ********/
 +
interface=ens33 /******** Nome da interface de rede da conexão dos clientes ********/
 +
vlan-mon=ens33,1-4095 /******** Nome da interface de rede da conexão dos clientes ********/
 +
</pre></blockquote>
 +
<blockquote><pre>
 +
[radius]
 +
nas-identifier=Accel-PPP /******** Nome do seu servidor Accel. Tem que estar o mesmo nome no Radius NAS do Controllr ********/
 +
nas-ip-address=192.168.142.227 /******** IP do seu Accel-PPP ********/
 +
gw-ip-address=192.168.142.227 /******** IP do seu Accel-PPP ********/
 +
server=192.168.142.22,brbyte,auth-port=1812,acct-port=0,req-limit=50,fail-timeout=20,max-fail=30,weight=1  /******** Ip do seu servidor Radius Controllr ********/
 +
server=192.168.142.22,brbyte,auth-port=0,acct-port=1813,req-limit=50,fail-timeout=20,max-fail=30,weight=1  /******** Ip do seu servidor Radius Controllr ********/
 +
dae-server=192.168.142.227:3799,brbyte  /******** IP do seu Accel-PPP ********/
 +
</pre></blockquote>
 +
<blockquote><pre>
 +
[ip-pool]
 +
gw-ip-address=192.168.142.227 /******** Gateway do seu range de IP ou o IP do seu Accel-ppp ********/
 +
192.168.1.1-255,name=pool-accel /******** Se for entregar IP pelo Accel, basta seguir a lógica e configurar o range de IP. Se for entregar pelo Controllr basta marcar o # ********/
 +
</pre></blockquote>
 +
<blockquote><pre>
 +
[chap-secrets]
 +
gw-ip-address=192.168.142.227 /******** Gateway do seu range de IP ou o IP do seu Accel-ppp  ********/
 +
</pre></blockquote>
 +
 +
Sempre após modificar os módulos reinicie o Accel-PPP
 +
 +
<blockquote><pre>
 +
systemctl restart accel-ppp
 +
systemctl restart accel-ppp
 +
 +
-- Para ver se o cliente autenticou
 +
 +
accel-cmd show sessions
 +
 +
-- Para ver mais opções
 +
 +
accel-cmd help
 +
</pre></blockquote>
 +
 +
=Dicionario do Mikrotik=
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:auto; overflow:auto;">
 +
<div style="font-weight:bold;line-height:1.6;">dictionary.mikrotik</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
 +
 +
No seu Debian procure pelo diretório aonde fica os dicionários
 +
<blockquote><pre>
 +
find / -name 'dictionary*'
 +
</pre></blockquote>
 +
Deve localizar esse diretório
 +
<blockquote><pre>
 +
cd /usr/share/accel-ppp/radius
 +
</pre></blockquote>
 +
Após entrar nesse diretório, irá criar um arquivo chamado <b>dictionary.mikrotik</b>
 +
<blockquote><pre>
 +
touch dictionary.mikrotik
 +
joe dictionary.mikrotik
 +
 +
-- Colar o dicionário do Mikrotik, salvar e fechar
 +
 +
CTRL + K
 +
CTRL + X
 +
</pre></blockquote>
 +
Depois irá editar o arquivo <b>dictionary</b>, para incluir a biblioteca do Mikroitk.
 +
<blockquote><pre>
 +
joe /usr/share/accel-ppp/radius/dictionary
 +
 +
-- Insira na última linha do arquivo
 +
 +
$INCLUDE dictionary.mikrotik
 +
 +
-- Salvar e fechar o arquivo
 +
 +
CTRL + K
 +
CTRL + X
 +
</pre></blockquote>
 +
 +
=Pendências Financeiras Bloqueios=
  
patch -p 1 < MK-rate-limit.patch
+
Para realizar o bloqueio do seus clientes pendentes, vamos configurar as regras usando o IPTables no seu Debian.
  
 +
* Primeiro verifique se já está instalado no seu Debian
 +
<blockquote><pre>
 +
dpkg -l | iptables
 
</pre></blockquote>
 
</pre></blockquote>
 +
* Se já tiver instalado verifique se tem regras criadas.
 +
<blockquote><pre>
 +
iptables -L -v
 +
-- Se não tiver instalado, pode instalar.
 +
apt-get install iptables
 +
</pre></blockquote>
 +
* Manual do IP Tables
 +
<blockquote><pre>
 +
-- Listagem
 +
 +
iptables -L Lista as regras
 +
iptables -I Adiciona a regra no inicio da lista
 +
iptables -i 4 adiciona a regra na 4º posição
 +
iptables -A Adiciona uma regra no final da lista
 +
iptables -D Apaga uma regra do firewall
 +
iptables -F Apaga todas as regras do firewall
 +
 +
--Parâmetros
 +
 +
-p          Especifica o protocolo
 +
-s          Especifica a origem
 +
-d          Especifica o destino
 +
-i          Especificar a interface de entrada
 +
-o          Especifica a interface de saída
 +
–sport      Especifica a porta de origem
 +
–dport      Especifica a porta de destino
 +
-j          Especifica a ação ACCEPT – DROP – REJECT
  
 +
-- Para saber mais
 +
 +
iptables --help
 +
</pre></blockquote>
  
 +
* O Controllr conta com 4 ações de pendencias financeiras.
 +
** Alerta de pendencia <b> brb-alert-notice </b>
 +
** Redução de velocidade <b> brb-pendency-notice </b>
 +
** Bloqueio <b> brb-block-notice </b>
 +
** Cancelamento de contrato <b> brb-cancel-notice </b>
  
 
__NOEDITSECTION__
 
__NOEDITSECTION__
 +
[[Category:Controllr]]
 +
[[Category:Manual]]

Edição atual tal como às 10h48min de 28 de fevereiro de 2023

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 quanto 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
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

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

MK-rate-limit.patch
--- 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

https://pastebin.com/DV8cLzyS

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

Esse é o exemplo de configuração que melhor se enquadra em conjunto com o Controllr.
A configuração pode ser modificada conforme a sua necessidade.
O manual dos módulos, se encontra nesses links abaixo:

https://accel-ppp.org/accel-ppp.conf.html

https://accel-ppp.org/wiki/doku.php?id=configfile

Os campos com estão desabilitados, para habilitar basta remover o .

accel-ppp.conf
[modules]
log_file
log_syslog
ppp
pppoe
auth_pap
radius
ippool
pppd_compat
shaper
sigchld
# log_tcp
# log_pgsql
# pptp
# l2tp
# sstp
# ipoe
# auth_mschap_v2
# auth_mschap_v1
# auth_chap_md5
# chap-secrets
# net-snmp
# logwtmp
# connlimit
# ipv6_nd
# ipv6_dhcp
# ipv6pool

[log]
log-file=/var/log/accel-ppp/accel-ppp.log
log-emerg=/var/log/accel-ppp/emerg.log
log-fail-file=/var/log/accel-ppp/auth-fail.log
log-debug=/var/log/accel-ppp/debug.log
color=1
per-session=1
level=5
# copy=1
# syslog=accel-pppd,daemon
# log-tcp=127.0.0.1:3000
# per-user-dir=per_user
# per-session-dir=per_session

[core]
log-error=/var/log/accel-ppp/core.log
thread-count=4

[common]
verbose=1
single-session=replace
sid-case=upper
sid-source=seq
check-ip=1
# max-sessions=1000
# max-starting=0
# single-session-ignore-case=0

[dns]
dns1=8.8.8.8
dns2=1.1.1.1

[wins]
#wins1=172.16.0.1
#wins2=172.16.1.1

[cli]
telnet=127.0.0.1:2000
tcp=127.0.0.1:2001
# sessions-columns=ifname,username,ip,ip6,ip6-dp,type,state,uptime,uptime-raw,calling-sid,called-sid,sid,comp,rx-bytes,tx-bytes,rx-bytes-raw,tx-bytes-raw,rx-pkts,tx-pkts
# verbose=1
# password=123

[auth]
verbose=1
any-login=0
noauth=0

[ppp]
verbose=1
min-mtu=1452
mtu=1480
mru=1480
accomp=deny
pcomp=deny
ccp=0
ipv4=require
ipv6=deny
lcp-echo-interval=20
lcp-echo-timeout=120
unit-cache=100
unit-preallocate=1
# mppe=require
# ipv6-intf-id=0:0:0:1
# ipv6-peer-intf-id=0:0:0:2
# ipv6-accept-peer-intf-id=1
# lcp-echo-failure=3

[pppoe]
verbose=1
ac-name=Accel-PPP
service-name=Accel-PPP
accept-any-service=1
pado-delay=0,100:100,200:200,500:500,-1:700
called-sid=ifname:mac
padi-limit=50
ip-pool=pool-accel
sid-uppercase=0
interface=ens33
vlan-mon=ens33,1-4095
vlan-timeout=240
vlan-name=%I.%N
# pado-delay=0
# tr101=1
# ipv6-pool=pppoe
# ipv6-pool-delegate=pppoe
# ifname=pppoe%d
# interface=ens33,padi-limit=1000

[radius]
verbose=1
interim-verbose=1
dictionary=/usr/share/accel-ppp/radius/dictionary
nas-identifier=Accel-PPP
nas-ip-address=192.168.142.227
gw-ip-address=192.168.142.227
server=192.168.142.22,brbyte,auth-port=1812,acct-port=0,req-limit=50,fail-timeout=20,max-fail=30,weight=1
server=192.168.142.22,brbyte,auth-port=0,acct-port=1813,req-limit=50,fail-timeout=20,max-fail=30,weight=1
dae-server=192.168.142.227:3799,brbyte
acct-timeout=300
acct-delay-time=0
acct-interim-interval=60
# timeout=5
# max-try=30
# acct-on=1
# server=192.168.142.xx,brbyte,auth-port=1812,acct-port=1813,req-limit=50,fail-timeout=0,backup
# acct-on=0
# acct-interim-jitter=0
# attr-tunnel-type=My-Tunnel-Type

[ip-pool]
verbose=1
gw-ip-address=192.168.142.227
attr=Framed-Pool
192.168.1.1-255,name=pool-accel
# vendor=Mikrotik
# attr=Mikrotik-Host-IP
# 192.168.0.2-255
# 192.168.2.1-255,name=pool2
# 192.168.3.1-255,name=pool3
# 192.168.4.1-255,name=pool4,next=pool1
# 192.168.4.0/24

[shaper]
verbose=1
vendor=Mikrotik
attr=Mikrotik-Rate-Limit
up-limiter=police
down-limiter=tbf
# down-burst-factor=0.1
# up-burst-factor=1.0
# latency=50
# mpu=0
# mtu=0
# r2q=10
# quantum=1500
# moderate-quantum=1
# cburst=1534
# ifb=ifb0
# leaf-qdisc=sfq perturb 10
# leaf-qdisc=fq_codel [limit PACKETS] [flows NUMBER] [target TIME] [interval TIME] [quantum BYTES] [[no]ecn]
# rate-multiplier=1
# fwmark=1
# rate-limit=2048/1024

[client-ip-range]
disable

[log-pgsql]
# conninfo=user=log
# log-table=log

[pppd-compat]
verbose=1
# ip-up=/etc/ppp/ip-up
# ip-down=/etc/ppp/ip-down
radattr-prefix=/var/run/radattr
# ip-pre-up=/etc/ppp/ip-pre-up
# ip-change=/etc/ppp/ip-change
# fork-limit=16

[chap-secrets]
verbose=1
gw-ip-address=192.168.142.227
#chap-secrets=/etc/ppp/chap-secrets
#encrypted=0
#username-hash=md5

[snmp]
# master=0
# agent-name=Accel-PPP

[connlimit]
# limit=10/min
# burst=3
# timeout=60

[pptp]
# verbose=1
# echo-interval=30
# ip-pool=pptp
# ipv6-pool=pptp
# ipv6-pool-delegate=pptp
# ifname=pptp%d

[ipv6-pool]
# gw-ip6-address=fc00:0:1::1
# vendor=
# attr-prefix=Delegated-IPv6-Prefix-Pool
# attr-address=Stateful-IPv6-Address-Pool
# fc00:0:1::/48,64
# fc00:0:2::/48,64,name=pool1
# fc00:0:3::/48,64,name=pool2,next=pool1
# delegate=fc00:1::/36,48
# delegate=fc00:2::/36,48,name=pool3
# delegate=fc00:3::/36,48,name=pool4,next=pool3

[ipv6-dns]
# fc00:1::1
# fc00:1::2
# fc00:1::3
# dnssl=suffix1.local.net
# dnssl=suffix2.local.net.

[ipv6-dhcp]
# verbose=1
# pref-lifetime=604800
# valid-lifetime=2592000
# route-via-gw=1

[l2tp]
# verbose=1
# dictionary=/usr/local/share/accel-ppp/l2tp/dictionary
# hello-interval=60
# timeout=60
# rtimeout=1
# rtimeout-cap=16
# retransmit=5
# recv-window=16
# host-name=accel-ppp
# dir300_quirk=0
# secret=
# dataseq=allow
# reorder-timeout=0
# ip-pool=l2tp
# ipv6-pool=l2tp
# ipv6-pool-delegate=l2tp
# ifname=l2tp%d

[sstp]
# verbose=1
# cert-hash-proto=sha1,sha256
# cert-hash-sha1=
# cert-hash-sha256=
# accept=ssl,proxy
# ssl-protocol=tls1,tls1.1,tls1.2,tls1.3
# ssl-dhparam=/etc/ssl/dhparam.pem
# ssl-ecdh-curve=prime256v1
# ssl-ciphers=DEFAULT
# ssl-prefer-server-ciphers=0
# ssl-ca-file=/etc/ssl/sstp-ca.crt
# ssl-pemfile=/etc/ssl/sstp-cert.pem
# ssl-keyfile=/etc/ssl/sstp-key.pem
# host-name=domain.tld
# http-error=allow
# timeout=60
# hello-interval=60
# ip-pool=sstp
# ipv6-pool=sstp
# ipv6-pool-delegate=sstp
# ifname=sstp%d

[ipoe]
# verbose=1
# username=ifname
# password=username
# lease-time=600
# renew-time=300
# max-lease-time=3600
# unit-cache=1000
# l4-redirect-table=4
# l4-redirect-ipset=l4
# l4-redirect-on-reject=300
# l4-redirect-ip-pool=pool1
# shared=0
# ifcfg=1
# mode=L2
# start=dhcpv4
# start=up
# ip-unnumbered=1
# proxy-arp=0
# nat=0
# proto=100
# relay=10.10.10.10
# vendor=Custom
# weight=0
# attr-dhcp-client-ip=DHCP-Client-IP-Address
# attr-dhcp-router-ip=DHCP-Router-IP-Address
# attr-dhcp-mask=DHCP-Mask
# attr-dhcp-lease-time=DHCP-Lease-Time
# attr-dhcp-opt82=DHCP-Option82
# attr-dhcp-opt82-remote-id=DHCP-Agent-Remote-Id
# attr-dhcp-opt82-circuit-id=DHCP-Agent-Circuit-Id
# attr-l4-redirect=L4-Redirect
# attr-l4-redirect-table=4
# attr-l4-redirect-ipset=l4-redirect
# lua-file=/etc/accel-ppp.lua
# offer-delay=0,100:100,200:200,-1:1000
# vlan-mon=eth0,10-200
# vlan-timeout=60
# vlan-name=%I.%N
# ip-pool=ipoe
# ipv6-pool=ipoe
# ipv6-pool-delegate=ipoe
# idle-timeout=0
# session-timeout=0
# soft-terminate=0
# check-mac-change=1
# calling-sid=mac
# local-net=192.168.0.0/16
# interface=eth0


Módulos que devem se atentar em substituir os dados.

[pppoe]
verbose=1
ac-name=Accel-PPP /******** Nome do seu servidor Accel  ********/
service-name=Accel-PPP /******** Nome do seu servidor Accel ********/
ip-pool=pool-accel /******** Nome da Pool que irá entregar os IPs. Se não for usar basta marcar # ********/
interface=ens33 /******** Nome da interface de rede da conexão dos clientes ********/
vlan-mon=ens33,1-4095 /******** Nome da interface de rede da conexão dos clientes ********/
[radius]
nas-identifier=Accel-PPP /******** Nome do seu servidor Accel. Tem que estar o mesmo nome no Radius NAS do Controllr ********/
nas-ip-address=192.168.142.227 /******** IP do seu Accel-PPP ********/
gw-ip-address=192.168.142.227 /******** IP do seu Accel-PPP ********/
server=192.168.142.22,brbyte,auth-port=1812,acct-port=0,req-limit=50,fail-timeout=20,max-fail=30,weight=1  /******** Ip do seu servidor Radius Controllr ********/
server=192.168.142.22,brbyte,auth-port=0,acct-port=1813,req-limit=50,fail-timeout=20,max-fail=30,weight=1  /******** Ip do seu servidor Radius Controllr ********/
dae-server=192.168.142.227:3799,brbyte  /******** IP do seu Accel-PPP ********/
[ip-pool]
gw-ip-address=192.168.142.227 /******** Gateway do seu range de IP ou o IP do seu Accel-ppp ********/
192.168.1.1-255,name=pool-accel /******** Se for entregar IP pelo Accel, basta seguir a lógica e configurar o range de IP. Se for entregar pelo Controllr basta marcar o # ********/
[chap-secrets]
gw-ip-address=192.168.142.227 /******** Gateway do seu range de IP ou o IP do seu Accel-ppp  ********/

Sempre após modificar os módulos reinicie o Accel-PPP

systemctl restart accel-ppp
systemctl restart accel-ppp

-- Para ver se o cliente autenticou

accel-cmd show sessions

-- Para ver mais opções 

accel-cmd help

Dicionario do Mikrotik

dictionary.mikrotik
# 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

Você pode pegar o dicionário do Mikrotik direto no site deles.

https://wiki.mikrotik.com/wiki/Manual:RADIUS_Client/vendor_dictionary

No seu Debian procure pelo diretório aonde fica os dicionários

find / -name 'dictionary*'

Deve localizar esse diretório

cd /usr/share/accel-ppp/radius

Após entrar nesse diretório, irá criar um arquivo chamado dictionary.mikrotik

touch dictionary.mikrotik
joe dictionary.mikrotik

-- Colar o dicionário do Mikrotik, salvar e fechar

CTRL + K
CTRL + X

Depois irá editar o arquivo dictionary, para incluir a biblioteca do Mikroitk.

joe /usr/share/accel-ppp/radius/dictionary

-- Insira na última linha do arquivo

$INCLUDE dictionary.mikrotik

-- Salvar e fechar o arquivo

CTRL + K
CTRL + X

Pendências Financeiras Bloqueios

Para realizar o bloqueio do seus clientes pendentes, vamos configurar as regras usando o IPTables no seu Debian.

  • Primeiro verifique se já está instalado no seu Debian
dpkg -l | iptables
  • Se já tiver instalado verifique se tem regras criadas.
iptables -L -v
-- Se não tiver instalado, pode instalar. 
apt-get install iptables
  • Manual do IP Tables
-- Listagem

iptables -L Lista as regras
iptables -I Adiciona a regra no inicio da lista
iptables -i 4 adiciona a regra na 4º posição
iptables -A Adiciona uma regra no final da lista
iptables -D Apaga uma regra do firewall
iptables -F Apaga todas as regras do firewall

--Parâmetros

-p          Especifica o protocolo
-s          Especifica a origem
-d          Especifica o destino
-i          Especificar a interface de entrada
-o          Especifica a interface de saída
–sport      Especifica a porta de origem
–dport      Especifica a porta de destino
-j          Especifica a ação ACCEPT – DROP – REJECT

-- Para saber mais 

 iptables --help
  • O Controllr conta com 4 ações de pendencias financeiras.
    • Alerta de pendencia brb-alert-notice
    • Redução de velocidade brb-pendency-notice
    • Bloqueio brb-block-notice
    • Cancelamento de contrato brb-cancel-notice