質問

最近まで、私は次のように仮想サイトをたくさん設定していました。

<VirtualHost 127.0.0.1:1234>
    ...

これは、Linux デスクトップを使用しているローカル マシンでのテストには問題なく機能します。Windows ラップトップから MS とエクスプローラーがページをどのように表示するかをテストするために、これを次のように変更しました。

<VirtualHost *:1234>
    ...

これも正常に機能し、からサイトを呼び出します http://[mylinuxサーバー名]:1234 私のラップトップのIEで。ただし、そのワイルドカードをローカル LAN に制限したいと考えています。192.nnn.nnn.nnn や 192.*.*.* など、ワイルドカードが上にある IP を接続すると、Windows マシンで 403 Forbidden が発生します。私の Linux マシンではローカル サーバーが引き続き正常に動作します。

<VirtualHost 127.0.0.1:1234 192.*.*.*:1234>
    ...

または

<VirtualHost 127.0.0.1:1234 192.nnn.nnn.nnn:1234> #exact IP of laptop
    ...

とにかく、私は上記の 2 番目の設定例のワイルドカードが好きではありません。誰かにヒントを?

役に立ちましたか?

解決

VirtualHost のパラメーターは、リモートのアドレスではなく、リッスンするローカルアドレスです。

Apache 2.4以降では、 Require ディレクティブ:

Require ip 127.0.0.0/8
Require ip 192.0.0.0/8

Apache 2.2以前を使用している場合は、 authz_host 設定:

Order Allow,Deny
Allow from 127.0.0.0/8
Allow from 192.168.0.0/16

これはApache 2.4でも機能する可能性がありますが、 注文および Allow は廃止されました

他のヒント

私のような初心者がここに来る場合に備えてメモしてください:)

Apache HTTPサーバーは、ディレクティブをプレーンテキスト構成ファイルに配置することにより構成されています。メイン構成ファイルは通常、httpd.confと呼ばれます。 主な設定ファイル

バージョン2.4の場合

mod_access_compatが提供する許可、拒否、および注文指令は非推奨され、将来のバージョンでは消えます。それらの使用を避け、それらの使用を推奨する時代遅れのチュートリアルを避ける必要があります。 アクセス制御

Require ip 127.0.0.0/8
Require ip 192.0.0.0/8

または (全く同じではありません)

Require ip 127.0
Require ip 192.168

iptablesを使用して、マシン自体へのアクセスを制限します。最初のコマンドは、192の範囲内の任意のネットワークからのHTTPトラフィックを許可します(真にローカルになるには192.168が必要だと思いますが、間違っている可能性があることに注意してください)。 2番目のコマンドは、ポート80の他のソースからのパケットを単にドロップします

iptables -I 1 INPUT -s 192.0.0.0/8 -p tcp --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT


iptables -I 2 INPUT -p tcp --dport 80 -m state --state NEW -j DROP 

仮想ホストで&lt; VirtualHost *:80&gt;

を実行できます
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top