dポイントプレゼントキャンペーン実施中!

.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を設置しました。

「【再】.htaccessでアクセス制限動」の質問画像

A 回答 (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でのほうが負荷は低そうですし)

この回答への補足

早速の回答ありがとうございます。

>ホスト名による制限はどうしても無理のようですね。そのホスティング環境での逆引き自体が不可にして
>あるのかもしれませんね。

たまたま他サイトに何方かが書いてある記事を読んだのですが、「ニフティのサーバーは逆引き対応して
いない」とのこと。やはり無理な様ですね。

>記載されたURLの情報で対象のIPアドレス範囲についてはOKかと思います。思っていたよりかなり多い
>ですが・・・

記載箇所と記載方法を例文交えて教えて下さり、わかりやすく理解できました。ありがとうございます。
104行分のDenyを書くのは、さすがに多く大変でした。ただ、多数のDeny設定をして、サーバーへの負荷、
画面表示が遅くなったり、重たくならないか心配ですが・・・

>相手がプロキシ経由を利用したら回避されてしまいますけども。。

アクセス解析サービスでは、プロキシ経由かどうかもわかるのですが、今回のケースは、幸いなことに
プロキシ経由はしていませんでした。

>JavaScriptはクライアント側での動作なのでその気になれば弄ってどうにか出来なくもないですし、
>CGIの中でも、ホスト名の取得が出来るかは怪しそうですね。(CGI中でIP範囲チェックするならば
>htaccessでのほうが負荷は低そうですし)

やはりhtaccessでの制限するのがよさそうですね。本当はホスト名での制限ができればベストなのですが。
取り敢えず、IPアドレス/ネットマスク範囲制限によるhtaccessを試してみようと思います。

途中でhtaccessの使用不可かと困ったのですが、今回都度、丁寧でわかりやすいアドバイス回答をして
くださり、簡単にhtaccessで制限をかけられそうで、とても助かりました。大変感謝しております。

補足日時:2013/07/10 15:27
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/07/11 13:12

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_acc …
https://httpd.apache.org/docs/2.4/ja/mod/mod_acc …

それでも、自分のIP/ホスト名に対する制限が効く(.htaccessが確実に有効である)のに
本来制限したい相手がやはりアクセスできてしまうのであれば、
相手のプロバイダのIP範囲を調べて、
上記の Allow のリファレンスページにも記載がある
ネットマスクによる範囲制限などを掛けるなどでしょうか。

ちなみに、そもそも「相変わらずアクセスされていました。」
というのはどのように確認されたのでしょうか。
正常にアクセス制限ができていれば、
HTTPステータス 403 を返却してアクセス拒否するApacheのログは残ると思いますが、
それを誤認しているなどはないでしょうか?

この回答への補足

お忙しい中、丁寧でわかりやすい説明回答ありがとうございます。
ニフティからの回答待ちで、返信が遅くなり申し訳ありません。
以下、長文気味ですがご容赦ください・・・

>ニフティさんのサービスは単なるホームページスペースのレンタルではなくて、ホスティング
>サービスなんですよね?

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などによるアクセス制限くらいしかないの
かな、と思っています。

都度、質問形式になってしまい申し訳ありませんが、どうぞよろしくお願いいたします。

補足日時:2013/07/09 08:50
    • good
    • 0

Apacheの設定で、.htaccessによるアクセス制限が有効になるようにしているでしょうか?


AllowOverride ディレクティブにてAllもしくはLimitを含む必要があるかと思いますが。
https://httpd.apache.org/docs/2.4/ja/mod/core.ht …
# .htaccessへの記述ではありません。念のため。

また、アスキーモード云々の件については、
アスキーモードでアップロードし、
バイナリモードでダウンロードしたファイルを
改行コードが確実に判別出来るエディタを利用して、
改行コードが LF のみになっているかをちゃんと確認した方が良いかと思います。
# たとえば サクラエディタ など。
# メモ帳なんかで見ると、おそらく1行につながってみえる状態が正しい状態です。

この回答への補足

お忙しい中、回答ありがとうございます。
phpはどシロウトですが、参考リンク先サイトは分かりやすい解説で勉強になります。

さて、Apacheの設定ですが、Webホスティングのレンタルサーバーなので、サーバー管理者
(当方の場合ニフティ)しか設定変更できませんが、ニフティ側には、このレンタルサーバーで
.htaccess作成使用が可能なことは電話確認済みです。

.htaccess他の使い方
http://homepage.nifty.com/help/relative/htaccess …

また、アスキーモードの件は、ダウンロード後に確認をしてみましたが、きちんと改行はできて
いました。

.htaccess 記述方法、アップロード時(アスキーモード)、設置場所には問題がなさそうなので、
他に動作しない理由が思い当りませんが、もしかしたら拒否したいホスト名での記述が正しいか?、
というところです。

.htaccess利用可能であっても、ニフティ側 Apache設定による、Apacheのアクセス元ホスト名
を解決(逆引き)しているか否か、というのはありますよね?

つまり、IPアドレスでしかアクセス制限ができないということだと思いますが、IPアドレスが
一定ではなく変化するので、流動的で一時的にしか制限できません。

その場合、他にアクセス制限拒否の方法(このホストからのみ拒否なので、パスワード認証は除く)
はあるでしょうか?

もしアイディア等があれば、ご教示くだされば助かります。

補足日時:2013/07/07 09:51
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!