忍者ブログ
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

外部に借りているVPSを、zabbixで監視したいけど、平文でやり取りするのは不安・・・
そんなとき、stunnelを使ってみませんか。

自分もどうしようかと悩んでいた時、氏の「そういえばZabbixの通信暗号化ってStunnelを使えいいじゃん。あとで試そう。」ってつぶやきを見つけて、挑戦してみました。
しかもstunnelって、実はcentosを最小インストールしても入ってくる身近な存在だったのです。

やりたいことをまとめると、
 1 zabbixサーバ-zabbixエージェント間の通信を暗号化したい。
 2 第三者がzabbixエージェントに接続できないようにしたい。

さて構成ですが、こんな感じです。

stunnel.png









紺色の矢印が、平文でながれるところです。
さて方法ですが、まず以下の証明書を用意してください。
 1 サーバの秘密鍵
 2 サーバ証明書
 3 サーバ証明書に署名したオレオレCAの証明書

このうち 3 の証明書が、第三者を締め出す肝になります。

以下、証明書は、/etc/stunnel 配下に配置、設定ファイルは /etc/stunnel.conf とします。

【zabbixエージェント側の作業】
 zabbixサーバからの接続を受け付けるので、stunnelはサーバモード(デフォルト動作)で動作させます。

 1 証明書の配置
   上記1~3の証明書を、配置します。

 2 CA証明書の名前をハッシュ化
   CA証明書の指定の仕方は二通りあって、CApathでディレクトリを指定するか、CAfileでファイル名を直接指定します。
   CApathを使う場合、配下のCA証明書の名前はハッシュ化されていないといけないので、以下のコマンドを実行してください。
      #c_rehash /etc/stunnel

   ちなみにc_rehashコマンドは、CentOSだと、openssl-perl パッケージに入っています。

 3 設定ファイルの記述
   [/etc/stunnel.conf]
   
   pid = /var/run/stunnel.pid

   cert = /etc/stunnel/server.crt
   key = /etc/stunnel/server.key

   [zabbix]
   accept = 10058
   connect = 10050
   verify = 2
   CApath = /etc/stunnel
   ;CAfile = /etc/stunnel/cacert.pem

   acceptで待ち受けポート、connectで接続先サーバを指定しています。
   これだと、すべてのローカルアドレス:10050 で待ち受け、localhost:10050 に転送することになります。
   また、verifyでクライアント認証を有効にしています。
   
 4 プログラムの起動
   # stunnel /etc/stunnel.conf

【zabbixサーバ側の作業】
 zabbixサーバからエージェントに対して接続にいくので、stunnelはクライアントモードで動作させます。

 1 証明書の配置
   上記1~2の証明書を、配置します。
   面倒なので、同じ証明書を使っちゃいます。

 2  3 設定ファイルの記述
   [/etc/stunnel.conf]
   pid = /var/run/stunnel.pid

   key = /etc/stunnel/sakura.shinobi.jp.key
   cert = /etc/stunnel/sakura.shinobi.jp.crt


   [zabbix_client]
   client = yes
   accept = 127.0.0.1:10060
   connect = zabbix-agent.hogehoge.com:10055

 3 プログラムの起動
   # stunnel /etc/stunnel.conf

これで、zabbixサーバのlocalhost:10060 に接続すると、zabbixエージェントから応答が返ってきます。
また、openssl s_clientコマンドで、直接zabbixエージェントのstunnelに接続しようとすると、怒られますので、クライアント認証も機能しているようです。

なお通信経路の暗号化だけであれば、zabbixサーバ側のstunnelにkey、certで証明書を指定する必要はありません。

これでVPSにいたずらされることもなくなって、めでたしめでたし

 
PR
Copyright (C) 2024 技ブロ All Rights Reserved.
Photo by 戦場に猫 Template Design by kaie
忍者ブログ [PR]