Yalnızca yerel ağdan bir Apache sanal ana bilgisayarına erişime izin verme


19

Yönettiğim bir Linux sunucusunda Apache 2.2 çalıştıran bir web sayfam var. Bu sunucu, diğer bazı hizmetler için dış dünya tarafından görülebilir.

Apache'yi belirli bir sanal ana bilgisayarın yalnızca yerel ağın içinden görülebileceği şekilde yapılandırmak istiyorum, böylece kuruluşumdaki diğer kişilerden geri bildirim almak için bir web uygulaması dağıtabilirim. Bunun İzin Ver direktifiyle ilgili olduğunu düşünüyorum, ancak deneylerim iyi gitmiyor.

Bunu yapmak için yapılandırma dosyamı nasıl değiştirebilirim? Güvenlik duvarı yapılandırmasını da değiştirmeli miyim?


Sunucunuz için 10.0.0.100 veya genel (yönlendirilebilir) IP adresi gibi özel (yönlendirilemeyen) bir IP adresi mi kullanıyorsunuz?
Closetnoc

Sunucunun genel bir IP adresi var ve buna iş ağının dışından bağlanabilirim - örneğin evden. Meslektaşlarının bilgisayarlarının tümü 10. *. *. * Türünde yerel IP adreslerine sahiptir.
Btz

Yanıtlar:


12

Kolay. Ana yapılandırmanızda veya sanal yapılandırmanızda böyle bir şey ayarlamanız yeterlidir:

<Directory /var/www/path/to/your/web/documents>

  Order Deny,Allow
  Deny from all
  Allow from 127.0.0.1 ::1
  Allow from localhost
  Allow from 192.168
  Allow from 10
  Satisfy Any

</Directory>

<Directory></Directory>Deyimi temelde bu dizinde herhangi bir şey için bu kuralları kullanın”diyor. Ve /var/www/path/to/your/web/documentsbu örnekte ayarladığım, ancak sitenizin yerel dizin yoluna uyacak şekilde değiştirilmesi gereken "bu dizin" ile .

İçinde sonraki <Directory></Directory>alana varsayılan Apache davranışı değişiyor Allow'için varsayılan olarak tüm s Order Deny,Allow. Sonra, Deny from allherkesin erişimini engelledi. O edilir follwing Allow fromerişime izin verir ifadeleri 127.0.0.1 ::1(localhost IP adresinden), localhost(localhost kendisi). Tüm standart şeyler bu. localhostBirçok dahili sistem işlemi için erişim gerektiğinden.

Aşağıda sizin için önemli olan şeyler var.

Allow fromİçin 192.168sıra sıra 10herhangi erişime izin verir / rakamla öneki ağ aralığındaki tüm ağ adresleri.

Yani 192.168bunun temel olarak bir kullanıcının benzer bir adresi olup olmadığı 192.168.59.27veya 192.168.1.123web sitesini görebileceği anlamına gelir .

Ve benzer şekilde Allow fromfor 10önekinin kullanılması, birinin IP adresi varsa 10.0.1.2veya hatta 10.90.2.3içeriği görebileceğini garanti eder .

Dünyadaki hemen hemen tüm dahili ağlar, 192.168aralığı veya aralıktaki bir şeyi kullanır 10. Harici bir şey yok. Yani bu komboyu kullanmak, dış dünyaya erişimi engelleme hedefinize ulaşacak, ancak yalnızca yerel ağınızdan erişime izin verecektir.


Nedir Satisfy Anybu durumda yapması gereken? Tüm bunlar hakkında hiçbir şey bilmiyorum ama senaryomda mevcut olduğunda, sayfaya (kullandığım <Location /path>) harici bir ağdan erişebilirim . Ancak kaldırma sorunlarımı düzeltti. Bu durumun neden olduğunu anlamak güzel olurdu, çünkü yerinde kurallarla bile sayfaya erişebileceğimden biraz endişeliydim.
liamnichols

@liamnichols Burada açıklandığı gibi : “Herhangi bir gereksinimin karşılanması durumunda isteğe izin verir (kimlik doğrulama VEYA erişim).”
JakeGould

14

Bu cevaba inen insanlar, bunun Apache 2.2 için özel olduğunu lütfen unutmayın.

Apache 2.4 bu yönergeleri kullanımdan kaldırmıştır.

Yeni yol, modülü mod_authz_hostve Requireyönergeleri kullanmaktır. ( bağlantı )

Apache 2.4'te yapmanız gerekenler

<Directory /var/www/ncp-web/>
  Require host localhost
  Require ip 127.0.0.1
  Require ip 192.168
  Require ip 10
</Directory>

ve tüm İzin Ver yönergelerini kaldırın.


5

Bu bölümü sanal ana bilgisayar yönergelerinize ekleyin:

<Location /mypathurl>
    Order deny,allow
    Deny from all
    Allow from 192.168.1.10
</Location>

Yukarıdaki IP'nizi değiştirin. Bu, finansal seviye güvenliği için kullanılmamalıdır, FYI.


-1

Ağ kurulumunuzu nasıl yaptığınızı bilmiyorum, ancak daha iyi bir cevap vermeyi denemek için bazı şeyler varsayıyorum.

DSL bağlantısı olan küçük bir ofisiniz olduğunu varsayalım. Sabit bir genel IP adresiniz veya hattınıza atanmış bir adres bloğunuz, DSL modeminiz ve güvenlik duvarınız olur. Bunun nasıl olduğuna dair ayrıntılara girmeden, önemli kısma geleceğim.

NAT (ağ adresi çevirisi) kullanıyor olmalısınız. Bu, genel IP adreslerinin ağınızın WAN (Internet) tarafında bulunmasını ve LAN tarafında ağ içinde özel IP adreslerini (10.0.0.100 gibi) kullanmasını sağlar. Bu standart çalışma prosedürüdür. Ağınızda bir web sunucusu barındırıyorsanız, herhangi bir web trafiğini web sunucunuza yönlendirmek için bağlantı noktası yönlendirme veya benzeri bir mekanizma kullanırsınız).

Bu standart senaryoda, dahili bilgisayarlarınızın tümü özel IP adreslerini kullanır.

Benzer bir standart ağ kurulumuna sahip olduğunuzu varsayarsak, bilgisayarınızın IP adresini genel bir IP adresinden özel bir IP adresine değiştirirsiniz. Ağınızda, bilgisayarınızın kullanılabilir bir IP adresi isteyebileceği DHCP kurulumu olabilir. Bu, bir IP adresi belirtmek yerine DHCP kullanmayı seçtiğiniz ve bir IP adresinin atanacağı anlamına gelir. DHCP kullanılamıyorsa, kullanılabilecek özel bir IP adresi alanı için diğer bazı bilgisayarları kontrol etmeniz ve kullanılmayan alan içinde bir IP adresi seçmeniz gerekir. Bu kullanılmayan IP adresini ağ kurulumunuzda belirleyebilirsiniz. Bu, sisteminizin İnternet'te görülmesini engellemelidir.


Düşündüm, ama pratik bir çözüm değil. Bu makinede dışarıya görünür kalması gereken hizmetler var ve her durumda web uygulamasını birkaç gün içinde tekrar görünür hale getirmeyi planlıyorum - sadece birkaç gün için ağ düzeninde devrim yaratmanın bir anlamı yok. Bununla birlikte üzerinde çalışabileceğim şey, Apache yapılandırması gibi şeyler.
Btz

Güvenlik duvarınız varsa, o IP adresine giden bazı bağlantı noktalarını kapatabilirsiniz.
closetnoc

Güvenlik duvarı ayarları kullanılabilir, ancak bu gerçekten aşırıdır. Apache, IP adresi ve diğer ilgili kriterlere göre reddetme veya izin verme işlevselliğine sahiptir. Daha fazla ayrıntı için cevabıma bakın.
JakeGould

@JakeGould Güvenlik duvarları aşırı bir çözüm olmak zorunda değildir. Apache'yi gerçekten çok iyi tanıyorum. Bununla birlikte, çoğu iyi güvenlik duvarında, sunucunun kendisine bir yük koymadan yardımcı olan HTTP filtreleme seçenekleri vardır. Apache mükemmel olsa da, hatasız değil. Ayrıca, alternatif bağlantı noktası erişimlerini içeren bağlantı noktası erişimleri bir güvenlik duvarı kullanılarak değiştirilebilir, böylece bazı web hizmetleri herkese açık kalır ve diğerlerine yalnızca LAN üzerinden erişilebilir.
closetnoc
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.