web-dev-qa-db-ja.com

1 IPではなくIP範囲をどのように要求しますか?

私のIP変更は別のDクラスを実行するので、範囲を設定したいと思います。

123.123.123.xxx。最後のセグメントは0〜255です。

現在、Apacheはこう言っています:

<RequireAny>
   Require ip 127.0.0.1
   Require ip ::1
</RequireAny>
22
user281497

まず、「Apache-2.2」タグにもかかわらず、投稿した構文は2.4からのものであるため、Apache 2.4を意味すると想定します。

Apacheのドキュメントから:

ip.addressは、IPアドレス、部分的なIPアドレス、ネットワーク/ネットマスクのペア、またはネットワーク/ nnn CIDR仕様です。

クラスDはマルチキャストアドレスであり、クラスフルネットワーキングは90年代に廃止されたため、/ 24を許可することを望んでいると思います。/24を許可するには、次のいずれかを使用できます。

Require ip 123.123.123
Require ip 123.123.123.0/255.255.255.0
Require ip 123.123.123.0/24

個人的には、最後の方が最初の方より曖昧さが少なく、2番目よりも読みやすいと思います。

ドキュメントのこのセクションが役に立つ場合があります: http://httpd.Apache.org/docs/2.4/howto/access.html#Host

23
fukawi2

Apache 2.2以下では、次のコマンドを使用できます:

Order deny,allow
Deny from all
Allow from 24.18    # allow access from home
Allow from 162.12   # allow access from work

.htacess内で、ベースレベルに直接(<directive>)。

Apache 2.4以降では、次のようになります:

<RequireAny>
    #IPv4 range at my work
    Require ip 207.100
    #IPv4 range I usually get through my mobile provider
    Require ip 29.11
    #IPv6 from home
    Require ip 2a02:4126:2aa4::/48  
</RequireAny>

(すべての数字は架空のものであり、心配はありません;-)。

私はこれを長年使用して、潜在的なユーザーの99%からバックエンドフォルダーを保護しています。 (旅行中に熱心なブロガーでない限り、非常にうまく機能しています。Gmailユーザーの場合:一番下にある「最後のアカウントアクティビティ」リンクは、自分の「IP習慣」を理解するための快適な方法です)。

15
Frank Nocke

注:他の人が恩恵を受ける可能性があるため、ここではこれを残します。質問に対する直接の回答ではありません。

例えば:

ip 192.168.100.0/22が必要

動作している間

ip 192.168.100.0/22 #localnetworkが必要

失敗!

Httpd出力の再起動:

制御プロセスがエラーコードで終了したため、httpd.serviceのジョブが失敗しました。詳細については、「systemctl status httpd.service」および「journalctl -xe」を参照してください。

つまり、その行にはコメントは許可されませんのようです。

1
Sorin Negulescu

Apache 2.2を使用して確認済みであることに注意して、Apache 2.2はRequire ipまたは<RequireAny>をサポートしていません。 Apache HTTPサーバー2.4の新機能の概要 に記載されているように、「Requireディレクティブと、<RequireAll>などの関連するコンテナーディレクティブを使用して、高度な承認ロジックを指定できるようになりました。」前者は、Apache 2.4に追加された改善の1つです。

Apache 2.2でこれに対処するには、おそらく次のようにする必要があります。

Order allow,deny
Allow from 123.123.123    

指定された範囲全体を取得します。

1
Colt

Apacheの Require ディレクティブは、ユーザーがリソースへのアクセスを許可または拒否されるようにするために、承認フェーズ中に使用されます。 mod_authz_Hostは、承認タイプをip、Host、forward-dnsおよびlocalに拡張します。他の認証タイプも使用できますが、追加の認証モジュールをロードする必要がある場合があります。

これらの承認プロバイダーは、サーバーの領域にアクセスできるホストに影響を与えます。アクセスは、ホスト名、IPアドレス、またはIPアドレスの範囲によって制御できます。

V2.4.8以降、 はHost requireディレクティブ内でサポートされます。 IPが必要

Ipプロバイダーを使用すると、リモートクライアントのIPアドレスに基づいてサーバーへのアクセスを制御できます。 Require ip ip-addressが指定されている場合、IPアドレスが一致する場合、リクエストはアクセスを許可されます。

完全なIPアドレス:

Require ip 10.1.2.3
Require ip 192.168.1.104 192.168.1.205

アクセスを許可されたホストのIPアドレス

IPアドレスの一部:

Require ip 10.1
Require ip 10 172.20 192.168.2

サブネット制限のために、IPアドレスの最初の1〜3バイト。

ネットワーク/ネットマスクのペア:

Require ip 10.1.0.0/255.255.0.0

ネットワークa.b.c.d、およびネットマスクw.x.y.z。より細かいサブネット制限。

Network/nnn CIDR仕様:

Require ip 10.1.0.0/16

前のケースと同様ですが、ネットマスクはnnnの上位1ビットで構成されています。

上記の最後の3つの例は、まったく同じホストのセットと一致することに注意してください。

IPv6アドレスとIPv6サブネットは、次のように指定できます。

Require ip 2001:db8::a00:20ff:fea7:ccea
Require ip 2001:db8:1:1::a
Require ip 2001:db8:2:1::/64
Require ip 2001:db8:3::/48

注:IPアドレスは起動時に解析されるため、式はリクエスト時に評価されません。

ソース: https://httpd.Apache.org/docs/trunk/mod/mod_authz_Host.html

0
mohsen nazari