• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【再】.htaccessでアクセス制限動作しません)

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

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

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

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