Strona 1 z 1

Wizytówka sieci, strona informacyjna

: 29 września 2011, 15:30
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?

: 29 września 2011, 15:55
autor: Bastian
Klienci korzystaja z Twojego serwera DNS?

: 29 września 2011, 22:46
autor: ksysinek
Nie, serwer jest na zewnątrz sieci.

: 30 września 2011, 12:33
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ć.

: 28 października 2011, 09:30
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

: 28 października 2011, 15:36
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?

: 28 października 2011, 15:39
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.

: 28 października 2011, 15:47
autor: mariaczi

Kod: Zaznacz cały

iptables -A FORWARD -o eth1 -d 192.168.1.0/24 -p udp --sport 53 -j ACCEPT

: 03 listopada 2011, 13:28
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?

: 08 stycznia 2012, 00:12
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.