あまり大した理由はないのだが、環境を変えてみた。ちゃんと動くかな?
- VPSを乗り換えて
- Apacheやめてnginxにして
- mod_security外して
…と色々とやってみた。果たして私はどの程度ロックインされていたのか。
全体的には技術進歩の享受を受けるには新しい方が良いわけだし、定期的に乗り換えていくというのは賢いスタイルなのかもしれないね。
- VPS乗り換えはトラブルもあった
- 新しい方でIPv6が使えないっぽい感じになったので、もっかい別のVMを契約し直したらそっちは使えた
- 最初に契約したサーバは速攻で破棄
- とりあえずnginx + php-fpmにするのは問題なさそうな感じになった
- 一部PHPのエラーが残っている。日付関係? ページが見えないケースがあると思います
- HTTP/2への対応は見送り。OpenSSLを上げないとダメ(ALPN対応が必須になったため)
- 一応http2と書いておいたら電話系のクライアントの中にはHTTP/2でつないでくるものもあるみたい
- 時間ができたらやる
- 全く認識していなかったが、CGIを一部使っていた
- nginxはCGIに非対応。ただしやり方はいくつかある
- PythonのCGIHTTPServerを使ってローカルに上げたHTTPサーバにreverse proxyすることに
- CGIHTTPServerは渡さないヘッダがあるみたいで多少トラブルに
- refererを渡さないみたいなんだが、refererを見るCGIがあったんだよね(mimetex)
- コンパイルフラグを変えてrpmを作ってrefererを見ないようにしてみた
- yum updateで上書きされたらまた使えなくなるねー。ignoreに入れておくか?
- それまでにrefererを渡せる方法を考えよう
- mod_security外すのはちょっと微妙な感じはある
- wordpressにプラグインやテーマを割と入れていて、そいつらをあんまり信用していないので
あと上流のファイアウォールの設定をAPIでしか変えられないっぽいのでcurlでAPI(openstackのやつかな?)を打って回っていたんだけど、なかなかうまくいかなかった。しょうがないのでWebのUIで変えられる範囲で絞ってみるのだが…sshをport 22で使うと、それだけですごい勢いでアタックされるんだよなー。自分の手元環境を考えるとアクセス元のIPアドレスは絞れないし。
そこでdenyhostsを入れて様子を見てたけど、何度も引っかかってメールが送られてくる。これまでsshでは痛い経験もしているし(恥ずかしながら過去にパスワード認証を切っておらず踏み台にされた)、rootログインはNGにしてパスワード認証もNGにしてあるけど、気分は良くない。うーむ、どうするべきか。全openにしてホストのfirewalldで設定するか、あるいはAPIでもうちょっと頑張ってみるか。どうしようかな。
LoginGraceTimeやMaxTriesに頼るよりはポート変えたい…なおかつ上流のファイアウォール使いたい…
(追記)
mimetexのreferer問題は、CGIHTTPServerはrefererをちゃんと通していた。問題はrefererがホスト名に一致していないとダメというところみたい。ちゃんと見てないけど、このサーバの本名となるホスト名はrefererに入るホスト名とは異なるので、nginx側でrefererを書き換えて設定してあげたら通った。ひとまずこれで。
(追記)
実はAPIによるファイアウォールの設定は問題なくできていた。問題はOSのfirewalldも生きていたこと。これで別のポートを開けないとまあ、ダメだよねそりゃ。