1 IP yerine bir IP aralığına nasıl ihtiyacım var?


20

IP değişikliklerim farklı bir D sınıfı yapıyor, bu yüzden bir aralık ayarlamak istiyorum:

123.123.123.xxx Burada son segment 0-255 olabilir.

Şu anda Apache diyor:

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

Yanıtlar:


22

Öncelikle, "apache-2.2" etiketine rağmen Apache 2.4 demek istediğinizi varsayacağım.

Apache belgelerinden:

ip.address bir IP adresi, kısmi IP adresi, ağ / ağ maskesi çifti veya ağ / nnn CIDR belirtimidir.

D Sınıfının Çok Noktaya Yayın adresleri olduğu ve 90'larda sınıflı ağların öldüğü için a / 24'e izin vermek istediğinizi varsayıyorum. / 24'e izin vermek için aşağıdakilerden herhangi birini kullanabilirsiniz:

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

Şahsen, sonuncuyu ilkinden daha belirsiz ve okunması ikinciden daha kolay buluyorum.

Belgelerin bu bölümünü yararlı bulabilirsiniz: http://httpd.apache.org/docs/2.4/howto/access.html#host


Yani bu Apache 2.2 üzerinde çalışmayacak mı? phpMyAdmin hem 2.2 hem de 2.4 üzerinde çalışıyor ve ben sadece bu sunucunun ne çalıştığını görmek için kontrol ve 2.2
user281497

Bir şey etkinleştirmek için desteklenmedikçe, 2.2 yapılandırma dosyalarındaki sözdizimini hiç görmedim.
fukawi2

@ fukawi2 - Evet, elbette haklısın. User281497 için: RequireApache 2.2'de sınırlı destek olsa da, Apache 2.2 ya Require ipda desteklemez <RequireAny>. Apache HTTP Sunucusu 2.4'teki yeni özelliklere Genel Bakış'ta belirtildiği gibi , "Gelişmiş yetkilendirme mantığı artık Requireyönerge ve ilgili kapsayıcı yönergeleri kullanılarak belirtilebilir <RequireAll>." İlki Apache 2.4'e eklenen iyileştirmeler arasında.
Colt

14

Apache 2.2 ve önceki sürümlerde aşağıdakilerle çalışabilirsiniz:

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

.htacess'inizde, doğrudan taban düzeyinde (hiçbirinde değil <directive>).

Apache 2.4 ve üzeri sürümlerden itibaren:

<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>

(tüm sayılar kurgusal, endişelenmeyin ;-).

Bunu yıllardır potansiyel kullanıcıların% 99'una karşı arka uç klasörlerimi korumak için kullanıyorum. (Seyahat ederken hevesli bir blog yazarı olmadığınız sürece çok iyi çalışıyor. Gmail kullanıcısıysanız: “son hesap etkinliği” En alttaki bağlantı kendi “IP alışkanlıklarınızı” bulmanın rahat bir yoludur).


Arasındaki fark nedir Require ip 2a02:4126:2aa4::/48ve Require ip 2a02:4126:2aa4::? Her ikisi de benim için sözdizimi hataları üretmiyor, sadece eski işler.
Geremia

3
2a02: 4126: 2aa4 :: = 2a02: 4126: 2aa4: 0000: 0000: 0000: 0000: 0000, 2a02: 4126: 2aa4 :: / 48, 2a02: 4126: 2aa4 ile başlayan tüm adreslerle eşleşiyor mu?
Geremia

1

Apache 2.2 kullanarak onayladığınızı belirten Apache 2.2 , ya Require ipda 'i desteklemiyor <RequireAny>. Apache HTTP Sunucusu 2.4'teki yeni özelliklere Genel Bakış'ta belirtildiği gibi , "Gelişmiş yetkilendirme mantığı artık Requireyönerge ve ilgili kapsayıcı yönergeleri kullanılarak belirtilebilir <RequireAll>." İlki Apache 2.4'e eklenen iyileştirmeler arasında.

Apache 2.2'de bununla başa çıkmak için muhtemelen şöyle bir şey yapmanız gerekecektir:

Order allow,deny
Allow from 123.123.123    

tüm aralığı belirleyecek.


1

Not: Bunu burada bırakıyorum çünkü diğerleri bundan yararlanabilir; bu soruya doğrudan bir cevap değildir.

Örneğin:

IP 192.168.100.0/22 ​​iste

çalışırken

IP 192.168.100.0/22 ​​#localnetwork gerektir

başarısız!

Httpd çıkışlarını yeniden başlatma:

Denetim işleminin hata kodu ile çıkması nedeniyle httpd.service işi başarısız oldu. Ayrıntılar için bkz. "Systemctl status httpd.service" ve "journalctl -xe".

Yani, bu satırda hiçbir yoruma izin verilmiyor gibi görünüyor .


1
Yapılandırma satırında hiçbir yere yorum yapılmasına izin verilmez, bkz. Httpd.apache.org/docs/2.4/configuring.html : "#" karma karakteriyle başlayan satırlar yorum olarak kabul edilir ve yok sayılır. bir yapılandırma yönergesine aynı çizgi ".
Patrick Mevzek

0

Apache'nin Require yönergesi, yetkilendirme aşamasında, kullanıcının bir kaynağa erişmesine izin verilmesini veya erişiminin engellenmesini sağlamak için kullanılır. mod_authz_host yetkilendirme türlerini ip, host, forward-dns ve local ile genişletir. Başka yetkilendirme türleri de kullanılabilir, ancak ek yetkilendirme modüllerinin yüklenmesini gerektirebilir.

Bu yetkilendirme sağlayıcıları hangi ana makinelerin sunucunun bir alanına erişebileceğini etkiler. Erişim, ana bilgisayar adı, IP Adresi veya IP Adresi aralığı ile kontrol edilebilir.

V2.4.8 sürümünden bu yana , ana bilgisayar gereksinimi yönergeleri içinde ifadeler desteklenmektedir. İp gerektir

İp sağlayıcısı, uzak istemcinin IP adresine göre sunucuya erişimin denetlenmesine izin verir. IP ip adresi iste belirtildiğinde, IP adresi eşleşirse isteğin erişimine izin verilir.

Tam bir IP adresi:

Require ip 10.1.2.3
Require ip 192.168.1.104 192.168.1.205

İzin verilen ana bilgisayarın IP adresi

Kısmi bir IP adresi:

Require ip 10.1
Require ip 10 172.20 192.168.2

Alt ağ kısıtlaması için bir IP adresinin ilk 1-3 baytı.

Bir ağ / ağ maskesi çifti:

Require ip 10.1.0.0/255.255.0.0

Bir ağ abcd ve bir ağ maskesi wxyz Daha ince taneli alt ağ kısıtlaması için.

Bir ağ / nnn CIDR spesifikasyonu:

Require ip 10.1.0.0/16

Önceki duruma benzer olarak, ağ maskesi nnn yüksek dereceli 1 bitten oluşur.

Yukarıdaki son üç örneğin aynı ana bilgisayar kümesiyle tam olarak eşleştiğini unutmayın.

IPv6 adresleri ve IPv6 alt ağları aşağıda gösterildiği gibi belirtilebilir:

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

Not: IP adresleri başlangıçta ayrıştırıldığından, ifadeler istek zamanında değerlendirilmez.

Kaynak: https://httpd.apache.org/docs/trunk/mod/mod_authz_host.html


5
Lütfen sadece diğer insanların çalışmalarını kopyalayıp yapıştırmayın. Buna intihal denir.
Gerald Schneider
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.