Memo

メモ > サーバ > 構築: 攻撃からの防御 > .htaccess でアクセス制限

■.htaccess でアクセス制限
※.htaccessとは、Webサーバーの基本的な動作をディレクトリ単位で制御するためのファイル Apacheで利用できるが、nginxでは対応していないので注意 ※複数を設定するとき、設定順に注意 例えば「Order Deny,Allow」とした場合は「Deny → Allow」の順に設定する必要がある。混在させると正しく動作しない ※行の途中に「#」を書いてコメントを設けると、Apacheのバージョンによってはエラーになる 行頭から「#」を書いてコメントを設けるのが無難 ■特定IPからのみアクセスを許可
Order Deny,Allow Deny from all Allow from 203.0.113.1 Allow from 203.0.113.2
■特定IPからのアクセスを拒否
Order Allow,Deny Allow from all Deny from 203.0.113.1 Deny from 203.0.113.2
■特定IPからのアクセスを拒否(ロードバランサーを考慮)
SetEnvIf X-Forwarded-For "203.0.113.1" deny_ip SetEnvIf X-Forwarded-For "203.0.113.2" deny_ip Order Allow,Deny Allow from all Deny from env=deny_ip
Nginx と Apache の、Basic認証 と IP制限 の様々な設定方法まとめ (ELBの有無も考慮) #nginx - Qiita https://qiita.com/hirai-11/items/c76b6890a65866905663 ■特定IPからのアクセスを拒否(直接アクセスとロードバランサーの両方を考慮)
SetEnvIf X-Forwarded-For "203.0.113.1" deny_ip SetEnvIf X-Forwarded-For "203.0.113.2" deny_ip Order Allow,Deny Allow from all Deny from 203.0.113.1 Deny from 203.0.113.2 Deny from env=deny_ip
■特定範囲IPからのアクセスを拒否 ※「203.0.113.0」と「10.0.0.0 〜 10.255.255.255」からのアクセスを許可
Order Allow,Deny Allow from all Deny from 203.0.113.0 Deny from 10.
■特定範囲IPからのアクセスを拒否(mod_rewriteでの指定) ※未検証 上にあるように「10.」のような書き方は有効か、なども確認したい apacheのRewriteCondをサブネットマスクで許可する - helen's blog https://helen.hatenablog.com/entry/2017/03/01/173847 IPアドレスとサブネットマスクとRewriteCond - knowledge::short https://www.km92.net/knowledge_short/2018/180222_000238.html .htaccessで特定のIPアドレス以外をメンテナンスページへ302リダイレクトさせてみた | www.ni4.jp https://www.ni4.jp/2018/02/17-220835.html
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} ^.*/news/admin.*$ [OR] RewriteCond %{REQUEST_URI} ^.*/news/index\.php/admin.*$ # IPアドレス直接指定 RewriteCond %{REMOTE_ADDR} !=203.0.113.1 RewriteCond %{REMOTE_ADDR} !=203.0.113.2 # IPアドレス範囲指定 #RewriteCond %{REMOTE_ADDR} !=192.168.33.0/25 … この書き方は無効 RewriteCond %{REMOTE_ADDR} !^(192\.168\.33\.([1-9]|[1-9][0-9]|1[0-1][0-9]|12[0-6])$) … 正規表現で指定する必要がある RewriteRule ^(.*)$ - [F,L] </IfModule>
■特定ブラウザからのアクセスを拒否
BrowserMatch "Chrome/62.0.3202.94" bad_bot Order Allow,Deny Allow from all Deny from env=bad_bot
■特定ツールからのアクセスを拒否
BrowserMatch "Wget/1.14 (linux-gnu)" bad_bot Order Allow,Deny Allow from all Deny from env=bad_bot
■その他参考ページ 【基本】.htaccessとは?何ができるの?書き方は? | カゴヤのサーバー研究室 https://www.kagoya.jp/howto/it-glossary/web/htaccess/ .htaccess の書き方 | murashun.jp https://murashun.jp/article/programming/htaccess/htaccess-writing.html ELB配下のApacheでのアクセス制御 | Developers.IO http://dev.classmethod.jp/cloud/aws/access-limit-behind-elb/ X-Forwarded-Forを使用して、IPアドレスでのアクセス制限 | ゆっくりと歩んでいこう https://ymyk.wordpress.com/2010/02/25/x-forwarded-for%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E... nginxでは .htaccess に対応していない nginxに.htaccessを移行する。 - Qiita https://qiita.com/rdonster/items/a49b1861003645e7054b Nginxなはずのエックスサーバーで.htaccessが有効な理由 | アフィ+さぽ! https://affi-sapo.com/1264/ htaccessを使わない方が良いとApacheとNginxの公式が言っている - suzu6の技術ブログ https://www.suzu6.net/posts/240-htaccess-apache-vs-nginx/ 【基本】.htaccessとは?何ができるの?書き方は? | カゴヤのサーバー研究室 https://www.kagoya.jp/howto/it-glossary/web/htaccess/

Advertisement