Apacheを127.0.0.1経由でのみアクセス可能にしますが、これは可能ですか?


19

Apacheサーバーをセットアップしましたが、PHP / MySQLはうまく機能します!

しかし、問題は、これが開発専用サーバーであるため、どうすればこのプライベートを維持するのですか?コンテンツを非公開にしておく唯一の理由は、スクリプトがうまくいかなかった場合、Apacheエラーが公開サイトになった場合に表示されたくない(そして、他の人も同じネットワークを共有しているという事実!) PCをWebホストとして使用する可能性が高い-実際のライブサイトのWebホスティングプロバイダールートを使用してダウンする可能性が高くなります。

現在、次の3つの方法でアクセスできます。

  • http:// localhost(またはhttp://127.0.0.1、代替方法およびlocalhostのIPですが、どちらの方法でも受け入れられます!)

  • http 192.168.0.1(ルーターのIP)

  • http pc-name-here(私のPCの名前、これは明らかにWindows PCによって異なります!)

[注、リンクを投稿できないので、他の2つについては、最初のものと同様にコロン/スラッシュを挿入する必要があります]。

ただし、最初の方法でのみアクセスしたいです。ポート80でリッスンしています(変更したくありません)。これは不可能ですか、それとも間違っていますか?PHP / webdesignについては、ネットワーク側のことよりも少し知っているので、これは私にとって初めてです!

基本的に、そのマシンのローカルホスト経由でのみアクセスでき、外部IPアドレス、つまり192.168.0.1ではアクセスできないようにします。

すべてのテストベッドサイトでhttpd.confを編集して拒否を使用する必要がありますか、または他の解決策はありますか?

例:

<Directory /www/vhosts/localhost/>
    Options All
    AllowOverride All
    order allow,deny
    allow from 127.0.0.1
            deny from 192.168.0.1
            deny from my-pc-name
</Directory>
  • それは例ですが、ここで何が間違っているのかわかりません!

私のオペレーティングシステムはWindows 7 Ultimateです。

私は「ネットの周りを見て回ったが、それのいくつかは私にとって少し技術的に見えた。

あなたは何をお勧めします?

回答:


34

これを行う最も簡単な方法は、Listenディレクティブを使用することです。デフォルトでは、httpd.confに次の行があります。

Listen *:80

つまり、コンピューターのすべてのネットワークアドレスのポート80でro要求に応答します。変更後:

Listen 127.0.0.1:80

apacheにローカルアダプターのリクエストにのみ応答するように指示し、それ以外は無視します。


12

リッスンオプションはおそらく最適ですが、参考までに、このようにallow / denyを使用して行うことができます

<Directory /www/vhosts/localhost/>
    Options All
    AllowOverride All
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Directory>

Order deny,allow(「特に許可されない限り、すべての要求を拒否する」をApacheに伝えOrder allow,deny特にブロックされない限り、IEは、すべての要求を許可し、反対である)
Deny from allと同様のことを行いOrder deny,allowますが、具体的にそれらを開かない限り、それはすべてのIPからのすべての要求をブロックしますように。両方を使用するのが一般的のようですOrder deny,allowし、Deny from all私は確かにどちらも同じことを行うときに、なぜ100%じゃない
Allow from 127.0.0.1と言い、「127.0.0.1からのすべての要求を許可します」。127.0.0.1はlocalhostにマップされるため、http://127.0.0.1/またはhttp:// localhost /を使用でき、許可されます。

それは、ローカルホストのサイトnoを要求するすべての人に403(禁止)エラーを提供します

その他の便利なもの;
Allow from 192.168.0.ネットワーク上の誰からのリクエストも許可します(ネットワークが192.168.0.0-192.168.0.255の場合)
許可/拒否ルールは順番に処理されるため、

Deny from 192.168.0.2
Allow from 192.168.0.2

リクエストを許可し、

Allow from 192.168.0.2
Deny from 192.168.0.2

192.168.0.2からのリクエストを拒否します

そう

Deny from 192.168.0.2
Allow from all

特に拒否されていたとしても、192.168.0.2からの要求を許可します。

.htaccessファイルまたはディレクトリごとに許可/拒否ルールを使用することもできます


「Order allow、deny」ではなく、「Order deny、allow」であることを確認してください。人々が頻繁に犯す小さな間違い。
スコットチュー

3

/ etc / apache2のports.confに変更を加え、ポートをリッスンする各参照がローカルホストのみをリッスンするようにしました。他のファイルにはlistenコマンドが含まれていないようです。Apacheを再起動した後、これらの変更は望ましい効果をもたらしたようです。

/etc/apache2/ports.conf

NameVirtualHost *:80
########################## Listen 80
Listen 127.0.0.1:80

<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
###############################Listen 443
Listen 127.0.0.1:443
</IfModule>

<IfModule mod_gnutls.c>
##################################Listen 443
Listen 127.0.0.1:443
</IfModule>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.