yuicho@brain:~# tail -f /dev/memory

備忘録。このブログについては https://yuicho.hateblo.jp/about を見やがれ。

Apacheで特定IPをdenyしたりallowしたりするときのconf

職業柄だとは思うけど

あっ!!
今すぐこのIPを弾きたい!!!
今すぐ!!!!

みたいな時がたまにあるので、そんな時にどんなconfを書けばいいかすぐにわかるようにまとめておく。

絶対他の人の役には立たないと思うけど、僕の備忘録だからそれでよし。

特定IPからのリクエストを拒否

allowを明示的に書く
<FilesMatch "\.php">
<LIMIT POST GET>
Order Allow,Deny
Allow from all
Deny from 8.8.8.8
</LIMIT>
</FilesMatch>
denyだけでOK
<FilesMatch "\.php">
<LIMIT POST GET>
Order Deny,Allow
Deny from 8.8.8.8
</LIMIT>
</FilesMatch>

特定IPからのリクエストを許可

denyを明示的に書く
<FilesMatch "\.php">
<LIMIT POST GET>
Order Deny,Allow
Deny from all
Allow from 8.8.8.8
</LIMIT>
</FilesMatch>
allowだけでOK
<FilesMatch "\.php">
<LIMIT POST GET>
Order Allow,Deny
Allow from 8.8.8.8
</LIMIT>
</FilesMatch>

どゆことですのん?

感覚的にはOrderが逆なんだよなぁ…

Order Allow,Denyのとき
  1. 全てのIPが一旦拒否対象になる
  2. Allowで指定したIPが許可対象になる
  3. 例外としてDenyで設定したIPを拒否する
Order Deny,Allowのとき
  1. 全てのIPが一旦許可対象になる
  2. Denyで指定したIPが拒否対象になる
  3. 例外としてAllowで設定したIPを拒否する
つまり…?

Order ①,②だと、①がメイン、ただし例外として②を適用する」という感じだろうか。