前書き

インフラストラクチャが拡大するにつれて、使用するIPアドレスの数も大幅に増加する可能性があり、それらすべてを管理するためにメモリだけに頼ることはできなくなります。 その時点で、物事を追跡するのに役立つツールが必要になります。

スプレッドシートとプレーンテキストファイルはローテクなソリューションであり、すぐに実装できますが、IPアドレスの大きなプールで作業するときや、各アドレスの周りの複数のデータポイントを追跡しようとするときは面倒です。

IPアドレス管理専用ツールであるhttps://phpipam.net/[phpIPAM]は、自動pingスキャン、ホストの稼働状態と停止状態を確認できるステータスレポートを提供することにより、ローテクオプションをはるかに超えています。 、監視しているホストへの変更に関するメール通知、およびインフラストラクチャの管理をはるかに簡単にするその他の機能。

このガイドでは、Ubuntu 16.04で実行されているLinux、Apache、MySQL、およびPHP(LAMP)スタックにphpIPAMをインストールして構成します。

前提条件

開始する前に、次のものが必要です。

  • このhttps://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04[Ubuntu 16.04初期サーバーセットアップチュートリアル]に従ってセットアップされた1つのUbuntu 16.04サーバー(sudo non- rootユーザーとファイアウォール。

  • 完全に登録されたドメイン名。 このチュートリアルでは、全体で `+ example.com +`を使用します。 https://namecheap.com [Namecheap]でドメイン名を購入するか、http://www.freenom.com/en/index.html [Freenom]で無料で入手するか、選択したドメインレジストラを使用できます。 。

  • サーバー用に設定された次のDNSレコード。 追加方法の詳細については、https://www.digitalocean.com/community/tutorials/how-to-set-up-a-host-name-with-digitalocean [このホスト名チュートリアル]を参照してください。

  • サーバーのパブリックIPアドレスを指す `+ example.com +`を持つ* A *レコード。

  • サーバーのパブリックIPアドレスを指す「+ www.example.com +」を持つ* A *レコード。

  • このhttps://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04[Linux、 Apache、MySQL、PHPインストールガイド]。

  • 次のhttps://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-16-04[Apache virtualホストガイド]。

  • thisに従ってインストールされたドメインのSSL証明書を暗号化ApacheインストールをTLS / SSL証明書で保護するチュートリアル

ステップ1-Apacheの構成

デフォルトでは、phpIPAMはURL構造の_query strings_に依存して、アプリケーションのある部分から別の部分にデータを渡します。 クエリ文字列はURLに「?」で追加され、「&」で区切られた1つ以上のフィールドと値のペアが含まれます。

インストールに絶対に必要というわけではありませんが、phpIPAMはhttps://www.digitalocean.com/community/tutorials/how-to-rewrite-urls-with-mod_rewrite-for-apache-on-ubuntu-16-04[URL-rewriting ]クエリ文字列をより読みやすく人間に優しいURLに変換するApacheの `+ mod_rewrite +`モジュール経由で。

https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-16-04で「+ mod_rewrite 」をまだ有効にしていない場合[TLS / SSL証明書でApacheインストールを保護する]前提条件。すべてのHTTPリクエストをHTTPSにリダイレクトし、Apacheの ` a2enmod `ユーティリティを使用して ` mod_rewrite +`を有効にし、ステップ2でURL書き換えを有効にします。

sudo a2enmod rewrite

このコマンドは、 `+ / etc / apache2 / mods-enabled / rewrite / `内の ` / etc / apache2 / mods-available / rewrite.load +`へのシンボリックリンクを作成し、Apacheの次回起動時にモジュールを有効にします。

`+ mod_rewrite +`がすでに有効になっている場合、出力は次のようになります。

Output of sudo a2enmod rewriteModule rewrite already enabled

それ以外の場合、出力はシンボリックリンクが作成されたことを示し、変更を有効にするにはApacheを再起動する必要があることを示します。

Output of sudo a2enmod rewriteEnabling module rewrite.
To activate the new configuration, you need to run:
 service apache2 restart

Apacheが次回Webサーバーを起動するときに `+ mod_rewrite `を有効にしますが、 ` mod_rewrite +`をphpIPAMで使用できるようにするには、phpIPAM仮想ホスト設定を変更する必要があります。 したがって、まだApacheを再起動しないでください。

代わりに、前提条件でphpIPAM用に作成したApache構成ファイルを開きます。

sudo nano /etc/apache2/sites-available/

次の行を設定ファイルの `+ DocumentRoot +`セクションの下に貼り付けます。

phpipam.conf

...
   <Directory /var/www/
           Options FollowSymLinks
           AllowOverride all
           Require all granted
   </Directory>
...
  • `+ Directory `は、ディレクティブが適用されるサーバー上の場所です。 これは、phpIPAMをインストールする予定のディレクトリでなければなりません。 前提条件のhttps://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-16-04[Apache仮想ホストガイド]に従っている場合、は「 / var / www / +」です。

  • `+ Options FollowSymLinks +`は、このディレクトリ内のシンボリックリンクをたどるようにApacheに指示します。 これがデフォルト設定です。

  • `+ AllowOverride all `は、このディレクトリ内の ` .htaccess +`ファイル内のディレクティブが、対応するグローバルディレクティブをオーバーライドすることを意味します。

  • `+ Require all granted +`は、すべてのホストからの着信リクエストを許可するようApacheに指示します。

ファイルを保存して閉じ、続行します。

次に、Apacheを再起動する前に構成の変更をテストします。

sudo apache2ctl configtest

出力に「+構文OK +」と表示されている場合は、先に進む準備ができています。 それ以外の場合は、前の手順を確認し、画面上のメッセージに従って詳細を確認してください。

最後に、Apacheを再起動して「+ mod_rewrite +」を有効にし、新しい設定を有効にします。

sudo systemctl restart apache2

まだphpIPAMをインストールしていないため、 `+ https:// +`には何も表示されません。 それでは、phpIPAMをダウンロードしてインストールしましょう。

ステップ2-phpIPAMのインストール

https://phpipam.net/documents/installation/ [公式インストール手順]は、phpIPAMをインストールする2つの方法を提案しています。https://sourceforge.net/projects/phpipam/files/ [プロジェクトのSourceForgeリポジトリ]からtarballをダウンロードするか、 GitHub repositoryからプロジェクトを複製します。 今後の更新を簡単にするために、後者の方法を使用しましょう。

デフォルトでは、Gitは既存のディレクトリが空の場合にのみそのディレクトリにクローンを作成します。 したがって、ステップ1でApache用に設定したディレクトリの内容を表示するには、「+ ls +」コマンドを使用します。

ls /var/www/

ディレクトリが空でない場合は、https://www.digitalocean.com/community/tutorials/basic-linux-navigation-and-file-management#file-and-directory-manipulation [基本的なLinuxナビゲーションおよびファイル管理コマンド]今それをクリアします。 `+ mv `はコンテンツを別の場所に移動し、 ` rm +`はそれらを完全に削除します。

ここで、Gitプロジェクトをディレクトリに複製します。

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

出力は、クローン先の場所を確認し、Gitがコピーすると予想されるオブジェクトの数や、実際にコピーした数など、プロセスのリアルタイムレポートを提供します。

Output of git cloneCloning into /var/www/ ...
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`でインストールしてください。

これらの追加パッケージは、任意の長さの整数を扱うためのhttp://php.net/manual/en/book.gmp.php[GNU Multiple Precision module]をPHPに提供します。http://php.net/manual/en /book.mbstring.php [マルチバイト文字列モジュール] 256文字で表現できない言語を処理するため、https://pear.php.net/ [PEARフレームワーク]再利用可能なPHPコンポーネント、およびhttp://画像処理用のphp.net/manual/en/book.image.php[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/
cp config.dist.php config.php

新しいファイルを開いて編集します。

nano config.php

「+ *データベース接続の詳細」というラベルのセクションを探します。 これらの設定は、すべてのデータを保持するMySQLデータベースへの接続方法をphpIPAMに指示します。

MySQLをphpIPAMと同じマシンにインストールしたため、 `+ $ db [‘host’] `の値を ` localhost `に設定したままにしておくことができます。 MySQLはデフォルトでポート ` 3306 `をリッスンするため、 ` $ db [‘port’] +`値を変更する必要はありません。

phpIPAM用のMySQLデータベースのセットアップはまだありませんが、ステップ4で、phpIPAMのWebベースのインストールユーティリティは、このファイルに入力した値を使用してデータベースとデータベースユーザーを作成します。 したがって、 `+ $ db [‘user’] `の値をphpIPAMがMySQLに接続するユーザーの名前に設定し、 ` $ db [‘pass’] `の値を希望のパスワードに設定しますMySQLに接続するときに使用するphpIPAMを設定し、 ` $ db [‘name’] +`をMySQLデータベースに付けたい名前に設定します。

phpIPAMのconfig.php

<?php

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

前の設定に加えて、このファイルには他の多くのオプションがあります。 たとえば、SSL証明書を使用してデータベースへの安全な接続を構成したり、さまざまなデータベースイベントの電子メール通知をアクティブにしたり、デバッグモードを有効にしてより詳細なログを生成したりできます。 ただし、基本インストールの場合、これらの設定の残りの部分はデフォルト値のままにしておくことができます。

編集が完了したら、ファイルを保存して閉じます。

phpIPAMのメイン構成ファイルを作成したので、Webインターフェースに接続してインストールを完了します。

手順4-データベースとデータベースユーザーの作成

インストールプロセスの最後の手順は、phpIPAMのMySQLデータベースとユーザーを作成し、phpIPAMのウェブインターフェースの管理ユーザーアカウントを設定することです。 これらはすべて、phpIPAMのWebベースのインストールウィザードを使用して実行できます。

ブラウザで「+ https:/// install」に移動します。 phpIPAMインストールホームページが表示され、ウィザードが表示され、実行するインストールの種類を選択するよう求められます。 この画面を表示できない場合は、ファイアウォールがポート「80」のアクセスをブロックしていないことを確認し、問題を解決するために前の手順に戻ってください。

この画面には、新しいphpipamインストール、* phpipamインストールの移行*、および* Workingインストール*の3つのオプションがあり、それぞれに目的の簡単な説明があります。 新しいphpIPAMのインストールを設定しているときに、* New phpipam installation *とマークされたボタンを押します。

image:http://assets.digitalocean.com/articles/how-to-install-phpipam/installation-step1.png [phpIPAMのインストール、ステップ1]

次の画面で、ウィザードはインストールプロセスの残りの部分を説明し、https://phpipam.net/documents/installation/ [公式のインストールドキュメント]を参照して詳細を確認し、どのタイプのデータベースインストールを決定するかを尋ねます。実行したいです。

繰り返しますが、3つの選択肢があります。

  • データベースの自動インストール:ウィザードは、ステップ3で「+ config.php +」に入力した情報を使用して、MySQLデータベースとユーザーを作成します。

  • * MySQLのインポート手順*:MySQL独自のhttps://dev.mysql.com/doc/refman/5.7/en/mysqlimport.html[mysqlimportユーティリティ]を使用して、提供するプレーンテキストファイルからデータベースを作成します。

  • 手動データベースインストール:ウィザードは、新しいphpIPAMデータベースを手動で作成するために必要なデフォルトのSQLコマンドを提供します。

簡単にするために、[自動データベースインストール]ボタンをクリックして完全に自動化されたオプションを選択します。

image:http://assets.digitalocean.com/articles/how-to-install-phpipam/installation-step2.png [phpIPAMのインストール、ステップ2]

ウィザードは、MySQLに接続するために必要な情報を提供するように求めます。 これには、接続するユーザーのログイン資格情報、データベースの場所、データベースの名前が含まれます。

ウィザードで新しいデータベースとユーザーを作成する必要があるため、そのための十分な権限を持つユーザーのログイン資格情報を入力する必要があります。 MySQL * root *ユーザーが適切な選択です。

デフォルトでは、データベースの場所は* localhost に設定され、その名前は phpipam *に設定されます。 これらのいずれかを変更する場合は、ステップ3で作成した `+ config.php +`ファイルを編集し、インストールウィザードを再起動する必要があります。

[詳細オプションを表示]ボタンをクリックして、追加のインストールオプションにアクセスできます。 ここでは、さらに3つの選択肢が表示されます。

  • 既存のデータベースをドロップ*インストール手順を実行する前に、ウィザードは MySQLデータベース名*フィールドの値と同じ名前のデータベースを削除しようとします。 これはデフォルトではオフになっています。

  • データベースの作成*ウィザードは、 MySQLデータベース名*フィールドの値と同じ名前のデータベースを作成しようとします。 これはデフォルトでオンになっています。

  • *権限の作成*ウィザードは、新しいデータベースに権限を設定しようとし、 `+ config.php +`で定義されたMySQLユーザーのみにアクセスを制限します。 これはデフォルトでオンになっています。

ウィザードで接続するMySQLユーザーのユーザー名とパスワードを入力し、詳細オプションをデフォルト値に設定したままにして、[phpipamデータベースのインストール]ボタンを押します。

image:http://assets.digitalocean.com/articles/how-to-install-phpipam/installation-step3.png [phpIPAMのインストール、ステップ3]

ウィザードがデータベースを正常にインストールしたことを通知する確認メッセージが表示されます。 そうでない場合は、ウィザードのエラーメッセージで追加のヘルプを確認してください。

[続行]をクリックして、インストールを続行します。

image:http://assets.digitalocean.com/articles/how-to-install-phpipam/installation-step4.png [phpIPAMのインストール、ステップ4]

この画面で、ウィザードはWebインターフェースの管理ユーザーパスワード、各phpIPAM Webインターフェース画面の上部に表示するタイトル、およびphpIPAMインストールのURLを設定するように求めます。

使用する管理者パスワード、phpIPAMインターフェースのわかりやすいタイトル、phpIPAMインストールを指す完全修飾ドメイン名を入力し、[設定を保存]ボタンを押します。

image:http://assets.digitalocean.com/articles/how-to-install-phpipam/installation-step5.png [phpIPAMのインストール、ステップ5]

設定が正常に保存されたことを通知する確認メッセージが表示されます。 そうでない場合は、ウィザードのエラーメッセージを使用して問題を診断します。

image:http://assets.digitalocean.com/articles/how-to-install-phpipam/installation-step6.png [phpIPAMのインストール、ステップ6]

[ログインに進む]ボタンをクリックしてphpIPAMインストールのホームページに移動し、[管理者パスワード]フィールドに入力した* admin *ユーザー名とパスワードでサインインします。

phpIPAMのインストールと構成が完了したため、情報を追加して、監視するネットワークをより簡単に管理できます。

結論

この記事では、オープンソースのIPアドレス管理WebアプリケーションであるphpIPAMをインストールして構成しました。 独自のインフラストラクチャと他のネットワークの両方でIPアドレスの使用を監視できるようになりました。

さらに、phpIPAMを使用してVLANを追跡し、サブネットに対してそれらをマッピングし、デバイスの種類や場所などの情報を含むネットワークデバイスのインベントリを保持し、ネットワークの変更を警告する電子メール通知を構成できます。

phpIPAMタグのプログラミングを自動化し、自分で書いているアプリケーションと統合する方法については、https://phpipam.net/api/api_documentation/ [phipIPAMの組み込みAPIに関する公式ドキュメント]をご覧ください。 APIを使用してより速く起動して実行するには、https://phpipam.net/news/api_example_curl/ [公式入門チュートリアル]をご覧ください。

最後に、https://phpipam.net/news/automatic-host-availability-check/ [自動スキャン設定]を、管理しているパブリックインフラストラクチャまたは独自のローカルインフラストラクチャに対して調査してください。 ホストスキャンの自動化は、システム管理者またはdevopsエンジニアとして最大のメリットをもたらす可能性があります。