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.

IPTABLES

iptables allowing with mac address
Allow port 22 for mac address 00:0F:EA:91:04:07

iptables -A INPUT -p tcp --destination-port 22 -m mac --mac-source
00:0F:EA:91:04:07 -j ACCEPT
 
iptables blocking with mac address
Drop all connection coming from mac address 00:0F:EA:91:04:08 (add command to your firewall script)
iptables -A INPUT -m mac --mac-source 00:0F:EA:91:04:08 -j DROP
 

blokady p2p dla caÂłej sieci w godzinach od 17 do 22

iptables -t mangle -A PREROUTING -m time --timestart 17:00 --timestop 22:00  -m ipp2p --ipp2p -j DROP
blokada p2p dla konkretnego ip w godzinach 17 do 22

iptables -I FORWARD -s 192.168.0.11 -m time --timestart 17:00 --timestop 22:00 -m ipp2p --ipp2p -j DROP
blokada p2p dla konkretnego ip

iptables -I FORWARD -s 192.168.0.11 -m ipp2p --ipp2p -j DROP
proxy dla caÂłej sieci na porcie 3128

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
przekierowanie portu 4657 dla ip 192.168.0.11 (np dla p2p)

iptables -I FORWARD -p tcp -d 192.168.0.11 --dport 4657 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 4657 -j DNAT --to 192.168.0.11

blokada adresu mac

iptables -A INPUT -m mac --mac-source 00:00:00:00:00:01 -j DROP
iptables -A FORWARD -m mac --mac-source 00:00:00:00:00:01 -j DROP

ograniczenie ilo�ci po³šczeù do 70

iptables -A FORWARD -p tcp -m connlimit --connlimt-above 70 --connlimit-mask 32 -j DROP
blokada okreslonych portow (przykÂładowo od 600 do 800) dla okreslonego ip 192.168.0.11

iptables -I FORWARD -s 192.168.0.11 -p tcp --dport 600:800 -j DROP
iptables -I FORWARD -s 192.168.0.11 -p udp --dport 600:800 -j DROP

blokada adresu ip

iptables -A INPUT -s 192.168.0.11 -j DROP
iptables -A FORWARD -s 192.168.0.11 -j DROP
iptables -A INPUT -d 192.168.0.11 -j DROP
iptables -A FORWARD -d 192.168.0.11 -j DROP

blokada "podudostĂŞpniania" internetu (TTL) dla konkretnego ip

iptables -t mangle -A POSTROUTING -d 192.168.0.11 -j TTL --ttl-set 1
blokada "podudostĂŞpniania" internetu (TTL) dla caÂłej sieci

iptables -t mangle -A POSTROUTING -o eth1 -j TTL --ttl-set 1
otwarcie portu 123 na interfejsie eth0 (zewnetrzny interfejs)

iptables -A INPUT -p tcp -i eth0 --dport 123 -j ACCEPT
Blokada wysyÂłania poczty na porcie 25 dla konkretnego usera:

iptables -I FORWARD -p tcp --dport 25 -s 192.68.1.17 -j DROP
przekierowanie wszystkich portow na wirtualny serwer www BLOKADA

iptables -A PREROUTING -t nat -s 192.168.1.12 -p tcp --dport 1:65535 -j DNAT --to- 192.168.1.1:83
przekierowanie wszystkich portow na wirtualny serwer www ODBLOKOWANIE

iptables -D PREROUTING -t nat -s 192.168.1.12 -p tcp --dport 1:65535 -j DNAT --to- 192.168.1.1:83


http://iptables.sarnaki.net/

Rsync

Ja kiedyś miałem podobne zagadnienie i zrobiłem to (lamersko ale szybko). Przed wyłączeniem komputera (WindowsXP) robił się backup katalogów na serwer.
Komputer z Win.
1. posłużyłem się cygwinem (taką lekką wersja - nie instalowaną)
w katalogu c:\cygwin\bin znajdują się tylko
Kod:

bzip2.exe bzip2recover.exe cat.exe cmp.exe compare.exe cp.exe cygbz2-1.dll cygiconv-2.dll cygintl-2.dll cygintl-3.dll cygintl-8.dll cygminires.dll cygncurses-8.dll cygpcre-0.dll cygpopt-0.dll cygwin1.dll cygz.dll find.exe gpg.exe grep.exe gzip.exe ln.exe ls.exe more.exe mv.exe nice.exe rm.exe rsync.exe sed.exe tar.exe touch.exe tr.exe unzip.exe zip.exe

2. Do scieżek PATH jest dodany katalog c:\cygwin\bin
3. Dane kopiowane są na serwer (Zmapowany dysk Z:)
4. Podczas wyłączania komputera uruchamia się skrypt backup.bat (może być też w autostarcie czy na żądanie (klik w ikonkę))
Kod:
date /T >> Z:\arch\log.txt
time /T >> Z:\arch\log.txt
rsync -vcrtzb --delete --backup-dir=/cygdrive/Z/Arch/OLD /cygdrive/c/dane /cygdrive/z/Arch >> Z:\arch\log.txt
cd z:\Arch\OLD
gzip -9fr ./*


Dzięki rsync kolejne backupy są tyko przyrostowe i bardzo szybkie. W tym skrypcie pliki które znikają z folderu na komputerze klienta znikają też z folderu docelowego i są przenoszone do katalog arch/old na serwerze i pakowane gzipem, gzip pakuje tylko te jeszcze niespakowane - więc też działa to szybko. Używam tego w domowej sieci gdzie chodzi po prostu o backup danych (i nie ma ich dużo), pomijana jest też kwestia zabezpieczeń i autoryzacji do dysku na serwerze (po prostu klient ma pełny dostęp). No i oczywiście całą robotę odwala komputer klienta. Ogólnie działa bardzo szybko.

Screen - Linux (sesje w tle)

Rozumiem że chcesz zostawić sesje w tle?

Kod:
screen mplayer
normalnie go używasz, jak zawsze. Aby przejść w tło (detach), należy wcisnąć kombinację klawiszy:
Kod:
Ctrl+A+D
Aby powrócić do zostawionej sesji, piszemy:
Kod:
screen -r
...ewentualnie, gdy sesja na zdalnej maszynie nie została zamknięta:
Kod:
screen -rD
...lub w przypadku niepowodzenia:
Kod:
screen -x

Linux - stronki

http://freshmeat.net/

http://www.nnd-linux.pl/faq.php#53

Dodawanie zakładki uprawnienia <- win XP HomeEdition

http://forum.dobreprogramy.pl/windows-home-odblokowanie-zakladki-zabezpieczenia-t34959.html

http://www.banita.pl/~pysiu/porady/index5.html

http://www.banita.pl/~pysiu/porady/index6.html

http://banita.pl/~pysiu/porady/index1.html

LinkWithin-4

Related Posts Plugin for WordPress, Blogger...