(Apache, 2 porty nasłuchujące, VirtualHost, Firewall)
Spis treści:
Kod: |
1. Wycinek rzeczywistości 2. Cel i założenia 3. Konfiguracja serwera www (Apache) a. Publikacja strony informacyjnej b. Edycja pliku /etc/apache/httpd.conf c. Weryfikacja nowej konfiguracji, restart serwera www 4. Konfiguracja reguł firewalla (Iptables) 5. Informacje końcowe |
1. Wycinek rzeczywistości
Istnieje amatorska sieć lokalna (LAN), w której skład wchodzi:
- kilkanaście stacji roboczych (użytkowników)
- serwer, pełniący rolę: routera, bramy, firewalla, serwera www (Apache 1.3.33)
- stałe łącze z 1 publicznym adresem (wykonywana translacja adresów NAT)
Serwer www oferuje:
- stronę publiczną dostępną z Internetu
- forum sieciowe dostępne tylko z sieci LAN
Administrator sieci zbiera co miesiąc opłatę abonamentową od każdego użytkownika. Jeśli w wyznaczonym terminie nie otrzyma od kogoś wpłaty, blokuje mu dostęp do Internetu.
2. Cel i założenia
Należy tak skonfigurować serwer www, aby zablokowani użytkownicy podczas próby skorzystania z Internetu (np.: wejścia na jakąś stronę www) byli automatycznie przekierowywani/odsyłani na specjalnie przygotowaną stronę, informującą o blokadzie i konieczności uiszczenia zaległej opłaty.
Dodatkowo pozostała funkcjonalność serwera www powinna zostać zachowana tj. dostęp do strony publicznej z zewnątrz jak również dostęp do forum dla użytkowników sieci (w tym tych z zablokowanym Internetem)
Zakładamy, że serwer www jak i regułki firewalla (wpuszcza ruch www z zewnątrz tylko na port 80) są skonfigurowane zgodnie z wycinkiem rzeczywistości. Nie będą tu opisywane szczegóły instalacji powyższej konfiguracji.
Adres ip serwera (od strony LAN): 192.168.0.1
3. Konfiguracja serwera www (Apache)
Właściwa rekonfiguracja serwera www polega na
- zmuszeniu go do nasłuchiwania na dwóch portach (standardowym 80 i zarezerwowanym dla strony informacyjnej 200 - może być inny)
- konfiguracji VirtualHostów dla poszczególnych instancji serwera www od strony sieci LAN
- oraz przygotowaniu odpowiedniej strony informacyjnej
a. Publikacja strony informacyjnej
Tworzymy katalog /var/www/htdocs/blokada (może być dowolny inny). Wgrywamy do niego przygotowaną wcześniej stronę informacyjną (html,php - w zależności od preferencji). Sprawdzamy uprawienia nowego katalogu - wszsycy powinni mieć prawa do odczytu.
b. Edycja pliku /etc/apache/httpd.conf
Dowolnym edytorem modyfikuemy plik /etc/apache/httpd.conf. W sekcji Section 3: VirtualHost dodajemy następujący wpis:
Kod: |
# Serwer www nasłuchuje na porcie 80 Listen 80 # Serwer www nasłuchuje na porcie 200 Listen 200 # Deklaracja instancji (VirtualHosta) serwera www od strony LAN na porcie 80 NameVirtualHost 192.168.0.1:80 # Deklaracja instancji (VirtualHosta) serwera www od strony LAN na porcie 200 NameVirtualHost 192.168.0.1:200 # Ustawienia dla pierwszej instancji # Nazwa nowego wirtualnego serwera ServerName serwer.domenalan.pl # Ścieżka do strony z forum sieci LAN (lub inna wykorzystywana) DocumentRoot /var/www/htdocs/forum/ # Ustawienia dla drugiej instancji # Nazwa nowego wirtualnego serwera ServerName blokada.domenalan.pl # Ścieżka do strony informującej o blokadzie (lub inna wykorzystywana) DocumentRoot /var/www/htdocs/blokada/ |
Zapisujemy zmiany w pliku.
c. Weryfikacja nowej konfiguracji, restart serwera www
Sprawdzenia poprawności nowego pliku konfiguracyjnego dokonujemy poleceniem
# apachectl configtest
efektem powinien byc następujący komunikat
Kod: |
Syntax OK |
Następnie restartujemy serwer www poleceniem
# /etc/rc.d/httpd restart lub # apachectl restart z wynikiem
Kod: |
/usr/sbin/apachectl restart: httpd restarted |
Po czym sprawdzamy, czy serwer nasłuchuje na odpowiednich portach
# netstat -len
Powinniśmy ujrzeć m.in. następujące wpisy
Kod: |
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State User Inode ... tcp 0 0 0.0.0.0:200 0.0.0.0:* LISTEN 0 51141 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 0 51142 ... |
4. Konfiguracja reguł firewalla (Iptables)
Zmiany w skrypcie firewalla sprowadzają się do dodania jednej regułki (powielanej dla każdego blokowanego użytkownika-IP).
Kod: |
$IPT -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.0.10 -d ! 192.168.0.1 --dport 80 -j DNAT --to-destination 192.168.0.1:200 |
Ma ona na celu przekierowanie wychodzących z zablokowanego adresu lokalnego (192.168.0.10) połączeń WWW (do Internetu --dport 80) na stronę informującą o blokadzie (dodaktowa instancja serwera www). Wpis -d ! 192.168.0.1 --dport 80 zapobiega zablokowaniu dostępu do forum sieci LAN, które pracuje w VirtualHoście lokalnym na porcie 80, a do którego zablokowani użytkownicy powinni mieć dostęp.
Oczywiście regułka powinna wspołistnieć z innymi, odpowiedzialnymi za blokadę połączenia z Internetem.
5. Informacje końcowe
Powyższe rozwiąznie często realizowane jest przy użyciu dodatkowych, nasłuchująych, małych serwerów www, jak np.: miniserv. Jednak, mając już zainstalowany dedykowany serwer www (najczęściej Apache) to warto skorzystać właśnie z niego i nie instalować nadmiarowego oprogramowania.
Brak komentarzy:
Prześlij komentarz