Wizytówka sieci, strona informacyjna

Konfiguracja serwerów, usług, itp.
ksysinek
Beginner
Posty: 155
Rejestracja: 14 czerwca 2007, 00:33
Lokalizacja: *Miasto know-how

Wizytówka sieci, strona informacyjna

Post autor: ksysinek »

Witam.
Mam ruter na Debianie obsługujący niewielką sieć. Dostęp do Internetu mają tylko zarejestrowani użytkownicy. Dostają oni ode mnie adresy z puli 192.168.0.0/24. Pozostałym komputerom DHCP przydziela adresy 192.168.1.0/24. Chciałbym, aby ktoś nieznajomy z adresem 192.168.1.X po wpisaniu dowolnego adresu URL otrzymywał stronę WWW z komunikatem. Skonfigurowałem w tym celu Apache tak, aby nasłuchiwał dodatkowo na porcie 85 i umieściłem tam plik HTML z komunikatem. Do iptables dodałem następujące regułki:

Kod: Zaznacz cały

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -s 192.168.1.0/24 -j REDIRECT --to-port 85
iptables -A INPUT -i eth1 -s 192.168.1.0/24 -p udp --dport 53 -j ACCEPT
Wszystko jest w porządku, gdy w przeglądarkę wpiszę adres:

Kod: Zaznacz cały

192.168.2.100
lub:

Kod: Zaznacz cały

212.77.100.101
(wp.pl).
Po wpisaniu nazwy hosta przeglądarce FireFox nie udaje się nawiązać połączenia, a poleceniem

Kod: Zaznacz cały

nslookup
na Windowsie nie mogę rozwiązać żadnej nazwy hosta. Wygląda na to, że nie mam połączenia z DNS-em, a przecież drugą regułką w iptables te połączenia zaakceptowałem. Czy coś robię źle?
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

Klienci korzystaja z Twojego serwera DNS?
ksysinek
Beginner
Posty: 155
Rejestracja: 14 czerwca 2007, 00:33
Lokalizacja: *Miasto know-how

Post autor: ksysinek »

Nie, serwer jest na zewnątrz sieci.
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

Kod: Zaznacz cały

iptables -A INPUT -i eth1 -s 192.168.1.0/24 -p udp --dport 53 -j ACCEPT
To to powinno chyba do tablicy FORWARD wpadać.
ksysinek
Beginner
Posty: 155
Rejestracja: 14 czerwca 2007, 00:33
Lokalizacja: *Miasto know-how

Post autor: ksysinek »

Wrzuciłem teraz takie regułki i wciąż nie ma połączenia z DNSem:

Kod: Zaznacz cały

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -s 192.168.1.0/24 -j REDIRECT --to-port 81
iptables -A FORWARD -i eth1 -s 192.168.1.0/24 -p udp --dport 53 -j ACCEPT
mariaczi
Member
Posty: 1343
Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie

Post autor: mariaczi »

ksysinek pisze:

Kod: Zaznacz cały

iptables -A FORWARD -i eth1 -s 192.168.1.0/24 -p udp --dport 53 -j ACCEPT
A co z odpowiedzią od DNSa? Masz regułę, która je akceptuje?
ksysinek
Beginner
Posty: 155
Rejestracja: 14 czerwca 2007, 00:33
Lokalizacja: *Miasto know-how

Post autor: ksysinek »

Sądziłem, że te dwie wystarczą. Jak taka regułka powinna wyglądać? Przepraszam ale jeśli chodzi o iptables to jestem zielony.
mariaczi
Member
Posty: 1343
Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie

Post autor: mariaczi »

Kod: Zaznacz cały

iptables -A FORWARD -o eth1 -d 192.168.1.0/24 -p udp --sport 53 -j ACCEPT
ksysinek
Beginner
Posty: 155
Rejestracja: 14 czerwca 2007, 00:33
Lokalizacja: *Miasto know-how

Post autor: ksysinek »

Chyba popełniłem błąd w założeniach, bo DNS owszem działa na 53 porcie ale wykorzytsuje go do transferu stref. Z klientami komunikuje się na porcie 67 i 68. Takwięc poprawiłem swoje regułki, że wyglądają one w tej chwili tak:

Kod: Zaznacz cały

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -s 192.168.1.0/24 -j REDIRECT --to-port 81
iptables -A FORWARD -i eth1 -s 192.168.1.0/24 -p udp --dport 67 -j ACCEPT
iptables -A FORWARD -o eth1 -d 192.168.1.0/24 -p udp --sport 67 -j ACCEPT
iptables -A FORWARD -i eth1 -s 192.168.1.0/24 -p udp --dport 68 -j ACCEPT
iptables -A FORWARD -o eth1 -d 192.168.1.0/24 -p udp --sport 68 -j ACCEPT
Jednak nadal nie działa. Zastanawiam się nad innym rozwiązaniem. Wszystkich nieznajomych skierowac na port 80 oraz umozliwić im komunikacje z jednym IP (DNS). Przykładowo, że mój serwer DNS ma IP 80.40.14.50. Jak wtedy powinny wyglądać regułki?
stepien86
Posty: 35
Rejestracja: 02 kwietnia 2007, 11:48

Post autor: stepien86 »

Spróbuj ustawić:

Kod: Zaznacz cały

 
iptables -A PREROUTING -t nat -s 192.168.1.0/24 -p tcp --dport 1:65535 -j DNAT --to-destination 192.168.1.1:8081  
192.168.1.1:8081 adres serwera i port, na którym działa apache z komunikatem.
ODPOWIEDZ