Controllr/Manual/Accel-PPP

De BrByte Wiki

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

Expandir
MK-rate-limit.patch

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 .

Expandir
accel-ppp.conf


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

Expandir
dictionary.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