htaccessで特定のIPアドレスのみアクセスを許可する方法

このQ&Aのポイント
  • htaccessを使用して特定のIPアドレスのみアクセスを許可する方法について説明します。
  • 具体的には、ネットマスクを利用してIPアドレス範囲を指定し、それ以外のIPアドレスからのアクセスを制限します。
  • また、複数のIPアドレス範囲を指定する場合は、それぞれの範囲を別々に制限する必要があります。具体的な記述方法について説明します。
回答を見る
  • ベストアンサー

難易度高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からのアクセスも許可したいのです。 質問が分かりにくい場合は、お聞き下さい。

  • bbrc
  • お礼率78% (304/388)

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4844/10254)
回答No.3

どちらのorderでも、指定できるのは、それぞれ一重のみです。 allow → deny → allow という指定はできません。 order allow,denyの時は、すべてのdenyに先立って、allowが解釈されるので、order行のあとにallow行とdeny行をどの順序で書いても、 order allow,deny allow from all allow from 118.243.126.243 deny from 118.243.0.0/16 となり、結局118.243.126.243はdenyされてしまいます。「(デフォルトが全部denyで)まずallowを解釈してから次にdenyを解釈する」というのが「order allow,deny」の意味です。 order allow,deny deny from 118.243.0.0/16 allow from 118.243.126.243 allow from all と書いても意味は上のものと同じ。 逆に、「(デフォルトが全部allowで)まずdenyを解釈してから次にallowを解釈する」というのが、「order deny,allow」の指定なので、 ・禁止したいレンジを指定 ・その中で特定IPを許可 の場合は、こっちを使います。 >Order Deny,Allow >を利用している例はあまり見かけませんが、 多くの場合の要件は、「xxxを禁止」と、一重の禁止だけなので、どっちでもいいです。 「デフォルト許可の中の、xxxxを禁止だが、その中のxxだけ許可したい」 ⇒ order deny,allow 「デフォルト禁止の中の、xxxxを許可するが、その中のxxだけ禁止したい」 ⇒ order allow,deny これ以外のパターンは、変形してどちらかのパターンにします。

bbrc
質問者

お礼

notnotさん ご回答、ありがとうございました。 了解しました。

その他の回答 (2)

  • localica
  • ベストアンサー率52% (202/385)
回答No.2
bbrc
質問者

お礼

localicaさん ご回答、ありがとうございました。 こちらは、当方も何度も読みましたが、理解できませんでした。

  • notnot
  • ベストアンサー率47% (4844/10254)
回答No.1

>基本的に「118.243.0.0/16」以外のIPアドレスからのアクセスは全て許可し、かつ、「118.243.0.0/16」に含まれる118.243.126.243からのアクセスも許可したいのです。 deny,allowの基本機能でOKです。 Order Deny,Allow # デフォルトで全IPをallow deny from 118.243.0.0/16 #特定のレンジをdeny allow from 118.243.126.243 #そのレンジの中の特定のIPをallow

bbrc
質問者

補足

notnotさん ご回答、ありがとうございました。 上記のご回答でちゃんと動作しているみたいです。 ただ、今までは、notnotさんに教えてもらった Order Deny,Allow の代わりに order allow,deny allow from all としてから deny from 118.243.0.0/16 allow from 118.243.126.243 などの拒絶条件を記入していました。 これでは、 allow from 118.243.126.243 が、検証した結果動作しませんでした。 しかし、なぜだか理解できません。 なぜ、 order allow,deny allow from all ではだめなんでしょうか? また、 Order Deny,Allow を利用している例はあまり見かけませんが、 order allow,deny allow from all でなくて、大丈夫なんでしょうか? よろしくお願いします。

関連する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を利用して「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」のみのアクセスを許可するにはどのように記述すればよいでしょうか? よろしくお願いします。

    • ベストアンサー
    • CGI
  • .htaccess 特定IPのみアクセス許可

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

  • 許可IP以外からアクセスがあった場合の自作エラーページ表示方法は?(htaccess)

    htaccessによって、ネットマスクでのアクセス制限をしています。 許可IP以外からアクセスがあった場合、自作のエラーページを表示させたいのですが、うまく表示されません。 アクセス制限とそのエラーに対して自作のエラーページを表示させる事はできないのでしょうか? htaccessの内容は下記の通りです。 ErrorDocument 403 /403.html ErrorDocument 404 /404.html order deny,allow deny from all allow from 123.45.67.8/24 上記のように記述しています。 htaccessファイルと自作エラーページは同じ階層に設置しています。 アクセス制限のみが有効になっており、自作エラーページ表示が無効になっています。 どなたかアドバイスをお願い致します。

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

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

  • htaccessの記述の違い

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

  • .htaccessの使い方について教えてください!

    こんにちは。私はHPを運営しているんですが、最近荒らしにあってしまい悩んでます。.htaccessというものを最近知ったのでそれを使ってみようと言うことになりました。それで、その荒らしのIPを弾くには # アクセス制限 order allow,deny allow from all deny from ppp01.aaa.ne.jp # ppp01.aaa.ne.jp を拒否 deny from .bbb.co.jp # ???.bbb.co.jp を拒否 deny from .go.jp # 当局によるアクセスを拒否 deny from 130.90. # 130.90.???.??? を拒否 こういう風に書けばいいんだなと分かりましたが、その荒らしというのが、2ちゃんねるにHPアドレスを貼り付けたりして厄介な奴なんです。そこで、2ちゃんねるのアドレスを弾くって言うことも出来ますでしょうか? # アクセス制限 order allow,deny allow from all deny from ppp01.aaa.ne.jp # ppp01.aaa.ne.jp を拒否 deny from .bbb.co.jp # ???.bbb.co.jp を拒否 deny from .go.jp # 当局によるアクセスを拒否 deny from 130.90. # 130.90.???.??? を拒否 ※deny from http://●●/ ↑の※のように一緒にこうやって書くのかなって思ったんですけど、どこにもそう言う書き方が載ってないのであっているかどうか教えてください。あってなかったら正しい書き方を教えてください。よろしくお願いしますm(_ _)m

  • .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で

    アクセス制限をしようと思ってます。 AuthUserFile /dev/null AuthGroupFile /dev/null AuthType Basic <Limit GET> order deny,allow deny from all allow from ●●● </Limit> ●●●のところにIPを入れれば ●●●のみアクセス可能 ということになるのでしょうか? それと「.htaccess」の 読み方も教えてください・・・。 エイチティアクセス? よろしくお願いいたします。

  • .htaccessでアクセス許可したい

    IDやパスワードの書いてあるデータベース接続用のファイルを.htaccessで一般の人からの閲覧を拒否させたいのですが、肝心の呼び出し元スクリプトからのアクセスも拒否してしまいます。 レンタルサーバー環境の場合、.htaccessにはどのように記述すればよいのでしょうか? 現在の所、 ------------------.htaccess記述--------------------------------- <Files ~ "mysql.ini"> Order deny,allow Deny from all allow from ftp00.heteml.jp </Files> ---------------------------------------------------------------- (●mysql.ini~データベース接続用ファイル) (●ftp00.heteml.jp~レンタルサーバーのホスト名) と、書いています。 恐らく allow from ftp00.heteml.jp でのホスト指定の仕方に誤りがあると思うのですが・・ どのように訂正すれば呼び出し元スクリプトからのアクセスを許可するようになるでしょうか? ご存知の方いらっしゃいましたら宜しくお願いします!