Mam stronę internetową na serwerze Linux, którym administruję, z uruchomionym Apache 2.2. Ten serwer jest widoczny dla świata zewnętrznego w przypadku niektórych innych usług.
Chciałbym skonfigurować Apache tak, aby dany wirtualny host był widoczny tylko z sieci lokalnej, dzięki czemu mogę wdrożyć aplikację internetową, aby uzyskać informacje zwrotne od innych osób w mojej organizacji. Sądzę, że ma to związek z dyrektywą Allow, ale moje eksperymenty nie idą dobrze.
Jak mogę zmienić mój plik konfiguracyjny, aby to osiągnąć? Czy powinienem również zmienić konfigurację zapory?
Odpowiedzi:
Łatwo. Wystarczy ustawić coś takiego w konfiguracji głównej lub konfiguracji wirtualnej:
<Directory></Directory>
Oświadczenie w zasadzie mówi „Użyj tych zasad do niczego w tym katalogu. I przez „ten katalog”, który odnosi się do tego,/var/www/path/to/your/web/documents
który ustawiłem w tym przykładzie, ale powinien zostać zmieniony, aby pasował do ścieżki katalogu lokalnego witryny.Następnie w
<Directory></Directory>
obszarze zmieniasz domyślne zachowanie Apache, które domyślnie jest ustawioneAllow
naOrder Deny,Allow
. Następnie zaczynaszDeny from all
od odmowy dostępu wszystkim. Poniżej znajdują sięAllow from
instrukcje, które umożliwiają dostęp z127.0.0.1 ::1
(adres IP hosta lokalnego),localhost
(sam host lokalny ). To wszystko standardowe rzeczy. Ponieważ dostęplocalhost
jest potrzebny do wielu wewnętrznych procesów systemowych.Poniżej znajdują się rzeczy, które są dla Ciebie ważne.
Allow from
Dla192.168
jak również10
pozwoli na dostęp z dowolnego / wszystkie adresy sieciowe w zakresie sieci, która jest poprzedzona przez tych liczb.Wskazując,
192.168
że w zasadzie oznacza to, czy użytkownik ma adres podobny do tego,192.168.59.27
czy192.168.1.123
będzie mógł zobaczyć stronę internetową.I podobnie używając
Allow from
do10
zapewnia prefiksu, że jeśli ktoś ma adres IP10.0.1.2
lub nawet10.90.2.3
będą mogli zobaczyć zawartość.Prawie wszystkie sieci wewnętrzne na świecie używają albo
192.168
zasięgu, albo czegoś w tym10
zasięgu. Nic zewnętrznego. Tak więc użycie tej kombinacji pozwoli osiągnąć cel polegający na zablokowaniu dostępu do świata zewnętrznego, ale pozwoli na dostęp tylko z sieci lokalnej.źródło
Satisfy Any
zrobić w tym przypadku? Nic o tym wszystkim nie wiem, ale kiedy było to obecne w moim scenariuszu, mogłem uzyskać dostęp do strony (z której korzystałem<Location /path>
) z sieci zewnętrznej. Usunięcie go rozwiązało jednak moje problemy. Miło byłoby zrozumieć, dlaczego tak się dzieje, ponieważ obawiano się, że mogę uzyskać dostęp do strony, nawet przy obowiązujących zasadach.Ludzie lądujący w tej odpowiedzi, pamiętaj, że jest to specyficzne dla Apache 2.2.
Apache 2.4 wycofał te dyrektywy.
Nowym sposobem jest użycie modułu
mod_authz_host
iRequire
dyrektyw. ( link )W Apache 2.4 powinieneś to zrobić
i usuń wszystkie dyrektywy zezwalające.
źródło
Dodaj tę sekcję do dyrektywy wirtualnego hosta:
Wymień swój adres IP powyżej. Nie należy tego wykorzystywać do zabezpieczenia na poziomie finansowym, FYI.
źródło
Nie wiem, jak masz konfigurację sieci, jednak zakładam, że spróbuję znaleźć lepszą odpowiedź.
Załóżmy, że masz małe biuro z połączeniem DSL. Miałbyś statyczny publiczny adres IP lub blok adresów przypisany do linii, modem DSL i zaporę ogniową. Bez wchodzenia w szczegóły, jak to się dzieje, przejdę do ważnej części.
Powinieneś używać NAT (translacja adresu sieciowego). Dzięki temu publiczne adresy IP mogą znajdować się po stronie WAN (Internet) sieci i korzystać z prywatnych adresów IP (takich jak 10.0.0.100) w sieci po stronie LAN. Jest to standardowa procedura działania. Jeśli hostujesz serwer sieciowy w swojej sieci, możesz użyć przekierowania portów lub innego podobnego mechanizmu), aby skierować ruch sieciowy na swój serwer WWW.
W tym standardowym scenariuszu wszystkie komputery wewnętrzne będą korzystać z prywatnych adresów IP.
Zakładając, że masz podobną standardową konfigurację sieci, zmienisz adres IP komputera z publicznego adresu IP na prywatny adres IP. Twoja sieć może mieć konfigurację DHCP, w której komputer może zażądać dostępnego adresu IP. Oznacza to, że zamiast określać adres IP, decydujesz się na użycie DHCP, a adres IP zostanie przypisany. Jeśli DHCP nie jest dostępny, należy sprawdzić inne komputery pod kątem prywatnej przestrzeni adresów IP, która może być użyta, i wybrać adres IP w przestrzeni, która nie jest używana. Możesz określić ten nieużywany adres IP w konfiguracji sieci. Powinno to uniemożliwić wyświetlanie twojego systemu w Internecie.
źródło