またサムネイル全部壊れて、手作業で直しました。。。

きっかけはMovableType 6.3.2 → 6.3.3 のバージョンアップ。

OSのバージョンアップをするつもりだったんだけど、OSからクリアインストールして再構築した方がすっきりしそうだったんで、クリアインストールしたんですが、そのときページのナビゲーションが壊れていたことを見つけたので原因とか調べるのも面倒なんで、MovableTypeのバージョンアップしちゃえ!と。
そしたら・・・

ある程度周期でOSもMTもバージョンアップが必要ではあるのですが、いつも同じ事を繰り返している気がするんだよな。

MovableType、バージョンアップとかする度にどこかしら調子が悪くなって困りものです。

気づいたら、サムネイル画像が全滅してました。アイテムの管理ページで「ファイルが存在しないアイテム」フィルタを使ったら、ほぼ全部。。。

仕方が無いので手作業でちまちま直しました。

継続は力なり!なのか?を見て、手作業で直すしかないかな・・・と。

仮想環境で動かせるフリーのFirewall/ルータとしてはVyOSが有名ですが、SophosのFirewallもフリーで使えます。

Sophos UTM Essential Firewall

機能限定版とはいえEssential版であれば、企業ユースでも使えます。Sophosさん太っ腹ですね。

個人ユースでは上位版のUTMも使えます。
Sophos XG Firewall Home Edition
これならばアンチウイルス/IPS/WAF/アプリケーション識別も動きます。すごいですね。

XGを使った感想ですが、GUIはほぼそのままSophos SG/XG UTMと同じです。ただポリシーエディット画面など使いやすいかと言われると微妙なところです。たとえばゾーンごとのマトリクス表示から選択して絞り込みができるSonicwallだとか、ゾーンごとの表示をまとめられるFortigateだとか、そもそも機能が少なくてシンプルだったNetscreenの方が使いやすかった気がします。フィルタで絞り込みはできるのですけど一応。逆にダッシュボード画面はよくまとまっている気がします。これだけ大量かつ複雑な情報を一覧表示させているのですが、ごちゃごちゃ過ぎでもありませんしなかなかだと思います。
機能的にはサイト間のSSL-VPNが珍しい機能です。IPSecだとESPとUDP500/4500を通さなければならないので使えない環境が出てくるのですが、SSL-VPNならSSL(HTTPS)だけ通せれば良いので環境によって使えるかもしれません。

システムの必要要件ですが
Minimum Hardware Recommendations

  • 1.5+ GHz processor (dual core+ recommended)

  • 1 GB RAM (2GB strongly recommended)

  • 60 GB hard disk

  • Bootable CD-ROM

  • 2 or more network cards

  • と仮想環境であればx64CPU×2コア/RAM 2GB/HDD 60GBで動くのでラボ環境作りにはとても便利です。

    ついでにハードウェア版の価格も調べてみました。(UTMの年間ライセンス込み)
    ・Sophos SG 105ベーシックガード 95,300円(320GB HDD/1GbE copper x 4)
    ・Sophos SG 115ベーシックガード 149,600円(320GB HDD/1GbE copper x 4)
    これなら、Fortigateに対抗できそうな価格ですね。
    Fortigateのライセンスがあと2年なので、リプレース考えてみてもよさげです。

    postfixでSPF判定

    Ubuntu 16.04 LTSのpostfixに「SPF判定」を組み込んでみるテスト

    Postfix-policyd-spf-perlをインストール

    #apt-get install postfix-policyd-spf-perl libmail-spf-perl

    master.cfにspf判定を追加

    #vi /etc/postfix/master.cf
    policy-spf unix - n n 0 0 spawn
    user=nobody argv=/usr/sbin/postfix-policyd-spf-perl

    main.cfのsmtpd_recipient_restrictionsにpolicy-spfを追加

    #vi /etc/postfix/main.cf
    smtpd_recipient_restrictions = <元々書かれていたポリシー> check_policy_service unix:private/policy-spf

    Postfixで設定ファイルをリロード

    # postfix reload

    と手順的には難しくないです。

    実際テスト環境でメールヘッダがどうなるかというと

    Received-SPF: none (lab3.local: No applicable sender policy available) receiver=ns.lab.local; identity=mailfrom; envelope-from="root@lab3.local"; helo=mail.lab3.local; client-ip=10.3.1.1

    という具合にReceivedヘッダの途中にReceived-SPFというヘッダが記録されてきます。
    かつ、この場合SPFレコードがないホストからメールが来たため、判定がnoneとなっています。

    bindのゾーン委任

    明けましておめでとうございます。

    年始早々くだらないことでハマってしまったので。

    ラボ環境を作って内部だけのDNSゾーンを作ろうとしていたところ、bind9.10.3でゾーン委任がうまく動かない。

    ラボ環境のDNSドメインをlab.localとして
    委任する側のzoneファイル

    $TTL 60
    @ IN SOA local. root.local. (
    1000 ; Serial
    600 ; Refresh
    120 ; Retry
    600 ; Expire
    60 ) ; Negative Cache TTL
    ;
    @ IN NS ns.local.
    @ IN A 10.0.1.1
    ns IN A 10.0.1.1

    lab.local. IN NS ns.lab.local.
    ns.lab.local. IN A 10.1.1.1

    委任される側のzoneファイル

    $TTL 60
    @ IN SOA lab.local root.ns.lab.local (
    10 ; Serial
    300 ; Refresh
    300 ; Retry
    300 ; Expire
    60 ) ; Negative Cache TTL
    ;
    @ IN NS ns.lab.local.
    @ IN MX 10 ns.lab.local.
    @ IN A 10.1.1.1
    ns IN A 10.1.1.1

    普通にサブドメインのゾーン委任しているだけなのに動かない・・・

    と思ったのですが、委任する側のDNSサーバにクエリを投げると、上位側のDNSサーバがforwardersで指定したサーバに聞きに行っていることがわかりました。
    サブドメインだから検索するときに先にforwardersで指定したサーバを見に行ってしまうことがアカンのかと思って、STUBゾーンにいてみたりしましたが意味なし。

    zone "lab.local" {

    type stub;
    masters { 10.1.1.1; };
    file "db.lab.local.stub";
    };

    結局、サブドメインのゾーンをforwardしない設定にしてあげると、ゾーンファイル側を見てくれるようになりました。

    zone "lab.local" {

    type stub;
    masters { 10.1.1.1; };
    file "db.lab.local.stub";
    forwarders {};

    };

    結論:サブドメインをStubで定義して、forwarders {};を入れておく。

    尤も、サブドメインを委任するということは通常その上位のドメインの権威あるサーバということですから、フォワードしないというか自身の持っているゾーン以外の問い合わせに応答させることはないはず。ですので特に問題にならないかと思うのですが、今回の場合あくまでラボ環境ですので外部へのクエリをフォワードする役割と、ゾーンを持っているサーバを兼務させていることが事の原因かと。

    IPv6をDisableする
    /etc/sysctl.confに以下の設定を追加する

    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1

    NICのデバイス名を伝統的な名前に戻す(ens160 → eth0)

    ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
    ほぼこれだけではダメなので
    /etc/default/grubに以下の設定を行う

    GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

    GRUBを書き換える

    sudo grub-mkconfig -o /boot/grub/grub.cfg

    キース・エマーソン死去

    キース・エマーソンが亡くなったとニュースで知った。
    71歳だった。

    EL&Pのキーボード(というかオルガンとピアノとシンセサイザー)の人と言っても判らない人も多いだろうけど、ザ・ナイスの人って言ったら余計に判らないだろう。
    70年代にプログレ(プログレッシブ・ロック)が一世を風靡した時代があって、EL&Pはそのプログレバンド四天王の一角だった。
    キース・エマーソン(Key ex.ザ・ナイス)、グレッグ・レイク(B,Vo ex.キングクリムゾン)、カール・パーマー(Dr ex.アトミック・ルースター)というトリオ構成で、それぞれ別のバンドに居たのだけれど、解散したり脱退したりして結成された夢のスーパーグループな訳だ。最初からプロというか売れる必要が有る状態でもあった。とは言っても当時はアート・ロックなどをベースに一層過激になったり、ウッドストックの成功があったり、69年にキングクリムゾンがビートルズをチャートの一位から引きずり落とし(と言われている。)たりと、時代の変わり目だったことは間違いなく、より一層複雑に進化をしていたロック音楽にとってはプログレは当然の流れだったようで彼らの音楽もロック・クラシック・ジャズ等が絡まった複雑な音楽性が売り。

    残念ながら(年齢的に)リアルタイムでは無いのだけど、高校生の時にバンドやってた先輩の勧めで聴いてみたら、のめり込んでしまった。プログレ勢の中でもブルースやロックンロールではなく、クラシック、ジャズからの影響が色濃く当時流行りのプログレかと言われれば若干違うけど、逆に年月を経て聴いても新鮮に感じられるほど斬新な音楽だった・・・と少し褒めすぎかも知れないが。とにかく良く聴いた。

    中でも彼らの中で好きな作品(アルバム)はタルカス、展覧会の絵、恐怖の頭脳改革と、一般的にみんな大好きな作品。

    タルカス

    展覧会の絵

    恐怖の頭脳改革

    好きな順で書きましたが、

    タルカスは2枚目のオリジナルにあたり、初の3人による合作と言える作品。非常に特徴的な4度のリフ(というかモチーフ)で始まり、タルカスという空想上の生き物というかアルバムが謎の戦車のお話になっている。個人的に一番好き。TarkusからAre You Ready,Eddy?まで一気に聴けます。

    展覧会の絵はムゾルグスキーの作品を3人で演奏してしまったというライブ作品。クラシックのロックアレンジという点でも画期的だが、実はライブでちょくちょく演奏してたらブート盤が出回ってしまい、レコード会社が急遽正式にアルバム化したといった経緯のもので本人達はそれほどの思いは無かったよう。

    恐怖の頭脳改革はEL&Pが自分らのレーベルを立ち上げた時のアルバム。EL&Pの中で一番に挙げる人が多い超名盤。


    キース・エマーソンと言えば、ザ・ナイスでも、EL&Pでも(ギターレスで有りながら)演奏面でも、ステージパフォーマンスの面でもバンドの中心として有り続けた人。幼少期からクラシックとジャズに囲まれて育ったというだけあってそれは明らかに聴けば判るし、オルガンに乗っかってナイフで刺しちゃって、その後ぶっ倒すなんてパフォーマンスは彼くらいだろう。そして実はロック音楽にシンセサイザーを持ち込んだ人でもある。

    どちらかと言えば目立たない鍵盤楽器奏者の中で特に異例の存在だろう。


    EL&Pの解散後も映画音楽への楽曲提供だったりと色々と活躍してたし、1990年代にEL&Pの再結成もあったし、近年もEL&P再結成して4月には来日ライブの予定もあったし、まだまだ活躍してほしかったのだれど。

    謹んでご冥福をお祈り致します。

    RIP Keith....

    余りにショックが大きく久々にここに書いてしまいました。。。

    最近のFirewall

    最近はFortigate一択ですね。

    セキュリティに金を掛けられるならば、Paloaltoを使うとか、ログを重視と言えばCheck PointのApplianceを選ぶなど他の選択肢もあるのですがコスパ・スピード・GUI・UTMとか言った時点でFortigate一択という状況ですね。
    NetScreenがというか、SSGが正当後継的な製品を出していればまだNetScreenの天下だったかも知れませんが。FortigateにせよPaloaltoにせよNetScreenに関わった人が作った会社という点で血筋は受け継がれているのですが、本家が不甲斐ないせいで・・・。

    Windows8以降

    それはWindowsXPまでの流儀というべきか、Vista以降はせきゅりてぃの強化に伴ってのトラブルがありますね
    Windows10も正式リリースされてしまったので、いまさら・・・な感がアリアリ。

    これまで「あまり」Windowsで動作する端末には関わってこなかったのですが、
    Windows7ならでは、とか、Windows8だからというトラブルに遭遇することが多くなってきた気がします。
    例えばWindows8以降ではデバイスドライバに「署名」が求められていたりしますね。
    以前のWindowsであればこれらは「警告」で終わっていたわけですが、今は「動作しない」という挙動になってきました。

    XP以前のWindowsであれば、サードパーティのデバイスドライバに対しても警告は出しても動作させないということは無かったのですが、
    時代の変化なのか、
    デバイスドライバそのものが動作しないという風に変化をしてきたようです。

    ベンダーがWindows8のロゴを使用するためには「Secure Boot」にも対応していなければならないようなのですが、実際にはSecureBootが有効になっていると、デバイスドライバの署名が完全なもので無ければならないようで、Windowsで証明書の検査が必要な設定が施されており、そのため、以前のように証明書が適当なデバイスドライバは組み込めないようになってしまっています。

    # bcdedit /set test signing on

    とすることで証明書の検査を行わないようにする事が出来るのですが、この前提としてSecure BootがDisabledになっていることが必要です。
    ここに大きな矛盾があって、Windows8のロゴを付けたい製品は、Secure BootがEnableになっていなくてはなりません。そのためデバイスドライバーに正しい証明書が必要になってくるのです。
    しかし、これまでのWindowsの文化ではデバイスドライバーはデバイスの供給メーカーが作って配布するものであるため、マイクロソフトから正式な検査を受けて、「証明書」を同梱していない場合もあるわけです。これまでのWindowsの文化からすれば、「証明書」を添付されたドライバー以外はインストール出来ないということは無かった訳であり必須要件であるということではありませんでしたが、Windows8以降、特にWindows8.1では「証明書」が欠かれたドライバーで無ければならない訳です。
    ところがこれまでの文化にはその制約が無かった。と。

    デバイスドライバーの供給側からみると、急に「MSのサイン(証明書)」が必要になってしまい、これまで整えてきた開発環境からは乖離しているという状況が生まれているのかも・・・。

    追従出来ていないサードパーティ(De*l Soni*Wa**)はどういう選択で、それを行っていないのか。
    (MSKKに対するお金が払えない?、必要無いものと考えている?)
    全く判らないですが。

    やっと動いた

    やっと動きました。。。
    MovableTypeが動かなくて、かなり手こずりました。

    事の発端はUbuntu Serverを12.04LTSから14.04LTSにアップグレードしたことですが。

    Apacheが2.4に上がってたり、
    Perlが5.18に上がってたり、
    PHPが5.5に上がってたりして、
    MovableType5が動かなくなってしまいました。

    はい。

    仕方無いのでMovableTypeを6に上げて、

    Apache直して、MovableTypeのphp/extlib/smarty/libs/Smarty_Compiler.class.phpも

    /* replace special blocks by "{php}" */ /* 修正後 */ $source_content = preg_replace_callback($search, create_function ('$matches', "return '" . $this->_quote_replace($this->left_delimiter) . 'php' . "' . str_repeat(\"\n\", substr_count('\$matches[1]', \"\n\")) .'" . $this->_quote_replace($this->right_delimiter) . "';") , $source_content);

    /* 修正前
    $source_content = preg_replace($search.'e', "'"
    . $this->_quote_replace($this->left_delimiter) . 'php'
    . "' . str_repeat(\"\n\", substr_count('\\0', \"\n\")) .'"
    . $this->_quote_replace($this->right_delimiter)
    . "'"
    , $source_content);
    */

    という感じで直して、、、やっと動いたところです。

    MovableTypeはバージョンアップする度に全てのテンプレートを一度リセットしないと、どこかに綻びが出てしまうのが悩ましいところですね。いっそのこと全部データベースに持ってくれて、アップデートしても影響無いようになっていると嬉しいのですが。

    # まだまだ、あっちこっち死んでる気がするけど。