Stoneでzabbix途中経路を暗号化

レンタルサーバとはいえ、root権限を持っているサーバでzabbixを動かして、
自宅サーバを監視したり、お客様のサーバを監視している。

通常、zabbix サーバとzabbixエージェントは同一ネットワークに存在し、インターネット経由では監視しないのが常識だ。監視データの中には見られてほしくない情報があったり、エージェントが接続する情報を読み取られたくないからだ。

でも仕方がないので、途中の経路を暗号化してSSLのトンネルを作ってくれるStoneを動かして運用している。すでに10か月は正常稼働してるし負荷も上昇していない。
というわけで、導入方法をまとめてみることにした。

(2014/05/26 追記)
Stoneでの運用は、長期間再起動を行わないと通信が途切れたり、再起動時間が延びるためにSSH経由に変えました。


http://www.gcd.org/sengoku/docs/NikkeiLinux00-08/stone.ja.html

※とにかく参考になるのはStoneの配布元の導入記事です。

Stone設計
番号 サーバ種別 ホスト名 待ち受けポート 転送先ポート
1 Zabbixサーバ redalarm.jp 20051 10051
localhost 20050 seedlight.com:20050
2 Zabbixエージェント seedslight.com 20050 10050
localhost 20051 redalarm.jp:20051

 

 

 

 

 

 

たすき掛けのように作ればいいかと思ったけれど、甘かった。SSLなんだから、暗号、複合を行わなきゃいけないので、サーバ→エージェント、エージェント→サーバの通信はStone同士で通信を行って作る土管の中を通さなきゃいけない。

Stoneとzabbixの関係図

簡単に作った図だけれどこんな感じ。


■Stoneの構築

==CentOS5側==

# cd /usr/local/src
# wget ‘http://www.gcd.org/sengoku/stone/stone-2.3e.tar.gz’
# tar xvzf stone-2.3e.tar.gz
# mv stone-2.3e.tar.gz tarball/.
# cd stone-2.3d-2.3.2.7/
# make linux-ssl
# cp -p stone /usr/local/sbin/.

※ make だけだと、make オプションが表示される。

# mkdir -p /usr/local/stone/etc/
# mkdir -p /usr/local/stone/log/
# vi /etc/init.d/stone
# chmod +x stone
# chkconfig –add stone

stone_redhat_script
※atdを参考に作った起動スクリプト。
2012/2/23追記。

            daemon ${prog} -C ${stone_conf}

この部分が動かなかったので調べたら、デフォルトインストールだとdaemonがない。daemonize というパッケージがその代りをしてくれるらしい。

# yum install daemonize

これでインストール。こうなった。

            daemonize ${prog} -C ${stone_conf} >/dev/null 2>&1 &

stone_conf=”/usr/local/stone/etc/zabbix_ssl.conf”

この部分を自分で作ったconfigファイルを指定。

== FreeBSD側==

# cd /usr/ports/net/stone
# make
# make install

/usr/local/bin/stone にプログラム本体
/usr/local/etc/rc.dに起動スクリプトstone 。これに設定ファイルを記述する。

# vi /usr/local/etc/rc.d/stone
—-
stone_conffile=”/usr/local/etc/stone.cnf”

次に、/etc/rc.conf に記述を忘れずに行う。

# vi /etc/rc.conf
—-
stone_enable=”YES”

とりあえず、さらにStoneの設定へと続くためここで一区切り。

Stoneでzabbix途中経路を暗号化(続き)

番号