htaccessでIPアドレス拒絶後、一部許可

このQ&Aのポイント
  • .htaccessを利用して「192.168.0.0/16」のIPアドレスの範囲のアクセスを拒絶し、かつ、「192.168.240.29」のみのアクセスを許可する方法を紹介します。
  • 使用する「.htaccess」ファイルに以下の記述を追加します。 order allow,deny allow from all deny from 192.168.0.0/16 allow from 192.168.240.29
  • 上記の設定では、「192.168.0.0/16」のIPアドレスの範囲全体が拒絶されてしまうため、「order allow,deny」の後に「allow from 192.168.240.29」を追加して、「192.168.240.29」のみのアクセスを許可します。
回答を見る
  • ベストアンサー

.htaccessでIPアドレス拒絶後、一部許可

.htaccessを利用して「192.168.0.0/16」のIPアドレスの範囲のアクセスを拒絶し、かつ、拒絶したIPアドレスの範囲のうち「192.168.240.29」のみのアクセスを許可したいとします。 以下のように記述したのですが、「192.168.240.29」も含め「192.168.0.0/16」のIPアドレスの範囲全体が拒絶されてしまいます。 order allow,deny allow from all deny from 192.168.0.0/16 allow from 192.168.240.29 「192.168.0.0/16」のIPアドレスの範囲のアクセスを拒絶後に「192.168.240.29」のみのアクセスを許可するにはどのように記述すればよいでしょうか? よろしくお願いします。

  • bbrc
  • お礼率78% (304/388)
  • CGI
  • 回答数3
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • t-okura
  • ベストアンサー率75% (253/335)
回答No.3

apache のアクセスログ、エラーログは確認されましたか。 エラーログには [error] [client 192.168.0.201] client denied by server configuration: のような感じで出ていると思います。 まさかとは思いますが、プロキシーを使っていて、思っているIPと違うアドレスでアクセスされているということはありませんか。

bbrc
質問者

お礼

t-okuraさん ご回答、ありがとうございました。 今回の.htaccessの記述は以下のようにしました。 order allow,deny allow from all deny from 192.168.0.0/16 そして、プロキシーを使用して192.168.0.0/16以外のアドレスでサイトに接続しています。これで、一様、問題ありません。

その他の回答 (2)

  • t-okura
  • ベストアンサー率75% (253/335)
回答No.2

参考URLを見てもらうとよいのですが、 order deny,allow は >Deny,Allow > Deny ディレクティブが Allow ディレクティブの前に評価されます。 > アクセスはデフォルトで許可されます。Deny ディレクティブに合わないか、 > Allow ディレクティブに合うクライアントはアクセスを許可されます。 となります。「アクセスはデフォルトで許可」されるので、明示的に拒否していなければ許可されます。 もちろん、order allow,deny でも可能ですが、その場合は、 allow from all deny from 192.168.0.0/24 deny from 192.168.1.0/24 ... deny from 192.168.240.28 deny from 192.168.240.30 ... deny from 192.168.255.0/24 のように 192.168.240.29 を除いて列挙することになります。現実的ではありませんよね。

参考URL:
http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html#order
bbrc
質問者

補足

t-okuraさん ご回答、ありがとうございました。 order deny,allow deny from 192.168.0.0/16 allow from 192.168.240.29 を試しましたが、 order allow,deny allow from all deny from 192.168.0.0/16 allow from 192.168.240.29 とやったときと同様に「92.168.240.29」も拒絶されます。 なぜか分かりません。

  • t-okura
  • ベストアンサー率75% (253/335)
回答No.1

拒否してからその一部を許可するのは、order deny,allow ですね。 order deny,allow deny from 192.168.0.0/16 allow from 192.168.240.29 でいけると思います。

bbrc
質問者

お礼

t-okuraさん ご回答、ありがとうございました。 >拒否してからその一部を許可するのは、order deny,allow ですね。 今回の場合、「192.168.0.0/16」のIPアドレスの範囲(192.168.240.29は除く)以外のアクセスは全て(192.168.240.29を含む)受け入れたいので.htaccessの書き出しは以下のようになるかと思います。 order allow,deny allow from all 下記URLの「.htaccessで特定のドメインを弾く」項目を参照 http://yuzuriha.sakura.ne.jp/~akikan/kaigai/kaigai6.html

bbrc
質問者

補足

t-okuraさん ご回答、ありがとうございました。 間違って、お礼の欄に補足を記述してしまいました。 >拒否してからその一部を許可するのは、order deny,allow ですね。 今回の場合、「192.168.0.0/16」のIPアドレスの範囲(192.168.240.29は除く)以外のアクセスは全て(192.168.240.29を含む)受け入れたいので.htaccessの書き出しは以下のようになるかと思います。 order allow,deny allow from all 下記URLの「.htaccessで特定のドメインを弾く」項目を参照 http://yuzuriha.sakura.ne.jp/~akikan/kaigai/kaigai6.html

関連するQ&A

  • htaccess:制限IPのうち特定のIPのみ許可

    .htaccessで、 order allow,deny allow from all deny from deny from 118.243.0.0/16 のようにネットマスクを利用して複数のIPアドレスからのアクセスを制限した上で、そのうち(制限したIPアドレスに含まれるうち)の一つのIPアドレス (例:118.243.126.243)にのみアクセスを許可したい場合、.htaccessに具体的にどのように記述すればよいのでしょうか? どのように記述するか分からないのですが、118.243.126.243をとばした「118.243.0.0から118.243.126.242」と「118.243.126.244から118.243.255.255」を別々に制限すればよいように思います。ただし、記述の仕方が分からないので教えてください。 よろしくお願いします。

  • 難易度高htaccess:IPの許可

    .htaccessで、 order allow,deny allow from all deny from deny from 118.243.0.0/16 のようにネットマスクを利用して複数のIPアドレスからのアクセスを制限した上で、そのうち(制限したIPアドレスに含まれるうち)の一つのIPアドレス (例:118.243.126.243)にのみアクセスを許可したい場合、.htaccessに具体的にどのように記述すればよいのでしょうか? どのように記述するか分からないのですが、118.243.126.243をとばした「118.243.0.0から118.243.126.242」と 「118.243.126.244から118.243.255.255」を別々に制限すればよいように思います。ただし、記述の仕方が分からないので具体的な記述の仕方を教えてください。 この.htaccessでは、基本的に「118.243.0.0/16」以外のIPアドレスからのアクセスは全て許可し、かつ、「118.243.0.0/16」に含まれる118.243.126.243からのアクセスも許可したいのです。 質問が分かりにくい場合は、お聞き下さい。

  • .htaccess 特定IPのみアクセス許可

    .htaccess 特定IPのみアクセス許可↓ order deny,allow deny from all allow from 特定IP 上記設定がされているサイトに、特定IP以外の他人がアクセスする方法はありますでしょうか?(ハッカーなど) 現在、私のサイトで外部に洩れてはならない情報を取り扱っており、 .htaccessでアクセス制限は行っているのですが、 少々心細いので質問させていただきました。

  • .htaccessで複数設定するには?

    .htaccessを使って「特定のIPアドレス・ホストからのアクセスを拒否」と 「特定のリンクからのアクセスを拒否 」の2つを一緒に設定したいのですが、 どうすればいいのでしょうか? 単独での書き方はそれぞれ調べて分かったのですが、1つにまとめての記述方法が分かりません。 --------------------------------------------------- order allow,deny allow from all deny from ●● deny from ○○ deny from ▲▲ deny from △△ SetEnvIf REFERER "http://○○○.com/" Ref1 Order Allow,Deny Allow from all Deny from env=Ref --------------------------------------------------- といった感じに記述したものの、全く動作してくれません。 ご存知の方いらっしゃいましたら、宜しくお願いいたします。

    • ベストアンサー
    • HTML
  • .htaccessで.jpドメインのみアクセス許可をした場合の.ac.jpよりのアクセスについて

    .htaccessでアクセス制限を行っており、現在は以下のように.jpと.netドメインからのアクセスのみを許可しています。 order deny,allow deny from all allow from .jp allow from .net この記述だと、ac.jpやgo.jp等のドメインからのアクセスも許可されるはずですが、実際はアクセスできません。 記述方法が間違っているのでしょうか? どうかよろしくお願いします。

  • .htaccessでvodafoneからのアクセスを許可したいです。

    .htaccessにallow from vodafone.ne.jpという記述を含めたのですが、vodafoneからのアクセスが不可能です。 order deny,allow deny from all allow from docomo.ne.jp allow from ezweb.ne.jp allow from vodafone.ne.jp このような内容がかかれており、ドコモとauからのアクセスはできるようになりました。 どうしてvodafoneからのアクセスだけが禁止されてしまっているのでしょうか?もしわかる方がいらっしゃったら、ご回答よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • .htaccess の書き方について教えてください。

    こんにちは、質問させてください。 webサイトを運営しており、.htaccessによるアクセス規制を検討しています。 下記のように複数のアクセス規制をしたい場合、どのように書けば良いでしょうか? ○特定IPアドレスからのアクセス ○プロキシ経由でのアクセス ○特定URLからのアクセス 過去ログ等を検索してみて、現在、以下のようなソースにしています。 ------------------------------------- #特定IPとプロキシ経由の拒否 order allow,deny allow from all deny from ***.***.**.*** order deny,allow deny from all allow from .jp allow from .net allow from .com #特定アドレスからのアクセス拒否 SetEnvIf Referer "http://sample.url.com" ref01 order Allow,Deny Allow from all Deny from env=ref01 ------------------------------------- プロキシ経由の場合、すべてを弾くのは難しいと思いますが… 何か他に良い書き方がありましたら、アドバイスをお願いします。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • htaccessでIP制限。111.222.333.1~111.222.333.20までに許可を与えるにはどのように記述しますか。

    allow fromに111.222.333.としてしまうと111.222.333.のすべてのIPからアクセスされてしまいますが、最下層の一部のIP(例:1から20番)からのみアクセスを許すにはどのように書けばよろしいのでしょうか。下記のようでしょうか。 <Limit GET POST> order deny,allow deny from all allow from 111.222.333.1/20 </Limit>

  • htaccessの記述の違い

    .htaccessを使用してアクセス制限をしています。 次のような記述をしています。 Order Allow,Deny Allow from aaa 記述を変えると次のようにも記述できます。 Order Deny,Allow Deny from all Allow from aaa 上の記述と下の記述は同一内容になるのでしょうか?

  • ipconfigで取得したIPアドレスでhtaccessによる制限ができません。

    WindowsXPなので、コマンドプロンプトでipconfigと入力し 自分のPCのIPアドレスを得ました。 その得たアドレスを用いて.htaccessに、次のように記載しました。 order deny,allow deny from all allow from ***.***.*.* *のところに、取得したものを正確に入力しました。 ・・・が、制限をかけたページを見れませんでした。 何が間違っているのか、 どなたかお教えいただけないでしょうか?

専門家に質問してみよう