KUSANAGIのWebサーバーの初期設定は、NGINX、Apatche(httpd)のどちらもURLにIPアドレスを指定してアクセスできます。
これは怪しいアクセスが狙ってやってくるのでセキュリティ上よろしくありません。拒否する設定をします。
IPアドレスでのアクセスはセキュリティ上よくありません。たとえば、不特定多数のIPアドレスに無差別に攻撃する人もいます。
IPアドレスは番号なので、手当たりしだいに送ってもどこかに当たりやすいんですね?
じっさいWebサーバーのログを見ると、IPアドレス指定のリクエストは怪しいものがよく出てきます。それだけ危険です。
ということでWebサーバーの設定を変更します。
『ドメインだって簡単にリストが作れるから意味ないんじゃね?』と思うかもしれませんが、ドメインとIPアドレスの両方が攻撃にさらされるよりはリスクが半分になります。
防げるリスクは潰しておいたほうがいい。
NGINX
まずはNginxです。IPアドレスでリクエストを送信するとNginxの初期ページが表示されます。
/etc/nginx/conf.dにあるファイルを修正します。_http.confと_ssl.confを次のように変更しましょう。
(作業はすべてスーパーユーザー(root))
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location / {
return 444;
}
最後に設定をWebサーバーに反映させましょう。コマンドを実行してください。
systemctl reload nginx
これで終わりです。確認してみます。
表示内容はちがいますがアクセス拒否できました。HTTPステータス444は、NGINXが独自に用意した架空のステータスです。
444はリクエストを受けてもレスポンスを返しません。
レスポンス処理のCPU, メモリ, ディスクの使用量が節約されシステム不可が小さいので、403(Forbidden)404(Not Found)よりも効果的です。
(403, 404はレスポンスを返す。)
Apache HTTP Server 2.4系
次はApatche(httpd)です。こちらもIPアドレスを指定すると初期ページが表示されます。
/etc/httpd/conf.dにあるファイルを修正します。_http.confと_ssl.confの<VirtualHost>の中に追加をします。
(作業はすべてスーパーユーザー(root))
<Location />
Require all denied
</Location>
最後にWebサーバーに設定を反映させましょう。
systemctl reload httpd
確認しましょう。
気をつけること
正規表現を使えばIPアドレスだけを拒否することができます。しかし、初期ページのサイト全体をアクセス拒否するほうがかんたんです。
かんたんだからといって、いきなり運用環境を変更するのは注意が必要。テスト環境を作って事前確認をしましょう。