Ubuntu16.04にphpIPAMをインストールする方法
序章
インフラストラクチャが大きくなると、使用するIPアドレスの数も大幅に増える可能性があるため、すべてを管理するためにメモリだけに依存することはできなくなります。 その時点で、物事を追跡するのに役立つツールが必要になります。
スプレッドシートとプレーンテキストファイルは、すばやく実装できるローテクソリューションですが、IPアドレスの大きなプールを操作する場合や、各アドレスの周囲の複数のデータポイントを追跡しようとする場合も、煩雑になる可能性があります。
phpIPAM は、IPアドレス管理専用のツールであり、自動pingスキャン、稼働中のホストと稼働中のホストを確認できるステータスレポート、電子メール通知を提供することで、ローテクオプションをはるかに超えています。監視しているホストへの変更、およびインフラストラクチャの管理をはるかに容易にするその他の機能。
このガイドでは、Ubuntu 16.04で実行されているLinux、Apache、MySQL、およびPHP(LAMP)スタックにphpIPAMをインストールして構成します。
前提条件
始める前に、次のものが必要になります。
- このUbuntu16.04初期サーバーセットアップチュートリアルに従ってセットアップされた1つのUbuntu16.04サーバー。これには、sudo非rootユーザーとファイアウォールが含まれます。
- 完全に登録されたドメイン名。 このチュートリアルでは、全体で
example.com
を使用します。 Namecheap でドメイン名を購入するか、 Freenom で無料でドメイン名を取得するか、選択したドメイン登録事業者を使用できます。 - サーバー用に設定された次のDNSレコード。 それらを追加する方法の詳細については、このホスト名チュートリアルに従うことができます。
サーバーのパブリックIPアドレスを指すexample.comのAレコード。 サーバーのパブリックIPアドレスを指すwww.example.comのAレコード。 - このLinux、Apache、MySQL、PHPインストールガイドに従ってセットアップされたLAMPスタック。
- このApache仮想ホストガイドに従ってセットアップされたドメイン用に構成されたApache仮想ホスト。
- このチュートリアルに従ってインストールされたドメインのSSL証明書を暗号化して、TLS/SSL証明書でApacheインストールを保護しましょう。
ステップ1—Apacheの構成
デフォルトでは、phpIPAMはURL構造のクエリ文字列に依存して、アプリケーションのある部分から別の部分にデータを渡します。 クエリ文字列は?
でURLに追加され、&
で区切られた1つ以上のフィールドと値のペアが含まれます。
インストールに絶対に必要というわけではありませんが、phpIPAMはApacheのmod_rewrite
モジュールを介してURL書き換えをサポートします。このモジュールはクエリ文字列をより読みやすく人間にわかりやすいURLに変換します。
でmod_rewrite
をまだ有効にしていない場合は、すべてのHTTPリクエストをHTTPSにリダイレクトしてTLS / SSL証明書の前提条件でApacheインストールを保護し、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
次回Webサーバーを起動したときにApacheがmod_rewrite
を有効にするようになりましたが、phpIPAMでmod_rewrite
を使用できるようにするには、phpIPAM仮想ホスト構成を変更する必要があります。 したがって、まだApacheを再起動しないでください。
代わりに、前提条件でphpIPAM用に作成したApache構成ファイルを開きます。
- sudo nano /etc/apache2/sites-available/example.com-le-ssl.conf
次の行をDocumentRoot
セクションの下の構成ファイルに貼り付けます。
...
<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をインストールするための2つの方法を提案しています。プロジェクトの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がコピーする予定のオブジェクトの数や、実際にコピーした数など、プロセスのリアルタイムレポートを提供します。
Output of git cloneCloning 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
でインストールしてください。
これらの追加パッケージは、任意の長さの整数を処理するための GNU Multiple Precisionモジュール、256文字で表現できない言語を処理するためのマルチバイト文字列モジュール、[ X237X]再利用可能な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
というラベルの付いたセクションを探します。 これらの設定は、すべてのデータを保持するMySQLデータベースに接続する方法をphpIPAMに指示します。
MySQLをphpIPAMと同じマシンにインストールしたので、$db['host']
の値をlocalhost
に設定したままにすることができます。 また、MySQLはデフォルトでポート3306
をリッスンするため、$db['port']
の値を変更する必要はありません。
phpIPAM用のMySQLデータベースのセットアップはまだありませんが、ステップ4で、phpIPAMのWebベースのインストールユーティリティは、このファイルに入力した値を使用してデータベースとデータベースユーザーを作成します。 したがって、$db['user']
値をphpIPAMがMySQLに接続するユーザーの名前に設定し、$db['pass']
値をphpIPAMがMySQLに接続するときに使用するパスワードに設定し、 $db['name']
をMySQLデータベースに付ける名前に変更します。
<?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インストールの移行、および作業インストールの3つのオプションがあり、それぞれに目的の簡単な説明があります。 新しいphpIPAMインストールを設定するときに、新しいphpipamインストールとマークされたボタンを押します。
次の画面で、ウィザードは残りのインストールプロセスを説明し、公式のインストールドキュメントを参照して詳細を示し、実行するデータベースインストールのタイプを決定するように求めます。
ここでも、3つの選択肢があります。
- データベースの自動インストール:ウィザードは、手順3で
config.php
に入力した情報を使用して、MySQLデータベースとユーザーを作成します。 - MySQLインポート手順:MySQL独自の mysqlimportユーティリティを使用して、提供したプレーンテキストファイルからデータベースを作成します。
- データベースの手動インストール:ウィザードは、新しいphpIPAMデータベースを手動で作成するために必要なデフォルトのSQLコマンドを提供します。
わかりやすくするために、データベースの自動インストールボタンをクリックして、完全に自動化されたオプションを選択してください。
ウィザードは、MySQLに接続するために必要な情報を提供するように要求します。 これには、接続するユーザーのログインクレデンシャル、データベースの場所、およびデータベースの名前が含まれます。
新しいデータベースとユーザーを作成するにはウィザードが必要なので、そのための十分な権限を持つユーザーのログイン資格情報を入力する必要があります。 MySQL rootユーザーは良い選択です。
デフォルトでは、データベースの場所は localhost に設定され、その名前はphpipamに設定されています。 これらのいずれかを変更する場合は、手順3で作成したconfig.php
ファイルを編集してから、インストールウィザードを再起動する必要があります。
詳細オプションの表示ボタンをクリックすると、追加のインストールオプションにアクセスできます。 ここでは、さらに3つの選択肢があります。
- 既存のデータベースの削除インストール手順を実行する前に、ウィザードはMySQLデータベース名フィールドの値と同じ名前のデータベースを削除しようとします。 これはデフォルトでオフになっています。
- データベースの作成ウィザードは、MySQLデータベース名フィールドの値と同じ名前のデータベースを作成しようとします。 これはデフォルトでオンになっています。
- パーミッションの作成ウィザードは新しいデータベースにパーミッションを設定しようとし、
config.php
で定義されたMySQLユーザーのみにアクセスを制限します。 これはデフォルトでオンになっています。
ウィザードを接続するMySQLユーザーのユーザー名とパスワードを入力し、詳細オプションをデフォルト値に設定したままにして、phpipamデータベースのインストールボタンを押します。
ウィザードがデータベースを正常にインストールしたことを示す確認メッセージが表示されます。 そうでない場合は、ウィザードのエラーメッセージを確認して追加のヘルプを参照してください。
続行をクリックしてインストールを続行します。
この画面で、ウィザードにより、Webインターフェイスの管理者ユーザーパスワード、各phpIPAM Webインターフェイス画面の上部に表示されるタイトル、およびphpIPAMインストールのURLを設定するように求められます。
使用する管理者パスワード、phpIPAMインターフェースのわかりやすいタイトル、phpIPAMインストールを指す完全修飾ドメイン名を入力し、設定の保存ボタンを押します。
設定が正常に保存されたことを示す確認メッセージが表示されます。 そうでない場合は、ウィザードのエラーメッセージを使用して問題を診断してください。
ログインボタンをクリックしてphpIPAMインストールのホームページに移動し、管理者パスワードフィールドに入力した管理者ユーザー名とパスワードでサインインします。
これでphpIPAMのインストールと構成が完了したので、監視するネットワークをより簡単に管理するための情報の追加を開始できます。
結論
この記事では、オープンソースのIPアドレス管理WebアプリケーションであるphpIPAMをインストールして構成しました。 独自のインフラストラクチャと他のネットワークの両方でIPアドレスの使用状況を監視できるようになりました。
さらに、phpIPAMを使用してVLANを追跡し、サブネットに対してマッピングしたり、デバイスの種類や場所などの情報を含むネットワークデバイスのインベントリを保持したり、ネットワークの変更を通知するように電子メール通知を構成したりできます。
phpIPAM taksをプログラムで自動化し、自分で作成しているアプリケーションと統合する方法については、phipIPAMの組み込みAPIに関する公式ドキュメントを参照してください。 APIをより速く起動して実行するには、公式の入門チュートリアルをご覧ください。
最後に、管理している公共インフラストラクチャまたは独自のローカルインフラストラクチャに対して、自動スキャン設定を必ず調査してください。 sysadminまたはdevopsエンジニアとして最大のメリットを提供できるのは、ホストスキャンの自動化です。