ホーム » コンピュータ » Network (ページ 27)

Network」カテゴリーアーカイブ

システム

最近の投稿

アーカイブ

カテゴリー

FirewallでESTABLISHEDが大量…

muninで監視している iptables の状況にて、ESTABLISHED 状態のコネクションが、 急に増加している。調べてみると、ip_conntrack のネタで、職場の ネットワークトラブルの原因と似通ったようなキーワードがぞろぞろ。 同様の状況が発生した場合の原因究明ができるかな…

1108080750_497x352.png

原因の確認…

(( grep ESTABLISHED /proc/net/ip_conntrack の例 ))
tcp  6 431545 ESTABLISHED
src=192.168.zz.xx dst=192.168.zz.yy
sport=52888 dport=993
src=192.168.zz.yy dst=192.168.zz.xx
sport=993 dport=52888
[ASSURED] mark=0 use=2

うーむ、コネクションが残っているのは、dport=993(imaps)ばっかりだな… 職場では、トラブル時にはSkypeが疑われたし、わざと Skype を起動する。 しかし、特に ESTABLISHED が増加するって程ではない…

Spamドメイン登録者が山田太郎って

自宅に連続して届く競馬関連のSpamだけど、 フィルタで分別できるとはいえ、腹の立つ相手。 んで、ドメイン登録を調べてみたけど、以前ならそれなりに責任者っぽい名前が見つかったけど、 今回はドメイン登録者が「山田太郎」って…. しかも、2011/8/3に登録して、8/4には自宅にメールが届いてる。 ドメイン登録代行業者も、もう少し厳しいチェックをしてほしい。

メールの、From 以外にも、Reply-To: に書かれている、chance-pinch.net も、 ドメイン登録を調べたけど、これまた"Yamada Taroh"だった。

USBRHをnagiosで警告メール

muninを使って、USBRHで室内温度の警告をさせていたけど、 警告状態になった時の連続メールがうざいので、 スクリプトを間に入れたけど、動きがおかしいので、 監視を nagios3 にさせてみようと実験。

nagiosであれば、管理画面で警告メールの送信などを、Webで止めたりできる!!

nagios3 でチェックするには、check_XXXX といったプログラムが必要だけど、 USBRH では、自作する必要がある。普通ならperlを使うんだけど、 簡単な処理で、巨大なPerlインタプリタを実行するのは避けたい。 以前から、モジュール機能の無い「組み込み専用Perl」が無いかと、 物色していたけど、Lua というプログラム言語を見つけた。 というわけで、初めての Lua で、check_usbrh を作ってみた。

(( Luaインストール ))
# aptitude install lua50
(( /etc/nagios3/my-plugins/check_usbrh ))
#!/usr/bin/lua
-- arg[1] warning
-- arg[2] critical
if table.getn(arg) < 2 then
print( "UNKNOWN" )
os.exit( 3 )
else
warning  = tonumber( arg[1] )
critical = tonumber( arg[2] )
end
fh = assert(io.popen("/usr/local/bin/usbrh","r"))
temp = tonumber( fh:read("*n") )
hum  = tonumber( fh:read("*n") )
fh:close()
if temp >= critical then
print( string.format( "USBRH CRITICAL - %4.2f,%4.2f%%" ,
temp , hum ) )
os.exit( 2 )
elseif temp >= warning then
print( string.format( "USBRH WARNING - %4.2f,%4.2f%%" ,
temp , hum ) )
os.exit( 1 )
else
print( string.format( "USBRH OK - %4.2f,%4.2f%%" ,
temp , hum ) )
os.exit( 0 )
end
(( /etc/nagios-plugins/config/usbrh.cfg ))
# 'check_usbrh' command definition
define command{
command_name    check_usbrh
command_line    /etc/nagios3/my-plugins/check_usbrh
'$ARG1$' '$ARG2$'
}
(( /etc/nagios3/conf.d/localhost_nagios2.cfg ))
# USBRH
define service{
use    generic-service
host_name  localhost
service_description   USBRH
check_command  check_usbrh!32!35
}

Lua 、こりゃ、ほんとに軽そうな言語。数値が絡んだら、awk とか使ったりしてたけど、 これならsh変わりにも使えそう。

Google+を使ってみる

Google が始めたFacebookもどきの"Google+"を試してみる。 Facebookはしないという人でも、"Google+" であれば Google アカウントを 持っていればすぐに使えるので、利用者拡大という意味では、 後発のGoogleとはいえあなどれない。

ついでに、自宅サイトと職場サイトに、"+1"ボタン(Facebookの"いいね" or "Like"ボタン)の設置をしてみた。説明に従い、MovableType にて、下記の設定を埋め込んでみた。

(( 以下のコードは<head></head>に設置 ))
<script type="text/javascript"
src="https://apis.google.com/js/plusone.js">
{lang: 'ja'}
</script>
(( 以下のコードは設置場所に ))
<g:plusone></g:plusone>

んで、この設定を追加している途中で、Facebookのいいねボタンの設置で、 URLの部分のGETパラメータを渡す、変数区切り文字"&"が、 "&amp;"に化けていたので、うまく動いていないことが判明。 早々にこちらも修正&再構築。

arpalertを使ってみる

Wi-Fi経由の勝手な接続などの検出ということで、arpwatchを使っていたけど、 携帯で3G経由で使った後だと、そのアドレスでWi-Fi接続を試すため、 いちいち警告メールが届くのが紛らわしい。 そこで、別のARP監視システムを探してみた。

arpalert は、監視して whitelist とか、発見時のスクリプトを指定できるので、 もう少しきめ細かな警告ができそう。

Debianのパッケージで入れて、警告時に起動するスクリプトに、付属のスクリプトを修正して登録してみた。動かすとサーバ自体の警告メッセージが送られてきた。 原因は、古いサーバとの互換性を考えて、1つのインタフェースに2つのIPアドレスを割り振っているためだった。チェックの度に、2つのアドレスで変わっているとみなされている。 しかたがないので、maclist.allow の最後に、ip_change フラグを付けて、 アドレス変化を無視させる。

(( インストール ))
# aptitude install arpalert
(( /etc/arpalert/arpalert.conf ))
Debianのパッケージをそのまま。
(( /etc/arpalert/maclist.allow ))
xx:xx:xx:xx:xx:xx 192.168.xx.xx eth0
xx:xx:xx:xx:xx:xx 192.168.xx.yy eth0 ip_change
xx:xx:xx:xx:xx:xx 192.168.xx.zz eth0 ip_change
(( /etc/default/arpalert ))
ARGS="-e /etc/arpalert/send_alert.sh"
(( メール送信のひな形をコピー ))
# cp /usr/share/doc/arpalert/examples/scripts/contribs/send_alert.sh /etc/arpalert/
(( /etc/arpalert/send_alert.sh ))
#!/bin/sh
# Intruder MAC address
intruder_MAC=$1
# Intruder IP address
intruder_IP=$2
# Alert Type
intruder_AlertType=$5
# Ethernet Vendor
intruder_Vendor=$6
# Mail recipient
mail_To="root"
date=`LANG=C /bin/date`
# Subject
mail_Subject="[arpalert] IP/MAC alert"
# Body and send mail
cat << EOF | mail -s "$mail_Subject" $mail_To
[arpalert] Intruder Detected
Intrusion time stamp : $date
Intruder IP  Address : $intruder_IP
Intruder MAC Address : $intruder_MAC
Type of alert : $intruder_AlertType
Ethernet Vendor: $intruder_Vendor
EOF

サーバの警告メールが届かないと思ったら…

自宅サーバのnagios3の状況監視の設定を少し変更していたけど、 警告メールが届かない。そういえば、munin の警告メールも届かない。 そういえば、数日前、携帯の迷惑Eメール防止設定を変更したっけ。

受信許可ドメインの設定ついでに、なりすまし規制の設定レベルを (高)を選択したのが原因っぽい。 自宅サーバはDynamic DNSの設定で、丹南ケーブルTVのサーバ経由で メールを送信している。このため『なりすまし』扱いをうけやすいんだった….

メールのウィルス除去postfix+amavisd+clamav

気まぐれで自宅サーバの受信メールのウィルス除去の設定。 その前に、自宅サーバ宛のメールなんてめったに来ないけど…

Debian postfix clamav にて見つかったページを参考にする。

(( インストール ))
# aptitude install amavisd-new
(( /etc/postfix/main.cf ))
# amavisd設定
content_filter = smtp:localhost:10024
(( /etc/postfix/master.cf ))
# amavisd設定
127.0.0.1:10025   inet  n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o myhostname=localhost

/usr/share/doc/amavisd-new/README.postfix.html を見ると、 amavisfeed とか書いてあるけど、contents_filterのsmtp の欄に amavisfeed とかを 書く設定があるけど、よくわからないんだよなぁ…

Thunderbird 5.0 になったけど

メールソフトのThunderbirdが5.0になった。 Firefoxとバージョン番号の統一で、4.0すっとばし。 でも、公開されたばかりで、多少のトラブル。

まず、プラグインが未対応なのが困る。時間の問題とは思うけど、 Google Contactsがダメ。Gmailの連絡帳の同期がされないのは致命的だ。 それに、ThemeでMacのAqua風のものが未対応。シンプルなテーマがいい。

あと、最近になってようやくIMAP対応になった、yahoo.co.jp をThunderbirdで読んでいるけど、 "[CLIENTBUG] ID is not a valid IMAP Command" なるエラーメッセージが 表示される。IMAPコマンドの実装の不完全さの問題にみえるし、ぐぐれば対応策が すぐに見つかると思ったけど、思ったほどみつからない…


どーでもいいけど、Thunderbird 5号は宇宙ステーションだったか… 小さいころ、プラモデル作ったのを思い出した…

munin-limitsの警告を最小限に…

(2011/7/7追記)どうも、以下のプログラムでは、メール送信プロセスが 正しく終了せず、メール送信プロセスが溜まってしまう。 muninのcontact.XXX.command にスクリプトを書くのはまずいみたい。 "/usr/bin/perl /…PATH…/notify.pl…" とすれば動いた。 どうも、command にスクリプトが書いてある場合"sh -c" してくれているんだけど、 何か不具合があるような…

muninで、USBRTの温度監視ができて、munin-limitで警告メールがだせるようになった。 でも、本来の目的は家猫の体調のためなので、警告温度は34℃ほどに設定したら、 設定温度を越えたら5分おきに、ずーっとメールが届く。 さすがに、職場じゃ大量のメールが届くので、状態が閾値を越えたときにだけメールが欲しい。

メールを送るスクリプトに、warning,criticalのデータ件数をつけて呼び出すようにして、 件数が変化していなければ、メールを送らないようにした。

(( /etc/munin/munin.conf ))
contact.nagios.command \
/usr/bin/perl /etc/munin/my-plugins/notify.pl \ # (7/7修正)
"${var:numwfields}:${var:numcfields}" \
"[Munin] tsaitoh.net" \
携帯メアド

(( notify.pl ))
#!/usr/bin/perl
exit 0 if ( @ARGV < 3 ) ;
my $stat = shift @ARGV ;
my $subj = shift @ARGV ;
my $mailto = shift @ARGV ;
my $last_file = "/var/run/munin/munin.last-stat" ;
my $last_stat = "" ;
# 前回の状態を読み込む
if ( open( FH , "$last_file" ) ) {
$last_stat = <FH> ;
chomp( $last_stat ) ; # chompの使い方間違ってた...
close FH ;
}
if ( $stat eq $last_stat ) {
# 状態の変化がなければ報告しない
exit 0 ;
} else {
# 状態を記録しておく
if ( $stat eq "0:0" ) {
unlink( $last_file ) if ( -f $last_file ) ;
} elsif ( open( FH , ">$last_file" ) ) {
print FH "$stat\n" ;
close FH ;
}
# 報告を送信する
if ( open(FH,"|/usr/bin/mail -s \"$subj\" \"$mailto\"") ) {
while( <> ) {
print FH $_ ;
}
close FH ;
}
}

自宅内のDNSのExpireなどを短く

Android端末で、ほぼGmailなどは、いつでも読める状態だけど、 自宅メールサーバへの接続に失敗することが発生。 多分、自宅でメールを読んだ時のIPアドレスを覚えていて、 自宅外(もしくはWiFi状況が悪くてG3経由になっている時)で、 そのアドレスを使おうとして、繋がらないなどのトラブルが発生しているように思う。 ということで、自宅内DNSサーバのSOA情報を短くする。

$ORIGIN tsaitoh.net.
;
$TTL    604800
@  IN SOA  perrine.tsaitoh.net. root.perrine.tsaitoh.net. (
3     ; Serial
600     ; Refresh
300     ; Retry
600     ; Expire
180 )   ; Negative Cache TTL

あれ??、$TTLも短くするんだっけ?

Google 検索

My Google   Yahoo

Microsoft

ファンサイト