2017/01/11
Zabbix3.0の暗号化機能 導入まとめ
概要
Zabbixとは?
サーバーの死活管理ツール
管理対象となるサーバーの各プロセスを監視。
必要に応じて障害検知と通知(メールなど)やリカバリを実施することが可能
2.4系から3.0系にバージョンアップして追加された暗号化機能。
その導入例を記します。
※ 3.0系はPHPのバージョンが5.6以上である必要がありますが、監視されるサーバー側はこの条件を満たさなくても良い
暗号化機能を使うための流れ
- Zabbix3.0のサーバーインストール
- 証明書の発行
- Zabbix3.0のエージェントインストール
サーバーインストール
CentOS 6.xでは以下のコマンド実施。
1 2 | rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm yum install http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm |
こちらでzabbix本体とその他必要なものをインストール
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese
Zabbixで監視するデータを貯蓄するDBを作成します。
1 2 3 | mysql -u root -p (パスワード入力) CREATE DATABASE zabbix character SET UTF8 collate utf8_bin; |
ZabbixのDB設定を変更します。
1 2 3 | vim /etc/zabbix/zabbix_server.conf - # DBPassword= + DBPassword={{ 設定したパスワード }} |
その他、細かい設定は前回の投稿をご参照ください。
証明書発行
1 2 3 4 5 6 7 8 | vim /etc/pki/tls/openssl.cnf [ usr_cert ] - basicConstraints=CA:FALSE + basicConstraints=CA:TRUE [ v3_ca ] - # nsCertType = sslCA, emailCA + nsCertType = sslCA, emailCA |
また有効期限を延長しておきます。余裕をもって10年としましょう。
1 2 3 | vim /etc/pki/tls/misc/CA - CADAYS="-days 1095" # 3 years + CADAYS="-days 3650" # 10 years |
次に証明書のラベル付け
1 | echo '1000' > /etc/pki/CA/serial |
最後に認証局の作成
1 | /etc/pki/tls/misc/CA -newca |
以下にSSL証明書発行時に住所や企業情報などを対話式で入力していきます。
パスワードは後ほど解除するので適当でOKです。
1 2 3 | cd /etc/pki/CA/private/ openssl rsa -in cakey.pem -out cakey.pem Enter pass phrase for cakey.pem: {{ 上述で設定したパスワード }} |
認証局(CA)秘密鍵のパーミションを変更
1 | chmod 400 /etc/pki/CA/private/cakey.pem |
認証局の証明書をリネームしてzabbix用ディレクトリにコピーしておきます
1 | cp -i /etc/pki/CA/cacert.pem /var/lib/zabbix/zabbix_ca_file |
次にサーバー・クライアント間 双方で使用する証明書の発行です。
1 | cd /var/lib/zabbix/ |
鍵の作成
1 2 | openssl genrsa -out zabbix.key 2048 openssl req -new -key zabbix.key -out zabbix.csr |
上記の2行目も同様に適当なサーバー情報(住所、メルアド等)を入力します。
※ 今回はパスワード入力せずにReturnのみでOK
証明書発行時のオプションを設定(有効年数の延長等)
1 2 3 4 5 6 7 8 9 10 11 | vim /etc/pki/tls/openssl.cnf [ CA_default ] - default_days = 365 + default_days = 3650 [ usr_cert ] - basicConstraints=CA:TRUE + basicConstraints=CA:FALSE - # nsCertType = server + nsCertType = server, client |
先ほど発行したcsr(証明書発行要求)を基に、証明書(crt)を作成します
1 2 3 4 | openssl ca -in zabbix.csr -out zabbix.crt これでcsrは必要無くなったので削除します <pre class="lang:sh decode:true " > rm -rf zabbix.csr |
以上で鍵、証明書、認証局の証明書の3つが作成されました。
アクセス設定を最後に設定しておきます。
1 2 | chown zabbix:zabbix /var/lib/zabbix/zabbix* chmod 400 /var/lib/zabbix/zabbix* |
最後にZabbixのサーバー側暗号化設定を付け加えます
1 2 3 4 5 | vim /etc/zabbix/zabbix_server.conf TLSCAFile=/var/lib/zabbix/zabbix_ca_file TLSCertFile=/var/lib/zabbix/zabbix.crt TLSKeyFile=/var/lib/zabbix/zabbix.key |
Zabbixサーバーを起動してサーバー側は一旦完了。
1 | service zabbix_server restart |
エージェントのインストール
インストールは監視側する側と同じですが、zabbix-agentのみをインストールします。
監視するサーバーの設定
1 | vim /etc/zabbix/zabbix_agentd.conf |
Server={{ 監視する側のIPアドレス }}
前セクションで作成した暗号化用ファイルをセキュリティの高い方法(scpなど)で送ります。
1 2 3 | mkdir -p /var/lib/zabbix chmod 700 /var/lib/zabbix chmod 400 /var/lib/zabbix/zabbix* |
次に通信に暗号化ファイルを使用する設定
1 2 3 4 5 6 | vim /etc/zabbix/zabbix_agentd.conf TLSConnect=cert TLSAccept=cert TLSCAFile=/var/lib/zabbix/zabbix_ca_file TLSCertFile=/var/lib/zabbix/zabbix.crt TLSKeyFile=/var/lib/zabbix/zabbix.key |
最後にagentの起動。
1 | service zabbix-agent restart |
Author Profile
スターフィールド編集部
SHARE