MTの最近のブログ記事

ようやくサーバーの調整作業が落ち着いたと思いきや、何日も経たぬうちにシックス・アパートから「セキュリティアップデートにおける脆弱性への修正が不十分であることがわかりました」とのメールが届く。よもやよもやである。

今すぐ作業というわけにもいかず、かといって時間をかけて調整したところでまたまた攻撃を食らってはかなわないと、ひとまずサーバーにあげたデータをすべてダウンロードしておく。そして今日、時間が取れたところで、MTを7 r.5004から7 r.5005にアップデートする。

httpをhttpsに変える常時SSL化といえば少し前まではEコマースのサイトで使われるものというイメージがあったが、昨今では通常のサイトでもSSL化が当たり前のようになっているらしい。
また、これまでSSL化するには別途費用がかかるものと思い込んでいたが、なんとサーバーのサービスにより無料で実現できるということを今回の攻撃被害のごたごたで知る。
無料でセキュリティ面が向上、SEO対策にもなる。というわけでやらない手はない。しかも契約するさくらインターネットではそれがコントロールパネルからの操作だけで完了するというのだから、なんでもっと早く教えてくれなかったのという感じ。MTの移行作業も落ち着いたので早速実行してみる。

ちなみに、さくらでは有償SSL証明書ももちろんあるわけだが、今回利用するのは Let's Encrypt という無料のSSLである。
いざコントロールパネルから登録設定。証明書が発行されるまではわりと待たされる。10分ちょっと待つと証明書発行のお知らせメールが来た。

さて、正しく表示されるか確認。
するとMTのブログ表示がおかしい。なんだ簡単にいかないじゃないかとまたまた情報を探る。

さてさて、対処法はというと。
MTの親サイトの「設定 > 全般」で、公開パスのサイトURLをhttpからhttpsに変更して、全再構築。

ひとまずこれでおかしい表示はなくなったが、ブラウザが「このページの一部は安全ではありません」と半SSL状態になっている。
どうやらページ内の画像のパスもhttpからhttpsに変えないとならないようだ。

参考:
【無料SSL】Let’s Encrypt 設定手順
ドメインリダイレクト機能の使い方
常時SSL化

ひと月ほど前のある日、MTで構築しているこのブログの表示がおかしいことに気付く。管理画面にも入れなくなっている(後で気が付いたことだが、MTのシステムフォルダがごっそり無くなっていた)。
おかしいなと思いつつ数日、どうやら10/20に発表されたMovable Typeの脆弱性(CVE-2021-20837)による攻撃被害であるということがわかってくる。FTPで確認すると、見覚えのないフォルダがあり、怪しげなファイル(.htaccess、index.php)が消しても消してもサーバーに自動生成されるのだ。
どうしたものかネットで情報を探り、契約しているさくらインターネットのサポートにも相談。すると「サーバーを初期化したほうがよいでしょう」とのこと。やはりそれしかないか。

通常のページは元ファイルがあるので問題ないが、MTをまた一から構築しなければならないことを考えると気が遠くなる。ただ、データベースには被害が及んでいないようなのでそこは救いがあった。データベースをエクスポートして、初期化の前にまずはMTの構築作業を試してみる。
疑問だったのはMTのバージョンを変える時の手順。試してみると移行と同時にアップグレードも可能なことがわかる。というわけで、この機会にMTは6.3.2から脆弱性を修正された7 r.5004にアップグレードすることに。

さて、あらためてさくらのサポートに初期化を依頼。ほどなく、まっさらになったサーバーに元ファイルをひとつひとつ確認しながらアップしていく。
MTの構築も果たしてうまくいった。ちなみにデータベースはこれまでのものはそのまま使わず、別に新しく作ってインポートしている。表示されなくなっていたブログパーツや、プラグインに一部未対応のものもあったので、この時ばかりとそれらの見直しも行う。MT6とMT7では管理画面をはじめシステムに若干の違いはあるようだが、ブログページの表示に関してはまったく変わりはなく、安心する。

そうそう、サーバーの移転やMTの構築にはとびきり時間がかかるものと思い込んでいたが、今回は作業前に悩みこそすれ、実際にやってみると意外とわけなく済んだ。それはこれまで遅いネット環境を利用していたことによるのだと思う。ADSLを光回線にしたことで、データベースのエクスポートやインポート、MTのシステムファイルアップも早いし、回線速度に起因するようないらぬエラーも発生しなかった。正直、ホッと。

[重要] Movable Type 7 r.5003 / Movable Type 6.8.3 / Movable Type Premium 1.47 の提供を開始(セキュリティアップデート)
リッチテキストエディタの右クリックメニューに「リンク」しか表示されない

契約していたサーバー、ドメインキングの更新月が近づき、送られてきたメールを見ると請求額がこれまでの2倍以上、いや3倍近くにもなっている。
もしかしてスパムメールじゃないか、何かの間違いではないかとよくよく調べてみると、料金の改定を知らせるメールがだいぶ前に届いていたことに気づく。完全に見落としていた。

安さに惹かれて契約したドメインキングであるが、今回の値上がり幅を考えるとこのまま利用する価値を見出せない。面倒な移転作業はしたくないが、他社の同等プランと比較してもはるかに高い料金に納得できず、思い切って解約することにする。

あらたに契約したのはさくらインターネット。以前、ライトプランを契約していた時期があり、使い勝手も悪くなかったので、今回はあらためてスタンダードプランを契約。料金も納得のできる範囲である。急ぎ移転作業にかかり、サーバーの消去期限ぎりぎりにかろうじてバックアップを済ます。

さて、通常のページは問題ないが、心配なのはMTの移転。以前も手こずった記憶があり、その時に残していたメモを頼りに作業にかかる。

サーバー移転再び

今回新たに躓いたところは、phpMyAdminのインポートでファイルサイズが大きいとタイムアウトになってしまい、インポートができないこと。
ネットで調べてみると、SSH接続でコマンドを実行して直接データベースをインポートする方法があるという情報をつかむ。これにはSSHクライアントソフトを使うとのことで、情報を頼りに「TeraTerm」というソフトをインストール。

果たしてこれでうまくいったようだ。
最初はzipのままやろうとしたらはねられてしまってうまくいかなかったが、zipを解凍してsqlとしたら成功。

あとは、mt-config.cgiの書き換え。
さらにMTの管理画面からは、ウェブサイトの[設定>全般]の「公開パス」を書き換える。
これでエラーが出ることもなく、新たな書き込みもうまくいった。万歳!

参考:
【さくらインターネット】phpMyAdminからMySQLのインポートが失敗(タイムアウト?)するときの対処法

Twitterのボタンがいつの頃からか表示されなくなってしまったし、Facebookのいいねボタンも動きが気になるので、この際設置し直すことにする。

●Twitter
Twitterボタン | About

ボタンを選択:リンクを共有する
・URLを共有:<$mt:EntryPermalink$>
・ツイート本文:<$mt:EntryTitle$>
・ユーザー:Twitterアカウント(未入力でもいい)
・推奨:(未入力でいい)
・ハッシュタグ:(未入力でいい)
・言語設定:Japanese - 日本語

生成されたコードを貼り付ければOKのはずだが、jsが干渉しているせいなのかこのままではどうやってもボタンとして表示されない。そこでFacebookにならってIFrameで実装することにする。以下のコードを基本形として編集。

<iframe allowtransparency="true" frameborder="0" scrolling="no" style="width:130px; height:20px;" src="http://platform.twitter.com/widgets/tweet_button.html?&amp;lang=ja"></iframe>

Tweet ボタンをiframe を使って設置する
twitterのボタンをiframeを使って埋め込む方法

●Facebook
facebook for developers

・「いいね!」するURL:
記事毎に設定する場合は、ここに「<$mt:EntryPermalink$>」を入力するのだが、コード生成時に<>がエスケープされてしまうので、適当な文字を入れてコード生成後に修正する。
・Width:(未入力でいい)
・レイアウト:button_count
・アクションタイプ:like
・ボタンサイズ:small
・友達の顔を表示する→チェックを外す
・シェアボタンを追加→チェックを外す

IFrameのコードを取得
作成したコードの「href=http%3A%2F%2Fwww.ta-kumi.net%2Fblog%2F」を「href=<$mt:EntryPermalink$>」に書き換える。

参考:「いいね!」ボタンの挙動
Facebookにログインしていない場合の「いいね!」ボタンやコメントボックスについて

MTを6.3.2にしたら記事の行頭に半角スペースが入らなくなったのがどうにも気になっていろいろ調べたところ、どうやらエディタTinyMCEの挙動によるものらしい。そもそも自分はCKEditorを使っているものと思い込んでいたというオチもある。
ネットで情報をようやく発見。TinyMCEConfigというプラグインをインストールして、entity_encoding : "named"を設定することで思い通りの挙動にはなった。ただ「&nbsp;」が入るのが気になり過去の記事をさかのぼってみると、もっと以前には「&nbsp;」が入っているではないか。「&nbsp;」が入るのがむしろ正しい挙動っぽくある。5.2.3を使っていた時期だけなぜか「&nbsp;」が半角スペースに置き換わっていたようなのである。

TinyMCEにて「 」が削除される

MovableType5.2xや6以降にもリッチテキストエディタのCKEditorプラグインをインストールできる

サーバー移転がうまくいったようなので、続いてMTを5.2.3から6.3.2へアップグレードする。急がば回れで、念のためにデータベースをもうひとつ作って、旧バージョンはそのまま残す方法を取る。プラグインの対応が心配だったが、手順どおりにアップロードするだけで問題は起きなかった。

MT6をアップしたディレクトリに追加でアップしたのは以下のファイル。
・mt-config.cgi(環境に合わせて書き換え)
・plugins/追加したプラグイン(MT6に同梱されているものはアップせず)
・mt-static/plugins/追加したプラグイン(MT6に同梱されているものはアップせず)
・mt-static/support

Movable Type 5.2.x は、2015年9月30日に"EOL"(製品ライフサイクルの終了)を迎えたとのこと。10月以降、Movable Type 5 全製品は開発終了となり、脆弱性対応を含め、アップデートがおこなわれない。

【MT】MT5からMT6へのバージョンアップ手順まとめ
ダッシュボードの「SSL 証明書の検証ができません。」という表示を消す

Movable Type 6 へのアップグレード

ta-kumi.comのMTをta-kumi.netに移転する。
最初、「バックアップ」と「復元」によるデータの移行を試すが、文字化けが発生してうまくいかない。あれこれ悩んだ末、データベースのダンプデータによる移行を試す。

まずphpMyAdminを使って旧サーバーのデータベースを「エクスポート」。次いでダウンロードしたデータベースを新サーバーのデータベースに「インポート」する。

ここでいくつかポイントをメモ。
・データベース名は旧サーバーのものと同じにする必要はないようだ。
・sql内の記述はデータベースが更新されると環境に合わせて自動的に書き換わるようだ。よってインポートする際に書き換え作業は不要(たぶん)。
・エクスポートは一度にやろうとすると反応してくれないことがある。面倒でもテーブルをひとつずつ保存するのが確実。したがってインポートもひとつずつ。さらにlogなど大きいテーブルはzip形式で圧縮するとスムーズにいく。
・インポートするときは、ダウンロードしたzipを解凍せずにそのままアップできる。

データベースを移し終わったら、MTのシステム部分(mt)とブログ部分(blog)を旧サーバーから新サーバーへそっくり移す。このとき、FFFTPをふたつ立ち上げて旧サーバーから新サーバーへフォルダごとドラッグすると、ローカルにダウンロードする手間が省ける。

最後にmt-config.cgiの記述を書き換える。(パス、データベース名等)

[設定>全般]の「公開パス」ほか、ページ上の細かいところはMTの管理画面で修正する。

新サーバーにMTをインストールする方法を取ると、プラグインなどもあらためて組み込まねばならずどうしたものかと思っていたところ、これでうまくいったようなのでホッとする。というか、サーバーの移転にはこれ以外の方法は考えられないと思う。しばらくは様子見だが、この書き込みもとりあえずうまくいっている模様。

別のサーバーへ移行したい

契約しているサーバー会社から突然こんなメールが来た。

お客さまにて運用中のホームページコンテンツにより、サーバーに大きな負荷がかかっており、同じサーバーをご利用頂いております他のお客様のホームページ表示やメール送受信等に影響を及ぼしていることが確認できました。そのため、取り急ぎ以下のコンテンツを動作させないよう、ファイル名を変更させて行わせて頂きました。

なんだとー!
これまでにもコメントスパムは度々あったが、たしかに今回は短時間にかなりの数が来ているもよう。削除しても次の瞬間にはもう来ている。
そもそも通常のコメントもトラックバックもほとんど来ないんだから機能を切ってしまえばいいのだろうが、何か手っ取り早く解決できる方法はないものかと調べたら次のようなのが見つかった。

MTのコメントスパムをなくす.htaccess

どういう仕組みになっているのかよくわからないが、さっそく実行してみたらぴたりとコメントスパムが来なくなった。これはよさそう。

一方、トラックバックスパムに対してはこちら「mt-prevent-trackback-spam-no-link」をダウンロードしてインストール。

トラックバックSPAM防止プラグイン

これも仕組みはよくわからない。MT5に対応しているかどうかすらもわからない(管理画面にも表示されない)んだけど、これを入れたらトラックバックスパムがぴたりとやんだ。

だいたいスパムなんて意味のない徒労に近い非生産的な行為、ほんと誰がやってるんだろうね。こんなところを攻撃したところでおそらくまったく体制になんか影響しないんだから、完全にとばっちりなんだよなー。

ここ数年自分にとって恒例となっているMTDDCに今年も行ってきた。会場は昨年と同じマイクロソフトの品川本社。

内容はというと、この秋にリリースされるというMT6を中心に、今回もシステム系の話題が中心。いささか退屈で、途中何度も眠くなる。そもそもData APIって何だよ?そのへんからきちんと説明して欲しかった。わかんないヤツは聞かなくていいよって雰囲気が感じられてしまう。内輪だけで盛り上がっているような印象だ。
そんな中、デザイナー長谷川氏のトークは唯一ユーザー寄りの視点で語られており、熱もこもっていてよかった。
以前はもっと全体的にごく一般のユーザーも楽しめるお祭り的なところがあったと思うのだが...。残念である。

月別 アーカイブ

Twilog
Powered by Movable Type 7.902.0
Status Entry : 1144
Comment : 3  Trackback : 0
Today:today  Yesterday:yesterday
Total : total count