たかちゃん。

9月 212013
 

自宅の無線 LAN 機器で 802.11n の 5GHz 帯を利用する機器が増えて来たので、 BB ルータ兼無線 AP ポイントを買い換えました。今まで利用していたのは Aterm WR8500N でした。こいつは有線 LAN が GbE で無線 LAN は 802.11n に対応しているんだけど 2.4GHz と 5GHz が同時に利用できないので、今回は同時利用可能なものを購入した。と、いう感じなのであります。

今回購入した Aterm PAWG600HP は一応新製品ですね。でもって 有線 LAN は RJ45 の GbE で無線側は 802.11n で 2.4GHz と 5GHz の同時利用可能。僕は今回同時利用可能な製品を初めて購入したのですが、 同一の SSID で 2.4GHz 帯と 5GHz 帯を利用できるのかと思っていたのですが、そんなことはなく、それぞれ SSID が変わるのですね。これを同時利用というのか? f(^^;;。

IMG_5660_WG600HP_1

後ろ側が今まで利用していた WR8500N で、手前が今回新しく購入した PAWG600HP です。

NEC 製品を連発で購入していますが、 Aterm には設定画面において「ポートマッピング設定」で TCP のプロトコル番号も転送できるのでそれが嬉しい点ですね。まぁ、今時 TCP のプロトコル番号 41 を転送する人も少ないと思いますが;-)。

あと、最近は NTT の ONU にも Aterm OS (と、言って良いのか?)が利用されている機種もありますね。スゲーメジャーになった。と、いうことで安心して Aterm は利用できそうです。

 
さてさて。自宅の無線 LAN が 5GHz 帯を利用できるようになったので早速 iPhone5+iOS7 で通信テストをしてみました。

RBB のスピードテスト App を利用してみました。

IMG_5731_WG600HP_2

いやー。驚きの速さですね。 iPhone5 には隣の家の SSID も見えたりするので AP は多いと思うのですが、それにしても 5GHz 帯は利用する価値がありそうです。

・・・。

って、ちょっと待ってよ。 LAN 内の Gigabit Network で接続されている機器間の通信ならいざ知らず、大手町にあるサーバに対して 80Mbps も出るんかい? ボトルネックは NTT の B’Frets 回線網ではないんかい? などと思えて来ました。うちの B’Flets は 80Mbps も出るんかい? あやすぃー。みたいな;-)。

中々速い 5GHz 帯の AP が自宅にやって来た。と、いうお話なのであります。

それにしても余った WR8500N はどうしよう・・。

9月 102013
 

以前のエントリで「xmodmap と setxkbmap。」というのを書いているのですが、そのときに xmodmap -pke というコマンドを打ってみて、このコマンドが出力した情報をじっくりと眺めてみると何やら色々な設定があるようなので試してみることにしました。

色々な設定というのは、例えば NotePC において Fn キー + テンキー同時押しでボリューム調整を行う、であるとか画面の明るさを変更する、であるとか suspend/resume であるとかその辺りのことができるようなんですね。

IMG_5632_NotePC_Fn+10Key

通常この辺りの制御は ACPI のほうでやっていて、以前であれば、僕の場合、今回は ThinkPad X100e で試してみましたが、 acpi_ibm.ko というのを kldload して /usr/local/sbin/acpi_oem_exec.sh とかを作成して呪文のような文字列と数値を書いて devd に対応させる。というのが一般的だったんですけども。
まぁ、その辺りは man acpi_ibm してみて、その内容でスクリプトを書くんですけど、なんか大変そうで「動かなくてもいやー。」となっていたんですね。

今までは ACPI で制御していた Fn キー + テンキー同時押しの機能がどうやら xmodmap でできるらしいんですね。と、いうことで早速設定してみましょう。
まずは xmodmap -pke でどんなオプションが指定できるのかを探してみます。

$ xmodmap -pke | grep XF
keycode  63 = KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply XF86ClearGrab
keycode  67 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1
keycode  68 = F2 F2 F2 F2 F2 F2 XF86Switch_VT_2
keycode  69 = F3 F3 F3 F3 F3 F3 XF86Switch_VT_3
keycode  70 = F4 F4 F4 F4 F4 F4 XF86Switch_VT_4
keycode  71 = F5 F5 F5 F5 F5 F5 XF86Switch_VT_5
keycode  72 = F6 F6 F6 F6 F6 F6 XF86Switch_VT_6
keycode  73 = F7 F7 F7 F7 F7 F7 XF86Switch_VT_7
keycode  74 = F8 F8 F8 F8 F8 F8 XF86Switch_VT_8
keycode  75 = F9 F9 F9 F9 F9 F9 XF86Switch_VT_9
keycode  76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10
keycode  82 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract XF86Prev_VMode
keycode  86 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add XF86Next_VMode
keycode  95 = F11 F11 F11 F11 F11 F11 XF86Switch_VT_11
keycode  96 = F12 F12 F12 F12 F12 F12 XF86Switch_VT_12
keycode 112 = KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide XF86Ungrab
keycode 214 = XF86Display NoSymbol XF86Display
keycode 215 = XF86KbdLightOnOff NoSymbol XF86KbdLightOnOff
keycode 216 = XF86KbdBrightnessDown NoSymbol XF86KbdBrightnessDown
keycode 217 = XF86KbdBrightnessUp NoSymbol XF86KbdBrightnessUp

 
なるほど。この中にキーボード配列に合いそうな XF86 なオプションを ~/.xmodmaprc に記述していけば良いんですね。などということが解りました。

上にキーボードの写真を掲載しましたがちっこくて見えないですかねf(^^;;。それに合わせて今回 ThinkPad X100e に設定したのは以下の通り。

keycode 140 = XF86AudioStop
keycode 176 = XF86AudioRaiseVolume
keycode 174 = XF86AudioLowerVolume
!
keycode 162 = XF86AudioPlay
keycode 144 = XF86AudioPrev
keycode 153 = XF86AudioNext
!
keycode 115 = XF86KbdBrightnessUp
keycode 109 = XF86KbdBrightnessDown

 
以前から Fn+F4 で suspend/resume は動作していたので今回は設定しません。

ボリュームの停止・大きく・小さくは動作しました。まぁ、KDE4 のパネルにボリュームウィジェットを表示しているのでそれで調整することも可能ですが、新たに Fn+ESC ・ Fn+F1 ・ Fn+F2 キーでできるようになった。と、いう感じでしょうか。

あと、音楽の曲飛ばし(Fn+F11)と戻り(Fn+F9)・停止と再生(Fn+F10)が動作しました。利用したソフトは gmplayer で 起動時に gmplayer *.mp3 とかして再生開始します。再生している最中に Fn+ キーを押すとそれが有効になりました。けど、考えてみると gmplayer のほうにも曲飛ばしとか停止のキーバインドはあるわけでして、無理して Fn+ キーに設定する必要は無いのかなぁ;-)。

XF86KbdBrightnessDown と XF86KbdBrightnessUp は動作しませんでした。と、いうか、Fn+ のキーがもう無いんですね。 xev で keycode を取得しようとしても取得できないキーが何個かありました。
現在、画面の明るさ変更については ACPI で行っています。 kldload acpi_ibm.ko すると acpi_ibm.0.lcd_brightness という sysctl mib が生えてきます。ここに値を設定してあげると画面の明るさが変わるのですが、shell スクリプトを書いてそれを実行することにより明るさを変えています。

その他に何かできないのかな?などと思ったのは外部ディスプレーの切り替えとか。 xmodmap 的に何かパラメータはあるのかな?と思ったのですが特に無いようなので諦めました。
ではどうするか?というと、KDE4 では KDE システム設定の中に「ディスプレーとモニタ」という項目があってここから LCD か外部ディスプレーにするか変更ができるのでそれでやることにしました。なので X の再起動とかは必要ありません。調べてないんだけどこの辺りは xrandr が面倒見ているのかな?

 
と、いうことで、以前は ACPI のほうで設定していた内容がいとも簡単にできるようになったのは良いことですね。ただ、本当にその設定が必要か? 聞かれれば「特には困っていない。」のであまり必要ではないんですけどねf(^^;。キーボードに書いてあるのでそれに合わせてキーをマッピングしてみた。と、いうのが素直な感想で。けど、簡単に設定可能なものは一応設定して見ましょう。という内容のエントリなのであります;-)。

9月 082013
 

前回のエントリでは自分で購入した Socket754 の Sempron3100+ を掲載しました。サーバで利用するために Cool’n’Quiet に対応しているモノを買い直したので手元に二つあったんですけどもね。

でもって今回登場するのは Socket754 の Athlon64 です。僕自身が Socket754 を利用していたときは Sempron しか利用していなくて、 Athlon64 は Socket939 から利用し始めているんですね。

で、Socket754 の Sempron は持っているので、コレクションとして Athlon64 を手元に置いときたいなぁ。と思いオークションとか捜すのですが、手頃な価格で中々無いのと、そもそも Socket754 の Athlon64 というのは全体的に少ないのではないのかなぁ? などと思ったのであります。

なんとか手に入れたのがこんな感じ。

CPU クロック(と、いうかモデルナンバ)は 3200+ なのでコア的には Palermo になりますね。

Socket754_Athlon64_1

こちらが裏側です。

Socket754_Athlon64_2

ふーむ。 Socket754 の Athlon64 だぁ;-)。

実際には利用したことが無い CPU なので思い込みはあまり無いのですが、なんとかようやっと手元に置くことができた。と、いう点では嬉しい一品です;-)。

 
Socket754 は 130nm のプロセスツールで作られた Paris コアと、前回と今回で掲載した 90nm プロセスツールで作られた Palermo コアの二つがあるんですよね。 Paris コアは Sempron だけですが、機会があればまた手に入れてみたいと思います。

さてと。 Socket754 は Sempron と Athlon64 だけではないんですね。それは次回に;-)。

9月 042013
 

夏休みを利用してインドに旅行に行ってきました。その時に利用した携帯電話についてちょっと書いてみたいと思います。

がっ!! 僕は SIM フリーな NOKIA の Lumia620 を持っているのですが、こいつは MicroSIM で、事前に情報を調べてみたのですが、利用しませんでした。と、いうことで今回は Wi-Fi についてちょっと書きます。

持っていった携帯電話は SoftBank の iPhone5 と docomo の SP-mode から mopera U を利用して通信を行う NOKIA Lumia620 です。これらの機器を利用して飛行場やホテル、街中の Wi-Fi ポイントにアクセスして利用しました。

まず、成田空港から飛び立ち、トランジットで上海の浦東空港に立ち寄りますが、降りた瞬間に電源をオンにして機内モードもオンで Wi-Fi もオンにします。飛行場で Wi-Fi を利用したのは上海の浦東空港とインドのデリー空港の二か所でした。で、どちらも無料の Wi-Fi ポイントが利用できるんですね。あ。当然成田空港でも利用できますが;-)。

アクセスポイントに接続すると認証画面が出てきます。フツーにパスワード無しでログインできるのかと思いきや、以下の手順で利用可能な状態となります。

1. ユーザ登録用ウェブページにアクセス
2. 電話番号とメールアドレスを登録
3. すると電話番号に SMS でパスワードが飛んでくる
4. 飛んできたパスワードを利用してログイン
5. ログイン後は利用可能

をいをい。海外用の SIM 無いし、機内モードだし。と、いうことで実質的にパスワードを受信することができないんですね。あたたた。

IMG_5573_Wi-Fi_1

どーしたもんかいのぉ。などと悩んでいて、いよいよ docomo の海外ローミングサービスである WORLD WING を NOKIA の Lumia620 で利用しようかと思い機内モードをオフにして地元のネットワークに接続したところで SMS が二つ飛んできました(@_o)。

一個は docomo からで「WORLD WING を利用するにはローミングをオンにしろ。」とのことでした。あれ?すると、ローミングをオンにしない間は WORLD WING の料金は発生しないということかい? でもって docomo から飛んで来た SMS は案内なのでどうやら無料らしい。

で、もう一通はと言うと、先ほど Wi-Fi で登録したアカウントのパスワードが飛んできました(@_o)。あれ!?

IMG_5574_Wi-Fi_2

と、いうことで浦東空港とデリー空港で Wi-Fi を利用する場合の手順はもうお分かりですね;-)。ちょっと書いておきます。

1. 携帯電話を機内モードをオンにしてキャリアとの接続を断つ
2. Wi-Fi をオンにして無料 Wi-Fi に接続してユーザ登録する
3. 機内モードをオフにしてしばらく待ち海外キャリアに接続する
4. SMS が飛んできたところですかさず読む
5. 機内モードをただちにオンにする
6. SMS で届いたパスワードを入力して Wi-Fi を利用する

今回は docomo の回線で上記のようにしました。八月最終週に海外に行ったので、九月に入って八月の請求を見ても特に海外で課金されている様子はありませんでした。

と、いうことで SIM フリーな携帯端末だからこういうワザが利用できるのかもしれませんが、もしかしたら SIM ロックの端末でも同じ動作かもしれません。

ミソは『ローミングオフ状態で SMS が届く』ところでしょうか。

 
それにしても海外の通信キャリアに接続していないと Wi-Fi が利用出来ない飛行場のサービスにも問題はあるような気がしますが、上記の手順で一応 Wi-Fi が利用できたのでヨシとしておきましょう;-)。

 
あ。ここに書いてある内容をそのままやってみて、万が一高い通信料金などが請求されても筆者は一切責任は持ちませんので自己責任でお願いします。

 
そもそも、日本国内では技適を取得していない NOKIA の Lumia620 はネタ的には中々書きづらい部分があるのですが、海外においてはおおっぴらに利用できてその内容について色々書けるのが嬉しいですねぇ。

一番良いのはインドでプリペイド SIM を買ってきて docomo でローミングってのが、記事を書くのには良いんですけどね;-)。

8月 192013
 

以前のエントリで「ibus-mozc を使う。」というのを書いているのですが、このときは mozc を ibus 経由で利用します。と、いうネタが基本でしたが「僕はかな入力の人なので、かな入力時の “ー” 問題ががあります。」と書いています。

その時は xmodmap で以下の設定を行うことにより回避していました。詳細についてはリンク先のエントリを読んでみてください。

keycode 133 = bar bar bar bar

 
しかし、最近の ports-current を利用していて、とあるタイミングから USB キーボードを抜き差しすると上記 xmodmap の設定がチャラになって(消えて)しまう事象に悩んでいたのであります。

色々調べてみると xorg.conf の設定で hal を利用していた場合に原因があることが解ってきました。以下に事象を箇条書きにしてみます。

o. USB キーボード利用時に(USB KVM などで)キーボードの抜き差しを行なったあとに利用すると xmodmap の設定が消えている
o. USB キーボードを X が hal 経由で認識しているときにその問題が発生する
o. hal はどうやら setxkbmap を利用して xmodmap の設定を飛ばしてしまうようだ
o. USB キーボードを認識したところで xmodmap を実行すると再度キーバインドが有効になる

と、いうような状況。

そもそも mozc をかな入力で利用していない人にとっては “\” (バックスラッシュ)を “|” (バー)に割り当てる必要は全く無いわけでして、なのでこの問題に遭遇することは無いと思われます。

 
と、いうことで、ここからはどうしてもキーバインドを変更したい人にとっては重要な内容になるのであります。
そして、ある程度原因が特定できたので、ここから先は xmodmap と setxkbmap の対比について見ていくことにしましょう。

上記 xmodmap の設定において “\” の keycode は 133 です。これは xev(1) でキーを調べたり xmodmap -pke コマンドで、現在 133 に何が割り当てられているか確認すれば良いので比較的容易に調べられます。まぁ、昔からある枯れた確認方法ですしね。

それにしても xmodmap で指定した設定が setxkbmap のどれに対応するのか解らない。 hal を利用していて Ctrl と CAPS Lock を入れ替える場合には以下の設定を /usr/local/etc/hal/fdi/policy/10-keyboard-jp106.fdi 辺りによく書いています。

<merge key="input.x11_options.XkbOptions" type="string"> ctrl:nocaps</merge>

 
で、 setxkbmap もこの形式を引きずっているようで、オプションパラメータが合えば受け付けるんでないかなぁ。

$ setxkbmap -option bar:nobackslash

 
上記コマンドのオプションの法則をまるて理解してなくて実行しているんですが、これでは backslash が bar に置き換わりませんでした。もーしょうがないので色々調べることにします。

xmodmap は xev で値を確認したり -pke オプションで表示された情報に従って動作していることが解ります。なのに setxkbmap ってどうやって設定するのぉ?って。調べていくと /usr/local/share/X11/xkb/ 内のファイルを各種参照していることが解ってきました。でもって以下のコマンドで参照しているファイルが確認できそうです。

$ setxkbmap -print
xkb_keymap {
        xkb_keycodes  { include "xfree86+aliases(qwerty)"       };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete+japan"        };
        xkb_symbols   { include "pc+jp" };
        xkb_geometry  { include "pc(pc104)"     };
};

 
上記の結果で確認する必要があるのが xkb_keycodes と xkb_symbols です。

xkb_keycodes は xfree86 だね。ってことはファイル的には /usr/local/share/X11/xkb/keycodes/xfree86 になります。 xmodmap では keycode の 133 の値を変更したかったので 133 で grep してみるとっ!! おーーっ!! <AE13> = 133; って行が見つかりました。

でもって xkb_symbols を見るとと今度はファイル的には /usr/local/share/X11/xkb/symbols/jp を参照していると思われます。

なるほどー。これで xmodmap と setxkbmap との関連性がそこはかとなく解ってきたような気がします。
しかし、それにしても setxkbmap -option に指定する記述方法がいまいち解りません。しょうがないので直接設定ファイルを変更してしまうことにしましょう。

あ。ちなみに setxkbmap -option に指定した形式は 上記 hal の 10-keyboard-jp106.fdi に input.x11_options.XkbOptions に設定してあげるだけで良いみたいなんですけどね。形式が解れば直接設定ファイルを変更する必要は無いんですけども。

と、いうことで /usr/local/share/X11/xkb/symbols/jp のファイルを以下のように変更してあげます。変更する項目は先程確認して <AE13> だということが解っていますね。

//  key <AE13> { [ backslash, bar       ] };
    key <AE13> { [ bar, bar   ] };
        :
//  key <AE13> { [ backslash, bar       ] };
    key <AE13> { [ bar, bar   ] };

 

<AE13> の項目は全部で二つあったので両方とも直しました。あとはマシンを再起動して X が起動したあとにログインして USB キーボードを抜き差しして動作確認を行い xmodmap で指定していた値が変わらなくなったことを確認します。

 
今回はたまたま mozc のかな入力のキーバインド変更のための設定変更でしたが、通常 CAPS Lock と Ctrl キーの変更などはウェブ上にゴロゴロしていますよね。そーじゃないちょっと変わったキーの変更を hal 経由の場合に継続的に持続する場合についての探し方などについてまとめてみました。

多分、他のキーについても上記の方法で行けるのでは無いかと思われます。

それにしても setxkbmap -option の記述方法知りたいなぁ。オプションに指定する方法などを知っている方いましたら教えて頂ければと思います;-)。

8月 182013
 

ずいぶん前、それは多分 pgp2.6 辺りが流行っていたころだと記憶していた頃に聞いた話ですが、フランスでは民間人の暗号化された情報のやりとりは禁止されている。ってことらしいですが、それが本当の話か、はたまた全然間違いだったのか? というのは確認してないので定かではないのですが、そんな話を耳にしたことがあります。

最近の出来事としてはマルウェアだかトロイの木馬だかで情報がごっそり、特定のサーバに送られてしまう。なんて話も聞きますが、FreeBSD は安心さー。みたいな感じで。あぁ、確かに利用者数からしても Linux や Solaris よりは圧倒的に少ないとは思うのですけどね。それでも Mac OSX でも最近はちらほらと話は聞くので、 ID やパスワードを書いたテキストファイルをデスクトップに置いといてもちょっとアレですね。

と、いうことで、そーいう重要なファイルなどは暗号化して持っていることにしましょう。と、いうのが今回のエントリの趣旨です。

利用するのは openssl で暗号化形式は des3。 パスワードとか住所とか書かれているファイルを普段は暗号化して持っていましょう。って感じでちょっとスクリプトを書いてみました。

#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin/:/usr/local/bin
export PATH

desfile=`echo "${HOME}/.data/Encryption_txt.des3"`
orgfile=`echo "${HOME}/.data/Encryption_txt"`
oldfile=`echo "${HOME}/.data/Encryption_txt~"`

case $1 in
'-d' )
    if [ -f $orgfile ]; then
	openssl des3 -salt -in $orgfile -out $desfile
	if [ -f $oldfile ]; then
	    /bin/rm -f $oldfile
	fi
	if [ -f $desfile ]; then
	    /bin/rm -f $orgfile
	fi
    else
        echo "$orgfile is not found.";echo ""
    fi

    ;;
'-u' )
    if [ -f $desfile ]; then
	openssl des3 -d -salt -in $desfile > $orgfile
    else
	echo "$desfile is not found.";echo ""
    fi
    ;;
* )
    echo "usage : Encryption.sh { -d(des) | -u(undess) }"
    ;;
esac

exit 1;

 
こんな感じでどうでしょうかねぇ?

色々人に見られたくない情報が書かれたファイルは ${HOME}/.data/Encryption_txt というヤツです。
上記のスクリプトを例えば Encryption.sh という名で保存してオプションに -d を指定すると openssl des3 で暗号化するためにパススレーズを二回入力します。

Encryption_txt と、いうファイルは ${HOME}/.data/Encryption_txt.des3 という名で保存されます。その時、 emacs で編集していれば ${HOME}/.data/Encryption_txt~ ファイルは削除します。

解凍するときは -u オプションを指定してパスフレーズを入れると解凍されます。

これで個人情報はそこそこ守れるかな?

あとは逆に、辞書攻撃しかけて des3 の強度と CPU パワーの確認。なんてのにも使えそうです;-)。

まぁ、気休めかもしれませんが、ベタなテキストファイルで持っているよりは『安心』と、いうことで。

もし、上記スクリプトを利用して大切な情報がどうか(ファイル自体が消えたり、あっという間に解読されたとかその他諸々)なっても僕は一切責任を持ちませんので自己責任でお願いします。

ちなみに動作的には FreeBSD と Mac OSX で確認しています。僕は Linux はデスクトップでは利用してないので;-)。

8月 152013
 

このサイトのドメインは running-dog.net ですが、DDoS 攻撃を受けました。そのときに取れた情報をちょっとまとめてみましたのでここに公開してみたいと思います。

まず、第一にですが、running-dog.net はさくらのレンタルサーバ上にあります。 このサービスはそれなりに制約があって、その範囲内で DDoS 対応するのですが、以下に制約についてまとめてみました。

・root 権限は無いため全てを .htaccess で行う必要がある
・ログは一日一回前日分が 00:05 頃に蓄積される
・ssh ログインはできるので Jail の ps -ef とか ファイル名変更などは行える

こんな感じで DDoS に対応した。と、いう感じです。

では今回の DDoS について色々情報が取れたので順番に見ていくことにしましょう。

1. DDoS の時間帯

開始時間: 2013/08/13 22:42 に第一発目
収束時間: 2013/08/14 04:40 ころ
完全終了: 2013/08/14 07:21 ころ

夜中から始まって、僕が DDoS を受けているのに気がついたのは 23:00 頃です。そこから色々対応して行きました。と、いってもそんなに色々できませんけど;-)。

ちなみに DDoS 受けている時はウェブの表示はしてくれません。 さくらインターネット側で特定のプログラムが負荷をかけていると Server Error (Code:500) を返すようにしています。

 
2. DDoS 対応第一弾
まず、DDoS は WordPress の wp-login.php に対して大量のアクセスを行う。ってことでした。 Jail 環境下のさくらのレンタルサーバでは ps(1) ではいまいち解らないのですが、ロードアベレージが 15 とかまで上がっているので「何かあるな。」と、言う状態です。

まずは少ない情報ながらも index.php を index.html (現在メンテナンス中)に差し替えます。そして wp-login.php も名前変更して Not Found (Code:404) を返すようにしてあげます。 wp-login.php は MySQL へアクセスするので、その負荷を軽減しました。

第一段はここまで。時間的には 13 日 23:45 くらいでしょうか。apache のログは 00:05 ごろに蓄積されるはずなので続きはそのログを見てから。

 
3. DDoS 対応第二弾
風呂に入ってさっぱりした後、13 日分のログが蓄積されたようなのでいよいよログを解析してみます。あとでまとめた情報を公開しますが大体 2,500 箇所くらいからアクセスがあるようですね。分間 20 アクセスくらいでしょうか。少ないように感じますが、レンタルサーバなのでサーバ負荷はドドドと上がります。

アクセス元が 2,500 箇所もあるのでもうアドレスでの Deny from 制御は諦めました。で、ログを眺めていたら User-Agent が固定的だということに気付いたので、それでブロックすることにしました。まずは .htaccess に以下の設定投入です。

SetEnvIf User-Agent "Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0" STOP_Access
order allow,deny
allow from all
deny from env=STOP_Access

 

これで Forbidden (Core:403) が返るようになったはず。まぁ、今回はこれでヨシとしましょう。ちなみにこの設定を入れていると Windows を使っている人で Firefox19 を利用している人は(今でも)僕のサイトは閲覧できないのではないかなぁ。と思います。 ESR 系か Firefox23 にバージョンアップしましょう;-)。

この設定を入れたので wp-login.php が MySQL にアクセスすることはなくなったので名前変更していたファイルをもとに戻して index.php も設定して実質的にサイトは復活しました。復活したのは大体 14 日 00:13 頃です。

 
4. ログの解析結果
さてさて。今回は貴重なログが取れました。ログを解析した結果をちょっと見て行きましょう。まぁ、 root 権限が無いサーバなのでその他の情報とか取れないんですけどね。

・DDoS の時間は 2013/08/13 22:42 から 14 日 04:40:38 までだとして約 6 時間
・DDoS 攻撃の回数は 18,832 回
・DDoS の攻撃元 2,451 箇所

このサイトはついこの間 Movable Type から WordPress に変更したばかりです。 Movable Type はエントリ投稿時に全ての html を生成する静的コンテンツなのですが、 WordPress は php でデータベースアクセスしてコンテンツを出力する動的コンテンツなので DDoS には弱いですね。

さてさて、今回は 2,451 箇所から攻撃を受けましたが、一番多かったのは以下の二つから。

101 dynamic.vdc.vn
129 200.13.91.183-ftth.cmcti.vn

左側が回数で右側がドメインです。ベトナムですね。

もう一つ情報を。日本のドメインからもアクセスがありました。以下になります。ログには FQDN が残りましたが、今回は省いています。

2 .rev.home.ne.jp
2 .kanagawa.ocn.ne.jp
3 .dy.bbexcite.jp
3 .nagoya1.commufa.jp
3 .ap.plala.or.jp
3 .au-net.ne.jp
3 .zaq.ne.jp
5 .ap.yournet.ne.jp
6 .t-com.ne.jp
6 .nagasaki.ocn.ne.jp
12 .ppp11.odn.ad.jp

上記 ISP さんで、連絡頂ければ正確な FQDN をお教えしますよ;-)。 上記の 11 個の PC は BotNet に取り込まれている。と、いうことですね。

 
5. 最終的な対応策
やはり .htaccess でしか対応できないので、以下のようにしました。

<files wp-login.php>
    order deny,allow
    deny  from all
    allow from 192.168.1.1
    allow from 172.16.10.0/27
#   allow from 3ffe:210:fc42::/48
</files>

 
さくらのレンタルサーバは IPv6 には対応してないので IPv6 の設定の記述するとサーバエラーになります。

DDoS 攻撃のログを見てもログインしてアカウントを取得するようなログは残ってなかったのでただ単にサービス妨害にしか見えなかったのですが、それにしてもこのサイトのサービスを妨害してどうなるんだぁ?と思うのですけどね。
って話は横道にそれましたが wp-login.php はアクセスするのはほぼ僕だけなので、僕が利用するグローバルアドレス以外からのアクセスは止めることにしました。

httpd の負荷の軽減ではなく httpd から接続する MySQL の負荷の軽減を目標としています。
User-Agent の Firefox19 ですが、自分が 19 を利用するようになったときに考えてみたいと思います。もしくは再度 DDoS が来て User-Agent が変わっていたらそれに合わせて変更したいと思います;-)。

 
しかし、どうして running-dog.net が DDoS 受けるんだろうねぇ? それが不思議でしょうがないですが、僕に恨みを持っている人のシワザとか?;-)。

root 権限があればもっと色々できるとは思いますが、それにしても今回は貴重な体験をさせて頂きました;-)。
そして、こんなエントリ書いたら再度攻撃受けるかな? f(^^;;。

8月 132013
 

僕は Firefox というのはドドドとバージョンが激しく上がっていくヤツではなく ESR 版を利用しているのですが FreeBSD の ports 的に言うと www/firefox-esr になるわけですけども。

現在の最新の ports-current では firefox-esr-17.0.8,1 と、いうバージョンが利用できます。しかし、確か 17.0.8 になったときだと記憶しているのですが、メニューなどの日本語表示ができなくなってしまいました。でもって、僕は firefox の起動時には bing.com を表示しているのですが、これがあーた。英語サイトを default で表示してくれるようになったりと、言語環境がぶっ壊れチックになってしまったんですね。

いつも Firefox をインストールするときは以下をインストールします。あ。 potrs 的情報ですけども。

・www/firefox-esr
・www/firefox-esr-i18n
・www/xpi-quick-locale-switcher

日本語言語パックとアドオンの Quick Locale Switcher も合わせてインストールしているのにどうして日本語で表示してくれないのだ?と悩むのであります。

そもそも以下の事象が現れています。

1.アドオンメニューのアドオン一覧に「言語パック」メニューが表示されない。
2.拡張機能の項目の中に ports からインストールしたはずの Quick Locale Switcher が表示されない。

どもう見てもこれはおかしい。ってんで色々調べたのですが「アドオンメニュー」の「アドオン入手」から Quick Locale Switcher 1.7.8.8 をインストールすると表示されるようにはなってメニューにも[言語を変更]ってのが現れるんだけど、しかし、日本語表示できない。

で、色々調べた結果「アドオン入手」から入手したアドオン(拡張機能)は

$HOME/.mozilla/firefox/乱数.default/extensions/

にインストールされるんですね。かたや ports からインストールしたヤツは

/usr/local/lib/xpi/

にインストールされます。 で更に調査を進め、色々な firefox のオプションとか指定して試すんですけども、あれー?! ってことは Firefox は /usr/local/lib/xpi/ を参照してないんではないの? という結論に達しました。

と、言うことで ports からインストールした言語パックと Quick Locale Switcher を symlink してあげることにしました。

$ cd ~/.mozilla/firefox/乱数.default/extensions/
$ ln -s /usr/local/lib/xpi/langpack-ja@firefox.mozilla.org ./
$ ln -s /usr/local/lib/xpi/\{25A1388B-6B18-46c3-BEBA-A81915D0DE8F\} ./

 
上の symlinkは 日本語言語パック、下の symlink は UUID ですが Quick Locale Switcher になります。そのまま symlink しました。

あとは Firefox を再起動して各種設定を見なおして完了です。アドオンマネージャにも「言語パック」とか、 ports からインストールした Quick Locale Switche が表示されるようになった(今のところはバージョンでどっちからインストールしたかの判断は付きます)ので一見落着。

20130813_firefox_01

と、いうことでこの作業を行なったおかげで無事に Firefox の日本語表示が復活しました。
しかし、 /usr/local/lib/xpi/ は信用したらアカン。と、いうことかな? 今後はこの symlink をずっと残すことになるかもしれませんが、それはこのエントリを読んだ方の好きにして頂ければと思います;-)。

8月 062013
 

久しぶりに「CPU コレクション」です。
自分的には最近の CPU に対する掲載についてはあまリししょくが沸かなかったのですが、探していた CPU が手に入ったので久しぶりに書いてみます;-)。

今回掲載するのは AMD の Socket754 の Sempron です。モデルナンバ的には Sempron3100+ で、コア的には Palermo コアですね。僕は Athlon2000+ から Socket939 に行かずに一旦 Socket754 に行っています。でもって Athlon64 ではなくわざわざ Sempron のほうを購入したんですね。

それはなぜかというと、ただ単に「安かったから」になります。当時の Socket939 は高かったf(^^;;。そして、僕は CPU 収集家でもあるので「このタイミングで Socket754 買っておかないと一生手に入らないかも・・。」などと思ってしまったのも事実です。と、いうことで僕的に AMD64 は Socket754 が初めてになるのであります。

こちらが表側。

Socket754_Sempron_1

でもってこちらが裏側。

Socket754_Sempron_2

裏を見ると真ん中部分にピンが無いですよね。これが Socket939 とは違って Socket754 だなぁ。と思える部分です;-)。

実は、僕は Socket754 の Sempron は二つ買っています。最初は 2800+ を購入して、クロックアップするために再度買い直しました。あと、確か Cool’n’Quiet を使ってみたかった。ってのもあったかも。 2800+ って CPU 速度固定で、サーバ用途の CPU は省電力でないとなぁ。とか思って 3100+ を購入したと記憶しています。

もう収束していく Socket754 なのにねぇ。確か SlotA を買った時も似たような雰囲気の中で書いました。やはり収集家としての血が騒いだのでしょうなぁ。

この CPU は最初自分用のデスクトップ機として Albatron K8M800-754 というマザーボードで利用していました。その後デスクトップ機は Socket939 になるのでこの CPU を利用した PC は五代目の自宅サーバ用として利用されることになります。

8月 042013
 

以前のエントリで「X11 で Synaptics とタッチパッドの両方を利用する。」ってのを書きましたが、今回はそれのほぼ続編です。

と、いうのも以前のエントリでは X11 で Synaptics のマウスポインタとボタン、タッチパッドを同時利用するための設定を書きましたが、その設定では USB マウスを接続してもマウスが使えない状態だったんですね。

で、しばらくの間は NotePC に付属の二つのマウスが動くようになったので、まぁ、良いかー。とか思っていたのですが、やっぱり USB マウスが欲しい場合があるわけで、それならもう一度設定を見直して、Synaptics とタッチパッド、あと、 USB マウスが動作するようにしてみるかー。と、なり、このエントリを書くわけです。

以前のエントリで xorg.conf と rc.conf の設定を書いているので今回はそこに USB マウスの設定部分を加筆する感じで記載します。とは言いつつ、実は xorg.conf への設定追加のみでサクっと動作したので設定はらくちんです;-)。

以下の設定を xorg.conf に加筆する感じです。

Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0"   0 0
        InputDevice    "Mouse0"    "CorePointer"
        InputDevice    "Mouse1"    "AlwaysCore"
        InputDevice    "Touchpad0" "SendCoreEvents"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection
    :
Section "InputDevice"
        Identifier  "Mouse1"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/ums0"
        Option      "ZAxisMapping" "4 5 6 7"
EndSection

 
X11 で Synaptics とタッチパッドの両方を利用する。」のエントリで書いた設定は Mouse0 と Touchpad0 の設定を書きましたが、今回はそこに Mouse1 として Section “InputDevice” を登録します。そしてデバイスが一個増えたので Section “ServerLayout” に Mouse1 を追加します。

Section “ServerLayout” では既に Mouse0 で “CorePointer” を利用しているので Mouse1 では利用できません。では何を利用することになるのか? というと “AlwaysCore” を利用します。

これで USB マウスが利用できるようになります。でもって Synaptics とタッチパッドも同時に利用できるようになるので、合計三つのマウス全てが利用可能な状態になります。うひひ。

ただ、ですね。二点ほど注意点があります。

1. X を利用しない場合、つまりコンソール利用時には USB マウスが利用できないみたいです。
2. X 起動前に USB マウスを接続しておかないと利用できない。また、X 起動中に USB マウスを一旦抜いてしまうと以降は利用できない。

などがあります。 2. の場合は X を再起動すると再度利用できるようになります。どちらも多分設定で切り抜けられるのかなぁ? とは思うのですが、まだ調べてはいませんf(^^;;。けどもまぁ、今まで動作していたマウスの他に USB マウスも利用できるようになったので喜ぶべきなのでしょうなぁ;-)。

多分 2. の場合は hal 経由にしないと無理っぽいだろうなぁ。と、そこはかとなく感じていますが・・。