Nowe posty

Autor Wątek: Reguła dla iptables z przekierowaniem do odpowiedniego pliku [SOLVED]  (Przeczytany 6149 razy)

blazej2

  • Gość
Czy da radę utworzyć regułę, którą dopiszemy do iptables, żeby przekierować wszystkich z sieci 10.0.1.x do pliku *.html, który jest na dysku routera?

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3068
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Reguła dla iptables z przekierowaniem do odpowiedniego pliku [SOLVED]
« Odpowiedź #1 dnia: 2011-02-18, 18:27:13 »
1. Na routerze musi być serwer WWW, powiedzmy że na porcie 81
2. Dopisujesz regułę
iptables -t nat -A PREROUTING -p tcp --dport 80 -s 10.0.1.0/24 -j REDIRECT --to-ports 81
W wyniku tego serwer routera zobaczy oryginalne pole "Host:" i oryginalną ścieżkę do pliku klienta. Pierwsze załatwiasz wirtualnym hostem z regułą "catch-all" (zgłoś się dla każdego hosta) a drugie załatwiasz mod_rewrite.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

blazej2

  • Gość
Reguła dla iptables z przekierowaniem do odpowiedniego pliku [SOLVED]
« Odpowiedź #2 dnia: 2011-02-18, 18:46:38 »
Nigdy nie instalowałem składników do serwer www, czy jest gdzieś instrukcja jak zainstalować serwer www.

blazej2

  • Gość
Reguła dla iptables z przekierowaniem do odpowiedniego pliku [SOLVED]
« Odpowiedź #3 dnia: 2011-02-19, 11:46:29 »
Udało się stworzyć stronę na serwerze. Tylko nie mogę dojść, ja zrobić, żeby była na porcie 81. Strona działa po wpisaniu w przeglądarkę 10.0.1.210 pokazuję mi moją stronę. Ale nie działa mi przekierowanie w iptables na nią. Przesyłam mój iptables:

Cytuj
## ZABLOKOWANIE WSZYSTKIEGO

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# zezwolenie na wymiane pakietow miedzy dynamicznie przydzielonymi portami
echo "INPUT 1"
iptables -A INPUT -p ALL -d $LAN10 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p ALL -d $LANPROXY -m state --state ESTABLISHED,RELATED -j ACCEPT

# zezwolenia na INPUT z SIEC10
echo "INPUT 2"
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -d $LAN10 -p tcp --dport 8080 -j ACCEPT

# strona dla nieplacacych
 echo "STRONA DLA NIEPLACACYCH"
iptables -t nat -A PREROUTING -p tcp --dport 8080 -s $LAN10 -j DNAT --to 10.0.1.210

# ruch na PROXY
echo "ustawiam PROXY"
TCP_OPEN_HTTP="80,443,563,280,488,777,591"
TCP_OPEN_OTHER="21,25,70,110,901,995,210"
iptables -A INPUT -s $LANPROXY -d 0/0 -j ACCEPT
iptables -A INPUT -s 0/0 -d $LANPROXY -j ACCEPT
iptables -A INPUT -d $LANPROXY -p tcp -m multiport --dport $TCP_OPEN_HTTP -j ACCEPT
iptables -A INPUT -d $LANPROXY -p tcp -m multiport --dport $TCP_OPEN_OTHER -j ACCEPT

# zezwolenie na ssh dla wybranych adresow
echo "ustawiam SSH"
iptables -A INPUT -p tcp -s 10.0.1.200 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -s 10.0.1.202 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -s 80.50.9.118 --dport 22 -j ACCEPT


## >>>>>>>>>>> strategia lancucha FORWARD <<<<<<<<<<<<< ##

# udostepnianie polaczenia dla sieci
echo "FORWARD 1"
# iptables -t filter -A FORWARD -s $LAN10 -d 0/0 -j ACCEPT
# iptables -t filter -A FORWARD -s 0/0 -d $LAN10 -j ACCEPT
iptables -t filter -A FORWARD -s 0/0 -d $LANPROXY -j ACCEPT
iptables -t filter -A FORWARD -s $LANPROXY -d 0/0 -j ACCEPT


# akceptowanie portow dozwolonych
echo "FORWARD 2"

# zabronienie wymiany miedzy sieciami LAN
echo "FORWARD 3"
iptables -A FORWARD -s $LAN10 -d $LANPROXY -j DROP
iptables -A FORWARD -d $LAN10 -s $LANPROXY -j DROP

# zezwolenie na wymiane pakietow miedzy zaakceptowanymi polaczeniami
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT


## >>>>>>>>>> strategia lancucha OUTPUT <<<<<<<<<< ##
echo "OUTPUT 3"
# zezwolenie na wymiane pakietow miedzy zaakceptowanymi polaczeniami
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p ALL -s $LAN10 -j ACCEPT
iptables -A OUTPUT -p ALL -s $LANPROXY -j ACCEPT

echo "Koniec ustawien firewalla"

echo " Zakonczylem konfiguracje IPTABLES "

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3068
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Reguła dla iptables z przekierowaniem do odpowiedniego pliku [SOLVED]
« Odpowiedź #4 dnia: 2011-02-19, 12:33:36 »
To może napisz jeszcze raz, spokojnie i w punktach, co chcesz uzyskać. Dodatkowo:
* Jaka jest topologia sieci
* Co (jakie urządzenie+system) jest routerem
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

blazej2

  • Gość
Reguła dla iptables z przekierowaniem do odpowiedniego pliku [SOLVED]
« Odpowiedź #5 dnia: 2011-02-19, 12:47:49 »
Posiadam w sieci router na MT (10.0.1.211) i proxy (10.0.1.210) i x klientów (10.0.1.xxx). Niektórzy klienci mają w ustawieniach przeglądarek zaznaczone proxy 10.0.1.210:8080. Chcę usunąć to proxy z sieci. Zrobiłem stronę html z informacją jak wyłączyć to proxy. Chcę żeby osoby wchodzące do neta z ustawieniami proxy otrzymywało moją stronę z instrukcją. Strona działa. Po wpisaniu w przeglądarkę adresu 10.0.1.210, wyskakuje instrukcja(chciałem zrobić że po wpisaniu 10.0.1.210:81 - ale nie zadziałało)

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3068
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Reguła dla iptables z przekierowaniem do odpowiedniego pliku [SOLVED]
« Odpowiedź #6 dnia: 2011-02-19, 15:03:45 »
No to zmień na
iptables -t nat -A PREROUTING -p tcp [b]-d 10.0.1.210[/b] -s 10.0.1.0/24 --dport [b]8080[/b]  -j REDIRECT --to-ports [b]80[/b]
Co nie zmienia faktu, że w serwerze WWW musisz obsłużyć obcy "Host:" i dowolną ścieżkę URL. Jak - już napisałem.
Nie wiem, co Miktorik ma za serwer HTTP, ale jeżeli jest jakiś megaprzycięty (prawdopodobne), to możesz wykorzystać inetd/xinetd/nc/netcat do zasymulowania serwera HTTP przez zwykły skrypt konsoli (musisz na dowolne zapytanie odpowiedzieć stałym tekstem pomocy).
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3068
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Reguła dla iptables z przekierowaniem do odpowiedniego pliku [SOLVED]
« Odpowiedź #7 dnia: 2011-02-20, 20:33:41 »
Z kolegą Błażejem pogadałem na GG i problem rozwiązany. W skrócie:
Błażej ma sieć, w której jest proxy Squid i niektórzy użytkownicy mają je ustawione w przeglądarkach.
Z jakiś względów Błażej chce zwinąć to proxy, ale tak, żeby klientów nie na głucho odcinać a pokazać komunikat "proxy od dnia XXX nie działa. Aby je wyłączyć w Państwa komputerze należy kliknąć to, to i to"

Rozwiązanie zrobiliśmy takie (dla potomnych):
1. W squidzie zrobiona pojedyncza ACLka http_access deny all. To efektywnie odcina wszystkich z proxy od netu.
2. Przeedytowana została strona błędu ERR_ACCESS_DENIED ze standardowej na wyjaśniającą jak wyłączyć proxy.
Był problem, że squid może zaserwować tylko jedną stronę a Błażej chciał osadzić obrazkowy tutorial. Zaproponowałem 2 rozwiązania, nie wiem które wybrał:
1. Osadzić obrazki bezpośrednio w kodzie strony według tej dokumentacji. Stronka do konwersji obrazka na blok DATA jest dostępna tutaj, ale standardowo generuje dane w formacie URLencode, co nie jest wymagane przez standard, a niepotrzebnie trzykrotnie rozdmuchuje dane. Aby poprawnie zakodować, zaznaczyć u góry strony "base64"
2. Zainstalować (Błażej właściwie już miał zainstalowany) serwer HTTP i same obrazki serwować z niego.

Tą metodą nie trzeba nic dłubać w iptables, zmuszać Apache do obbługi zapytań proxy, itp. Czysto i schludnie, wykorzystując mechanizmy wbudowane w Squid.

Jeżeli Błażej nie zgłasza sprzeciwu, oznaczam wątek jako SOLVED.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy