3. 計画 一覧へ 5. 使い方
- 4. 設定
4. 設定
4.1. postLDAPadminのインストール
https://github.com/designet-inc-oss/postLDAPadmin
# tar xzf postLDAPadmin_frame-VERSION.tar.gz -C /usr/local
# tar xzf postLDAPadmin_admin-VERSION.tar.gz -C /usr/local/postldapadmin/htdocs/admin
# tar xzf postLDAPadmin_lib-VERSION.tar.gz -C /usr/local/postldapadmin/lib
4.2. postLDAPadminの設定
4.2.1. web.confの作成
# cd /usr/local/postldapadmin/etc
# mkdir [管理する仮想ドメイン]
# chown apache:apache [管理する仮想ドメイン]
# cp web.conf.sample [管理する仮想ドメイン]/web.conf
# chown apache:apache [管理する仮想ドメイン]/web.conf
4.2.1.1. tab.confの作成
以下のようにコピーしてください。
# cp tab.conf.sample [管理する仮想ドメイン]/tab.conf
4.2.1.2. admin.keyの作成
# cat /dev/urandom | base64 | head -n1 | cut -c1-8 > [管理する仮想ドメイン]/admin.key
4.2.1.3. msg_fileの作成
以下のようにコピーしてください。
# cp msg_file.sample [管理する仮想ドメイン]/msg_file
4.3. DHCPサーバの基本設定
- DHCPサーバのIPアドレス
- DDNSの更新方式の設定
※注意 subnetオプションの設定を手動で行うと、DHCPadminは正常に動作しません。
次はDHCPサーバのIPアドレスを、192.168.0.1に設定した場合の例です。
server-identifier 192.168.0.1;
ddns-update-style interim;
- DDNSの更新方式の設定
※注意 subnetオプションの設定を手動で行うと、DHCPadminは正常に動作しません。
ddns-update-style interim;
4.4. DHCPadminのインストール
- DHCPadminの入手と展開
- dhcpd.confとdhcpd6.confの移動とシンボリックリンクの作成
- ディレクトリ権限の変更
- ファイルの権限変更
- web.confの編集
- tab.confの編集
- msg_fileの編集
4.4.1. DHCPadminの入手と展開
# tar xzvf DHCPadmin-[バージョン].tar.gz -C /usr/local/postldapadmin
上記のように展開した場合、展開後のディレクトリ構成は、以下の表のようになります。
/usr/local/postl dapadmin/htdocs/admin/dhcpadmin/ | Webインタフェースに関す るファイルを格納するディレクトリ |
---|---|
/usr/local/postldapadmin/etc | 設 定ファイルを格納するディレクトリ |
/usr/local/postldapadmin/lib | ライブラリを格納するディレクトリ |
/usr/local/postldapadmin/tmpl | htmlテ ンプレートを格納するディレクトリ |
/usr/local/post ldapadmin/tmpl/selinux/dhcpadmin | DHCPadminのSE Linuxポリシールール(RHEL7以前用) |
/usr/local/postldapad min/tmpl/selinux/dhcpadmin-rhel7 | DHCPadmin のSELinuxポリシールール(RHEL7用) |
4.4.2. dhcpd.confとdhcpd6.confの移動
# mkdir /usr/local/postldapadmin/etc/dhcp/
# mv /etc/dhcp/dhcpd.conf /usr/local/postldapadmin/etc/dhcp/
# mv /etc/dhcp/dhcpd6.conf /usr/local/postldapadmin/etc/dhcp/
# ln -s /usr/local/postldapadmin/etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf
# ln -s /usr/local/postldapadmin/etc/dhcp/dhcpd6.conf /etc/dhcp/dhcpd6.conf
4.4.3. ディレクトリの作成
# mkdir -p /usr/local/postldapadmin/var/[管理する仮想ドメイン]
# chown apache:apache /usr/local/postldapadmin/var/[管理する仮想ドメイン]/
4.4.4. ディレクトリとファイルの権限変更
4.4.4.1. ディレクトリの権限変更
# chown apache:apache /usr/local/postldapadmin/etc/dhcp/
4.4.4.2. ファイルの権限変更
# chown apache:apache /usr/local/postldapadmin/etc/dhcp/dhcpd*.conf
4.4.4.3. SELinuxのポリシー作成
使用しているシステムでSELinuxが有効(Enforce)になっている場合、以下の理由でDHCPadminが動作しません。
$ cd /usr/local/postldapadmin/tmpl/selinux/dhcpadmin
以下のファイルに記載されたパスをインストールディレクトリに合わせて変更してください。
$ vi dhcpadmin.fc
/usr/local/postldapadmin(/.*)? system_u:object_r:httpd_sys_content_t:s0
/usr/local/postldapadmin/etc/dhcp(/.*)? system_u:object_r:dhcp_etc_t:s0
/usr/local/postldapadmin/var(/.*)? system_u:object_r:httpd_tmp_t:s0
rootユーザで、作成されたポリシーのインストールを行います。
# semodule -i dhcpadmin.pp
次にファイルコンテキストの再設定を行います。
# restorecon -R /usr/local/postldapadmin
以上でSELinuxポリシーの設定は完了です。
4.4.5. web.confの設定
[dhcpadmin]
DhcpdConfPath=/usr/local/postldapadmin/etc/dhcp/dhcpd.conf
Dhcpd6ConfPath=/usr/local/postldapadmin/etc/dhcp/dhcpd6.conf
DhcpdLeasesPath=/var/lib/dhcpd/dhcpd.leases
Dhcpd6LeasesPath=/var/lib/dhcpd/dhcpd6.leases
LockTime=600
LeasesListNum=20
DefLeaseTime=21600
DefMaxLeaseTime=43200
DhcpdRestartCom=/usr/bin/sudo /etc/init.d/dhcpd restart
Dhcpd6RestartCom=/usr/bin/sudo /etc/init.d/dhcpd6 restart
DhcpdCheckCom=/usr/bin/sudo /etc/init.d/dhcpd status
Dhcpd6CheckCom=/usr/bin/sudo /etc/init.d/dhcpd6 status
DhcpdConfTestCom=/usr/bin/sudo /etc/init.d/dhcpd configtest
Dhcpd6ConfTestCom=/usr/bin/sudo /etc/init.d/dhcpd6 configtest
ImportCsvMode=1
PathToCsvInput=/data/csv/input
PathToCsvBackup=/data/csv/output
MailToAddr=test1@example.com
MailFromAddr=test2@example.com
[dhcpadmin]
DhcpdConfPath=/usr/local/postldapadmin/etc/dhcp/dhcpd.conf
Dhcpd6ConfPath=/usr/local/postldapadmin/etc/dhcp/dhcpd6.conf
DhcpdLeasesPath=/var/lib/dhcpd/dhcpd.leases
Dhcpd6LeasesPath=/var/lib/dhcpd/dhcpd6.leases
LockTime=600
LeasesListNum=20
DefDomain=domainname
DefLeaseTime=21600
DefMaxLeaseTime=43200
DhcpdRestartCom=/usr/bin/sudo /usr/bin/systemctl restart dhcpd
Dhcpd6RestartCom=/usr/bin/sudo /usr/bin/systemctl restart dhcpd6
DhcpdCheckCom=/usr/bin/sudo /usr/bin/systemctl status dhcpd
Dhcpd6CheckCom=/usr/bin/sudo /usr/bin/systemctl status dhcpd6
DhcpdConfTestCom=/usr/bin/sudo /usr/sbin/dhcpd -cf /etc/dhcp/dhcpd.conf -t
Dhcpd6ConfTestCom=/usr/bin/sudo /usr/sbin/dhcpd -6 -cf /etc/dhcp/dhcpd6.conf -t
ImportCsvMode=1
PathToCsvInput=/data/csv/input
PathToCsvBackup=/data/csv/output
MailToAddr=test1@example.com
MailFromAddr=test2@example.com
- IPv4、IPv6の設定項目DHCPadminを利用するには、web.confへのIPv4、IPv6の設定項目が両方とも必須になります。どちらかを使用しない場合でも、両方の項目の設定を行ってください。
- 再起動コマンドの設定(DhcpdRestartCom, Dhcpd6RestartCom)DHCPadminは、DHCPサーバの設定の適用を行う際に、DHCPサーバの再起動コマンドを実行します。 そのため、DHCPサービスの再起動コマンドを設定する必要があります。再起動コマンドは絶対パスで設定してください。
- ※注意
- DHCPサーバとWebサーバの実行ユーザが異なる場合、sudoの設定が必要になります。DHCPadminでは、Webサーバの実行ユーザがDHCPサーバの再起動を行います。そのため、sudoの設定が必要となります。次は、Webサーバの実行ユーザが「apache」の場合の設定例です。RHEL7の場合、systemctlを使用するためsudoの設定が異なります。
sudoの設定例 (RHEL7以前の場合)
apache ALL=(ALL) NOPASSWD: /etc/init.d/dhcpd
apache ALL=(ALL) NOPASSWD: /etc/init.d/dhcpd6
sudoの設定例 (RHEL7の場合)
apache ALL=(ALL) NOPASSWD: /usr/bin/systemctl
apache ALL=(ALL) NOPASSWD: /usr/sbin/dhcpd
- チェックコマンド、ステータスコマンドの設定(DhcpdCheckCom, Dhcpd6CheckCom, DhcpdConfTestCom, Dhcpd6ConfTestCom)DHCPadminは、DHCPサーバの動作状況を確認したり、dhcpd.confの書式チェックを行うために、DHCPサーバのチェックコマンドを実行します。 そのため、DHCPサービスのチェックコマンドを設定する必要があります。チェックコマンドは絶対パスで設定してください。
- リースファイルの設定(DhcpLeasesPath, Dhcp6LeasesPath)DHCPadminは、DHCPサーバがリースしているIPアドレスの検索を行う場合、リースファイルを参照します。リースファイルの場所は、Linuxのディストリビューションによって変化するため、DHCPサーバのリースファイルの場所を明示的に設定する必要があります。リースファイルの場所は、絶対パスで設定してください。設定例は、リースファイルが/var/lib/dhcpd/dhcpd.leases(dhcpd6.leases)の場合の例です。
その他の設定については、 詳細設定(web.conf) を参考に設定を行ってください。
4.4.6. タブファイル(tab.conf)の設定
dhcpadmin/network:ネットワーク設定
dhcpadmin/network/sn:Shared-network管理
dhcpadmin/network/subnet:サブネット管理
dhcpadmin/client:クライアント設定
dhcpadmin/search:貸出情報検索
dhcpadmin/reload:設定適用
dhcpadmin/v6network:IPv6 ネットワーク設定
dhcpadmin/v6network/sn:IPv6 Shared-network管理
dhcpadmin/v6network/subnet:IPv6 サブネット管理
dhcpadmin/v6client:IPv6 クライアント設定
dhcpadmin/v6search:IPv6 貸出情報検索
dhcpadmin/v6reload:IPv6 設定適用
4.4.7. メッセージファイル(msg_file)の設定
# cat /usr/local/postldapadmin/etc/msg_file.dhcpadmin >> /usr/local/postldapadmin/etc/[管理する仮想ドメイン]/msg_file |
4.4.8. CSVファイル自動読み込み設定
# /usr/local/postldapadmin/bin/dhcpadmin_import_csv [管理する仮想ドメイン] |
# crontab -e 0 12 * * * php /usr/local/postldapadmin/bin/dhcpadmin_import_csv [管理する仮想ドメイン]
※上記は毎日12時になるとスクリプトを実行する設定です。適宜、設定変更を行って下さい。
[テンプレート例]
Subject: CSVファイル自動読み込み:OK
CSVファイル自動読み込みに成功しました。
プロセス名: {$PROCESS_NAME}
実行時間: {$EXE_TIME}
{$START_LOOP_CSV}
CSVファイル名: {$CSV_FILENAME}
内容:
{$CSV_CONTENT}
{$END_LOOP_CSV}
[テンプレート例]
Subject: CSVファイル自動読み込み:NG
CSVファイル自動読み込みでエラーが発生しました。
プロセス名: {$PROCESS_NAME}
エラー発生日時: {$EXE_TIME}
システムエラーメッセージ: {$ERROR_MSG}
{$START_LOOP_CSV}
CSVファイル名: {$CSV_FILENAME}
CSVのエラーメッセージ: {$CSV_ERROR}
内容:
{$CSV_CONTENT}
{$END_LOOP_CSV}
4.5. Webサーバの設定
Alias /postldapadmin/ /usr/local/postldapadmin/htdocs/
SetEnv LOGNAME [管理するドメイン]
SetEnv DOMAIN [管理するドメイン]
<Directory "/usr/local/postldapadmin/htdocs">
DirectoryIndex index.html index.php
require all granted
PHP_value include_path ".:/usr/local/postldapadmin/"
</Directory>
Alias /postldapadmin/ /usr/local/postldapadmin/htdocs/
SetEnv LOGNAME [管理するドメイン]
SetEnv DOMAIN [管理するドメイン]
<Directory "/usr/local/postldapadmin/htdocs">
DirectoryIndex index.php index.php
require all granted
PHP_value include_path ".:/usr/local/postldapadmin/"
RewriteEngine On
RewriteRule ^admin/logout.php$ /postldapadmin/admin/dhcpadmin_logout.php [L]
</Directory>
4.6. 管理者の設定
4.7. DHCPサーバ(IPv4)の起動確認
4.7.1. ログイン
DHCPサーバを起動するために必要な設定を行うために、DHCPadminにログインします。 ログインは管理ユーザで行います。 ログインの手順は以下になります。
- 以下のURLにアクセスします。
- http://[ホスト名]/postldapadmin/
- アクセスが成功すると、認証画面が表示されるので、以下の項目を入力します。
- admin
- パスワード
4.7.2. サブネットの登録
サブネットの登録は以下の手順で行います。
- のタブをクリックします。
- サブネット管理のアイコンをクリックします。
- サブネット管理画面の入力欄に、サブネットとネットマスクを入力します。
- [追加]ボタンをクリックします。サブネットとネットマスクの書式が正しければ、サブネット編集画面が表示されます。
- サブネット編集画面で以下の情報を入力します。
- ルータ
- ドメイン名
- 標準リース時間
- 最大リース時間
- DNSサーバアドレス
- [登録]ボタンをクリックします。
- ※注意
- dhcpd.confには、必ずDHCPサーバのIPアドレスを含むサブネットが必要となります。ここで登録するサブネットはその範囲のものにして下さい。
サブネットの登録が成功すると、サブネット管理画面に、追加したサブネットとネットマスクが表示されます。 サブネットの登録についての詳細は、「サブネットを追加するには」の項目 を参考にしてください。
4.7.3. DHCPサーバの起動
以上の設定を行うと、DHCPadminインターフェースからDHCPサーバが起動できます。 DHCPサーバの起動手順は以下になります。
- DHCPadminにログインし、[設定適用]タブをクリックします。
- 設定適用画面が表示されたら、[再起動]ボタンをクリックします。
[再起動]ボタンをクリックすると、DHCPサーバに設定が適用され、DHCPサーバが起動します。 起動が成功すると、設定適用画面に「起動中」のメッセージが表示されます。 設定適用ついての詳細は、「設定を適用するには」の項目 を参考にしてください。
4.8. DHCPサーバ(IPv6)の起動確認
DHCPadminが正常に動作するか確認するために、DHCPadminインターフェースからDHCPv6サーバの起動を行います。この節ではIPv6サーバについての設定を行います。 DHCPv6サーバを起動するためには、少なくともサーバのIPv6アドレスを含むサブネットを登録する必要があります。
4.8.1. ログイン
DHCPv6サーバを起動するために必要な設定を行うために、DHCPadminにログインします。 ログインは管理ユーザで行います。 ログインの手順は以下になります。
- 以下のURLにアクセスします。
- http://[ホスト名]/postldapadmin/
- アクセスが成功すると、認証画面が表示されるので、以下の項目を入力します。
- admin
- パスワード
4.8.2. IPv6サブネットの登録
サブネットの登録は以下の手順で行います。
- タブをクリックします。
- IPv6サブネット管理のアイコンをクリックします。
- IPv6サブネット管理画面の入力欄に、サブネットとプレフィックスを入力します。
- [追加]ボタンをクリックします。サブネットとプレフィックスの書式が正しければ、IPv6サブネット編集画面が表示されます。
- IPv6サブネット編集画面で以下の情報を入力します。
- ドメイン名
- 標準リース時間
- 最大リース時間
- DNSサーバアドレス
- [登録]ボタンをクリックします。
- ※注意
- dhcpd6.confには、必ずDHCPv6サーバのIPv6アドレスを含むサブネットが必要となります。ここで登録するサブネットはその範囲のものにして下さい。
サブネットの登録が成功すると、IPv6サブネット管理画面に、追加したサブネットとプレフィックスが表示されます。 IPv6サブネットの登録についての詳細は、「サブネットを追加するには(v6)」の項目 を参考にしてください。
4.8.3. DHCPv6サーバの起動
以上の設定を行うと、DHCPadminインターフェースからDHCPv6サーバが起動できます。 DHCPv6サーバの起動手順は以下になります。
- DHCPadminにログインし、[IPv6設定適用]タブをクリックします。
- IPv6設定適用画面が表示されたら、[再起動]ボタンをクリックします。
[再起動]ボタンをクリックすると、DHCPv6サーバに設定が適用され、DHCPv6サーバが起動します。 起動が成功すると、設定適用画面に「起動中」のメッセージが表示されます。 設定適用ついての詳細は、「設定を適用するには(IPv6)」の項目 を参考にしてください。