Re: Acesso Mikrotik via site php (Não consigo via API)
Creio que não seja nenhum problema com relação a senha não.
Você está executando o script diretamente pelo browser?
Você pode tentar fazer o seguinte: execute tanto o seu script quando o meu pela linha de comando, ou seja, utilizando o PHP-CLI.
Assim, supondo que você utilize algum ambiente UNIX-like e o nome do arquivo seja teste.php, faça no terminal:
php -f teste.php
e veja o que acontece.
Se você estiver executando o script pelo browser, veja nos logs do apache o que está aparecendo quando aquela mensagem de erro é apresentada.
Poste os resultados aqui pra gente.
Também, depois disso tudo se nada diferente acontecer, poste pra gente aqui essa sua classe routeros_api.class.php
abraço!
Re: Acesso Mikrotik via site php (Não consigo via API)
Coloque a versão do MK e as config do seu firewall rules. Acredito ser um problema de filtragem na porta da API, versão incompatível etc.
usei as configurações padrão:
Código php:
<?php
require('routeros_api.class.php');
$API = new routeros_api();
$API->debug = true;
if ($API->connect('111.111.111.111', 'LOGIN', 'PASSWORD')) {
$API->write('/interface/getall');
$ARRAY = $API->read();
print_r($ARRAY);
$API->disconnect();
}
?>
http://int21.sytes.net/ip.php
PS teste com admin
1 Anexo(s)
Re: Acesso Mikrotik via site php (Não consigo via API)
Bom dia.
Desde já, agradeço o apoio dos amigos. Quanto aos testes realizados:
Versão do RouterOS: RouterOS 4.13
Execução do comando php "php -f teste.php", resultado:
Código :
new terminal>php -f teste.php
bad command name php (line 1 column 1)
As regras do Firewall, acredito até ter sido excessivo em relação as regras, mas é que logo após o funcionamento desse servidor, achei um elemento batendo direto com usuário e senha inválido e após descobrir que se tratava de tentativa de invasão pela ssh, alterei a porta do ssh, e protegi as portas do ssh e ftp, tanto as anteriores para evitar as batidas como as atuais para inibir os acesso, abaixo o as minha regras do firewall:
Código :
/ip firewall filter
add action=drop chain=input comment="Bloqueia acesso E0 porta Proxy 3128 pela placa do Link" disabled=no dst-port=3128 in-interface=Publica_eth1 protocol=tcp
add action=drop chain=forward comment="Bloqueia WAREZ" disabled=no p2p=warez
add action=accept chain=input comment="Limitar todos os ping s em 50k" disabled=no limit=50/5s,2 protocol=icmp
add action=drop chain=input comment="Bloquear pings excessivos" disabled=no protocol=icmp
add action=drop chain=input comment="Bloqueia acesso a porta 22 pela placa do Link" disabled=no dst-port=22 in-interface=Publica_eth1 protocol=tcp
add action=drop chain=input comment="barrar brute force para ssh" disabled=no dst-port=22 protocol=tcp src-address-list=ssh_blacklist
add action=add-src-to-address-list address-list=ssh_blacklist address-list-timeout=1w3d chain=input comment="barrar brute force para ssh2" connection-state=new disabled=no dst-port=22 protocol=tcp src-address-list=ssh_stage3
add action=add-src-to-address-list address-list=ssh_stage3 address-list-timeout=1m chain=input comment="barrar brute force para ssh3" connection-state=new disabled=no dst-port=22 protocol=tcp src-address-list=ssh_stage2
add action=add-src-to-address-list address-list=ssh_stage2 address-list-timeout=1m chain=input comment="barrar brute force para ssh4" connection-state=new disabled=no dst-port=22 protocol=tcp src-address-list=ssh_stage1
add action=add-src-to-address-list address-list=ssh_stage1 address-list-timeout=1m chain=input comment="barrar brute force para ssh5" connection-state=new disabled=no dst-port=22 protocol=tcp
add action=drop chain=input comment="Barrar brute forca para ftp" disabled=no dst-port=21 protocol=tcp src-address-list=ftp_blacklist
add action=accept chain=output comment="Barrar brute forca para ftp2" content="530 Login incorrect" disabled=no dst-limit=1/1m,9,dst-address/1m protocol=tcp
add action=add-dst-to-address-list address-list=ftp_blacklist address-list-timeout=3h chain=output comment="Barrar brute forca para ftp3" content="530 Login incorrect" disabled=no protocol=tcp
add action=drop chain=forward comment="DROP em conexes invlidas" connection-state=invalid disabled=no protocol=tcp
add action=accept chain=forward comment="Permitir conexes j estabelecidas" connection-state=established disabled=no
add action=accept chain=forward comment="Permitir conexes relacionadas" connection-state=related disabled=no
add action=drop chain=tcp comment="Deny TFTP" disabled=no dst-port=69 protocol=tcp
add action=drop chain=tcp comment="Deny RPC portmapper" disabled=no dst-port=111 protocol=tcp
add action=drop chain=tcp comment="Deny RPC portmapper" disabled=no dst-port=135 protocol=tcp
add action=drop chain=tcp comment="Deny NetBios (Compartilhamento na Rede Interna)TCP" disabled=no dst-port=137-139 protocol=tcp
add action=drop chain=tcp comment="Deny cifs" disabled=no dst-port=445 protocol=tcp
add action=drop chain=tcp comment="Deny NFS" disabled=no dst-port=2049 protocol=tcp
add action=drop chain=tcp comment="Deny NetBus" disabled=no dst-port=12345-12346 protocol=tcp
add action=drop chain=tcp comment="Deny NetBus" disabled=no dst-port=20034 protocol=tcp
add action=drop chain=tcp comment="Deny BackOriffice" disabled=no dst-port=3133 protocol=tcp
add action=drop chain=tcp comment="Deny DHCP" disabled=no dst-port=67-68 protocol=tcp
add action=drop chain=udp comment="Deny TFTP" disabled=no dst-port=69 protocol=udp
add action=drop chain=udp comment="Deny PRC portmapper" disabled=no dst-port=111 protocol=udp
add action=drop chain=udp comment="Deny PRC portmapper" disabled=no dst-port=135 protocol=udp
add action=drop chain=udp comment="Deny NetBios (Compartilhamento na Rede Interna)UDP" disabled=no dst-port=137-139 protocol=udp
add action=drop chain=udp comment="Deny NFS" disabled=no dst-port=2049 protocol=udp
add action=drop chain=udp comment="Deny BackOriffice" disabled=no dst-port=3133 protocol=udp
add action=drop chain=input comment="Bloqueia acesso a porta 2200 pela placa do Link" disabled=no dst-port=2200 in-interface=Publica_eth1 protocol=tcp
add action=drop chain=input comment="barrar brute force para ssh" disabled=no dst-port=2200 protocol=tcp src-address-list=ssh_blacklist
add action=add-src-to-address-list address-list=ssh_blacklist address-list-timeout=1w3d chain=input comment="barrar brute force para ssh2" connection-state=new disabled=no dst-port=2200 protocol=tcp src-address-list=ssh_stage3
add action=add-src-to-address-list address-list=ssh_stage3 address-list-timeout=1m chain=input comment="barrar brute force para ssh3" connection-state=new disabled=no dst-port=2200 protocol=tcp src-address-list=ssh_stage2
add action=add-src-to-address-list address-list=ssh_stage2 address-list-timeout=1m chain=input comment="barrar brute force para ssh4" connection-state=new disabled=no dst-port=2200 protocol=tcp src-address-list=ssh_stage1
add action=add-src-to-address-list address-list=ssh_stage1 address-list-timeout=1m chain=input comment="barrar brute force para ssh5" connection-state=new disabled=no dst-port=2200 protocol=tcp
add action=drop chain=input comment="Barrar brute forca para ftp 2121" disabled=no dst-port=2121 protocol=tcp src-address-list=ftp_blacklist
add action=accept chain=output comment="Barrar brute forca para ftp 2121" content="530 Login incorrect" disabled=no dst-limit=1/1m,9,dst-address/1m protocol=tcp
add action=add-dst-to-address-list address-list=ftp_blacklist address-list-timeout=3h chain=output comment="Barrar brute forca para ftp 2121" content="530 Login incorrect" disabled=no protocol=tcp
add action=drop chain=input comment="Bloquear portas 21 e 23" disabled=no dst-port=22-23 in-interface=Publica_eth1 protocol=tcp
Aguardando idéias do que pode ser feito para funcionar esse acesso ao php.
Novamente agradeço aos amigos.
Observações:
Já tentei o procedimento tanto hospedando os arquivo (routeros_api.class.php e teste.php) em servidor externo onde tenho um site hospedado e funcionando os recursos php assim como colocando-os na pasta "hotspot" do servidor Mikrotik.
Em anexo o arquivo API que estou utilizando.
Anexo 17434
Re: Acesso Mikrotik via site php (Não consigo via API)
API usada
API PHP class - MikroTik Wiki
exemplo usado:
int21.sytes.net/ip.php
code example:
<?php
require_once('routeros_api.class.php');
$mkt_ip = 'x.x.x.x';
$mkt_user = 'admin';
$mkt_passwd = 'xxxxxxx';
$mkt_port = '8728';
$api = new routeros_api();
$api->port = $mkt_port;
if($api->connect($mkt_ip, $mkt_user, $mkt_passwd)) {
$api->write('/interface/pptp-server/print');
$resultado = $api->read();
echo "<pre>";
// print_r($resultado);
echo "</pre>";
# Numero de conectados
$n_array = count($resultado);
echo "Ips Conectados: ".$n_array."<br>";
//print_r(array_slice($resultado, 0, 1));
$a=1;
echo '<select name="combo">';
foreach ($resultado as $s) {
$a=$a+1;
echo "<option value=".$a.">".$s['user']."<----->".$s['client-address']."</option>";}
//echo "<option value=".$s.".">".$s['user'].$s['client-address']."</option>";}
echo "</combo>";
$api->disconnect();
}
else {
echo "Falha ao conectar";
}
?>
No exemplo acima eu uso no lugar dos DDNS assim eu sempre tenho o ip do cliente sem precisar usar serviços de externos.
Re: Acesso Mikrotik via site php (Não consigo via API)
Só dá falha ao tentar a conexão! Estou verificando o Firewall e LOG para tentar entender o que está acontecendo.