【问题标题】:How to automate apache retrieval of data from a MikroTik router?如何自动 apache 从 MikroTik 路由器检索数据?
【发布时间】:2015-04-05 16:45:15
【问题描述】:

我最近的任务是将远程 MikroTiks 提取的数据集成到一个 apache 网络应用程序中。我发现了一些关于如何做到这一点的谜题,我把它们都放在了这里。

那么如何自动化从 MikroTiks 到 php apache 服务器的数据检索呢? (无需安装 PEAR 或 PECL 模块。)

【问题讨论】:

    标签: php apache authentication ssh-keys mikrotik


    【解决方案1】:

    这个例子是在 CentOS 机器上执行的。

    MikroTik 允许RouterOS commands to be executed via ssh。如果一次只需要一个命令,可以这样执行:

    > ssh {user}@{mikrotik ip} '{mikrotik command}'
    

    ssh 命令可以通过shell_exec 命令在php 中自动执行。因此,向 MikroTik 验证 apache 服务器是剩下的任务。

    ssh-keys 是自动化 ssh 身份验证的最佳方式。 apache 用户需要有自己的 dsa 密钥对。要创建它,假设它在服务器上尚不存在(还假设 apache 用户实际上是“apache”:

    > mkdir /var/www/.ssh
    > chmod 740 /var/www/.ssh
    > chown apache:apache /var/www/.ssh
    > cd /var/www/.ssh/
    

    现在我们需要以 apache 用户的身份创建 ssh-keys。

    > sudo -u apache ssh-keygen -t dsa
    

    默认文件名很好。 Don't add a password。仔细检查文件是否已创建。

    > ls
    -- id_dsa
    -- id_dsa.pub
    

    我们现在将使用 MikroTik 的方法将 apache 的 ssh 密钥上传到使用 ftp 的 MikroTik。如果 apache 服务器上没有安装 ftp,您只需将 id_dsa.pub 文件上传到您的 MikroTik,您可以使用第三方计算机上传文件。

    > cd /var/www/.ssh
    > ftp {mikrotik ip}
    name: {admin}
    Password: {password}
    ftp> put id_dsa.pub
    ftp> exit
    

    您需要在上一个 ftp 步骤中进行身份验证。如果成功,您应该收到回复226 ASCII transfer complete 消息。完成向 MikroTik 的 ssh-key 导入:

    > ssh {admin}@{mikrotik ip}
    

    您可能希望添加一个用户以供 ssh 使用。

    [admin@mikrotik]>/user add
    name: {read-ssh}
    group: {read}
    

    现在导入 ssh 密钥文件。

    [admin@mikrotik]> /user ssh-keys import public-key-file=id_dsa.pub
    user: {read-ssh}
    [admin@mikrotik]> /quit
    

    现在我们可以测试 apache 是否可以自动连接到 MikroTik。

    sudo -u apache ssh {read-ssh}@{mikrotik ip} 'log print'
    

    如果这可行,您就可以使用 php 从您的 MikroTik 检索数据了。如果 ssh 命令挂在这里,你可能会try adding the -2 option to force protocol version 2

    $ret = shell_exec ( "ssh {$read-ssh}@{$mikrotikIP} '/ip dhcp-server lease print' 2>&1");
    

    2>&1pipe STD_ERR to STD_OUT

    【讨论】:

      猜你喜欢
      • 2021-03-23
      • 2017-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-09
      • 1970-01-01
      相关资源
      最近更新 更多