ブラックボックス

プログラミングのノウハウやライフハックをどんどん投稿していきたい

Sep 26, 2013 - 2 minute read - ノウハウ

【apache】サーバのIPアドレスへのアクセスを無効にする


※2014/02/04
404を返す方法を書きました。
【apache】サーバのIPアドレスへのアクセス時に404を返す


http://127.0.0.1/
みたいなアクセスを無効にしたかった。
とはいえ、403を返すくらいしか出来ないっぽいけど。

やり方は簡単ではあるが、一部詰まってしまった所があったのでメモ。

参考: 【apache】サーバーのIPでアクセスできないようにするには?

httpd.confを編集。

#NameVirtualHost *:80

のコメントを外す。

NameVirtualHost *:80

以下を追記。

<VirtualHost *:80>
ServerName any
DocumentRoot /tmp
</VirtualHost>

※/tmpはapacheのアクセス制限がないため、403を返す。

apacheを再起動

service httpd restart

……でいけるはずなのだがダメ。

何がダメなのかと調査をした結果。

conf.d配下のファイル名は気をつけよう

……そういえばconf.dにいくつかconfファイルを突っ込んでいた。
で、httpd.confで「conf.d」で検索すると、200行目辺りにありました。

#
# Load config files from the config directory "/etc/httpd/conf.d".
#
Include conf.d/*.conf

これが記述されているせいで、conf.dに入っているconfファイルを読んでしまい、IPからアクセスがあった際でもそちらを優先していた。

ということで、上記Include文をhttpd.confの最下部に移動し再起動。
ちゃんと403エラーを返すようになりました。