如何在Ubuntu 16.04上安装phpIPAM

phpIPAM是一个专门用于IP地址管理的工具,可以提供自动的ping扫描,状态报告(这样你就可以看到你的哪个主机正在运行,哪个正在运行)以及电子邮件通知。在本教程中,您将在Ubuntu 16.04上运行的Linux,Apache,MySQL和PHP(LAMP)上安装并配置phpIPAM,然后创建与示例子网相关的记录。

介绍

随着您的基础设施的增长,您使用的IP地址数量也可能增加太多,您将不再仅仅依靠内存来管理它们。 那时候,你会需要一个工具来帮助你跟踪事物。

尽管电子表格和纯文本文件是可以快速实施的低科技解决方案,但在处理大量IP地址池或试图跟踪每个地址周围的多个数据点时,这些文件也可能太麻烦。

用于IP地址管理的专用工具phpIPAM通过提供自动ping扫描,状态报告让您看到哪些主机已启动,哪些已关闭,通知您关于主机更改的通知,从而超越了低技术选项。重新监视以及使管理基础设施变得更加容易的其他功能。

在本指南中,您将在Ubuntu 16.04上运行的Linux,Apache,MySQL和PHP(LAMP)上安装并配置phpIPAM。

先决条件

在开始之前,您需要:

第1步 - 配置Apache

默认情况下,phpIPAM依靠URL结构中的查询字符串将数据从应用程序的一部分传递到另一部分。 查询字符串被附加到一个URL ? 并包含一个或多个由&分隔的字段/值对。

尽管不是绝对需要安装,但phpIPAM支持通过Apache的mod_rewrite模块进行URL重写 ,将查询字符串转换为更易于阅读和人性化的URL。

如果您尚未通过将所有HTTP请求重定向到HTTPS的方式在具有TLS / SSL证书先决条件的安全Apache安装中启用mod_rewrite ,请立即使用Apache的a2enmod实用程序启用mod_rewrite以便您可以在第2步中打开URL重写。

sudo a2enmod rewrite

这个命令会在/etc/apache2/mods-enabled/rewrite/创建一个到/etc/apache2/mods-available/rewrite.load的符号链接,这将启用Apache下一次启动的模块。

如果mod_rewrite已经启用,输出将会显示如下:

Module rewrite already enabled

否则,输出会告诉你,符号链接已经创建,你需要重新启动Apache来激活更改。

Enabling module rewrite.
To activate the new configuration, you need to run:
  service apache2 restart

即使Apache现在在下次启动web服务器时启用mod_rewrite ,仍然需要修改phpIPAM虚拟主机配置,以使mod_rewrite可用于phpIPAM。 所以,不要重启Apache。

相反,打开您在“先决条件”中为phpIPAM创建的Apache配置文件。

sudo nano /etc/apache2/sites-available/example.com-le-ssl.conf

将以下行粘贴到DocumentRoot部分下面的配置文件中。

phpipam.conf
...
    <Directory /var/www/example.com/public_html
            Options FollowSymLinks
            AllowOverride all
            Require all granted
    </Directory>
...
  • Directory是指令将被应用的服务器上的位置。 这应该是您计划安装phpIPAM的目录。 如果您遵循先决条件中的Apache虚拟主机指南 ,则这是/var/www/ example.com/public_html
  • Options FollowSymLinks告诉Apache遵循这个目录中的符号链接。 这是默认设置。
  • AllowOverride all意味着这个目录中的.htaccess文件中的任何指令应该覆盖任何对应的全局指令。
  • Require all granted通知Apache允许来自所有主机的传入请求。

保存并关闭文件继续。

现在,在重新启动Apache之前测试配置更改。

sudo apache2ctl configtest

如果输出显示Syntax OK ,则可以继续前进。 否则,请查看以前的说明并按照屏幕上的信息获取更多信息。

最后,重启Apache以启用mod_rewrite并激活新的配置。

sudo systemctl restart apache2

由于您尚未安装phpIPAM,因此在https:// example.com上没有任何内容。 所以,我们现在下载并安装phpIPAM。

第2步 - 安装phpIPAM

正式安装说明提供了两种安装phpIPAM的方法:从项目的SourceForge存储库下载tarball或从其GitHub存储库克隆该项目。 为了使未来的更新更容易,我们使用后一种方法。

默认情况下,如果该目录是空的,Git将只克隆到一个现有的目录中。 因此,使用ls命令查看您在第1步中为Apache配置的目录的内容。

ls /var/www/example.com/public_html

如果目录不为空,则使用基本的Linux导航和文件管理命令将其清除。 mv将内容移动到不同的位置, rm完全删除它们。

现在,将Git项目克隆到目录中。

git clone https://github.com/phpipam/phpipam.git /var/www/example.com/public_html

输出确认你正在克隆的位置,然后提供一个实时的过程报告,包括Git期望复制的对象的数量以及它实际复制的数量。

Cloning into /var/www/example.com/public_html ...
remote: Counting objects: 14234, done.
remote: Compressing objects: 100% (50/50), done.
remote: Total 14234 (delta 27), reused 40 (delta 17), pack-reused 14161
Receiving objects: 100% (14234/14234), 11.38 MiB | 21.30 MiB/s, done.
Resolving deltas: 100% (10066/10066), done.
Checking connectivity... done.

现在,您的服务器上已经有完整的phpIPAM应用程序,但是您仍然缺少一些phpIPAM需要运行的PHP模块。 apt-get安装它们。

这些额外的软件包为PHP提供了用于处理任意长度整数的GNU Multiple Precision模块 ,用于处理不能用256个字符表示的语言的Multibyte String模块 ,用于可重用PHP组件的PEAR框架以及用于图像的GD模块处理。

sudo apt-get install php7.0-gmp php7.0-mbstring php-pear php7.0-gd

重新启动Apache以使新模块可用。

sudo systemctl restart apache2

通过服务器上的应用程序文件和附加模块,您可以配置phpIPAM。

第3步 - 配置phpIPAM

phpIPAM在一个名为config.php的文件中查找它的主要配置设置。 虽然这个文件在默认情况下不存在,但应用程序确实附带了一个可用的示例配置文件。

如果您遇到问题,请转至安装目录并复制示例配置文件以供稍后参考。

cd /var/www/example.com/public_html
cp config.dist.php config.php

打开新文件进行编辑。

nano config.php

查找标有* database connection details的部分。 这些设置告诉phpIPAM如何连接到将保存所有数据的MySQL数据库。

由于您已经在与phpIPAM相同的机器上安装了MySQL,因此可以将$db['host']值设置为localhost 而且由于默认情况下MySQL在端口3306上监听,所以不需要更改$db['port']值。

目前还没有用于phpIPAM的MySQL数据库设置,但在第4步中,phpIPAM的基于Web的安装实用程序将使用您在此文件中输入的值创建数据库和数据库用户。 因此,将$db['user']值设置为你希望phpIPAM连接到MySQL的用户的名字,设置$db['pass']值为你希望phpIPAM连接到MySQL时使用的密码,并将$db['name']设置为您要赋予MySQL数据库的名称。

phpIPAM的config.php
<?php

/**
 * database connection details
 ******************************/
$db['host'] = 'localhost';
$db['user'] = 'database_user';
$db['pass'] = 'database_password';
$db['name'] = 'database_name';
$db['port'] = 3306;
...

警告:如果您在先决条件中安装MySQL时运行了mysql_secure_installation脚本,请务必在此处创建一个满足当前策略要求的密码。 如果不这样做,则在第4步中创建数据库时会导致错误。

除了以前的设置之外,在这个文件中还有很多其他的选项可供选择。 例如,您可以使用SSL证书配置与数据库的安全连接,您可以激活各种数据库事件的电子邮件通知,并且可以启用调试模式以生成更详细的日志。 但对于基本安装,可以将这些设置的其余部分设置为其默认值。

完成编辑后,保存并关闭文件。

现在您已经创建了phpIPAM的主要配置文件,现在可以连接到Web界面并完成安装。

第4步 - 创建数据库和数据库用户

安装过程的最后一步是为phpIPAM创建一个MySQL数据库和用户,并为phpIPAM的Web界面设置一个管理用户帐户。 所有这些都可以通过phpIPAM的基于Web的安装向导完成。

浏览您的浏览器到https:// example.com /install 您将看到phpIPAM安装主页欢迎您向导,并要求您选择要执行的安装类型。 如果您无法启动此屏幕,请确认您的防火墙未阻止端口80上的访问,并回溯之前的步骤来解决问题。

在这个屏幕上有三个选项 - 新的phpipam安装迁移phpipam安装工作安装 - 每个都有其目的的简短说明。 当你建立一个新的phpIPAM安装,按下标记为新的phpipam安装按钮。

安装phpIPAM,第1步

在下一个屏幕上,该向导将介绍安装过程的其余部分,指出正式安装文档以获取更多详细信息,并要求您决定要执行的数据库安装类型。

再次,你有三个选择:

  • 自动数据库安装 :向导将使用您在第3步中输入到config.php中的信息来创建MySQL数据库和用户。
  • MySQL导入说明 :您将使用MySQL自己的mysqlimport实用程序从您提供的纯文本文件创建数据库。
  • 手动安装数据库 :该向导将为您提供手动创建新的phpIPAM数据库所需的默认SQL命令。

为了简单起见,通过点击自动数据库安装按钮选择全自动选项。

安装phpIPAM,第2步

现在,向导会要求您提供连接到MySQL所需的信息。 这包括它应该连接的用户的登录凭证,数据库的位置以及数据库的名称。

当您需要向导来创建新的数据库和用户时,您必须输入具有足够权限的用户的登录凭据。 你的MySQL root用户是一个不错的选择。

默认情况下,数据库的位置设置为localhost ,其名称设置为phpipam 如果您想要更改其中任何一个,则需要编辑在第3步中创建的config.php文件,然后重新启动安装向导。

您可以通过单击显示高级选项按钮来访问其他安装选项。 在这里,你会得到三个更多的选择:

  • 删除现有数据库在运行安装过程之前,向导将尝试删除一个名称与MySQL数据库名称字段中的值相同的数据库 这是默认关闭的。
  • 创建数据库向导将尝试创建一个名称与MySQL数据库名称字段中的值相同的数据库 这是默认打开的。
  • 创建权限向导将尝试在新数据库上设置权限,限制只能访问config.php定义的MySQL用户。 这是默认打开的。

输入希望向导连接的MySQL用户的用户名和密码,将高级选项设置为默认值,然后按安装phpipam数据库按钮。

安装phpIPAM,第3步

您将看到一条确认消息,告诉您该向导已成功安装数据库。 如果不这样做,请查看向导的错误消息以获取更多帮助。

点击继续以继续安装。

安装phpIPAM,第4步

在此屏幕上,向导会提示您设置Web界面的管理员用户密码,显示在每个phpIPAM Web界面屏幕顶部的标题以及您的phpIPAM安装的URL。

输入您要使用的管理员密码,您的phpIPAM界面的描述性标题,以及指向您的phpIPAM安装的完全限定的域名,然后按保存设置按钮。

安装phpIPAM,第5步

您现在应该看到一条确认消息,告诉您设置已成功保存。 如果不这样做,请使用向导的错误消息来诊断问题。

安装phpIPAM,第6步

点击进入登录按钮进入您的phpIPAM安装主页,并使用管理员密码字段中输入的管理员用户名和密码登录

phpIPAM安装和配置现在已经完成,所以你可以开始添加信息来更容易地管理你监控的网络。

结论

在本文中,您安装并配置了一个开源IP地址管理Web应用程序phpIPAM。 您现在可以在您自己的基础设施和其他网络中监视IP地址的使用情况。

此外,您可以使用phpIPAM来跟踪您的VLAN并将其映射到您的子网上,保留包含设备类型和位置等信息的网络设备清单,并配置电子邮件通知以警告网络上的更改。

为了自动化phpIPAM编程,并与您自己编写的应用程序集成,请参阅phipIPAM内置API的官方文档 要使用API​​更快速地运行,请浏览官方介绍性教程

最后,一定要针对您正在管理的公共基础架构或针对您自己的本地基础架构调查自动扫描设置 这是主机扫描自动化,可以为您提供作为系统管理员或devops工程师最大的好处。