【再】.htaccessでアクセス制限動作しません

このQ&Aのポイント
  • アスキーモードでのアップロード後も、.t-com.ne.jpからのアクセス制限ができずに困っています。
  • .htaccessの記述方法や設置場所が間違っているのか、アクセス制限の方法を知りたいです。
  • 独自ドメイン使用のホームページにおいて、.t-com.ne.jpからのアクセスを制限したいですが、.htaccessが正常に動作しない状況です。
回答を見る
  • ベストアンサー

【再】.htaccessでアクセス制限動作しません

.htaccessを設置しましたが、正常に動作せず、7月1日にこちらで下記の質問 をしました。FTPにてサーバーへのアップロード時に、バイナリモードではなく、 アスキー(テキストモード)でアップロードというアドバイス回答をいただきました。 アスキーモードにてアップロードをしましたが、本日(5日)にアクセス制限を したはずの「t-com.ne.jp」ホストより、相変わらずアクセスされていました。 .htaccessの記述方法、設置場所が間違っているのでしょうか? どのようにすれば、アクセスを制限ができるのか、ご存知の方いらっしゃい ましたら宜しくお願いいたします! (現在、.t-com.ne.jp で、ドッドをつけて 記述しています) --------------- 7月1日の質問内容 -------------------- ニフティ法人Webホスティングにて、独自ドメイン使用のホームページを開設 しています。(.htaccess利用可、ファイルのパーミッション(属性)を「604」に するということをニフティに確認済み) サイト全体に対して、123.net123456780.t-com.ne.jp からのアクセス制限をしたく、. htaccessを設置しました。.t-com.ne.jp より前の部分、またIPアドレスも一定では ない為、「t-com.ne.jp 」特定ホストからのアクセス制限をしました。 ---------.htaccess記述-------- order allow,deny allow from all deny from .t-com.ne.jp ----------------------------- ・ 各行、最終行は改行 ・ FTPファイル転送後、ファイル名を「.htaccess」に、属性を「604」に変更 上記では、アクセスされてしまい、「.t-com.ne.jp」の「.(ドット)」を削除し、  「t-com.ne.jp」に書き換え、前手順で設置をしましたが、.htaccessが 動作せず、依然として t-com.ne.jp からアクセスされています。 サイト全体のアクセス制限をしたいので、図の様にサイトトップページ、 および各ページフォルダと同じ場所に、.htaccessを設置しました。

  • kkqq
  • お礼率40% (2/5)

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

  • ベストアンサー
noname#251971
noname#251971
回答No.3

No.2の補足についてです。 なるほど、環境について理解いたしました。 アクセス確認の件も、レンタルアクセス解析サービスに出ているということは つまりそれを設置したHTML本体が取得されているということですね。 自ホストに対するアクセス制限のテストからも ホスト名による制限はどうしても無理のようですね。 Allow/Denyでもだめということは、Apache設定云々では無くて そのホスティング環境での逆引き自体が不可にしてあるのかもしれませんね。 No.2の補足に記載されたURLの情報で 対象のIPアドレス範囲についてはOKかと思います。 思っていたよりかなり多いですが・・・ そのURL先の、IPアドレス範囲の下にx.x.x.x/nn の記載がありますが、 それをそのまま全部Denyに記載すれば一応制限が可能ということですね。 つまり、(一部まとめて書いてあるのでそれを分けると) 104行分のDenyを書くということですね。 Deny from x.x.x.x/nn Deny from y.y.y.y/mm Deny from z.z.z.z/ll  ・  ・  ・ ただ、そこまでやっても 相手がプロキシ経由を利用したら 回避されてしまいますけども。。 他の方法としてJavaScriptとCGIを挙げておられますが、 (どこまで厳密にしたいのかわかりませんが) JavaScriptはクライアント側での動作なので その気になれば弄ってどうにか出来なくもないですし、 CGIの中でも、ホスト名の取得が出来るかは怪しそうですね。 (CGI中でIP範囲チェックするならばhtaccessでのほうが負荷は低そうですし)

kkqq
質問者

お礼

その都度、丁寧でわかりやすいアドバイスと回答をしてくださり、とても助かりました。 利用サービスで使用制限がある為、.htaccess利用ができないかと懸念しましたが、 的確な他方法をわかりやすくアドバイス下さり、解決できました。大変感謝しております。 どうもありがとうございました。

kkqq
質問者

補足

早速の回答ありがとうございます。 >ホスト名による制限はどうしても無理のようですね。そのホスティング環境での逆引き自体が不可にして >あるのかもしれませんね。 たまたま他サイトに何方かが書いてある記事を読んだのですが、「ニフティのサーバーは逆引き対応して いない」とのこと。やはり無理な様ですね。 >記載されたURLの情報で対象のIPアドレス範囲についてはOKかと思います。思っていたよりかなり多い >ですが・・・ 記載箇所と記載方法を例文交えて教えて下さり、わかりやすく理解できました。ありがとうございます。 104行分のDenyを書くのは、さすがに多く大変でした。ただ、多数のDeny設定をして、サーバーへの負荷、 画面表示が遅くなったり、重たくならないか心配ですが・・・ >相手がプロキシ経由を利用したら回避されてしまいますけども。。 アクセス解析サービスでは、プロキシ経由かどうかもわかるのですが、今回のケースは、幸いなことに プロキシ経由はしていませんでした。 >JavaScriptはクライアント側での動作なのでその気になれば弄ってどうにか出来なくもないですし、 >CGIの中でも、ホスト名の取得が出来るかは怪しそうですね。(CGI中でIP範囲チェックするならば >htaccessでのほうが負荷は低そうですし) やはりhtaccessでの制限するのがよさそうですね。本当はホスト名での制限ができればベストなのですが。 取り敢えず、IPアドレス/ネットマスク範囲制限によるhtaccessを試してみようと思います。 途中でhtaccessの使用不可かと困ったのですが、今回都度、丁寧でわかりやすいアドバイス回答をして くださり、簡単にhtaccessで制限をかけられそうで、とても助かりました。大変感謝しております。

その他の回答 (2)

noname#251971
noname#251971
回答No.2

No.1の補足に対してです。 どこから「php」が出てきたのかが不明ですが誤記でしょうか。。? No.1のURLはApacheの設定ファイルのリファレンスです。 そして、利用されているニフティさんのサービスは 単なるホームページスペースのレンタルではなくて、 ホスティングサービスなんですよね? であれば、サーバ環境全体が提供されて、 SSHでログインしてApacheの設定カスタマイズや 必要であれば追加ソフトのインストールをするなどは 利用者側で行うものかとおもいますが。 私の会社でも、ニフテさんではありませんがホスティングサービスを利用しており そうして管理していますよ。(めったに弄りませんが) 「.htaccess他の使い方」として記載していただいたページは、 ホームページサービスに関するページのようですが、 ニフティさんの場合はホスティングサービス=ホームページサービスなんでしょうか。 # もしくは単に参考としてURLを書かれただけでしょうか。 Apacheであれば.htaccessが「利用可能」ではあるとおもいますが、 ホスティングサービスであれば、 それが今実際に「有効になっているか」を自分で確認してみる必要があるかと思います。 (それがNo.1の AllowOverride です) HPサービスであれば、.htaccessに自分がWebアクセスする際の グローバルIPに対するホスト名で試して見てはどうでしょうか。 # .htaccessへの記述はFTPアクセスには適用されません。 DNS逆引きに関しては、Apacheの設定 HostnameLookups によって 確かに無効化されていることもあるかと思いますが、 アクセス制御 Allow, Deny に関してはその設定に依らないようです。 https://httpd.apache.org/docs/2.4/ja/mod/mod_access_compat.html#allow https://httpd.apache.org/docs/2.4/ja/mod/mod_access_compat.html#deny それでも、自分のIP/ホスト名に対する制限が効く(.htaccessが確実に有効である)のに 本来制限したい相手がやはりアクセスできてしまうのであれば、 相手のプロバイダのIP範囲を調べて、 上記の Allow のリファレンスページにも記載がある ネットマスクによる範囲制限などを掛けるなどでしょうか。 ちなみに、そもそも「相変わらずアクセスされていました。」 というのはどのように確認されたのでしょうか。 正常にアクセス制限ができていれば、 HTTPステータス 403 を返却してアクセス拒否するApacheのログは残ると思いますが、 それを誤認しているなどはないでしょうか?

kkqq
質問者

補足

お忙しい中、丁寧でわかりやすい説明回答ありがとうございます。 ニフティからの回答待ちで、返信が遅くなり申し訳ありません。 以下、長文気味ですがご容赦ください・・・ >ニフティさんのサービスは単なるホームページスペースのレンタルではなくて、ホスティング >サービスなんですよね? Webホスティングサービスとあるので、サーバー環境全体の提供サービスと思っていたのですが、ニフティ  へ問い合わせをしたところ、「あくまでも共有サーバー」「ユーザー側のroot権限はない」ということ でした。その為、Apacheなどをユーザー側で設定カスタマイズする事はできません。レンタルホームページ サービスに少し管理オプションが付加されたくらいのものの様です。 >HPサービスであれば、.htaccessに自分がWebアクセスする際のグローバルIPに対するホスト名で >試して見てはどうでしょうか。 .htaccessを当方のグローバルIPに対するホスト名でアクセス制限してみましたが、はじかれることは なく、アクセス可能でした。ちなみにIPアドレスにて同様にしたところ、はじかれて制限することが できました。 利用サービス付属のアクセスレポート使い方説明によると「逆引きに対応していないため、IPアドレス別の 統計で表示します」となっています。また、ニフティへの確認時に、対応者がサーバー仕様に関して不明確 だったものの、「ホスト名で多分.htaccessによる制限はかけられないと思うとのことでした。 .htaccess利用はできるものの、逆引き対応していない為、ホスト名によるアクセス制限拒否はできない等 の制限があるようです。 >相手のプロバイダのIP範囲を調べて、上記の Allow のリファレンスページにも記載がある >ネットマスクによる範囲制限などを掛けるなどでしょうか。 範囲制限をとのアドバイスをいただきましたが、相手のホスト.t-com.ne.jpの割り当てIP範囲を調べた ところ、何百のIPアドレスがある様です。(ネットワーク関連は全くわかりませんので、以下も的外れの 場合はご容赦ください) http://whois.hansode.org/range/netname/tokai-net その場合でもネットマスクによる範囲制限は可能ということでしょうか。少し調べてみたのですが、アドレス クラスによるサブネット計算もウェブ上ツールである様ですが、あまりよくわかりませんでした。 例えば、現在のアクセス元IPが、1.2.3.4のみの場合だと、deny from 1.2.3.4/17 の様にネットマスク マスク範囲を拒否設定できると思いますが、ISPが何百もの割り当てIPを持っている場合は、1つ1つネット マスクによる範囲制限をかけなければならないということですよね? その上、過去ログを見てみると、IP が 5.4.3.2だったり、7.8.9.0になったりと、範囲が一定していません。つまり、ISP割り当てIPの 範囲が限定できない(?)ということです。 >ちなみに、そもそも「相変わらずアクセスされていました。」というのはどの様に確認されたのでしょうか 外部のレンタルアクセス解析サービスを利用しており、詳細なログ情報を得られ、また絞り込み検索が できる為、「t-com.ne.jp」ホスト名検索でアクセスログが残っていてたのを確認しました。(5日の時点) ネットマスクによる範囲制限が無理な場合、JavaScript、CGIなどによるアクセス制限くらいしかないの かな、と思っています。 都度、質問形式になってしまい申し訳ありませんが、どうぞよろしくお願いいたします。

noname#251971
noname#251971
回答No.1

Apacheの設定で、.htaccessによるアクセス制限が有効になるようにしているでしょうか? AllowOverride ディレクティブにてAllもしくはLimitを含む必要があるかと思いますが。 https://httpd.apache.org/docs/2.4/ja/mod/core.html#allowoverride # .htaccessへの記述ではありません。念のため。 また、アスキーモード云々の件については、 アスキーモードでアップロードし、 バイナリモードでダウンロードしたファイルを 改行コードが確実に判別出来るエディタを利用して、 改行コードが LF のみになっているかをちゃんと確認した方が良いかと思います。 # たとえば サクラエディタ など。 # メモ帳なんかで見ると、おそらく1行につながってみえる状態が正しい状態です。

kkqq
質問者

補足

お忙しい中、回答ありがとうございます。 phpはどシロウトですが、参考リンク先サイトは分かりやすい解説で勉強になります。 さて、Apacheの設定ですが、Webホスティングのレンタルサーバーなので、サーバー管理者 (当方の場合ニフティ)しか設定変更できませんが、ニフティ側には、このレンタルサーバーで .htaccess作成使用が可能なことは電話確認済みです。 .htaccess他の使い方 http://homepage.nifty.com/help/relative/htaccess.htm また、アスキーモードの件は、ダウンロード後に確認をしてみましたが、きちんと改行はできて いました。 .htaccess 記述方法、アップロード時(アスキーモード)、設置場所には問題がなさそうなので、 他に動作しない理由が思い当りませんが、もしかしたら拒否したいホスト名での記述が正しいか?、 というところです。 .htaccess利用可能であっても、ニフティ側 Apache設定による、Apacheのアクセス元ホスト名 を解決(逆引き)しているか否か、というのはありますよね? つまり、IPアドレスでしかアクセス制限ができないということだと思いますが、IPアドレスが 一定ではなく変化するので、流動的で一時的にしか制限できません。 その場合、他にアクセス制限拒否の方法(このホストからのみ拒否なので、パスワード認証は除く) はあるでしょうか? もしアイディア等があれば、ご教示くだされば助かります。

関連するQ&A

  • .htaccessでアクセス制限動作しません

    .htaccessを設置しましたが、正常に動作しません。 ニフティ法人Webホスティングにて、独自ドメイン使用のホームページを開設 しています。(.htaccess利用可、ファイルのパーミッション(属性)を「604」に するということをニフティに確認済み) サイト全体に対して、123.net123456780.t-com.ne.jp からのアクセス制限をしたく、. htaccessを設置しました。.t-com.ne.jp より前の部分、またIPアドレスも一定では ない為、t-com.ne.jp 特定ホストからのアクセス制限をしました。 ---------.htaccess記述-------- order allow,deny allow from all deny from .t-com.ne.jp ----------------------------- ・ 各行、最終行は改行 ・ FTPファイル転送後、ファイル名を「.htaccess」に、属性を「604」に変更 上記では、アクセスされてしまい、「.t-com.ne.jp」の「.(ドット)」を削除し、  「t-com.ne.jp」に書き換え、前手順で設置をしましたが、.htaccessが 動作せず、依然として t-com.ne.jp からアクセスされています。 サイト全体のアクセス制限をしたいので、図の様にサイトトップページ、 および各ページフォルダと同じ場所に、.htaccessを設置しました。 .htaccessの記述方法、設置場所が間違っているのでしょうか? どのようにすれば、アクセスを制限するようになるでしょうか? ご存知の方いらっしゃいましたら宜しくお願いいたします!

  • .htaccessによるアクセス制限が上手く動かない

    記述ミスのつもりはないのですが、.htaccessのdenyで記述したアクセス制限が上手く作動していないようです。 具体的には以下の記述がされています。 (ホスト名を記号で伏せて書いてありますが、実際はちゃんと英数字でホスト名を記述し、ホスト名の後方一致によるアクセス制限をかけています) <Limit GET POST> order allow,deny allow from all deny from .■□■.ne.jp deny from .△■○.com.cn </Limit> (↓以下、ユーザーエージェント指定による別のアクセス制限記述が続きますが省略)   上述の【 .△■○.com.cn 】がきちんと制限されていないらしく、本日アクセス解析に載ってきてびっくりしました。 何度確かめても、一言一句、間違いなく.htaccessに記述されているホスト名(後方一致)と同じです。 試しに(以前にもテストしましたが)自分のホスト名(後方一致)をdenyで記載してアップロードしアクセスしてみましたが、ちゃんと制限されてページにはアクセス出来ませんでした。 ちなみに.htaccessのアップロード場所は、サイトのインデックスページと同ディレクトリです(アクセス解析を設置しているのはこのインデックスページ)。   問題のホストは、きちんと記述されているにも関わらず、何故アクセス可能(アクセス解析に載っている)なのでしょうか?私は、アクセス拒否された→アクセスできなかったから解析にも載らないと考えていましたが、載ることがあるのでしょうか?(違うと思うが…) 勿論何度も確認しましたが、私の記述ミスを含めて、考えられる可能性がありましたら、ご指摘頂ければ幸いです。 現在は念のため、アクセス解析に載ってきたホスト名をコピペして記述し直して再アップロードしています。   お知恵をお借りできれば幸いです。 どうぞよろしくお願い致します。

    • ベストアンサー
    • HTML
  • .htaccessのアクセス制限のことで

    レンタルサーバーを利用してブログをやっております。 最近、海外からのスパムが多くなり、.htaccessを設置してアクセス制限をかけようかと思い.htaccessファイルを設置しましたらページそのものが見れなくなってしまいました。 order deny,allow deny from all allow from .jp SetEnvIf Referer "拒否ドメイン" deny_ref order allow,deny allow from all deny from env=deny_ref このような書き方は間違えているのでしょうか。 こちらのやりたい事としましては、海外からのアクセスを拒否、日本でも一部のドメインの拒否、一部のサイトからの直リンク拒否です。 どうそ、よろしくお願いします。

  • CGIを使っていないページを.htaccessでアクセス制御

    こんにちは。質問させて頂きます。 不正アクセスをした人を制限する為に.htaccessを使いたいと思っています。 それで.htaccessは掲示板などのCGIではないページ、つまり○○.htmlなどのディレクトリにおく事は可能なのでしょうか?(htmiファイルに対して制限を掛ける事が可能?) そして記述は <Limit GET> order allow,deny allow from all deny from ●●●.domain.com deny from 209.15.00.00 </Limit> <Files ".*"> deny from all </Files> これでいいのでしょうか?ホストとIPがわかっている場合はその両方を続けて記述してもOKなのでしょうか? それとファイル名なのですが、.htaccessだけでいいのでしょうか? ○○.htaccessみたいに任意の名前を付けられないのでしょうか。 転送はアスキーモードとくぃう事ですが、普通のHTMLファイルと同じって事なのでしょうか?そもそも.htaccessはCGIとは違うので、cgiのディレクトリにいれなくてもいいんですよね?Parlのパスも記述しなくていいみたいですし。 疑問点が多いので申し訳ないのですが、どうか宜しくお願い致します。

  • .htaccessでアクセス制限できないホスト

    アクセスして欲しくないホストは、htaccessを使って拒否しているのですが、 『sol-fttb.240.152.118.46.sovam.net.ua』だけは なぜか、どんなに記述しても、毎日アクセスがあります。 今までに、以下のようにして試したのですが、すべて駄目でした。 deny from sol-fttb.240.152.118.46.sovam.net.ua deny from .240.152.118.46.sovam.net.ua deny from .sovam.net.ua deny from .net.ua deny from .ua deny from 240.152.118.46 もちろん、その記述の前に、 order allow,deny allow from all は、記述しており、 他のホストは、問題なく拒否できています。 『sol-fttb.240.152.118.46.sovam.net.ua』のように、IPアドレスが不明なホストは拒否する方法はないのでしょうか? できれば、htaccess以外でのアクセス制限の方法ではなく、 htaccess内の記述で、アクセス拒否したいと思います。 以上よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • 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制限

    携帯サイトをPCからアクセスできないようにするため、htaccessを使ってIP制限をしたいのです。 下記アドレス7のロリポップのレンタルサーバーに書かれていた方法 http://lolipop.jp/?mode=manual&state=hp&state2=htaccess_03 で試みましたが、全く作動しません。普通にPCから見れてしまいます。 order deny,allow deny from all allow from 許可したいホスト・IP  ←携帯各社のIPをズラズラと並べました。 アップロードして拡張子は.htaccessに変更し、ファイルの属性も604にしました。 サイトの説明通りにしているつもりなのですが、他にも何か設定の項目があるのでしょうか? 実際にロリポップを使用されている方がいましたら助かります。 アップロードはロリポップのFTPやフリーソフトのFFFTPも使ってみましたが、結果は同じでした。

  • .htaccessでアクセス制限しても効果なし

    .htaccessで、特定の人をアクセス制限したいのですが、固定IPではないようなのでドメイン単位?で制限したいと思いました。 でも、ばんばん通過されちゃっています。 規制したいのは「hinet.net」という台湾のIPで、国単位による制限記述も記入しました。 下記のような感じです。 order deny,allow allow from all deny from hinet.net deny from tw これでもなぜ規制できないのでしょうか。 試しに自分のホストを記述してみましたが、ちゃんと規制されてました。 あまり知識がないため、わかりにくい質問文ですみません。 どなたかよろしくお願いいたします。

  • .htaccessでのアクセス制限<wakwak

    こんにちは。 wakwakでHPを作成しています。 実はトラブルがあり、アクセス制限をしたいのですが、 パスワードを入れるタイプではなく、 ある特定のIPの人だけを制限したいと思い、 .htaccessファイルの中に <Limit GET POST PUT> order allow,deny allow from all deny from xxx.xxx.xx. </Limit> (xxxはきちんと指定しています) と記述して転送しようとしたのですが Permission denied on server(Filename(deny)) と出て転送できません。 これはつまりwakwakでは拒否できないように してあるのでしょうか。 週明けにサーバー管理者に質問すればいいんですが できれば早いうちに制限をしたいと思っています。 (しかもそういう制限をしたことを知られたくないため レンタルアクセス制限などバナーが出るものは 避けたいと思っています) denyが使えないとしてCGIを使うタイプとか パスワードを指定しない形で 特定のIPをアクセス制限する方法はあるのでしょうか。 よろしくお願いします。

  • .htaccessで時間制限したい

    自分のHPのうち、特定のディレクトリ内のファイルへのアクセスを、時間によって制限したいと思っています。 「2009年9月1日午前0時が来るまで、このディレクトリへのアクセスはすべてdeny」という制限をするには、.htaccessになんと書けばよいでしょうか。 order allow,deny allow from all deny ??????

専門家に質問してみよう