ある日、メールを見ていると、Repo Lookout Reporterという送信名でメールが届いていることに気がついた。
Repo Lookoutという団体らしいのだが、英語で書かれた文章だが、どうやら、簡単に訳してみると、次のような内容を言っているようだ。
オタクのサーバーにある、.gitフォルダは、外部から丸見えになってるぞ。
うちの会社は、親切に教えてあげてるんだから、とっととGitのセキュリティ対応をせんかい!
ちなみに、これは冗談じゃなくて、.gitフォルダ内のHEADファイルをこちらで解析した内容を書いておく
※gitのコミット除法が数行書かれている
※こんな口調では書かれていないが、要約するとこんな感じで、gitフォルダの脆弱性対象になっていて、外部から乗っ取ることが可能になってるぞと言われているようなものらしい。
確かに以前から、この点が気になっていたので、この際重い腰を上げて、対応をすることにしたので、今回はその作業内容の備忘録を残しておきます。
うちのサーバーはどれもNginx
大体の会社が、ApacheかNginxのどちらかを使っているケースがほとんどでしょう。
中には、NodejsやPythonで独自にプロトコルを立てている場合もあるかもしれないが、うちの会社は全てNginxなので、今回はNginxの作業内容だけになることを最初に理解してください。
とりあえず、対応としては、.gitフォルダに対するアクセスを防止すればいいのだが、やはりサーバーセキュリティとしては .(ドット)で始まるファイルやフォルダのアクセスを防止しておくことが重要と考えた。
Nginxのconfファイル設定
.gitフォルダのみのアクセス防止は、次のようにnginxのconfファイルに記述する。
location ~ /\.git { deny all; return 404; }
ちなみに、.(ドット)で始まるファイルやフォルダへのアクセスを全て防止するには、次の設定
location ~ /\..*$ { deny all; return 404; }
今回は、.gitだけでいいかとも思ったのだが、該当するものは無いと判断して、.(ドット)で始まるアクセスを全て防止することにした。
Nginxのテストでエラーが無いか確認
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Nginx更新
nginx -s reload
特にエラーも何も出なければ、問題なく更新されているでしょう。
nginxの良いところは、restartをしなくても、このコマンドで更新ができてしまうので、ダウンタイムがほぼ無いという点ですね。
ありがたや〜。
Apacheのおまけ
ちなみに、apacheは、.htaccessに次の記述をすればいいだけのようだ。(似ているので、おまけで載せておきます)
# .gitのアクセス制限
RedirectMatch 404 /\.git
# .(ドット)で始まるファイルやフォルダのアクセス制限
RedirectMatch 404 /\..*$
サーバーの台数分×conf設定全てに記載
webサーバー設定を行っているnginxのconfファイルが全て対象になるので、自分の場合は、サーバー10台分、confファイルが、それぞれ複数セットされているので、50ファイル分ぐらいあったかなあ・・・
1時間ぐらいの作業で、完了しました。
これまで、サーバーの台数ほぼ全てをクロールされて、メールがたくさん来ていたんですが、無視しまくっていたツケが来た感じでしたね。
これで、メール警告がなくなれば、とりあえず、今回のミッションはコンプリートです。
サーバーセキュリティ管理の心得
webの公開サーバーを運営しているサーバー管理者としては、こうした脆弱性につながるセキュリティホールは、すぐにでも対応した方がいいと思いますね。
(当たり前ですが・・・)
ボクのように後回しにしてしまう、サーバー管理者、そろそろ重い腰を上げてみませんか?
自分がやったから、他人にはキツめにモノを言う、ユゲタでした。
0 件のコメント:
コメントを投稿