2014/02/13

ntpdに気をつけれ、と さくらVPSからメールが来た の巻。

一応JPCERT/CCから1/15にメールが来てて個人的には対策済みなんですが、
念の為のチェック&啓蒙ということで。

■問題の概要

詳細は下記の情報を見ると良いですが、
ntpdの一部バージョンには状況確認用コマンド(monlist)が用意されていて、
これが外部から呼ばれると、かなりのトラフィックを発生させるので
DDoSに使われるよ、という話。

ふだん利用している さくらインターネット 様からも注意喚起メールが今日届きました。


■何が問題なのか

monlistの機能的には、対象ntpサーバが最近通信をした相手をリストアップする機能。

試しにmonlistを有効にした状態で以下のようなコマンドを叩いてみる。

# ntpdc -c monlist

remote address          port local address      count m ver rstr avgint  lstint
===============================================================================
ntp-b3.nict.go.jp        123 4x.xxx.xx.xx3          6 4 4    180      1       1
ntp-b2.nict.go.jp        123 4x.xxx.xx.xx3          6 4 4    180      2       2
ntp-a3.nict.go.jp        123 4x.xxx.xx.xx3          6 4 4    180      2       3
ntp-a2.nict.go.jp        123 4x.xxx.xx.xx3          6 4 4    180      2       4
うちのVPSではNICTのNTPサーバを見ているのでリストアップされます。
ntpdのrestrict設定(+Firewall)で他には通信しないようにしているので、
これ以外はリストされないようになってます。

ここで問題なのは、
  • 1コマンド&小さい通信量で簡単に取り出せる
  • 通信履歴がまるまる大公開
  • さらにリスト作成時にDNSで名前解決が走る(ntpdc -nなら抑制できるけど)
ということで、増幅率(きっかけコマンドに対して発生する無駄な通信量)が半端ねえ。

ぱないの!
…どころの話じゃないのです。忍ちゃんもびっくり。

■対策方法

ntpdのバージョンアップなんですが、影響を受けないバージョンは「4.2.7p26」。
しかし安定版は4.2.6であり、各distroでもまだ落ちてきてないバージョンかと。

そこで、monlist自体をストップしましょう。
ntpdの設定ファイルに「disable monitor」と1行追記。

※私の環境はDebian Wheezyです。

# vi /etc/ntp.conf
disable monitor    ←ファイル末尾にでも追記する

# /etc/init.d/ntp restart
 これで再度monlistを叩いてみると…
# ntpdc -c monlist
***Server reports data not found
問い合わせを無視するようになりました。これでOK。
外から確認したい場合は、 OpenNTPProject.org などを使用するといいかもです。


…というか、単発サーバで自前時刻合わせだったらntpd使わずntpdateを
slewモードを使ってcronで回すのも手です。


久々に奇声が漏れるレベルの増幅率ですので、早急に対処を。


2014/02/03

裸族を修理に出したら戻ってきた。

結局のところ、週末までやっても症状再現しなかったとの事。

こうなるともう自宅の電源周りの問題か…
ということで接続の見直しをしてシンプルにしてみた。

また様子見の状態が続いてしまうのがなんとも気持ち悪いのだが、
エラーが出ないなら仕方なし。

次に発生したら有償で部品交換してもらおう。


センチュリーのサポート様、ご対応ありがとうございました。

2014/01/28

裸族を修理に出す。

どんなタイトルやねん。

去年の夏に購入して自宅で使用しているRAIDケージが、
今年に入ってから謎な動きをしだしたのが発端。


去年末ぐらいまでは特に問題なかったのが、
タイミングがよく判らないが使用中に勝手にUSB disconnectになってしまう。
ふつーならばUSBの抜き差しで再認識しようものなのだが、
一度disconnectしてしまうとそのまま電源入れ直すまで逝きっぱなしという挙動。

ディスクを全部新しいのにしてもNGで、ケーブルも交換したが治らない。

ので、現在サポートセンターにチェックを依頼している。
 …が、向こうでも数日動かしてても再現しないらしい。

ACの品質の問題?
常時インバータのUPSとか突っ込まないとダメかなー。

一応サポート様には「今週いっぱい様子見てもらう」ということで
お願いをしているが、リプロデュースしない障害は使ってて
気持ちが悪いんだよなぁ。

ケージ側のRAID機能だとログも詳細には出ないので、
もしかしたらRAID機能のない単発複数ドライブとかで
ソフトウェアRAID組んだ方が判りやすいのかもしれん…
…などと悶々としながら待つ日々でございます。


さっさとエラー出てくんないかなw

2013/12/26

またすこしまがあいたのでうめあわせのえんとりです。

作業プライオリティがえらいことになっとって
年内にZabbixへの移行決着はなさそうです。

てへぺろ(・ω<)


つーかですね、こないだのMSCの社内報告書も書いてない罠…
本年最終営業日は作文でがんばりたい。

てへぺろ(・ω<)



来週はコミケに年末のご挨拶周り(+買えたら薄い本もw)をする週。
昼過ぎにちょろっと出没アド街予定です。

てへぺろ(・ω<)



良いお年をお迎えくださいませorz

2013/12/17

Ubuntu ログイン時のMotDを止める

Ubuntuのログイン時に出るMotD(Message of the Day)。
現在のステータスやaptパッケージのアップデート告知が出るようになってる。
便利なんだと思いますが、ちょっと重いのです。

マシンのステータスは別のリソースで監視してるし、
パッケージはapticronとかで監視してるしログインのたびに見てもらっても…という方用。


/etc/motd がその実体なわけだけれども、 /run/motd へのsymlink。
/etc/motdをrmすればとりあえずは出なくなりますが、
motdを作るプロセスは走ってしまうのでリソースの無駄。

探したところ、PAMに居ました。
sshdの認証が通ると pam_motd.so を呼んで、ここで/run/motdを作っている模様。

ので、コメントアウトさせていただきました。

/etc/pam.d/sshd
# Print the message of the day upon successful login.
#session    optional     pam_motd.so # [1]

【追記】
ツッコミいただきましたー。
部分的にカットしたい場合などは、 /etc/update-motd.d の下を見ると幸せになれるかも。
動的に出力する内容がスクリプトとして置いてあります。

パッケージアップデートがあるかどうかだけログイン時に知りたい時は
90-updates-available だけ有効にしておくとか、色々潰し効きますね。

Zabbixを試してみる。(2)

未解決事項あるんだけど、まあ奮闘記っつーことで。


前のフォローアップ記事に書いたとおり、
Zabbix公式のubuntuリポジトリから2.2.1を取得。

Ubuntu公式のuniverseにいるZabbix 1.8では初期テンプレートに色々詰め込まれすぎてて、
テンプレ一から作らなきゃならなかったのがよりシンプルになってた!
(Linuxテンプレを使うとhttpdは当然ながら、SMTPやFTP、果てはNNTPまで動いていると仮定されててenableにした途端ちょうエラー)


設定要素

ほぼ自分の備忘録としてまとめときます。

●ホスト

監視対象となる機器の設定。これには下記の要素が存在する。
 
・アイテム
監視するサービスや着眼ポイントの設定。
例えば、pingの打ち方とか、拾ってくるデータの定義なんかをする。

・アプリケーション
アイテムをまとめて1つのまとまりとして定義。
CPUのLoad average(1,5,15)の各アイテムをまとめてCPU Load Avgというアプリに、みたいな。
若干自信なし。

・トリガー
各アイテムの結果を元にして「状況が変化した」という判断をする閾値や条件の設定。
これで各レベルの警報をraiseする感じですな。


●アクション

で、raiseされたレベルによって「アクション」が発生する。
重要度の低いのは一般へメール、致命的なのは管理者にメール&Jabberみたいな。
アクション側では受けたトリガーレベルはもちろんのこと、元となってるテンプレや
ホストグループなんかも条件式に入れられるので、
「このシステムだけはこの人らにも」は容易に組めるわけですな。
NagiosでいうところのContactsあたりの設定。



んで、これらの設定を各ホストにいちいちやるのは面倒なので、
テンプレートという仕組みがある。

●テンプレート

要は上記のアイテムやアプリなんぞをまとめてひな形にしといて、
実際のホストを定義するときに使いまわしましょうや、という機構。

架空のホストを定義するような感じで設定しておいて、
実ホストを登録する際に「このテンプレートにリンク!」という感じ。

各ホストには複数のテンプレがリンクできるので、
「Linux基本監視」「Apache動かす用」「SQLサーバ動かす用」みたいに定義しておいて、
機能選択=テンプレ選択という感じにするのが解りやすいかと思われる。


●スクリーン

グラフとかの絵的な情報はグラフを各ホストに定義しても
Cactiのような一斉閲覧とかはできないっぽい。

じゃあどーするかというと、「スクリーン」というのを別途定義して
画面上に表示したいものを作るようだ。

スクリーンは
 ・表を作る
 ・各セルに突っ込みたいものを選択する
…という感じ。視覚的に非常に解りやすい。が、ちと重い。



▲現在の懸念(要追加調査)事項▲

・スクリーン設定時の縦横幅のデフォルト設定はないものか。
 (500×100がデフォのようだが、横1000はキツいので手打ちで400×100にしてる)

・ スイッチとかだと各I/Fのグラフをばばばばってスクリーンに自動登録してくれんもんやろか。

・各グラフのタイトルとか項目摘要名とかを手でいじれないものか。
 SWだと何がつながってるよーとかにしたい。あと、Unit/Slot/Portを短くしたい。

・他の設定項目はひとまずペンディングじゃー。



 ▲追加情報▲

SNMPホストを登録する際、もともと定義されているSNMP用テンプレの中身は
OID名が数字でなくてラベル名になっているので、snmp-mibs-downloader
パッケージをインストールしておかないと、「そんなOID知らん」って言われるかも。

# aptitude install snmp-mibs-downloader

2013/12/13

Zabbixを試してみる。(1) のフォローアップをしてみる。

昨日書いた Zabbixを試してみる。(1) の続きとゆーかフォローとゆーか訂正とゆーか。

コメントでいただき追記をした「Zabbix 2.x」の件。


なんで私がUbuntuのリポジトリに固執して
Zabbix公式から落とさなかったかとゆーと、
単にaptの管理下から離れちゃうのが嫌だったのです。

もちろんMLとかでpushをもらうようにはするんだけども、
セキュリティホールとかのアップデートのアンテナの張り出しは
ただでさえ多いのでできるだけ少なくしておきたかったの。

Zabbix公式のInstallation manual ですとwget & dpkg -iしろってことだったので
それなら自前debuildと変わらんやないかー、ということで。


これ、あくまで私の好みの問題でした。さーせん。



で、もうちょっと調べてみたらですな、
公式さんはちゃんとapt source repositoryになっとりました。

ので、早速ではございますが一度1.8をpurgeしました。

# vi /etc/apt/sources.list.d/zabbix2.0-precise.list

deb http://repo.zabbix.com/zabbix/2.2/ubuntu precise main

# wget http://repo.zabbix.com/zabbix-official-repo.key
# apt-key add zabbix-official-repo.key

# aptitude install zabbix-server-mysql zabbix-frontend-php


ちょっと幸せになりました。


# ただし、apt lineについて表立って書いてないってことは
# 突然のお取り潰しもあるかもなので、あくまで自己責任でー。



さて、構築しなおすー。


続き: Zabbixを試してみる。(2)