介绍
随着基础设施的增长,您使用的IP地址的数量也可能增加到如此之多,以至于您将不再能够仅依赖于您的内存来管理它们。
虽然电子表格和简单文本文件是您可以快速实现的低技术解决方案,但在处理大批IP地址或试图追踪每个地址周围的多个数据点时,它们也可能过于繁琐。
phpIPAM,一个专用的IP地址管理工具,远远超出了低科技选项,通过提供自动 ping 扫描,状态报告,让你看到你的主机是上和下,电子邮件通知你正在监控的主机的变化,以及其他功能,使管理基础设施更容易。
在本指南中,您将安装和配置PHPAM在运行在Ubuntu 16.04上的Linux,Apache,MySQL和PHP(LAMP)堆栈上。
前提条件
在你开始之前,你需要:
一个Ubuntu 16.04服务器设置通过以下 Ubuntu 16.04 初始服务器设置教程,包括一个 sudo 非根用户和防火墙。
- 一个完全注册的域名.本教程使用
example.com
整个。您可以购买一个域名在 Namecheap,获得一个免费在 Freenom,或使用您选择的域名注册器。 - 以下的 DNS 记录为您的服务器设置。您可以遵循 这个主机名教程 有关如何添加它们的细节。
_H1 - 一个 A 记录与
example.com
指向您的服务器的公共
步骤 1 — 配置 Apache
默认情况下,phpIPAM 依靠其 URL 结构中的 query strings 来将数据从应用程序的一个部分传输到另一个部分。
虽然不绝对需要安装,但 phpIPAM 通过 Apache 的 mod_rewrite 模块支持 URL-rewriting,该模块将查询字符串翻译成更易于阅读和易于使用的 URL。
如果您尚未通过将所有 HTTP 请求重定向到 HTTPS 来启用 以 TLS/SSL 证书保护您的 Apache 安装前提条件中mod_rewrite
,请使用 Apache 的a2enmod
工具现在启用mod_rewrite
,以便在步骤 2 中启用 URL 重定向。
1sudo a2enmod rewrite
此命令创建一个符号链接到 /etc/apache2/mods-available/rewrite.load
在 /etc/apache2/mods-enabled/rewrite/
,这将使模块在Apache的下一次启动。
如果mod_rewrite
已启用,输出将读取:
1[secondary_label Output of sudo a2enmod rewrite]
2Module rewrite already enabled
否则,输出将告知您创建了simlink,您需要重新启动Apache以激活更改。
1[secondary_label Output of sudo a2enmod rewrite]
2Enabling module rewrite.
3To activate the new configuration, you need to run:
4 service apache2 restart
即使Apache在下次启动Web服务器时现在会启用mod_rewrite
,但您仍然需要修改您的phpIPAM虚拟主机配置,以便为phpIPAM提供mod_rewrite
。
相反,在先决条件中打开您为 phpIPAM 创建的 Apache 配置文件。
1sudo nano /etc/apache2/sites-available/example.com-le-ssl.conf
将下列行粘贴到DocumentRoot
部分下的配置文件中。
1[label phpipam.conf]
2...
3 <Directory /var/www/example.com/public_html
4 Options FollowSymLinks
5 AllowOverride all
6 Require all granted
7 </Directory>
8...
Directory
是服务器上应用指令的位置。这应该是您计划安装 phpIPAM 的目录。 如果您在前提条件中遵循了 Apache 虚拟主机指南,那么这是/var/www/example.com/public_html
.Options FollowSymLinks
告诉 Apache 在此目录中遵循符号链接。这是默认设置。AllowOverride all
意味着本目录中的任何.htaccess 文件中的任何指令都应该超越任何相应的全球指令。要求所有授权
告诉 Apache 允许所有主机的收入请求。
保存并关闭文件以继续。
现在,在重新启动 Apache 之前测试配置更改。
1sudo apache2ctl configtest
如果输出说Syntax OK
,你已经准备好继续,否则,请查看之前的指示,并按照屏幕上的消息获取更多信息。
最后,重新启动Apache以启用mod_rewrite
,并激活新的配置。
1sudo systemctl restart apache2
因为你还没有安装 phpIPAM,所以在https://example.com
没有任何东西可以看到,所以,让我们下载并安装 phpIPAM。
步骤 2 — 安装 PHP
官方安装说明建议安装phpAM的两种方法:从 [项目的SourceForge存储库]下载一个tarball(https://sourceforge.net/projects/phpipam/files/)或从其 [GitHub存储库]克隆项目(https://github.com/phpipam/phpipam)。
默认情况下,Git 只会将其克隆到现有目录中,如果目录是空的,那么使用ls
命令查看您在步骤 1 中为 Apache 配置的目录的内容。
1ls /var/www/example.com/public_html
如果目录不是空的,请使用 Linux 基本导航和文件管理指令现在清除它。 mv
将内容移动到另一个位置,而 rm
将它们完全删除。
现在,将 Git 项目克隆到目录中。
1git clone https://github.com/phpipam/phpipam.git /var/www/example.com/public_html
输出证实了你正在克隆的位置,然后提供了一个实时的过程报告,包括Git预计将复制的对象的数目以及它实际复制的数量。
1[secondary_label Output of git clone]
2Cloning into /var/www/example.com/public_html ...
3remote: Counting objects: 14234, done.
4remote: Compressing objects: 100% (50/50), done.
5remote: Total 14234 (delta 27), reused 40 (delta 17), pack-reused 14161
6Receiving objects: 100% (14234/14234), 11.38 MiB | 21.30 MiB/s, done.
7Resolving deltas: 100% (10066/10066), done.
8Checking connectivity... done.
你现在在你的服务器上有完整的phpIPAM应用程序,但你仍然缺少一些php模块,phpIPAM需要运行。
这些附加包为 PHP 提供了 GNU Multiple Precision 模块用于使用任意长度整数, Multibyte String 模块用于处理不能用 256 个字符表达的语言, PEAR 框架用于可重复使用的 PHP 组件,以及 GD 模块用于图像处理。
1sudo apt-get install php7.0-gmp php7.0-mbstring php-pear php7.0-gd
重新启动 Apache 以使新的模块可用。
1sudo systemctl restart apache2
随着应用程序文件和服务器上的额外模块,您已经准备好配置phpIPAM。
步骤 3 — 配置 PHP
phpIPAM在一个名为config.php
的文件中寻找其主要配置设置,虽然这个文件默认情况下不存在,但该应用程序确实提供了一个示例配置文件来工作。
转到安装目录,并创建示例配置文件的副本,如果遇到问题,稍后参阅。
1cd /var/www/example.com/public_html
2cp config.dist.php config.php
打开新文件进行编辑。
1nano config.php
寻找标记为*数据库连接细节
的部分,这些设置告诉phpIPAM如何连接到将所有数据保存在的MySQL数据库。
由于您已在同一台计算机上安装了 MySQL,您可以将$db['host]
值设置为localhost
。并且由于MySQL默认情况下在端口3306
上收听,您不需要更改$db['port]
值。
目前尚未为 phpIPAM 设置 MySQL 数据库,但在第 4 步中,phpIPAM 的基于 Web 的安装工具将使用您在该文件中输入的值创建数据库和数据库用户,因此,将$db(用户)
值设置为您希望 phpIPAM 连接到 MySQL 的用户名,将$db(pass)
值设置为您希望 phpIPAM 使用的密码,并将$db(用户名)
设置为您想要给 MySQL 数据库的名称。
1[label phpIPAM's config.php]
2<?php
3
4/**
5 * database connection details
6 ******************************/
7$db['host'] = 'localhost';
8$db['user'] = 'database_user';
9$db['pass'] = 'database_password';
10$db['name'] = 'database_name';
11$db['port'] = 3306;
12...
<$>[warning]
警告: 如果您在先决条件中安装MySQL时运行了mysql_secure_installation
脚本,请确保在这里创建符合当前政策要求的密码。
例如,您可以使用 SSL 证书配置安全连接到数据库,您可以为各种数据库事件激活电子邮件通知,并且您可以启用调试模式来生成更详细的日志。
完成编辑后,保存并关闭文件。
现在你已经创建了 phpIPAM 的主要配置文件,是时候连接到 Web 界面并完成安装了。
步骤 4 — 创建数据库和数据库用户
安装过程的最后一步是为 phpIPAM 创建一个 MySQL 数据库和用户,并为 phpIPAM 的 Web 界面设置一个管理员用户帐户。
导航您的浏览器到 https://example.com/install
. 您将看到 phpIPAM 安装主页欢迎您到导游,并要求您选择您想要执行的安装类型。 如果您无法将此屏幕带上,请确保您的防火墙不会阻止对端口 `80 的访问,并按照之前的步骤来解决问题。
此屏幕上有三个选项: 新 phpipam 安装 , ** 迁移 phpipam 安装** ,和 ** 工作安装** —每一个都有其目的的简要描述。
在下一个屏幕上,向导描述了安装过程的其余部分,指向官方安装文档(https://phpipam.net/documents/installation/)以获取更多细节,并要求您决定要执行哪种类型的数据库安装。
再次,你有三种选择:
- 自动安装数据库 :该向导将使用您在步骤 3 中输入的信息来创建MySQL数据库和用户。
- MySQL导入指令 :您将使用MySQL自己的 mysqlimport实用程序来创建数据库从您提供的文本文件。
- 手动安装数据库 :该向导将为您提供您手动创建新phpIPAM数据库所需的默认SQL命令。
为了方便,选择完全自动化的选项,点击 自动数据库安装 按钮。
该向导将要求您提供连接到 MySQL 所需的信息,其中包括应该连接的用户的登录凭证、数据库的位置和数据库的名称。
由于您需要引导器来创建一个新的数据库和用户,您必须为拥有足够的权限的用户输入登录凭证。
默认情况下,数据库的位置设置为 localhost ,其名称设置为 ** phpipam** . 如果您想更改其中任何一个,您需要编辑您在步骤 3 中创建的 config.php
文件,然后重新启动安装向导。
您可以通过点击 显示高级选项 按钮访问额外的安装选项,在这里,您将获得三种选项:
- 放下现有数据库 在运行安装程序之前,向导将尝试删除与 ** MySQL数据库名称** 字段中的值相同的名称的数据库。这是默认地关闭的。
- 创建数据库 向导将尝试创建与 ** MySQL数据库名称** 字段中的值相同的名称的数据库。
输入您希望向导连接的 MySQL 用户的用户名和密码,将高级选项设置为默认值,然后按下 Install phpipam database 按钮。
您将看到一个确认消息,告诉您向导成功安装了数据库. 如果您没有,请查看向导的错误消息以获得额外的帮助。
点击继续
来继续安装。
在此屏幕上,导游提示您为 Web 接口设置管理员用户密码,每个 phpIPAM Web 接口屏幕顶部显示的标题,以及您的 phpIPAM 安装的 URL。
输入您想要使用的管理员密码、您的 phpIPAM 接口的描述性标题以及指向您的 phpIPAM 安装的完全合格域名,然后按一下 ** 保存设置 ** 按钮。
您现在应该看到一个确认消息,告诉您设置已成功保存. 如果您没有,请使用向导的错误消息来诊断问题。
点击 ** 继续登录 ** 按钮进入您的 phpIPAM 安装主页,然后使用您在 ** 管理员密码 ** 字段中输入的 ** admin 用户名和密码登录。
phpIPAM 安装和配置已经完成,因此您可以开始添加信息,以便更轻松地管理您监控的网络。
结论
在本文中,您安装并配置了phpIPAM,一个开源的IP地址管理Web应用程序,现在您可以在自己的基础设施和其他网络中监控IP地址的使用。
此外,您可以使用 phpIPAM 来跟踪您的 VLAN 并对您的子网络进行地图,保持您的网络设备的库存,其中包括设备类型和位置等信息,并配置电子邮件通知以通知您的网络上的变化。
有关自动化 phpIPAM taks programatticaly 和与你自己编写的应用程序的集成,请参阅 phipIPAM 内置 API 的官方文档。
最后,请确保对您所管理的公共基础设施或您自己的本地基础设施进行自动扫描(https://phpipam.net/news/automatic-host-availability-check/)。