rootkitも調べよう


 何しろ、契約して軽く設定を見渡したっきり、かなり長期的に半放置状態だったのである。それほど危険な状況ではないと思ってはいるが、何となく気にはなる。
 まあ、ブルートフォース系は来るだろうけど、rootのパスワードは簡単には破れないだろうけどな。一般ユーザーも、ここ最近いじるようになる前までは俺とあ〜ごんだけだった気がする。多分二人ともそうそう安直なパスワードは使わないだろう。
 特にrootのパスワードは、大昔に連絡の途絶えたっきりの友人との内輪ネタだし、しかも英数モードのままカナ入力して適当にシフトを押したり押さなかったり(つまり元文字列が"ぱすわーど"だとすると"f{r0|s@"みたいになる)、という、一見すると無意味な文字列だけどカナ入力民族には楽に打ち込めて覚えやすい便利げな文字列を使っている。他で同じパスワードを使っているとかいう罠も確か無いと思ったし。

 つーか、いろんな無料会員制サービスが溢れかえる世の中だけど、平文でデータベースに登録するのやめろお前ら。
 あとリマインダーもうざいです。何が母親の旧姓だちくしょう。パスワード盗んでくださいと言ってるようなもんじゃないか。質問と無関係の答えを入れてるけど、パスワード二つ覚えなきゃならないのと変わらん上に、片方しか認証に使わないから安全ですらないし。

 まあいいや。本題本題。

 ともかく、気になったので検査する。
 えーと、chkrootkitとrkhunterとやらを使ってみるか。rkとはもちろんrootkitのことでしょう。そうでしょう。huntしてくれるのですね。便利そうだ。
 つーか、両方ともportinstallしてrehashして走らせるだけでした。ああ楽だ。
 chkrootkitは何も検出せず。rkhunterは何個かwarningが出たけど、見ていくと問題の無い物ばかりだった。オーケー。
 cronに登録して使う方法も書いてあったけど、別にいいかなあ。まあ、重くなるとかは無さそうな気もするけど。

 ついでに、昨日入れたdenyhostsのその後だが、導入半日で既にメールサイズが260KBほどに激減。大半は導入前の半日分の攻撃ログなので、明日はさらに大幅に減りそうだ。スリーストライクアウトで設定したから、三日後には完璧になっているのかな。何だか成長を見守る気分で楽しいな。ある意味学習型のツールだからかな。


security run outputが長すぎる


 さくらで借りてる鯖から毎日自動的に送られてくるセキュリティレポートだが、sshログイン失敗のログがとてつもなく大量すぎる。恐らくブルートフォース攻撃のログだな。勘弁してくれ。
 まーでも別に読み飛ばせばいいんだけど、と思いながら何となくファイルサイズを見たら、たった一通で650KBとか。おいおいおい。これはいかん。何とかしよう。

 ということで、まずはsshdの設定を一通り見てみる。ふーむ。ブルートフォース攻撃があっても全く気付かなくなるような設定は可能っぽいなあ。でもそれは嫌だな。一応は攻撃のログが残ってくれないと。
 んで、とりあえずパスワード認証を切って、公開鍵認証のみに変更してみる。少し待つと、相変わらず/var/log/auth.logが肥大化している。不正なユーザー名を試された時点でログに残るのか。うぜえ。
 ここで、連絡用Wikiのエラーログも妙に膨れ上がっていることに気付いたので、面倒だがローテートの設定。どうやらnewsyslogなるツールがデフォで使われてるようなので、ざっとmanを読んで、設定ファイルを適当に書き換えて、試しに一回実行してみる。綺麗にローテートする。こりゃ便利。

 それはともかく、何かうまい方法が無いかと探したのだが、pfというパケットフィルタ機能が使えないと駄目、という物が多かった。pfの導入方法を適当に調べると、何やらカーネル再構築がどうこう出てきた。怖いんで速攻で諦める。
 pfを使わないっぽいツールを調べると、pam_afとかdenyhostsとかが見付かる。どっちがいいのかさっぱり分からんけど、PAMはあまりよく分かっていない、TCPは何となく分かる気がする、という理由で後者を選択。
 では早速インストール開始。

 以前の教訓から、インストールの最後に出るメッセージはちゃんと読もう、と思ったので、読む。
 ふむふむ、/etc/hosts.allowを書き換えて、sshdの時は/etc/hosts.deniedsshを読み込むようにするのかな。よく分からんがサンプル通り書いとこうか。
 んで、hosts.deniedsshが無いなら自分でtouchしろ、とのこと。ハハハ。オーケーオーケー。touch /etc/hosts.deniedsshと。
 あとはもちろん、/etc/rc.confにdenyhosts_enable="YES"の追加だな。

 そして、/usr/local/etc/denyhosts.confを編集開始。
 ふむふむ、PURGE_DENYで有効期限を決める感じか。無期にすると事故った時に怖いな…。うーむ。どうするか。
 悩んでたら、次の項目にPURGE_THRESHOLDという設定が。ここで設定した回数以上の再犯者は無期になるっぽいな。併用すれば問題ないか。短めの有効期限にして、3ストライクアウトにしよう。万が一事故って自分が入れなくなったら、期限が切れた隙にログインしてしまえば何とでもなる。気がする。
 失敗回数の設定もあるな。これはまあ、そんな厳しくなくてもいい気はするな。ブルートフォース攻撃なんてもんは相当な回数で試行しないと破れるもんじゃなかろうし。デフォだとかなり厳しい設定になってるけど、レンタル鯖だからリモートシェル使えなくなる方がずっと怖いんだよな。つーかログがうざいのが元々の動機だし。ということで大幅に緩めておく。
 さらに、共有DBがあって、お互いに拒否情報を出し合ったり、○○台以上のホストに拒否食らってる奴の情報を貰って拒否とか何とか、便利そうな機能なので早速使おうと思いかけたんだけども、何かの間違いで俺がログイン出来なくなると嫌なので使わないことに。どんどん緩くしちゃうよー。

 んで、拒否リストを一定期間で解除する機能を有効にするには、コマンドラインに–purgeを書かなきゃならんのだが、どこで書くんだろう。んー。通例だと/etc/rc.confにdenyhosts_flags="--purge"とか?
 調べたけど良く分からんので、そのまま試した。オーケーちゃんと動いたぜ。
 そして、起動するなり早速どこかのホストが規制リストに加わっていた。ハハハ。ざまー見ろカス野郎が!

 ということで、メールのサイズが縮むことを祈るのであった。出来れば大幅に。
 ついでにブルートフォース攻撃の心配も軽減された(本来逆だが)ので、sshのパスワード認証を復活させても別にいいような気がしなくもないが。うーん。どうなんだろうなあ。


久々にマビノギな話でも


 今でも結局はマビを続けてる訳なんですが。よくもまあ飽きずに。
 いや飽きたけど。さすがに二年半以上やってるしな。

 今は微妙にトンチキなイベントをやっていて、全員が一丸となってアイテム寄付しまくろうぜー、という俺的には大好きなはずのアレなんですが、「何をどうすれば進行するのかよく分からない」という致命的状況な上に、たったの一週間で終わってしまうので解明する時間も無く、協力体制とかいう以前に期限切れ確定。せめて一ヶ月くらいあれば、間のメンテでこっそり調整とか出来そうなのになあ。
 まあ、マビのイベントは(最近はいい感じのが続いてたけど)超絶ヘタクソな設定が多いので諦めよう。くそう。普通に進捗を知らせるNPCくらい置いてくれれば化けたかもしれないのに。
 つーかイベントなんてどこのゲームでも平気で大失敗するしな。そうだったハッハッハ。ちくしょう。

 まあイベントの話は置いといて。

 最近はペッカ下級なども息抜きレベルになってきており、身内プレイなら四人もいれば半分手抜き、二人でもノーデスとか、変われば変わるものだなあと。さすがに二人でペッカ通常とかになると覚悟が要るが。
 ソロをしている人もいるみたいだけど、さすがに長時間になりそうなのでたぶんやらない。つーか弱いんでたぶん無理。
 こういう遊び方をしていると、いかにもアクションゲームなんだなあとか、連携おもしれーとか思えるんだけど、そういうことが出来るのもフレがいるからなんだよなあとは思うし、これからもフレは増やしたい訳なので、もう少し「みんなで潜りたいダンジョン」を作って欲しいなあと思ったりもするけども、ペッカがそうじゃん、って気もするんで何とも。
 まあ、下手に凶悪なダンジョンが増えても、はなっから凶悪な人達しか集まらないだろうしなあ…。

 そーいや、次の大規模アップデートでは気球に乗れるらしいな。んでもって、火山地帯に雷とか落ちてて、ドラゴンと空中戦とかいう感じらしい。
 ぶっちゃけSS見たら別のゲームみたいでした。
 でもまあ、戦闘も好きな俺的には概ね歓迎。たまには生活方面に気合い入れたアップデートもくれー、と思うけど。まあ、要望が多かったらしいメインストリームも(たぶん)地味に再開してるし、もしかしたら生活面にも何かしら来てくれたりしないだろうか。厳しいかなあ。

 ついでにWonderland ONLINEみたいな家を持てたら楽しいだろうけど、まあ、これは無理なんだろうな。
 あのゲームは何気にかなり惜しかったと思う。自動操縦をログアウト後も続けてくれる仕様だったら、まだ続けてたかもしれない。そうすれば相性の悪いゲームとも共存出来ただろうし、寝てる間に電気使いまくって精神衛生に良くないとかも無かっただろうし。かと言って、今からそういう仕様にするのは無さそうだしなあ。
 あと、チートが出回るかと思ったけど、意外にしっかりしてたらしい。大変失礼しました。だってさー、今時メッシュで半透明なんてやられたらさー(笑)。見た目に色々と騙されるゲームだよなあ(笑)。
 セカンドPCつけっぱの人とかには向いてるゲームかも。2Dだから多少古いマシンでも行けるだろうし。

 まあ、例によって結局マビを続けてる訳だが、マビノギ英雄伝が出たら俺はどうするんだろう。マビ知り合いの動向にもよるかもしれないけど、うーん。世界観が気になるから、ある程度はプレイすると思うんだよな。
 とは言え、マビも大規模アップデートが続いてる訳だし、平行して続けるんかなあ。まあ、来た時に考えるか。


何気に手間取るIRC


 というか、こんな面倒だったっけircdって。portinstall ircだけで済むかと思ってた。
 つーか、IRCの仕組みを分かってないから手間取った、という面もあるかも。
 また、新鯖は極力portupgrade -aで済む形にしたいので、Makefileの編集とか*.hの編集とかは最終手段として封印するのだが、お陰で面倒でもある。まあ最初が面倒でも後々楽な方がいいからな。

 まず手間取ったのがircd.confなのだが、そーいやircdって鯖同士が繋がったり出来るんだったな。単純な独立サーバにしたいのだが、どうにも大規模向けな設定ファイルで悩む。旧鯖の設定ファイルそのままだと起動すらしないし。
 とりあえず、サーバID(SID)とやらが追加されて、日本は392で、末尾に適当に一文字付ける感じっぽいのかな。ということで、SIDを392Aと指定。さらにネットワーク名なんてのも指定させられるが、これはもう適当に指定。いいのかなあ(笑)。
 んで、起動はしたのだが、接続するとヤケクソに重い。これは覚えてるぞ。identの問題だ。iauth.confを適当に書き換えれば良かったはず。ということで、ident使うぜーとか書いてあるとこをコメントアウト。
 そして接続すると、今度はsplit-modeとか表示されてる。気になるタチなので調べると、このモードは鯖同士の連携が切れてる扱いっぽくて、チャンネル作っても@が貰えないらしい。困るじゃん。つーか独立鯖なんだからどうでもいいのに。
 どうすればいいのか軽く検索してみたが、ヘッダに触る方法しか書かれていない。うぜえ。

 この辺で何となく、このソフトは俺の好みじゃない気がしてきたので、別のソフトを適当に探してみる。ふむ、ircd-hybridなんてのがあるのか。オーケーオーケー。それ行ってみよう。書き換えたconfを削除して、pkg_deinstall ircして、portinstall ircd-hybrid、と。何やらircd用のユーザーを作らされたぞ。いいことですね。作れ作れ。
 んで、/usr/local/etc/ircd-hybridに入って、simple.confをircd.confにコピーして、ざざーっと書き換える。
 そして、/usr/local/etc/rc.d/ircd-hybrid start、と。

 起動しねえ。
 メッセージすら出ねえ。

 どうにも訳が分からなかったのでアンインストールして、しばらく考えた結果、やっぱこれ使うのがベターなんじゃと思い直してまたインストールする。馬鹿である。
 で、インストールのログの最後の辺りに、何気なく「/etc/rc.confにircd_hybrid_enable="YES"を必ず追加しようぜ」みたいなことが書いてあった。これが無いと手動ですら起動しないようだ。こんちくしょう。
 そして、追加して起動スクリプトを呼んだら、スタートしますよーというメッセージが今度こそ出た。オーケーオーケー、IRCクライアントで接続だ。

 繋がらねえ。

 ps auxww | grep ircしても引っ掛からないし、/var/run/ircd/ircd.pidも出来てないんで、どう見ても起動してないです。
 つーことで、/var/log/ircd/ircd.logを見る。SIDがinvalidだそうな。うぜえ。
 サンプルファイルを見るに、ircd-hybridのSIDは三文字らしい。ふーむ。ということは392なのかなあ。まー392で。

 で、今度こそ動く。おめでとう俺。これで更新があっても楽になるぜ。
 ということで、近日中にいよいよWebとIRCの全面切り替え予定。そろそろやらんとマジで旧鯖停止に間に合わないしな。
 まあ、WebはともかくIRCは全然使ってないから、問題があっても自分では気付けない可能性が高いのだが。ちゃんと動くといいなあ。


少しやる気が戻ったので文字化けを何とかしたくなった


 こないだ吹っ飛んだ時、バックアップからリストアしたのだが、一部が文字化けしていた、という話を書いた。
 特に「〜」が化けていて、「あ?ごん」とかなってて面倒だった(笑)。放置してもいいかとは思ったけど、手作業で軽く修正しておいたのだが。
 他にもちょくちょく化けてそうだったが、さすがに原文と突き合わせて調べるのもかったるいので放置していた。

 んで、やっとblogに触れる気力が回復してきたので、何となく考えた。

 移行する時に吹っ飛んだのは、phpMyAdminでバックアップを掛けた→ぐちゃぐちゃに化けたバックアップファイルが出来てた→確認もせずに油断してて余計な作業をしまくった→戻せなくなった、というアホな作業をしたからだ。つーか吹っ飛んでリストア不能なんてのは基本的にアホの所業である。
 一方、WordPress Database Backupプラグインで作成したバックアップは無事機能した。つーか読み込めた。
 ということで、phpMyAdminを通すと化けるのではないか、という仮説が。オーケー、他の復元方法を調べてみようか。

 んで、調べる。
 ふむふむ。どうやらmysqlにそのまま食わせていいらしい。

> mysql -u root -p password wordpress < backupfile

などというコマンドラインを提示されたので試してみたら文字化けも無く成功。万歳。ついでにphpMyAdminも消去しよう。シェル使えるんだからWebインターフェース要らんよな。
 で、history -cしたが、気持ち悪いので軽く試行錯誤した結果、

> mysql -u root -p
mysql> use wordpress
mysql> source backupfile

で行けた。おめでとう俺。つーかrootじゃなくても行けそうな気もするが。まあ次の機会にでも。

 んで、適当に生きてるエントリを復元して終了。ふう。少し慣れてきたかな。
 つーか、バックアップ取るのも自前で行けるんじゃないのか。と思ったけど面倒なだけか。でも一応調べる。

> mysqldump -u root -p --opt wordpress > backupfile

だけでいいっぽいな。
 ということで実験してみると、phpMyAdminと同じ化け方になる。何だってー。

 そして少し調べたら、

> mysqldump -u root -p --default-character-set=binary wordpress > backupfile

これで行けたっぽい感じも。つーことはphpMyAdminもバイナリを指定してやりゃいいのかな。まあいいか。シェル便利だし。