IPアドレスでの接続をやめる方法

このQ&Aのポイント
  • CentOS6のウェブサイトにおいて、IPアドレスでのアクセスを停止したい場合、httpd.confに追記するか.htaccessを作成し、リダイレクトやリライトを行う方法があります。
  • ウェブサイトが複数あり、それぞれにVirtualHostディレクティブがある場合、httpd.conf内のIPアドレスの記述箇所を確認する必要があります。
  • また、rewriteモジュールを使用してリダイレクトやリライトを行うこともできます。
回答を見る
  • ベストアンサー

IP(グローバル)アドレスでの接続をやめる。

CentOS6で現在ウェブサイトにIPアドレスでのアクセス(例 http://111.222.333.444/abc/ab.cgi)ができるようになっています。できないようにする為にはどうすれば良いでしょうか?教えていただけないでしょうか? httpd.confの中に何か追記する必要があるのでしょうか? もしくは.htaccessを作成し追記する必要があるのでしょうか? ウェブサイトは複数あります。VirtualHostディレクティブがそれぞれあります。 httpd.confの中を見たのですが、特にそのIPアドレスが記述されている箇所が無い様なのですが。 もしくはモジュールのrewriteのようなものを使ってリダイレクトというか、リライトするような方法になりますでしょうか。 宜しくお願い致します。

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5080/13275)
回答No.2

質問者さんが見つけられた <VirtualHost *:80> ServerName any DocumentRoot /tmp </VirtualHost> という設定は、他の<VirtualHost>ディレクティブよりも前に必ず記述して下さい。 Apacheでネームベースのバーチャルホストを使用している時、ApacheはHTTPリクエストに書かれているHostと各<VirtualHost>ディレクティブのServerNameがマッチするかチェックします。 もしHostとServerNameがマッチする<VirtualHost>ディレクティブが見つかれば、その<VirtualHost>ディレクティブの設定に基づいて処理を行います。 しかし、いずれの<VirtualHost>ディレクティブもマッチしなかった場合は1つ目の<VirtualHost>ディレクティブの設定に基づいて処理を行います。

ymoshimoshi
質問者

お礼

ありがとうございます。 理解しました。

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5080/13275)
回答No.1

ブラウザとWebサーバはIPアドレスを使って通信しているため、IPアドレスでのアクセスを出来ないようには出来ません。 但し、IPアドレスでアクセスしてきた場合、本来のコンテンツとは違うものを見せる事は可能です。 http://takachan.jra.net/computer/apache_memo_01.php

ymoshimoshi
質問者

お礼

早速回答ありがとうございます。 インターネットで調べているうちに以下のサイトを見つけました。 http://fedorasrv.com/bbshtml/webpatio/1339.shtml <VirtualHost *:80> ServerName any DocumentRoot /tmp </VirtualHost> をhttpd.confに追記すればできるようなのですが。 但し1点、本当にこの記述は他の<VirtualHost *:80>の一番後ろに 追記しなければいけないのか分かりませんでした。 テストで他の一番先(上)に書いても問題無かったようなのですが。 もし分かれば教えていただけますでしょうか。

関連するQ&A

  • httpd.confのURLリライトについて

    httpd.confのURLリライトについてご質問です。 環境 CentOS5.2 Apache 2.2.3 tomcat 5.5.25 Apacheとtomcatの連携でWebサーバを作成しております。 httpd.confでURLリライト設定をしておりますが、リライトが行われません。 以下httpd.confの設定内容です。※AAをBBにリライト AcceptPathInfo On RewriteEngine On RewriteRule BB AA [R] また.htaccessも試したのですが同じ結果です。 (httpd.confはAllowOverride Allとしてあります。) 設定後のApache、tomcatの再起動も行っております。 どなたか、原因に心当たりのある方、いらっしゃいますでしょうか?

  • VirtualHostディレクティブの記述について

    教えてください。 サーバで既に構築してあるサイトについては、httpd.confの中でVirtualHostを使っています。 追加で検証用のサーバを立てるのですが、IPアドレスでアクセスできるようにしたいです。IPアドレスでサイトにアクセスするようにするには、追加のVirtualHostを書き、ServerNameにIPアドレスを指定すれば良いでしょうか? 宜しくお願い致します。

  • .htaccessに記述できるディレクティブの制限

    Linuxで動かしているApacheで公開しているディレクトリに、.htaccessでBASIC認証を設定しています。 必要があり、.htaccessに別のディレクティブを追加したところ、Internal Server Errorとなってしまいます。 httpd.confなどで、使用できるディレクティブが制限されているのでしょうか。 それとも、追加したディレクティブの書き方に問題があるのでしょうか。 よろしくお願いします。

  • IPでのサイトサクセスについて

    CentOSを使っています。 HP公開前で、例えばhttp://www.abc.co.jp/index.htmlでのアクセスではなく、http://(グローバルアドレス)/index.htmlで外からアクセスさせる場合、 httpd.confをどのように書いたら良いか教えていただけますでしょうか。 あと、別の質問でWindowsのIISの場合ですが、もし"既定のウェブサイト"を使って既にWebサーバがウェブサイトを作っていた場合は、どのようにすればいいでしょうか? おそらく、http://(グローバルアドレス)/index.htmlだと既定のウェブサイトに作らなければならいと思うのですが。

  • Oracle Application Server IPアドレス アクセス制限

    Oracle Application ServerのIPアドレスでのアクセス制限の方法を教えてください。 httpd.confというファイルにAllow等の設定をすれば よいというところまではわかったのですが、 アクセス制限が思ったとおりに動きません。 httpd.confを有効にする必要があるのでしょうか? マニュアルを見てもそれらしきことが載っていないのですが、どういう設定をどこですればよいのでしょうか。 よろしくお願い致します。

  • 1つのIPアドレスでサブドメインをSSLにするには

    1つのIPアドレスでサブドメインをSSL通信にしたいと思います。 https://www.hoge.com https://geho.hoge.com しかしIPはひとつです。 その場合ジオトラストでワイルドカード証明書(サブドメインなら 無制限に増やせる)を取得して設定をしてみましたが設定がうまく行き ません。 流れとしてcentos5でhttpd.confにVirtualHostを設定しました。 こんな感じです。 <VirtualHost *:80> ServerAdmin admin@hoge.com DocumentRoot /var/www/www.hoge.com ServerName www.hoge.com ErrorLog /var/log/www.hoge.com.err CustomLog /var/log/www.hoge.com.log combined </VirtualHost> CSRを作成して認証してもらいssl.confの設定しました。 # General setup for the virtual host <VirtualHost *:443> DocumentRoot "/var/www/www.hoge.com" ServerName www.hoge.com:443 鍵も下記のように変更しました。 SSLCertificateFile /usr/local/certs/server.crt SSLCertificateKeyFile /usr/local/certs/server.key それでもなぜかドメインは一つかしか使えず、さらにhttpsで アクセスするとIEでは 「このページにはセキュリティで保護されている項目と保護されて いない項目が含まれます」 とエラーがでます。 サイトはPHPで構築したものですが小規模なサイトです。 非常に困っておりSSL通信をVirtualHost毎に行いたいと思います。 どうすれば良いかまったくわからない状態です。 アドバイスのほどよろしくお願いします。

  • IPアドレスでアクセスを制限するには?

    環境は、OSはLinux Fedora10で、Apacheは2.2.10です。 「/var/log/httpd/error_log」に大量の(数秒毎)の不正と思えるアクセスが記録され、 そのIPアドレスからのアクセスを制限したいと考えています。 「/etc/httpd/conf/httpd.conf」には以下のように書いています。 <Directory "/var/www/hogehoge"> Order allow,deny Allow from all Deny from 123.45.67.89 123.45.67.90 234.45.67.89 111.222.33.44 ... </Directory> 「Deny from」の行のIPアドレスが多いせいか、HTTPDを再起動しようとすると、エラーが発生し失敗してしまいます。 (IPアドレスは1000件以上あります。IPアドレスを少なくすると、何も問題なくHTTPDは起動できます。) できれば、「Deny from」の行のIPアドレスを外部ファイルから呼び出したり、変数に定義してすっきりさせたりしたいのですが、どのようにすればよいのでしょうか。 (他にもよい方法があったら、教えてください。) よろしくお願い致します。

  • .htaccess にてドキュメントルートは変更でいますか。

    一般的なレンタルサーバを借りています。 現在ドキュメントルートは、 /www/ になっています。このドキュメントルートを /www/xxxx/ と変更したいと思います。 httpd.conf を変更出来れば可能なのは理解していますが、root 権限の無いレンタルサーバなため、httpd.conf は変更出来ません。 .htaccess の設置は可能なので .htaccess でドキュメントルートは変更出来ないでしょうか。調べた感じでは出来そうにないと思っていますが、確認のため質問させて頂きます。 現在は、.htaccess でリダイレクトしていますが、アドレスが変わってしまうので何とかしたいと思っています。

  • Virtualhost:名前ベースorIPペース?

    某レンタルサーバでVPSを使っています。 CentOS6.2(x86_64)、Apache/2.2.15 です。 で、1つの固定IPアドレスに対して、 3つのFQDNをvirtualhostで設定しようとしています。 (そのうち1つは、SSLもあり) で。。。 httpd.conf ===================================== NameVirtualHost *:80 <VirtualHost *:80> ===================================== ssl.conf ==================================== NameVirtualHost *:443 <VirtualHost *:443> ==================================== と、設定するのと、 httpd.conf ===================================== NameVirtualHost xx.xx.xxx.xxx:80 <VirtualHost xx.xx.xxx.xxx:80> ===================================== ssl.conf ==================================== NameVirtualHost xx.xx.xxx.xxx:443 <VirtualHost xx.xx.xxx.xxx:443> ==================================== と設定するのでは、どちらがのぞましいのでしょうか? どちらでも動くのですが・・・。 また、どういう仕組みの違いになっているのでしょうか? 下記2ページを読むと、自分のケースではどっちでも問題ないので、 どっちでもかまわないのでしょうか? //----------------------------------------------------------- 名前ベースのバーチャルホスト http://httpd.apache.org/docs/2.0/ja/vhosts/name-based.html IPベースのバーチャルホストWWWサーバの構築 http://www.aconus.com/~oyaji/www/apache_linux_virtual.htm よろしくお願いします。

  • apacheのバーチャルホストの設定方法

    MacOSX Snow Leopardを使っています。 apacheは2.2.11です。 httpd.confで/http/Virtual.confを読み出して設定しています。 Virtual.conf ------- # #VirtualHost.conf # NameVirtualHost *:80 <VirtualHost *:80> ServerName www.xxxxx.com DocumentRoot /http/www.xxxxx.com </VirtualHost> ------- ※www.xxxxx.comは、正しく設定されています。 の設定をし、httpdを再起動したところ、IPアドレスでアクセスしても、ドメインでアクセスしても、httpコード403になってしまいます。 *httpdで起動時、エラーはでません。 *httpd -tはSyntaxOK *httpd -sは   VirtualHost configuration:   wildcard NameVirtualHosts and _default_ servers:   *:80 is a NameVirtualHost    default server www.xxxxx.com (/http/Virtual.conf:11)    port 80 namevhost www.xxxxx.com (/http/Virtual.conf:11)   Syntax OK です。 virtual.confをすべてコメントアウトしたところしっかりアクセスできました。 よろしくお願いします。