Przekierowanie zablokowanych hostów na stronę informacyjną

Przekierowanie zablokowanych hostów na stronę informacyjną
(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

LinkWithin-4

Related Posts Plugin for WordPress, Blogger...