私のIPの変更は異なるDクラスを行うので、範囲を設定したい:
123.123.123.xxx。最後のセグメントは0〜255です。
現在、Apacheは次のように述べています。
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
私のIPの変更は異なるDクラスを行うので、範囲を設定したい:
123.123.123.xxx。最後のセグメントは0〜255です。
現在、Apacheは次のように述べています。
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
回答:
まず、「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
Require
のApache 2.2のサポートが制限され、Apacheの2.2のいずれかをサポートしていませんRequire ip
か<RequireAny>
。Apache HTTPサーバー2.4の新機能の概要で説明したように、「高度な承認ロジックは、Require
ディレクティブや関連するコンテナディレクティブなどを使用して指定できるようになりました<RequireAll>
。」前者は、Apache 2.4に追加された改善の1つです。
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ハビット」を見つけるための快適な方法です)。
Require ip 2a02:4126:2aa4::/48
とはRequire ip 2a02:4126:2aa4::
?どちらも私にとって構文エラーを生成しませんが、前者だけが機能します。
Apache 2.2を使用して確認したことに注意してください。Apache2.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
指定された範囲全体を取得します。
注:他の人が恩恵を受ける可能性があるため、ここに残します。それは質問に対する直接的な答えではありません。
例えば:
IP 192.168.100.0/22が必要
動作しながら
IP 192.168.100.0/22 #localnetworkが必要
失敗!
httpd出力の再起動:
制御プロセスがエラーコードで終了したため、httpd.serviceのジョブが失敗しました。詳細については、「systemctl status httpd.service」および「journalctl -xe」を参照してください。
そのため、その行ではコメントが許可されていないようです。
ApacheのRequireディレクティブは、ユーザーがリソースへのアクセスを許可または拒否されるようにするために、承認フェーズで使用されます。mod_authz_hostは、ip、host、forward-dns、およびlocalを使用して許可タイプを拡張します。他の認証タイプも使用できますが、追加の認証モジュールをロードする必要があります。
これらの承認プロバイダーは、どのホストがサーバーの領域にアクセスできるかに影響します。アクセスは、ホスト名、IPアドレス、またはIPアドレス範囲によって制御できます。
v2.4.8以降、式はホスト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
ネットワークabcd、およびネットマスクwxyzより細かなサブネット制限用。
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