(32 revisões intermediárias por um outro usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
− | =Controllr | + | =Controllr > [https://accel-ppp.org/index.php Accel-PPP]= |
− | O [https://accel-ppp.org/index.php Accel-PPP] é um software compilado para ser usando em diversos serviços de autenticação. Como por exemplo autenticação PPPoE, IPoE, etc... | + | O [https://accel-ppp.org/index.php 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 [https://controllr.brbyte.com 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 <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]) | ||
+ | |||
+ | * 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 | ||
+ | <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: | ||
+ | <blockquote><pre>joe /etc/ssh/sshd_config</pre></blockquote> | ||
+ | * Edite as linha tirando o # e mudando para yes | ||
+ | <blockquote><pre>PermitRootLogin yes</pre></blockquote> | ||
+ | * Após editar o arquivo: | ||
+ | <blockquote><pre>CTRL + K</pre></blockquote> | ||
+ | <blockquote><pre>CTRL + X</pre></blockquote> | ||
+ | * Depois reinicie o SSH | ||
+ | <blockquote><pre>/etc/init.d/ssh restart</pre></blockquote> | ||
+ | ==Agora vamos instalar o Accel-PPP== | ||
+ | * Baixe os pacotes do Accel-PPP no seu Debian | ||
+ | <blockquote><pre>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 | ||
+ | </pre></blockquote> | ||
+ | * Agora crie um diretório para baixar o projeto do git | ||
+ | <blockquote><pre> | ||
+ | mkdir -p /usr/local/src/accel | ||
+ | mkdir -p /usr/local/src/accel/build | ||
+ | </pre></blockquote> | ||
+ | * Agora entre nesse diretório criado | ||
+ | <blockquote><pre>cd /usr/local/src/accel</pre></blockquote> | ||
+ | * 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> | ||
+ | * 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 | ||
+ | <blockquote><pre>cd /usr/local/src/accel/build</pre></blockquote> | ||
+ | * Dentro do diretório da Build, irá escolher o que será compilado, conforme sua necessidade | ||
+ | <blockquote><pre>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</pre></blockquote> | ||
+ | * Agora irá compilar o Accel-PPP no Debian | ||
+ | <blockquote><pre>make</pre></blockquote> | ||
+ | * Após irá copiar o modulo do Kernel Vlan_mon e IPoE em seguida carregue-os | ||
+ | <blockquote><pre> | ||
+ | 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 | ||
+ | </pre></blockquote> | ||
+ | * Devemos adicionar os módulos para iniciarem com o Boot | ||
+ | <blockquote><pre> | ||
+ | echo "vlan_mon" >> /etc/modules | ||
+ | echo "ipoe" >> /etc/modules | ||
+ | </pre></blockquote> | ||
+ | * Iremos criar o pacote .DEB | ||
+ | <blockquote><pre> | ||
+ | cpack -G DEB | ||
+ | apt install ./accel-ppp.deb | ||
+ | </pre></blockquote> | ||
+ | Instalação do Accel-PPP Completa no seu Debian | ||
+ | * Agora habilite o seu Accel-PPP para iniciar com o seu Debian | ||
+ | <blockquote><pre>systemctl enable accel-ppp</pre></blockquote> | ||
+ | * 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. | ||
+ | <blockquote><pre>cp /etc/accel-ppp.conf.dist /etc/accel-ppp.conf</pre></blockquote> | ||
+ | * Apos a edição do arquivo, sempre reinicie o seu Accel-PPP | ||
+ | <blockquote><pre> | ||
+ | systemctl restart accel-ppp | ||
+ | systemctl status accel-ppp | ||
+ | </pre></blockquote> | ||
+ | |||
+ | ==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> | ||
+ | --- 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; | ||
+ | </pre></blockquote> | ||
+ | </div></div> | ||
+ | Poderá copiar do Pastebin | ||
+ | |||
+ | <b>https://pastebin.com/DV8cLzyS</b> | ||
+ | |||
+ | 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 <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> | ||
+ | ** Poderá transferir via SCP, segue exemplo de como transferir usando o CMD do Windows: | ||
+ | <blockquote><pre> | ||
+ | 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 | ||
+ | </pre></blockquote> | ||
+ | * Outra opção é fazer tudo via shell | ||
+ | <blockquote><pre> | ||
+ | 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' | ||
+ | </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= | ||
+ | |||
+ | 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> | ||
+ | * 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__ | ||
+ | [[Category:Controllr]] | ||
+ | [[Category:Manual]] |
Edição atual tal como às 10h48min de 28 de fevereiro de 2023
Í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 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
- 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
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 .
[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
# 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