「サーバ」の最近のエントリー

Ubuntu9.04でサーバ構築2

| | コメント(0) | トラックバック(0) Ubuntu9.04でサーバ構築2

ちょっと息抜き.今日はMuninで温度やファン回転数を記録することに注力してみたいと思います.ちょっと難しいです.環境はHPのML115 G5です.

前回のlm-sensorsが失敗したので、
別のマシンですが、ml115にOpenIPMIを導入してみました。

vinelinuxで行いたかったのですが、
どうもapt-getしてもないようなので、素直にdebianにしました。

debianで、
apt-get install OpenIPMI
apt-get install ipmitool

とすると必要なソフトウェアがインストールされます。

その後、必要なモジュールをロードします。

modprobe ipmi_si
modprobe ipmi_devintf

grep ipmi /proc/devices
=>254 ipmidev

この数字を覚えておいて、デバイスファイルを作成します。

mknod –mode=644 ipmi0 c 254 0

以上で、上手く行けば、
ipmitool sdr
で温度等が表示されます。

また、起動時にモジュールをロードしたい場合は、
/etc/modulesに、
ipmi_si
ipmi_devintf
と追加記述することで可能なようです。
(ここの記述方法がよくわからない。alias指定をする場合とかが何故必要?)

hp prolliant ml115 debianでのOpenIPMI

この通りでok.日本語でok.英語で情報を探してもいいんだけど,日本語の方が嬉しいです!最高です!そんで,そんで,これだけじゃ不十分なので,/etc/default/ipmievd を変更します.

ENABLED=true

そんでもって,ipmievdが起動するようにおまじない.

# /etc/init.d/ipmievd start
# sysv-rc-conf ipmievd on

うは,おk把握.これでセンサー関連は上出来.あとはmuninと連携する.ここを参考にしました.一部追記します.

# wget http://muninexchange.projects.linpro.no/download.php?phid=579 -O ipmitool_sensor_
# cp ipmitool_sensor_ /usr/share/munin/plugins
# chmod +x /usr/share/munin/plugins/ipmitool_sensor_
# ln -s /usr/share/munin/plugins/ipmitool_sensor_ /etc/munin/plugins/ipmitool_sensor_fan
# ln -s /usr/share/munin/plugins/ipmitool_sensor_ /etc/munin/plugins/ipmitool_sensor_temp

/etc/munin/plugin-conf.d/munin-nodeへ以下を加える。

[ipmitool_sensor*]
user root
timeout 20
env.ipmitool_options sdr

tool/ipmiでの温度・ファン速度監視 - Linux Tipsより一部改変

超余裕って感じ?あとはいつも通りに,service munin-node restartで余裕系.こうして,サーバ監視の楽しみが増えたのであった.

この話はフィクションです.事実が知りたければ,手を動かせばいいと思う.

某所のサーバが2週間以上も停止しているのです.理由は簡単で,Macminiだから救援するにも救援できなかった.普通のサーバなら,HDDを交換するなり,マザーを交換するなり,電源を交換するなり,なんなりとやりようがあるのだが,Macminiはマザー交換も電源交換も簡単にできるものではない.というわけで,データサルベージだけして,入院させたわけです.結局は直らず(直さず)に帰ってきたわけですが.常識的に考えて,フェールセーフできるようなバックアップとまではいかなくても,すぐに復旧できるような素材は必要だと思うのだが,そんなものは全くないので,トラブルが起きたら,トラブル直撃間違いなし.

で.サーバが止まっているのは事実なわけですが,「修理に出した」「直ったら教えてくれ」とやり取りしているのに,「まだなおらんか」「まだか」「いつだ」と問われるわけです.要するに,直ったにもかかわらず報告しないような悪意を持った存在だと思われているようです.信頼と信用がないのはセキュリティ研究室の悪いところですね.誰もが信じられない.机の上のものに触るなといっても,何ら変わらないしね.不正なソフトウェアを使うなといっても,何ら変わらないしね.ここはもうダメだと思った.あ.フィクションですよ?リアリティに溢れてますが.

というわけで,自分の精神衛生を守るために,HPのProLiant G5を買ってみた.個人的には,HPのサーバ製品には信頼があると思っている.現に,過去5年間で3台使ってるけど,どれもがトラブルフリー(ハード的な意味で)です.もうね.サーバいじりなんて,情報系なんだから,誰もが当たり前のようにできて欲しいと思うわけですよ.誰も勉強する気ないみたいだし.いや,する時間がないんだと思うけど.もちろん,フィクションです.

さて,MacminiにはUbuntuの8.10が入っていました.復旧が目的なら同じ8.10を入れて丸っと上書きという手もありますが,それじゃぁ面白くないので,最新の9.04 amd64を入れてみました.今回のサーバの方針.サーバを設置したい箇所には情報コンセントがないのだが,ケーブルを取り回すことは美観を損なうから許可されないので,ハッキリ言ってやりたくない(というか現にダメだった)のだが,無線LANで飛ばすことにする.回線は根元にブロードバンドルータ(笑)を入れて,ポートフォワードでhttpとhttpsとsshのみ引き込む作戦.頑張れブロードバンドルータ(笑).バッファローのルータだから,信用が全く足りません.YAMAHAじゃないとダメだよね.

で.インストールします.今回はUNetbootinというUSBメモリからインストールできるようにするツールを使いました.いやー.これ,めちゃめちゃ便利ですわ.速いUSBメモリを使えば,読込みも速いし,五月蠅いDVDドライブともおさらば!サックサックで,Liveブートから40分くらいで初期ブート完了です.

まずはネットワークが繋がらないので,有線を繋ぎながら,コンソールで作業です.やるべきは,無線LANの有効化とSSHの設定です.トラブルにあいたくないので,情報を参考に,Ubuntuでの動作実績があるPlanex GW-USMicroNを採用しました.でだ.ハッキリと言わせてもらうと,参考情報の通りにやればドライバをインストールできて,無線LANが使えた.そこまでは良かった.だが,wpa_supplicantを使って自動接続設定を作ったところ,何故かドライバを読み込まなくなった.読み込まないってのは嘘で,起動後にinsmodしてやると動き出す.modprobeしても,/etc/moduleに書いてもダメ.意味不.ここで1時間は無駄にした.ここで無線LANは諦めて,有線で組むことにする.

基本的に,ここからは8.10のやり方をトレースするのみ.

トラブったこともいくつか.1番でかいのはBIND9.構成が特殊なので,内向きと外向きで同名ホストでも別のIPアドレスを返すという変態的な動作をさせている.これもあれも,自由に生IPを使えないからであって,自由に使えないこと自体は運用上は正しいと思うんだけど,そもそも情報コンセントの位置がアレだから,どんな高安全性運用してもムダ.焼け石に水.閑話休題.BIND9がいうことを聞いてくれない.自分以外のマシンからの問い合わせに全く答えないのだ.可能性はいくつかある.

  1. named.confの設定が悪い
  2. iptablesの設定が悪い
  3. 問い合わせているクライアントが悪い
  4. オレが全部悪い

4を選択するのが潔くて楽なのだが,問題の解決にならない.まず3.オレマシンは今日から7になってるので,今ひとつ挙動を掴みきれていないので,Vista君から試したのだが,結果は同じ.次に,どうせルータの内側にいるからという馬鹿げた理由で,iptablesを切ってみる.でもダメ.残るはnamed.confの設定の悪さだが,そんなはずはない.なぜなら,今までは動いていた設定ファイルをそのまま持ってきたんだ.動かないわけはない!原因は別にあるな.と,いろいろと悩むこと数時間.本当に数時間使った.ムダ.全く以てムダ.結果.resolvconfを削除したら,直りました.いみわからん.前の環境でもresolvconf使ってたんだが・・・.特に困らないから,削除の方向で.追試は面倒だ.

後々分かったことだが,9.04では/etc/network/interfaceで設定をしないらしい.GUIからやれって.なんだか,便利なような便利じゃないような?

ちなみに,ルータの内側だからiptablesをフル開放にしてみたんだが,どうにもルータの内側でも信用ならない.敵は内側にいるような気がする.なので,今回はiptablesのラッパであるufwを使ってみた.テラ簡単でワロスワロス.説明するまでもない使い勝手の良さ.難しいことをしないなら,ufwで十分ですね.

まとめ:
Ubuntu9.04でサーバを立てました.トータルでは7時間程度かかっていますが,結構はまったので,そこを除くと4,5時間程度でしょうか.ノウハウを最大限に利用しているとはいえ,本職じゃないのにこの程度で準備が整うのはかなり速いんじゃないかなーって思うんですがね.Windowsのインストールじゃないんだから,入れたらポンじゃないんだし.設定を確認したり,動作を見たり,色々としないといけないし,入れたらポンじゃないんだし.サーバを立てたことがない人(セキュリティに配慮しない人は除く)にはわからんのですよ.日頃から素サーバ立てをして訓練しているわけでも,砂場で遊んでいるわけでもないので,片手間にしては昼飯1回分と耳なり悪化程度で終わらせられるわけですから,快適な部類かと思います.情報系なのに,サーバ立てて遊べない,というか研究以外に学ぶことができないなんて,不幸の塊にしか見えません.あ.フィクションです.

「Macmini完全に沈黙!」状態だった.あぁ,サーバが止まった.設置場所から考えて,誰かが間違えてコンセント引っこ抜いた(正しくはプラグを引っこ抜いた)のかなぁと思いながら,電源をポチッとしたのですが,全く持って沈黙.肝臓のようだ(沈黙の臓器的な意味で).これはい肝臓(ダジャレ的な意味で).ふふーん.etcとvarは定期的にバックアップ取ってるもんねー.ふふーんだ.と思っていたら,比較的重要なデータがhomeにあるという事実に気がついた.Macminiの電源は入らない.これは困った.というわけで,データサルベージをするために,Macminiを分解してやりましたよ!このクソ忙しい中.こんちくしょう.夜はビアガーデンだから,愚痴ってやる!

で.分解.Macminiの分解に際しては,以下の記事を参考にしました.

ご存知のように,Macminiにはネジ穴が見あたりません.これはつまり,なんですか,分解が困難であることを示しています.ということで,分解するために必要なヘラを探します.まず,生協にいってこう言いました.「もんじゃ焼きに使いそうなヘラないですか?もしくはデザインナイフ」質問の順番を間違えているというツッコミはテンパっていたんでと言い訳します.生協には売ってなかったので,渋々100均に行って,ヘラを探します.あったんですが,ヘラは厚みがありすぎてダメでした.代わりにこんなものを買ってきました.

IMG_0334.jpg

これ,領収書にはこんな書かれてる・・・.

IMG_0335.jpg

ぜってー会計通らないよ・・・.自腹だよ・・・.お財布いたいよ.

さて,買ってしまったので,後戻りは出来ませんので,えいや!と気合い一発分解します.手順は他の方々とは違います.多くの人は片側ずつ開けているようですが,それだと上手くいきません.片側が開くと,もう片側にヘラが入らないのです.そのため,両側に1本ずつ差し込んで,広島風お好み焼きを反す要領でほいな!とやります.実際にはゴリゴリですが.

IMG_0329.jpg

開きました.この後は他のサイトの手順通りに,アンテナを外して,ネジを取って,ユニットを取り外し,ケーブル類を除去して,HDDにアクセスしやすいようにします.

IMG_0330.jpg

続いて,こやつからデータをサルベージするべく,他のPCにつなぎます.いやー.良い時代です.SATAなんで,2.5inchだろうが,3.5inchだろうが同じように繋がるので楽ちんです.というわけで,本体直付けです.

IMG_0332.jpg

続いて,Windowsじゃファイルシステムにアクセスできないのは目に見えているので,試しもせずに,トラブルのレスキュー隊ことKnoppixで救出を試みました.結果からいえば,失敗しました.mountできませんでした.EFI GPTっていう謎のファイルシステムに・・・.ext3じゃない時点でパニクりです.HFS+を試すも失敗.この時点で半べそ.いろいろ検索してみる.この時点でおなか空き始める.

IMG_0333.jpg

で.ふと思い出しました.あー入ってるのはUbuntuじゃん.ということで,UbuntuのLiveCDでアクセスしてみたところ,ばっちりマウントされました!わっしょーい!ということで,サルベージは完了したのでした.

オレ,おつかれ.どーせ誰も労ってくれないさ.ふーんだふーんだ.

4月末からトラックバックスパムが再び激化し始めた.記録によれば,4/28から5/6までの9日間で227発ほど,.htaccessの拒否リストを通過して,MT側のTBスパムに引っかかっている.易々とすり抜けられているのが許せないので,なんですり抜けているのかをログで確認してみた.

WordPress/2.7

こんなUAのやつがすり抜けていやがる.これは・・・拒否すると影響範囲が広そうだなぁ.どうするかなぁ.てか,そもそも正規のWP2.7ってTB打つ時のUAはこれなんだろうか?それを調べた方がいいかな.

短時間に連続じゃないし,エントリに順番に打ち込んでくるわけじゃないし,異なるIPアドレスから打ってくるし・・・.これは巧妙化するボットのポートスキャンと同じですね.ちと困ったなっと.ボットの場合はどうやってフィルタを書くんだろう?

200905061448追記:

「WordPress/2.7」を詐称するスパムウェアを確認しています。

本物の WordPress は、すでに2カ月以上前に 2.7.1 が提供されています(4月29日時点での最新版)。 2.7 は事実上 obsolete とみなしてよいと思います。

芳立五蘊 | WordPress/2.7

とのことなので,アグレッシブに排除の方向で.

SSLサーバ証明書の期限切れに伴い,更新先を探していたのだが,思いの外,簡単ではなかったので,備忘録として世に公開してみる.いろいろなサイトでSSL証明書を比較していますが,多くはスペックで比べておりますが,こっちは手続き上の問題ベースで比較します.単なる比較はいらない.実体験に基づくレポートが重要.

前提

  • SSL通信を行いたい
  • 保証はいらない(暗号化通信がしたいだけ)
  • KY(価格安く)

FlySSL
安いけど,発行手続きが進まないので,使えません.わけわかめ.

RapidSSL
安いSSLサーバ証明書の代名詞的存在です.リセラが多数存在しているので,日本語でもバリバリ買えちゃいます.証明書はジオトラストから発行され,シングルルート証明書なので,大変に使い勝手がいいです.再発行オプションや保証もあるので,まぁまぁ,いいんじゃないでしょうか.証明書発行時のドメイン所有確認はメールで行われます.すなわち,「指定のアカウント名@CSRドメイン名」宛に確認メールが飛んできて,それを承認するという形です.ほかのSSLサーバ証明書で,「発行最短××分」と謳っているところは,まず間違いなく,この認証方式です.

って,真面目に説明していますが,ここも発行されませんでした.理由は確認メールが受け取れないからです.「指定のアカウント名@CSRドメイン名」なのですが,このCSRドメイン名がやっかりで,説明と全然違うじゃないかよ!って突っ込みを入れたくなります.例を挙げましょう.コモンネームが"www.hogehoge.example.com"だった場合,CSRドメイン名はホスト名を除いた部分になるので,"hogehoge.example.com"になります.だから,確認メールは概ね"admin@hogehoge.example.com"あたりになるわけです.これはよく分かります.ただし,CSRドメインが5レベル以内じゃないとダメなんだそうです.つまりは,"admin@1.2.3.4.5"まではokらしいのだ.そんな説明はどこにも書いていないわけだが・・・.発行を受けるドメインはこれで言うと6レベルに相当するので,確認メールとして指定できないわけです.代替手段として,Whoisに登録されている情報が使えるとか言われるんだけど,そんなのオレの管轄外なわけで,受信できるわけなかろうにってわけですよ.というわけで,RapidSSLはダメでした.

QuickSSL
RaipdSSLがダメなだけで,QuickSSLならいけるだろうと思いましたが,やっぱりダメでした.ジオトラスト発行で,ドメイン所有をメールで確認するタイプは全部ダメそうなことが分かりました.残念.

Thawte
ベリサイン傘下でMD5な証明書を発行していたので,先の問題が直撃したところです.ベリサインなのに,妙に安いので試してみるかと思ったんですが,結論からいえば,ここもダメでした.CSRドメインを指定できなくて,3レベルのWhoisに登録されているメールアドレスしか,ドメイン所有確認のメールアドレスに使えませんでした.手続きの仕方がまずかったのかもしれませんが,深く追求する気もなかったので,そこで諦めました.残念.

AlphaSSL
トリトン発行のAlphaSSLです.これは6レベルでも余裕です.CSRドメインでメールアドレスを指定できます.こうして,AlphaSSLを買うことで,今回のSSLサーバ証明書購入は終了したのでした.

まとめ
格安のSSLサーバ証明書はドメイン所有確認をメールで行うため,そのメールを受信しなくてはならないが,そのメールアドレスには自由度の制限があることが判明した.特に,ジオトラストでは5レベル以内という内規を用意しているらしく,6レベル以上のドメインでSSLを使う場合には注意が必要である.

なお,ベリサインやジオトラストでもTrue BusinessIDあたりの実在証明付きのSSLサーバ証明書の場合,ドメイン所有確認はメール如きでは行われないので,恐らく問題ないかと思います.が,高いということだけは述べられます.

こうして,また通信路は暗号化されるのでした.

関連:
用途別SSLサーバ証明書を勝手にまとめ - 4403 is written
SSL証明書の件いろいろ - 4403 is written
MD5なSSL証明書のおはなし - 4403 is written

ISOイメージをマウントしちゃう方法

$sudo mount -o loop -t iso9660 image.iso /media/dvd/

HandBrakeをかける方法

$HandBrakeCLI -i /media/dvd -o ~/dvd.m4v -f mp4 -X 480 -e x264 -q 0.59 -2 -T
-a 1 -E faac -B 128 -R 48 -6 dpl2 -D 1 -C 2 -v -x
level=30:cabac=0:ref=2:mixed-refs=1:analyse=all:me=umh:no-fast-pskip=1

実際は改行しちゃダメですよ.実時間の2倍くらいかな?

余裕でアンマウントしちゃう方法

$sudo umount /media/dvd/

某所で運用しているサーバの話なんですが、割と"SSH Brute Force Attack"がヒドく、対策を行わないといけないんですが、せっかくなので、攻撃者がどんなユーザ名でログインを試みているかの統計を取ってみました。

SSH総当り攻撃(Brute Force Attack)の傾向から利用を避けたいユーザ名 - RX-7乗りの適当な日々

おもしろそうなので,便乗してみる.某所のサーバからです.

# cat /var/log/secure* | grep 'Invalid' | awk '{print $8}' |
sort | uniq -c | sort -nr | head -n 100
1306 test
723 admin
666 a
376 guest
363 user
332 oracle
255 tester
207 postgres
171 testing
169 webmaster
163 testuser
157 123456
155 ftpuser
151 student
138 info
132 test1
129 temp
126 alex
117 123
115 12345
108 web
106 administrator
104 qwerty
98 test2
98 test123
97 sales
97 john
95 tomcat
94 dan
94 1234
93 testftp
90 adam
89 paul
88 zxcvb
88 sarah
86 richard
85 tests
85 nagios
84 robert
83 webadmin
82 matt
80 master
80 fax
80 demo
78 user1
78 patrick
78 frank
78 eric
76 toor
76 david
76 backup
75 abc
71 www
71 support
71 kevin
70 amanda
69 mike
68 michael
67 adrian
66 stephen
65 office
64 steven
63 james
62 wwwrun
61 irc
61 andy
61 abcde
61 abcd
60 victor
60 jack
59 lisa
59 larry
58 public
58 max
57 service
57 martin
56 peter
56 dave
55 jacob
55 carol
54 test3
54 scott
54 sandy
53 upload
53 tony
53 louise
53 linda
52 shell
52 maria
52 library
52 jessica
51 ben
50 brian
49 students
49 linux
49 client
49 bill
48 victoria
48 mailtest
48 cyrus

なるほどなるほど.こういうユーザ名をログイン可能にしておいてはいけないんですね.わかりました.ちなみに,現所属サーバだとsshに制限をかけているので,情報が少ない・・・.

# cat auth* |grep 'Invalid' |awk '{print $8}' |sort |uniq -c |sort -nr
1 toor
1 test
1 staff
1 spd
1 oracle1
1 master
1 admin

効果はあるようだ.

まとめ:
sshは公開鍵認証で.

あまりにもひどくてガッカリしたので,事実を淡々と述べますね.

今日,郵便が来ました.

CA391524.JPG

なるほど,同窓会ホームページが完成したそうです.

CA391525.jpg

なるほど,2008年ですかね?それとも今日届いたので,2009年からですかね?

090101_tokai01.png

2007年10月に開設でした.

CA391526.jpg

なるほど,万全なんですね.

090101_tokai02.png

ログインフォームが非SSL運用で万全じゃありませんでした.ちなみに,httpsにしてみた.

090101_tokai03.png

気がついていないだけかもしれないから,連絡しよう.

090101_tokai04.png

わけわからんサイトに飛ばされましたが.

090101_tokai05.png

すごく・・・せまいです・・・.苦労しながら,一応報告しました.

ちなみに,ものすごく気になっていることがあります.tokai.ac.jpは学校法人東海大学のドメインで,u-tokai.ac.jpは東海大学のドメインです.tokai.ed.jpというドメインもあります.これは付属浦安高校が持っているらしいです.しかし,tokai.ed.jpドメインは浦安のみならず,望洋,望星,高輪台,翔洋,第三が利用しています.だったら同窓会もtokai.ed.jpを使えばいいのに・・・.AC.JPドメインやED.JPドメインを用いずに,誰でもが取得可能な汎用JPドメインを用いる理由がわかりません.ガッカリです.

酔って帰ったら閃いた.正に神の一手(って程ではない).解決方法は単純で,内部用DNSにGoogle Apps用のMXレコードを書き加えただけ.シュークリーム分またはシガール分が足りなかったのかなぁ.日中は全然気が付かなかった.こんな簡単なことで3時間も無駄にしてしまった.どうしようもない仕事してる振りだな.

最近,研究室内外というか学科全体でウィルス(トロイ系)が流行っている.一応,セキュリティの研究室なので,過剰防衛してみる.過剰ってこともないか.それにしても,「アンチウィルスソフトを入れておけば安心」っていう都市伝説はかなり有効のようだ.ちゃんと定義ファイルの更新はしましょうね.

Ubuntu8.10に限らず,ほとんどのディストリで,apt-get install clamavっぽいことをすれば入ると思います.今回の導入目的はファイルサーバ(≠Ubuntu君)のウィルススキャン.これはsmbfsを利用した自動マウント/アンマウントと組み合わせてやれば簡単.cronにはこう書いた.一部抜粋.

# crontab -l
5 5 * * 0 freshclam || clamscan -i --remove -r /smb/samarium/share
> /var/log/clamav/clamav.log 2>&1

改行されてますが,実際は1行です.ログは積極的に出すようにしたけど,指定しなくてもいいのかな?どうなんだろう・・・.これで,毎週日曜日の5時5分にガリガリ動きます.

あー.サーバがあるって楽しい!楽しみつつテクを磨けるなんて,こんな面白いオモチャはないよね.

FTPが禁止なのだ.SFTPは使えるし,SCPでもいいんだが,CMSを利用し始めると,あらゆることをブラウザで完結させられる楽さに流れてしまう.そんなこんなで,MTを使うほどではないけど,手軽にブラウザで書き換え可能な領域を作りたかったので,例によって例の如くPukiwiki Plus!を導入した.オレの中では導入実績の多さと手軽さでお気に入りです.何かの情報を多人数で編集しつつ,集約させようとすると,この手のwikiツールが便利でならない.wiki文法の複雑さは目を瞑ることにしよう.WYSIWYGなwikiだったら,初心者でも使いやすいんだろうけどね.

さて,導入は簡単で,tar zxvfあたりをやればいいんじゃないですかね.chmodも適切に.通常はこの手順でいいんじゃないでしょうか.オレは手抜き王なんで,もっとヒドイやり方ですが.

残念なことに,今回はこれで終わりといきませんでした.どうやらdebian系特有の問題のようです.遭遇したトラブルはi18nを利用しているのに,日本語環境を認識せず,英語表示のままになる件.公式の質問箱に解決策がありました.良かった.

いけましたーー (^_-  locale.aliasのja_JPがja_JP.eucJPになってたんですが、ja_JP.utf8にすると日本語に (T-T ←感涙。 upk様長々とお付き合いくださりありがとうございました。。。おかげで少しスキルアップできました<(_ _)> -- alen 2007-06-19 (火) 21:49:55

質問箱/247 - PukiWiki Plus!

なるほどねぇ.一生懸命pukiwiki.ini.phpやらphp.dやらapache.dあたりを睨めっこしていたのだが,よもやlocaleとは.確かに,ja_JPがeucJPになっていたので,UTF-8にしてやった.要するに,こういうこと.一部抜粋.

# cat /etc/locale.alias
japanese        ja_JP.eucJP
japanese.euc    ja_JP.eucJP
ja_JP           ja_JP.UTF-8
ja_JP.ujis      ja_JP.eucJP
japanese.sjis   ja_JP.SJIS

rootで作業するなというツッコミは相変わらず無視の方向で.sudo suが使えるなんてオレに教えちゃダメだよね.

それから,やっちゃいけない系のバッドノウハウ.JVNを読んだ上で,リスクを理解すること.添付ファイルが圧縮されるので,それを解除する方法.rev1726の場合,plugin/attach.inc.phpの47行目を1から0に.

いよいよファイナルと言って良いのではないだろうか.DNSの設定が全て完了した.お忙しい中,ご協力頂きまして,ありがとうございました.

そして,即行でGoogle Appsの止まっていた手続きを進行させ,無事に設定完了.ただし,スタートページのカスタマイズは,特にコンテンツの変更は未ログイン者にしか適用されないので,準備してからやるべきだった.もうしらん.

それから,メーリングリストは簡単に作れるのだが,作ったメーリングリストが連絡先一覧に自動で登録されない.さらに,メーリングリストのメンバにメーリングリストを含めることはできない.要するに,エイリアスを束ねるような機能はない.ちょいと不便だ.細かいグループをいくつか作ろうと思ったのだが・・・.

後はSSL証明書か・・・.FlySSLの手続き進行中なのだが,クレジットの信用が足りないらしい.なんだそれ?まぁ,信用が足りないなら,取り消しで結構なのだが・・・.なんか,FlySSLはシングルルートではないらしい.中間証明書を入れなくちゃいけなくて,面倒くさい.やっぱRapidSSLが良かったかな.

続いて,今日やったこと!

sambaで自動マウント/アンマウント
autofsっていう機能を利用すると,自動でマウントし,不要になったらアンマウントするらしい.smbclientコマンドを覚えていなくても,安心だねっ!参考にしたのはこちら.注意したいのはコメント欄.

debianでやるとなんかずっと同じフォルダを参照する不具合になりますね。
# apt-get install smbfs
をしてから、
auto.smbの
opts=”-fstype=cifs”

opts=”-fstype=cifs,iocharset=utf8″
にするとうまくいきました。

autofsを使ってsambaを自動マウント | ブーログ

確かに,同じディレクトリを参照しまくってました./etc/auto.smbを以下のように書き換えて,ok.

mountopts="-fstype=cifs,iocharset=utf8"

これで,自宅等からSFTPしても,ファイルサーバにアクセスできるねっ!

今日も適度にチューニング.残る調整は,上位管轄DNSの設定とGoogle Appsへの丸投げとSquidの確認かな.最大の難関はサイトのデザインがテンプレそのままなのをなんかすることか.デザインセンスがないから,どうにもできないが.

BINDがエラー吐きまくり
BINDが以下のようなエラーを吐きまくっている.以下,ログ.長すぎるので,適宜改行.

Nov 19 11:20:49 neodymium named[5139]: too many timeouts resolving
'195.206.188.210.in-addr.arpa/PTR' (in '206.188.210.in-addr.arpa'?): disabling EDNS
Nov 19 11:20:50 neodymium named[5139]: too many timeouts resolving
'178.68.125.75.in-addr.arpa/PTR' (in '125.75.in-addr.arpa'?): disabling EDNS

そうそう.前にサーバ名はhydrogenとか言いましたけど,hydrogenは無線LANルータが陣取っているので,無難なneodymiumを割り当てました.IPアドレスを推測しないでね><.

閑話休題.エラーが起きた時は,too many timeouts resolving disabling EDNSって,そのままググればいいと思うよ.だって,そのためにエラーをそのまま貼り付けているわけだし.で,色々な情報に出会うわけだが,serverでedns noするのも,optionsでempty-zones-enable noするのも,両方ともに効果がなかったので,仕方がないので,以下の方法で対処した.根本的な解決ではないなぁ・・・.

とりあえずnamed.confに、

logging {
  category edns-disabled { null;};
};

と書いておけば、以降は記録されなくなるらしい。

BIND9.5で謎のログ: さかなでブログ

対処療法的だなぁ.ついでだから,category lame-servers { null; };も合わせて書いておく.

SSLサーバ証明書をゲットしよう!
安さ爆発はどの程度なのかを確認するため,以前にまとめたように,最安と思われるFlySSLを買ってみる.$9.99/年なので,$38/年でルートがmd5RSA-1024のヤツよりはいいと思います.値段的な意味で.

まず,ご存じのように,CSR(Corporate Social Responsibility; 企業の社会的責任)を作成します.っておい!違う違う.意味的にはあってるような,あってないような・・・.正しくはCSR(Certificate Signing Request; 証明書署名要求)です.作り方は,この辺この辺を参考にするといいと思います.一応,手順としては,

/etc/ssl/private# openssl genrsa -des3 -out FQDN.key 1024
Generating RSA private key, 1024 bit long modulus
.....++++++
................................................++++++
e is 65537 (0x10001)
Enter pass phrase for FQDN.key:
Verifying - Enter pass phrase for FQDN.key:

/etc/ssl/private# openssl req -new -key FQDN.key -out FQDN.csr
Enter pass phrase for FQDN.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:fuga
Locality Name (eg, city) []:hoge
Organization Name (eg, company) [Internet Widgits Pty Ltd]:fuga
Organizational Unit Name (eg, section) []:hoge
Common Name (eg, YOUR name) []:FQDN
Email Address []:webmaster@FQDN

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

/etc/ssl/private# openssl rsa -in FQDN.key -out nopass_FQDN.key
Enter pass phrase for FQDN.key:
writing RSA key

/etc/ssl/private# cat FQDN.csr
-----BEGIN CERTIFICATE REQUEST-----
なんやかんや
-----END CERTIFICATE REQUEST-----

rootで作業するなとかいうツッコミは華麗にスルーします.一応,鍵のパスフレーズを外しておきましたけど,外さない方がセキュリティ的にはいいと思います.

あとはFlySSLの方にCSRを投げつければ良いのだが,ドメイン所有者を確認するために,指定のメールアドレスに確認メールを送るから,どこに送ればいいか,選べと言われる.選択肢が,admin@とかroot@とかwebmaster@とかなっている.つまり,なんだ.メルサバを建てないと申請が進まない・・・.今日もsnakeoilで頑張る!

そろそろファイナルにしたいっす.回線が開通したので,接続テストやらなんやらやってたら,起動しなくなりました(ぇ.いや,まぁ,事なきを得たんですが,ヒヤリでした.

で.予想通りトラブルに見舞われています.全く理解できません.

svn+sshできない
できないというのは嘘で,できるんだけど,できない.できる状況は以下の通り.

  • サーバ内から,svn+ssh://ループバック/
  • サーバ内から,svn+ssh://外部IPアドレス/
  • サーバ内から,svn+ssh://FQDN/
  • 研究室内回線から,svn+ssh://内部IPアドレス/

ダメな状況は以下の通り.

  • 研究室内回線から,svn+ssh://FQDN/
  • 研究室内回線から,svn+ssh://外部IPアドレス/
  • 研究室外回線から,あらゆるsvn+ssh

FQDNは内部DNSで内部IPアドレスに変換しているはずです.少なくとも,nslookupではそう返事が返ってくる.外からFQDNへのアクセスは管轄上位のDNSによって外部IPアドレスが返されます.だからこそ,FQDNでアクセスしたいのだが・・・.

svn単体は許可していないので,sshポートフォワードが必要になるのだが,どうも外部線から入ろうとするとダメなようだ.何故だ.sshはどこからでも繋がるのに・・・.事実,svn+sshではなく,ssh単体はどこからでも繋がる.誰か・・・助けて><.

で.自宅に帰ってきてからVPNを使わずに外部線でsvn+sshしたら,普通に繋がった件について.ぇー.もうこうなったら,研究室内部のネットワーク構成がおかしいってことじゃないですかー.もしくは,オレのPCがおかしいってことじゃないですかー.明日もトラブルシュートか.

Satisfy Anyできない
研究室構成員だけが見られるようにしたいディレクトリがある.そこにパスワード認証をかけて,研究室外からはパスワード認証で,研究室内からはIP制限で通したいのだ.だから,.htaccessでsatisfy anyだ.だから,こう書いた.

AuthUserFile /etc/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter username and password"
AuthType Basic
require valid-user

Satisfy Any
order deny,allow
allow from 127.0.0.1
allow from 192.168.11.0/24
deny from all

なんがー!なにがダメがー!わからんちん.誰か・・・ボスケテ.

200811191047追記:
今日になったら両方とも絶好調稼働中な件について.なんじゃそら.きっと無茶苦茶な設定を繰り返す内に,オレPCのDNSやらなんやらがおかしかったんだろうなぁ・・・.再起動してテストしてたつもりだったんだけどなぁ・・・.

別にアグレッシブにやることではないけど,ルータ化を行ってみた.なお,テストはしていない.参考にしたのはここ

それから,別件というか,関連というか,MTのカスタマイズを再度やってます.奥が深いなぁ.目処は付いたけど.

そろそろやることがなくなってきた.今日はSquidとvimの設定(ぇ.

Squidの設定
設定の参考はこことかここ.設定してみたは良いけど,どうにも上手く動いていない気がする.気がするだけで,ちゃんとチェックはしてない.Squidなんて立てないで,OpenVPNを立てる方が健全だろうか.むしろ,iptablesを調整して,ルーター化するのがいいかもしれない.何がしたいんだろう・・・.

vimの設定
vimって打てば使えるから入っているのかと思ったら,入っていなかった.なんてこったい.というわけで,vimのインストールから.

$ sudo apt-get install vim
$ cat ~/.vimrc
set nocompatible
set fileformats=unix,dos,mac
set vb t_vb=
set backspace=indent,eol,start
set nobackup
set writebackup
set history=100
set ignorecase
set smartcase
set wrapscan
set noincsearch
set title
set ruler
set showcmd
set laststatus=2
set showmatch
set matchtime=2
set hlsearch
highlight Comment ctermfg=DarkCyan
set wildmenu
set textwidth=0
set wrap
set statusline=%F%m%r%h%w\%=[TYPE=%Y]\[FORMAT=%{&ff}]\[LOW=%l/%L]
set tabstop=4
set softtabstop=4
set shiftwidth=4
set noexpandtab
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,euc-jp,cp932,iso-2022-jp
set fileencodings+=,ucs-2le,ucs-2,utf-8
set hidden

適当!適当!参考にしたのはここ

関連:
viキー操作メモ(Hishidama's vi Memo)
Vim 基本操作まとめ - Archiva
vimで効率的にコードを書くための小技 - bonar note

そろそろやることもなくなってきた.今日はDNS(BIND9)の設定と命名規則.

BIND9
って書いたけど,まだドメインが決まってないので,フィーリングで作ってる.ということは,本番で作り直しになる可能性があるということ.大したことではないか.参考にしたのはここ.といっても,環境によって違うので,なんともかんとも.

命名規則
BIND9の話と関連して,ホスト名をどうしようかっていう話.前所属では台風の名前を付けていた.命名規則を決める上で重要なのは,

  • 通し番号がついていて,
  • 英字(もしくはローマ字)表記できて,
  • そこそこの数がある

こと.星座の名前や都市の名前を付ける人も多いが,個人的には通し番号が振られている方が管理しやすい.だって,IPアドレスに対応させちゃうもん!

で.また台風の名前でも良いのだが,それでは芸がないので,調べてみた.色々とあるものだ.これらの中から,今回は元素名を付けることにした.理由は上記3条件を満たしているから.ポケモンでもいいんだけどね(ぇ.

というわけで,サーバのホスト名はhydrogenとなりました.次はheliumか.

って,今更だけど,こんなことを独断で行っているけど,学生に勉強させなくて良かったんだろうか.教育的な配慮を考えれば,サーバを建ててみるなんて,滅多にできない上に,貴重な経験だと思うのだが・・・.といっても,時期的に今は忙しくて無理か.といっても,そんなこといったら,いつでも忙しいか.

関連:
「萌えの領域がまさかの元素!w」 - アキバBlog

今回はサーバ監視系ツールを中心に.オマケとして,Subversion設定も一緒に.

Webalizerの導入
余裕でした.特に設定することは何もない.ただ,グラフが日本語で文字化けします.GDのTTF問題です.別に,英語表示でも良いのだが・・・.ソースからコンパイルが面倒くさいので,このまま使う方向で.

Muninの導入
今まではRRDtool+HotSaNICだったのだが,なにやら簡単らしいので,Muninを導入してみた.

$ sudo apt-get install munin munin-node

余裕でした.一応,参考にしたのは,ここここ.sendmailとかいくつかのグラフは不要なので,

/etc/munin/plugins$ sudo rm df_inode vmstat sendmail_mail* open_*

ってしてやりました!これらはシンボリックリンクなので,rm余裕です.

Subversionの設定
svnっていうユーザをnologinで作って,serviceに3690をtcp/udpで登録して,今回はxintedを使うよ!参考にしたのは,ここここ

$ sudo cat /etc/xinetd.d/svnserve
service svnserve
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = svn
server = /usr/bin/svnserve
server_args = -i
}

後はservice xinetd restartで余裕です.FWには穴を開けません.sshポートフォワードを利用して,svn+sshな運用をする予定なので.22と80と443しか開けねーぞ!ゴルァ!

関連:
スラッシュドット・ジャパン | サーバ監視、何使ってる?

サイトリニューアルのベースにはMT4.22のプロフェッショナル ウェブサイトっていうテンプレートを用いることにして,適する形にカスタマイズ中なのだが,これ結構いい.簡単に高品質なウェブサイトが作れます.しかも,FTPでアップロード!みたいな古くさい作業はなく,ウェブブラウザのみで完結するし,基本的にブログツールであるMTがベースなので,HTMLが書けなくてもWYSIWYGなリッチエディタでバリバリ書けるし.

で.今日はそのスケルトン(要するにCSSは弄ってないという意味)が概ね固まったので,作業で詰まったり悩んだりした点を記録しておく.特に,2点目は3日くらい悩んだ.

MTタグのデバッグ
MTには色んなテンプレートタグがあるわけですが,その値がどうなっているのかっていうデバッグをしたくなりますよね?なるんですよ,主にトラブった時に.で.このテンプレートタグは再構築時に解釈されるものなので,Firebugでは拾えないし,MT独自のものだから,PHPやPerlのデバッガは効かない.こりゃ困った!

で.調べた.Build Tracerなる素晴らしいトレースツールが見つかった.これ,スゲーです.余裕で問題点をトレースできました.変数がどういう風になっているかを確認できるのは素晴らしい!どの命令(タグ?)が変数をどう操作したかまでは分からないんだけど,どこでどう変化したかは分かる.問題解決ですよ!

ただし,注意があります.これ,ダイナミックパブリッシングだと上手くいかないので,一時的にスタティックでやる必要がある気がします.

ブログアーカイブでサイドバーにエントリー一覧が出ない
そうなんです.これを解決するために,上のトレーサーを導入したんです.何かというと,ウェブページのテンプレートで作ったページは2コラムデザインなんだけど,ブログアーカイブだと3コラムデザインになってしまう問題があった.と同時に,ウェブページテンプレートとブログ記事テンプレートではサイドバーに記事概要を出力できるのだが,同じウィジットをブログアーカイブテンプレートで使うと何も出力されないという難解な状態であった.

で.トレーサーを駆使して調べたところ,コラムデザインはレイアウトの変数があるので,決め打ちで強制してやった.サイドバーに記事概要が出ない問題は,ウィジェットを書き換えればいいことが分かった.デフォの状態のウィジェットだとmtentriesで書かれていたので,mtarchivelistに置き換えたらok.ブログアーカイブでもウェブサイトでも表示されるようになったので,たぶんこれで宜しいかと.

今日も頑張った.インフラ面は整ったかなっと.後はグローバルIPをもらって,ドメインを割振ってからじゃないと,細かいところは詰められないかな.

iptablesの設定
設定はここを参考にした.できあがるファイルを/etc/network/if-pre-ip.d/iptablesにroot:rootで700で置けばok.

sambaの導入
特に細かい設定はしないけど,unix charsetなどはutf-8に.

apacheでsslの設定
案外面倒くさかった.SSL化ってこんなに面倒だったっけ?Vineだと,オレオレ証明書ですぐに使えたような・・・.参考資料はこちら

iptablelogの導入
使ったことがなかったので入れてみたが,不要だったやもしれん.導入の参考はここ

vncの導入
sshだけでもいいんだけど,何となくGUIもいいかなって.というわけで,やるべきはvncサーバの導入.参考はこちら

MT4.22でプロフェッショナル ウェブサイト
サイトリニューアルを睨んで,HTMLでマークアップしなくてもある程度は保守できるように.かといってwiki文法もいやーんなので,ブログツールのMTをベースにしてみる.ある程度までは思い通りにできたのだが,どうにもウェブページとブログの連携が上手くいかない.インデックステンプレートを書いてしまった方が手っ取り早くできそうだけど,それじゃぁねぇ.

大絶賛サーバ構築中です.Ubuntuを使うのは初めてですが,Debianベースだけあって,それなりになんとなく何とかなってます.ドキュメントを参照しなくても1時間でLAMPに仕立てられるのは,Vineだけですが.aptが使える仲間と思いきや,パッケージ名が微妙に違うから悩むぜ.

というわけで,そんなVine使いがお送りする,初めてのUbuntuで詰まったことを書き連ねて参る.

chkconfigがない!
マジか!って感じ.chkconfigないのに,どうやってサービス設定しろっちゅうねん.ググったところ,sysv-rc-confってのがchkconfig相当らしい.なんでchkconfigじゃないんだろう・・・.シンボリックリンク張っちゃうぞ!この野郎!

webminはどうしよう
Webminをaptしようと思ったら,なんかパッケージが古いから入れない方がいいよ的なことを言われた.しょんぼりーな.仕方がないからここを参考に,debパッケージを落としてdpkgしてみた.うーん.色んなパッケージ管理があって,便利なような面倒なような・・・.1.441を入れたが,sudoできるユーザならログインできるぽ.それにしても,最近のwebminはすごいカッコイイ!ちょっと見ないうちにクールなデザインになっていたよ.侮れない.

無線LANの自動接続
結構難しかった.ログインしないと無線LANの接続が確立せず,サーバ機としてどうなんだろうという状態なので,なんとかしてみた.参考にしたのはここここ.以下,やったこと.

$ sudo wpa_passphrase "ここにSSIDを書く" "ここに鍵情報を書く"

上記の命令後に出力された文字列を以下のようにする.protoとkey_mgmtは追記した.適当に.

$ sudo cat /etc/wpa_supplicant.conf
network={
    proto=WPA
    key_mgmt=WPA-PSK
    ssid="ここはSSID"
    #psk="ここは鍵情報"
    psk=9b11defce929e1de942ceab41e69459b50cc4faa63a04dffe663945358affcaa
}

準備ができたら,接続確認を実行する.

$ sudo wpa_supplicant -Dwext -iath0 -c /etc/wpa_supplicant.conf

negotiation completedっぽいメッセージが出ればok.後はinterfaceを書き換えれば完了.追記部分を強調.

$ sudo cat /etc/network/interfaces
auto ath0
iface ath0 inet dhcp
wpa-driver wext
wpa-conf /etc/wpa_supplicant.conf
auto lo
iface lo inet loopback
    post-up iptables-restore < /etc/iptables.up.rules

すばらC!

リダイレクトができない!
んなバカなって思うだろうが,それが真実.やんなっちゃうわ.上記の設定は,本当はこうしろと書いてあるんだ.

$ sudo wpa_passphrase "ssid" "crypt key" > /etc/wpa_supplicant.conf

でもこれができない.permission deniedとか言われる.んなバカなって感じだ.もちろん調べてみた.調べてみたところ,どうにもこうにもリダイレクト先にはsudoの効果が適用されないようだ.確かに効かなそうだ.面倒なことだ.でも,だからって,

$ sudo wpa_passphrase "ssid" "crypt key" > sudo /etc/wpa_supplicant.conf

こんなコードは通らない.結局,衝撃のバッドノウハウを発見

$ sudo su

っておい!suできるのかよ!

テキストログイン化
サーバ機だから,グラフィカルログインとか,リソースの無駄ですよね.テキストログイン化の方法はここを参考にした.情報があるって素晴らしい!

日本語版は31日中にでるとのこと.

これは,日本時間だよね?

2008-10-31 - naoeの日記

超高速で入れてみた.Ubunutu8.10のDesktop.rikenから落としたものですが,日本語でインストールできたけど,デスクトップのメニューが一部英語のままです.なんだか違和感ありあり.ローカライズ版じゃないのかな?と思いきや,言語の設定から日本語を増やしてやれば,日本語になりました.アーサム.と思いきや,こんな情報もorz.

今回インストールしたのは,今日届いたばっかりのIntel Mac miniです.すぐに消されちゃうLeopard涙目><.それから,何がアーサムって,無線LANがデフォの状態で使えます.WPA/WPA2で使えてます.素晴らしい!もうね,何がなにやら簡単すぎて拍子抜けです.色々と事前に計画していたのに!

Intel Mac mini は,今までの MBR の代わりに GPT でパーティションテーブルを管理しているので,ちと Windows Xp や Linux のインストールには苦労するみたいなのねん.

調べてみると,BootCamp で Windows 領域を確保したときに GPT と一緒に MBR も作られるみたいなのです.

ところが,通常 MBR を前提にしている Linux からパーティションをいじると,MBR は書き換えられるけれども GPT と同期が取れなくなってしまい,EFI 対応ブートローダーから見えないようです.

Intel Mac mini に Ubuntu 8.04 をインストール - がべこれログ - Garbage Collection Log

ってありますけど,何もなく,普通にUbuntu8.10はインストールできました.一応,Leopard上からBootCampしたけど,間違いに気がついて,普通にcキーでCDブートさせてインストールし直したんだけど・・・.案外大丈夫になってる?

どうもここ最近,TBスパムが増えているようなので,ログを見てみた.以下,一部抜粋.

@s333:~/log> cat 4403.biz.2008-10-26.log | grep tb.cgi
67.159.44.159 - - [26/Oct/2008:00:12:14 +0900] "POST /mt/mt-tb.cgi/416 HTTP/1.0" 200 79 "-" "Jakarta Commons-HttpClient/3.0.1"
67.159.44.159 - - [26/Oct/2008:01:57:31 +0900] "POST /mt/mt-tb.cgi/254 HTTP/1.0" 200 79 "-" "Jakarta Commons-HttpClient/3.0.1"
208.43.255.124 - - [26/Oct/2008:03:41:16 +0900] "POST /mt/mt-tb.cgi/162 HTTP/1.0" 200 79 "-" "Jakarta Commons-HttpClient/3.1"
78.86.153.121 - - [26/Oct/2008:04:12:35 +0900] "POST /mt/mt-tb.cgi/254 HTTP/1.0" 200 79 "-" "Jakarta Commons-HttpClient/3.1"
208.109.181.122 - - [26/Oct/2008:04:15:17 +0900] "POST /mt/mt-tb.cgi/64 HTTP/1.0" 200 79 "-" "Jakarta Commons-HttpClient/3.1"

なるほどなるほど.クズだな.じゃぁ,それならそれで,それなりに対処して差し上げよう.以下,対策を抜粋.

@s333:~/public_html/4403.biz/mt> cat .htaccess
<Files mt-tb.cgi>
<limit POST>
SetEnvIf User-Agent "^TrackBack/1.6" trackers
SetEnvIf User-Agent "^TrackBack/1.02" trackers
SetEnvIf User-Agent "^libghttp/1.0" trackers
SetEnvIf User-Agent "^$" trackers
SetEnvIf User-Agent "^.$" trackers
SetEnvIf User-Agent "^NP_Trackback/2.0.3" trackers
SetEnvIf User-Agent "^User-Agent" trackers
SetEnvIf User-Agent "^Opera/" trackers
SetEnvIf User-Agent "^Mozilla/" trackers
SetEnvIf User-Agent "^USERAGENT" trackers
SetEnvIf User-Agent "^Jakarta Commons-HttpClient/3" trackers

Order Allow,Deny
Allow from all
Deny from env=trackers
</limit>
</Files>

死ねばいいのに.

関連:
芳立五蘊 | Jakarta Commons-HttpClient/3.0.1
Jakarta Commons-HttpClient (翻弄されつづけるblog)
ねこまじん王国 » トラックバックスパム対策(Jakarta Commons-HttpClient)

オレ,この論文を書き終えたら,サーバ管理者になるんだ(死亡フラグ).

・目的(外向き)
CiNiiの指定IPアドレス帯に入るため(ぇ.対外用WWWサーバ.FWでブロックされているntpとsvnとcvsを使うため.

・構想
Atomの小型タワーを買って,UbuntuかDebianかCentかVine(たぶんやらない)で1時間以内にLAMPサーバを構築する.もしくは,Mac miniかEee Boxでもよいかも?いや,Eee BoxはCDドライブが付いてないし,Mac miniはディスプレイを繋がないと起動しないらしいので,却下.サーバに繋がってていいものは電源と有線LANだけだよねー.

LAMP構成で,MTをベースとしたポータルにしたいな(初挑戦).Google Appsを利用したメールサーバ丸投げ作戦.これは何がいいかって,アカウントもメーリングリストも作り放題なので,OB/OGを残しっぱなしにできる.ドキュメントの共有もメーリングリストで関係者全員にぶん投げておけば,グーグル様の強大なストレージ空間をもってすれば,こっちで何も準備しなくてok.グーグルカレンダーもあるから,スケジュール調整も容易.正にソリューション.ついでに,dazukoによるリアルタイムウィルススキャン(初挑戦).

外からはsshのみを許可して,ftpは禁止(学科の方針に準拠).sftpとか,scpとか適当に.sshはもちろん公開鍵で.VPNは頑張れたら導入する.squidは後で考える.

・目的(内向き)
1人/1PCの実現が完全に不可能(既に今もだけど)なので,Active Directoryで移動ユーザプロファイルを構成しようかと.

・構想
構想もなにも,Windows2k3でAD構成に.頑張れたら,外向きサーバをNIC2枚で内外切り分けて,Samba+NISとかLDAPで頑張ってみる?→たぶん頑張れない.いや,そもそもADの勉強なんてそうそうできないだろうから,ADの勉強をする目的も含めて,ADで構成する!Samba+LDAPとか何故にそんな苦労しなくちゃならないのかと,小一時間問い詰めたい.

知っておきたいSSLサーバ証明書の取得までがホッテントリなので,触発されて書いてみる.前研究室の証明書も切れていることだし,ちょうどいいので,まとめ.

ワイルドカード証明書

また、負荷分散などでサーバが複数台ある場合は、SSLサーバ証明書も複数個必要でしたが、最近では1つのSSLサーバ証明書で済むサービスもできたようです。

知っておきたいSSLサーバ証明書の取得まで - livedoor ディレクター Blog(ブログ)

それがワイルドカード証明書です.つまりは,*.exmaple.comっていう証明書が作れます.ということは,hoge.example.comでも,www.example.comでもokということです.分かりやすいねっ!

さて,ワイルドカード証明書はどこで手に入るのか.

などなど,いろいろあります.値段も様々です.True Business IDは実在証明がついているはずです.必要な場合にはどうぞ.手軽に導入するのならば,FlySSLが安くていいんじゃないかと思います.

携帯電話対応のSSL証明書

近年,需要が爆発的に増加中のはずです.しかしながら,携帯電話対応は難しいです.普通のPC用ブラウザと違って,「携帯電話対応」と明示されていないものは,使えないと思ってほぼ間違いないです.それは何故かと言いますと,ルート証明書の問題があるからです.

携帯電話に内蔵されているルート証明書は以下のサイトで参照できます.

知っておきたいSSLサーバ証明書の取得まで - livedoor ディレクター Blog(ブログ)

つまりは,ここに示されているルート証明書の下に繋がっているSSL証明書でなくては使えないことを意味しています.では,ここに挙げられている3キャリア全てに搭載されているルート証明書はなんでしょうか?3キャリアの情報を比較してみると,こうなります.

  • VeriSign Class 3 Primary CA
  • VeriSign Class 3 Primary CA-G2
  • RSA Secure Server Certification Authority
  • Equifax Secure Certificate Authority
  • GeoTrust Global CA
  • GTE CyberTrust Global Root
  • Baltimore CyberTrust Root
  • GlobalSign Root CA
  • ValiCert Class 3 Policy Validation Authority
  • RSA Security 2048 V3
  • Security Communication RootCA1

以上に挙げたルート証明書にぶら下がっているSSL証明書なら,一応3キャリアで使えそうです.ただし,注意したいのは,古い機種は古い機種で,また別のルート証明書を持っているという点です.面倒だぜ.

さて,では携帯電話対応のSSL証明書はどこで手に入るか.

この辺りでしょうか.グローバル・サーバIDがぶち抜けて高いですが,これはアドレスバーが緑になることで有名なEV SSL証明書で,携帯電話対応という珍しいやつです.QuickSSLはクイックSSLのような名称で,色々な代理店経由で買えますし,値段も色々です.中身は一緒のはずなんですけどねぇ・・・.オレが前に買った携帯電話対応のSSL証明書はEquifax Secure Certificate Authorityをルート証明書とするGeoTrustのです.値段は忘れた.それにしても,AlphaSSLは安いなぁ・・・.

格安SSL証明書

とにかく安い証明書が欲しい!そんなあなたにオレオレ証明書えー.

うーん.安い.ちなみに,30日間の無料お試しができるFreeSSLってのもあります.

まとめ
主にはこのような用途でしょうか.抜けがいっぱいありそうな気がしますが,皆さんのお役に立てばと思います.正しい証明書を正しい運用で,セキュアなインターネットを!enjoy!

関連:
知っておきたいSSLサーバ証明書の取得まで - livedoor ディレクター Blog(ブログ)
携帯電話とSSLルート証明書

200901091821追記:

2008年の段階でCAにMD5を利用しているところは以下の通りとのこと.

  • RapidSSL
  • FreeSSL
  • TrustCenter
  • RSA Data Security
  • Thawte
  • verisign.co.jp

なので,この辺の証明書を使っている人はとりあえず注意したらどう?という感じですね.

今日時点での偽SSL証明書の話関連をピックアップ - naoeの日記

ということで,上のリストにはMD5を使っているところも含まれています.ちゃんと調べてなくて,すいません.今後はSHA-1に移行するということなので,この記事をあなたが見ている頃には大丈夫になっていると思います.

Movable Type 4.1x をお使いで、カスタムフィールドを利用している場合、4.2 へアップグレードは行わないでください。

Six Apart - Movable Type News: MT4.1x とカスタムフィールドをお使いの場合は MT4.2 へのアップグレードはおまちください

んなこと6日後に言われたって,遅いっちゅーねん.

Movable Type 4.2 のリリース後、重要な2つの問題を確認しました。この問題を解決した新しいバージョン Movable Type 4.21 の提供を開始します。Movable Type 4.21 で解決される問題は次のとおりです。

  • カスタムフィールドのデータ: エンタープライズ, コミュニティー・ソリューション含む MT4.1x から MT4.2 にアップグレードを行う際、その Movable Type でカスタムフィールドを利用しており、100以上のデータを持っていた場合、カスタムフィールドのデータを一部消失する可能性があります。

Six Apart - Movable Type News: [重要] Movable Type 4.21 出荷開始

仕方がないので,4.21に上げた次第です.別に,カスタムフィールドの内容は消失してないと思うけど・・・.未確認ですorz.

200808232253追記:
カスタムフィールドの内容は全部消えてました!ちょー涙目www.面倒くさいから,過去の記事はさようならの方向でwww.

200808232325追記:
どうもカスタムフィールドの内容は編集画面等には出てこないし,バックアップにも記録がないけど,パブリッシュされると何故か表示される.どこかにデータはあるようだ.DBをダンプして,救出しろってことだろうか.救出したところで,どうやって戻してやればいいかわからなくて,涙目.もうつかわねーよ!うわーん.

ブログ・ソフトウェアおよびサービス大手のシックス・アパート株式会社(本社:東京都港区、代表取締役:関 信浩)は、ブログ・ソフトウェア「Movable Type 4.2」が、株式会社ミクシィ(本 社:東京都渋谷区、代表取締役社長: 笠原 健治)が本日発表したOpenID認証サービス「mixi OpenID」に対応したことを発表します。シックス・アパートは「mixi OpenID」認証を利用可能にするMovable Type用プラグインを開発し、本日よりMovable Typeユーザー向けに「Movable Typeプラグインディレクトリ」にて無償で提供します(mixiCommentプラグイン)。

Six Apart - シックス・アパートが、Movable Typeを「mixi OpenID」に対応

mixi OpenIDが始まったので,MTの対応をwktkしていたわけですが,即日対応とはやりおるわ.OpenIDファウンデーションは名ばかりじゃないってことですね.というわけで,超高速で対応してみた.誰か,mixiでコメント付けてみてくれぃ!

関連:
速報、1500万人が使える mixi OpenID の技術面を解説するでござるの巻 - Yet Another Hackadelic

200808201846追記:
ちょwww.mixiなidが表示されてるからwww.これはまずいwww.コメントテストしたけど,消しますorz.

nicknameがSREGから取得されます.urlにmixiのidがばっちり入ってます.

MT4.2が正式リリースされたので,早速入れてみた.アップグレード時の注意事項があるので,参照されたい.別に,気がつかなかったら気がつかないなりに,それなりに動作しそうな気がする程度の注意事項なので,適当に自己責任で.

新機能というか機能改善というか,いくつかあるわけですが,どうにもこうにも,テンプレートを新しいのにしないとダメみたいです.面倒なので,対応しなくても良いかなって気分で.それ以外ででかいところといえば,OpenID2.0対応かな.たぶん,コメントを付けるときに,Yahoo!でログインできるようになっていると思います.確認してないけど.

てか・・・.過去のタグがぶっ壊れてるんですけど・・・.

080815_mt42.png

200808151853追記:
これって,標準の機能じゃなくて,プラグインだった.TaggingHelperっていうプラグインで,MT4.2対応版が出てました.一安心.

200808151908追記:
でも,やっぱりダメでした><.

リファラではじく策を講じたところ,全く無力だったので,新しい策を講じます.同時に,リファラではじく作戦は終了します.意味なかったorz.

新しい作戦として,MT-Keystrokesプラグインを導入しました.「投稿」ボタンを押さなくてはいけないので,対スクリプトには強そうです.期待して入れてみる.入れ方はこのサイトを参考にしました.MT4.1に導入しているので,手順3の「コメント・プレビューのテンプレートを修正する」は不要でした.いいね!

ただ,逆にこのプラグインはMT3を対象にしているらしく,MT4以降では動作しません.

1.MT-Keystrokesプラグインで問題がおき、再構築できず。

3.3で使用していたコメントスパム対策のため導入した「MT-Keystrokes」も忘れずにセットアップしたのだが、どうもそれが原因で問題が起きていることが推測された。
keystrokes.plの中でMTのバージョン確認を行っているので、下の3のところを4に変えることで解決。

まゆさんのつぶやき: MT3.3から4.0へアップグレード時のトラブル

とこのことなので,仰せのままにkeystrokes.plの65行目を修正.

return 1 unless $MT::VERSION =~ m(^4\.);

簡単ねっ!しばし,様子見.

6. なお、「フォクすけ」バージョンのブログパーツは、先着3,333サイト様限定で提供。

Firefox3への移行状況、ブラウザのシェアを調べるブログパーツ

というわけで,速攻で確保してみた.フォクすけかわいいよフォクすけ.さぁ,このサイトのFF3移行率はどのくらいだろう.結構高そうな気がするが・・・.

関連:
サイト訪問者のFirefox3移行状況をチェックできるブログパーツ「FoxMeter」 - GIGAZINE

CAPTCHA認証を外して,コメントスパムの様子を眺めていたのですが,61件/15日なので,看過できません.よって,新しい方策を試みます.

コメントを付ける際はリファラ送信でお願いします.

アイディアは至って簡単で,スパムはcgi直叩きだろうから,リファラは付けていないだろうという考え.ログを確認しないで試みてみる.セキュリティソフト等でリファラ抑制をされている方で,このブログにコメントを付けようとお考えの方は,お手数ですがリファラ送信にてお願い致します.

暫し,様子見.

CAPTCHがスパムです!

との指摘を受けました><.ボット等によるコメントスパム対策で導入していたんですが,人間すらも排除してしまうようなので,コメント欄におけるCAPTCHA認証の使用を中止したいと思います.ログを見る限り,コメントスパムは少ないみたいなので,様子を見たいと思います.ダメだったら,また考える方向で.

やっとデタ。Yahoo!検索 サイトエクスプローラー公開 - Yahoo!検索 スタッフブログ

GoogleウェブマスターツールのYahoo検索版が登場したようなので,導入してみた.やることは,Googleのそれと大差ない.違うところは,サイト認証のHTMLファイルは空じゃないということくらいだろうか.touchで作成すればいいだけじゃなかったよ.中身あったよ.もしかすると,空でもいいのかもしれないけど.

認証済状態になったので,色々と触ってみた.直感的にはYahooの方が扱いやすいし,見やすい.でも,情報量はGoogleの方がある.なかなかだねっ!

トラックバックをここ数日で2件も頂いているわけですが,残念なことに文字化けしています.誠に申し訳ないです><.今更で,なんなんですが,対策をしてみた.直っているはずなので,気が向いたら,またTBを打ち込んであげて下さい><.以下,対策方法.

MT4.1の場合,extlibにJcodeが既に入っているようなので,lib/MT/App/TrackBack.pmを以下のように修正する.

sub no_utf8 {
    require Jcode;
    for (@_) {
        next if !defined $_;
        $_ = pack 'C0A*', $_;
        $_ = Jcode->new($_)->utf8;
    }
}

終わり.簡単だねっ!

参考:
小粋空間: Trackback文字化け対処

P.S.
ブラックリストに入っているらしく,MindslideさんにTBが打てないんです><ボクの所為じゃない><

200804111857追記:
Mindslideさんから,再TBを頂きました.色々とお手数をおかけしまして,申し訳ないですm(__)m

もちろん,皮肉です.

080408_mail_1.png

ほらほら!ゲットできたよ!でもでも,当然ながら,

以下の日時で任意メールアドレス取得サービスを開始いたします。->現在不具合が発生しており、任意メールアドレス取得ができません。(3月24日)
※サービス再開について4月16日にお知らせする予定です。(3月28日)

任意メールアドレスサービス開始について

と書いてあるので,送ったメールはどこかに消えてしまいました.闇の中ー.でもでも,

080408_mail_2.png

もう変更できない件www.使わねーよ!うわーん!

200804090019追記:
送ったメールは「アカウントのメールボックスがいっぱいで送れなかったよ!」で返ってきました.んなわきゃない.っていうか,このメールサーバは学内にないね.データセンタにあると見た.だから,メンテナンスがノラリクラリなんだな.

研究室からsvnのリポジトリに繋がらなくて,一瞬絶望した.やべっ!今日の仕事が出来ねー!って思ってしまった.そこはそれで,そうなれば,必死に何とかするわけです.というわけで,今日はsvn+sshを実現する方法を説明します.

まず,条件.サーバはVine3.2上で,subversionが動いています.ポートは適当に決まっていて,サーバのFWは通過できるようになっています.クライアントはWindowsでTortoiseSVNが動いているものとします.クライアントは学校側のFW下におり,svnプロトコルでの接続はブロックされている.httpおよびsshは接続可能であることを確認済み.この状況下で,svn(プロトコルではなく)を使えるように頑張る.

httpかhttpsでdav_svnという方法も考えたんだけど,自宅との運用性を考えたとき,httpじゃねぇ・・・.ということで,svn+sshを試みることにした.既にsshが使える環境であるならば,やるべきことは至って簡単.サーバ側で設定することは何もない.設定は全て,クライアント側のみだ.

080402_svn1.png

上の画面はTortoiseSVNの設定画面である.赤枠に注目していただきたい.ネットワークの項目から,SSHクライアントを設定する.TortoiseSVNにはTortoisePlinkなるSSHクライアントが付属されているので,それを使えばいい.至って簡単だ.SSHクライアントの設定欄は以下のように設定する.

tortoisePlink -l ユーザ名 -i 秘密鍵のフルパス

なんという簡単さ.さて,ここで注意したい.Plinkという名前でティン!と来たあなたは鋭い.このTortoisePlinkはPuTTYベースなので,鍵情報はPuTTY形式じゃないとダメなんだ.だから,PuTTYをダウンロードして,puttygenを起動させる.初めて鍵を作る人は普通に作ればいい.それはどこかのサイトを参照のこと.今回はOpenSSHで作成された鍵をPuTTY形式に変換する.

080402_putty1.png

読込からOpenSSHで作った鍵を読み込んでやると,このように上図のように表示される.指示通りに,秘密鍵の保存をすればいい.拡張子.ppkが付くので,同じ名前で保存してもいいんじゃん?さぁ.鍵の準備が出来たので,先に説明したSSHクライアントの設定で,鍵情報を追加しておこう.

最後に,svn+sshで接続できるように,リポジトリの再配置を行おう.

080402_svn2.png

既に再配置済みなので,どちらも同じアドレスになっているが,以下のような書式で指定する.

svn+ssh://ユーザ名@サーバアドレス/リポジトリのディレクトリ

まぁ,今までsvnプロトコルを利用していた人なら,"ユーザ名@"をサーバアドレスの前に付けるだけです.簡単だねっ!enjoy!

夜分遅く,こんばんは.突然,403Forbiddenになったので,夜逃げしかたかと思われたかもしれませんが,似たようなものです.

このブログはxreaのs319サーバで運用されていたのですが,ここのところ,サーバの負荷が高く,頻繁にエラーが出る状況でした.特に,MT4.1はAJAXグリグリの管理画面で,記事を書いているときに画像を挿入しようと思って接続エラーが出たときのショックは異常.どのぐらい異常かって,記事が消えるくらい.そのため,ブログの更新意欲が減退気味でした.

閑話休題.サーバの負荷がuptimeによれば,30とか40とかザラ.こんな不健全なサーバはよろしくない.そこにきて本日,ついに決別に至ったトラブルが発生.MTの管理画面であるmt.cgiにアクセスすると,403になってしまうのだ.なんということだ!これはやばいと思った.何といってもMTの管理画面に入れなければ,バックアップが取れない!まぁ.結局はうまくいったわけだが.では,どのように移行したのかを手順を追って説明.

  1. xreaの管理画面(s319)から「データベースの保存」を利用してDBのバックアップを作成する
  2. SSHでログインし,~をtarでガチ固め
  3. FTPでtarをダウンロード
  4. xreaから新しい無料サーバをレンタル
  5. s333を獲得
  6. value-domainの管理画面からxrea+のサービス利用権をs319からs333に移動する
  7. ドメインの設定もs333に向ける
  8. s333のFTPが有効になったら,tarをガチアップして展開
  9. xreaの管理画面(s333)から「データベースの復元」でDBを元に戻す
  10. 上手くいっていることを確認してs319を閉じる

主にはこのような流れになります.実際には,サービス利用権をs333に移動したんですが,ディスク容量の増量はすぐに適用されないようで,50MBしかアップロードできませんでした.そのため,このブログの画像類はアップロードされていません.だから,実はtarの展開はサーバ上では出来ずに,ローカルで展開して,個別にアップロードしました.なので,まだ完全移行は出来ていません.一応,動いています.

というわけで,ご覧の皆様には全く関係のない話でした.s333の感想ですが,至って良好で,快適です.負荷も1以下なので,良好です.今後とも,4403をよろしくお願いいたします.

いつの間にやら,MT4iがMT4.1対応になっていたので,早速導入してみた.

mt4i.png

これで電車の移動中などにも閲覧可能となります.「長文記事が多くて,携帯で見るのには向かない」という指摘は断固無視します.選択肢は出します.取捨選択はご自由にどうぞ.ご活用下さい.

このブログに「はてなスター」と「はてなブックマーク」を設置しました.以下,設置の仕方.

はてなスター
設置に当たっては,簡単のために,MTのプラグインを利用しました.設置は簡単で,スターを表示させたい場所に,<$MTHatenaStar$>と書くだけ.このブログでは,テンプレートの「ブログ記事のメタデータ」内のトラックバックの隣に表示するようにしてみました.簡単ね!

はてなブックマーク
設置に当たっては,はてなのヘルプに従えば大丈夫です.このブログでは,エントリータイトルの隣に置きたかったので,テンプレートの「ブログ記事の概要」と「ブログ記事の詳細」のそれぞれ適切な箇所に書込みます.簡単ねっ!

んなバカな!っていうタイトルが付いてますが,事実です.XREAは普通にSSHで入るとrbashという制限モードで繋がります.どのぐらい制限されているかって?

yocchan440@s319:~> ls
rbash: /bin/ls: restricted: cannot specify `/' in command names
yocchan440@s319:~> cd /
rbash: cd: restricted
yocchan440@s319:~>

正にガッカリな状態である.そこで,bash化を行うわけです.やり方は簡単で,参考サイトをそのまま.これでSSHでの作業時も安心ですねっ!

MT4.1になり心機一転の気分が高まっているため,タグクラウドを導入しました.当初の予定ではカテゴリによる分類を止め,タグ付けのみにしようと思っていたのですが,どうしても大分類・小分類という扱いの方がしっくり来ることもあるわけで,大分類をカテゴリとし,小分類は無秩序なタグクラウドにしようと決断しました.なお,現カテゴリは試行錯誤中です.ある程度運用して,タグからカテゴリへの昇格もあるかと思います.

閑話休題.タグクラウドのSEO化を行いました.

URL最適化前

http://4403.biz/mt-search.cgi?tag=xrea&blog_id=1

URL最適化後

http://written.4403.biz/tag/xrea.html

これを実現するために,mod_rewriteを用いて.htaccessにこう書く.

RewriteEngine on
RewriteRule ^tag/(.*)\.html$ http://4403.biz/mt/mt-search.cgi?tag=$1&blog_id=1

簡単ね!

さらに,タグクラウドのデザインはこちらのTag Cloud12をいただいた.クールでしょ?

200712281943追記:RewriteRuleを修正しました.

自分のセンスの無さとソースの汚さ加減にゲンナリです.このブログはStyleCatcherを利用してminimalist-blueというテーマをベースに,ちょこちょこと弄くっているわけですが・・・CSSをオーバーライドにオーバーライドしまくっているわけで,どこがどう悪さしているのかも分からないし,どのスタイルが適用されているのかを調べるのも一苦労.もちろん,Firebugを使っての話ですよ.えぇ.もうね.面倒くさくって,自分が追記したスタイル全部に!importantを付けてやろうかとすら思っています.はい.

さて,そんなこのブログですが,色々と調整した結果,Firefox2とOpera9では意図したように表示されるようになりました.しかしながら,IE6は期待通りの表示をしません!何が何やら.IE7は手元のマシンに入っていないので,確認できません.

みなさんはどんなブラウザをご使用ですか?

このブログではMT4.1を利用しているため,様々な方法での認証が可能となっています.コメントを書くにあたっては,従来通り,メールアドレスを利用した匿名による投稿の他に,OpenIDによる認証とHatenaIDによる認証を可能としています.

また,MT4.1は標準でCaptcha機能を搭載しているので,採用しています.reCaptchaも登録はしているので,標準機能で力不足の場合は,投入します.

皆様,どしどしとコメントをお寄せ下さい.

Movabletypeの最新ベータである4.1b2を導入してみた.導入に当たった参考サイトはこちら.ただし,mt-config.cgiを設置しない状態で,mt-wizard.cgiを使った方が初期設定は楽だと思う.DBにはSQLiteを採用したかったのだが,上手く動作しなかったので,MySQLを利用している.それ以外のmt-config.cgiの設定項目は以下.

DefaultLanguage ja
MailEncoding ISO-2022-JP
ExportEncoding Shift_JIS
DefaultTimezone 9
ShowIPInformation 1
DBUmask 0022
HTMLUmask 0072
UploadUmask 0072
DirUmask 0072
PublishCharset utf-8
HelpURL http://www.movabletype.jp/documentation/

至って簡単だ.

Google Sitemapsを使うわけだが,設置してみたところ,以下のエラーが表示された.

404 (ファイルが見つかりません) エラー ページのヘッダーで 200 (OK) のステータスが返されました。

そんなこと言われてもなぁ・・・XREAをレンタルしているわけで,ボクにそんなことを言われても・・・

というわけで,調べてみました!簡単なことで,.htaccessを使って,404は独自の404なページに飛ばしてやればよいようです.

ErrorDocument 401 /error/401.html
ErrorDocument 403 /error/403.html
ErrorDocument 404 /error/404.html
ErrorDocument 500 /error/500.html

こうして,問題は解決したのです.

あわせて読みたい