Skocz do zawartości

Mam Taka Linijke W Skrypcie Do Firewalla : "iptables -t -nat -a Prerouting -e Eth0 -s ! 192.168.5.36 -p Tcp --dport 80 -j Redirect --to-port 8080"


rudi22

Rekomendowane odpowiedzi

Ogólnie serwer Fedora 6.0, na niej usługa Squid. Serwer obługuje sieć lan o adresie 192.168.5.0/24.

 

Chciałbym aby cały ruch www w tej sieci przechodził przez tego Squid'a(transparent), oprócz kilku ip'ków. Ipiki te nie są po kolei czyli np. 192.168.5.2, 192.168.5.36, 192.168.5.47.

 

Mam taka linijke w skrypcie do firewalla :

 

"iptables -t -nat -A PREROUTING -i eth0 -s ! 192.168.5.36 -p tcp --dport 80 -j REDIRECT --to-port 8080"

 

Przekierowuje ona ruch www wszystkich kompow w sieci oprocz 192.168.5.36 na port 8080 na którym nasłuchuje Squid.

 

Jak dopisać te pozostałe 2 ip'ki do tej reguły zeby one omijały Squid'a???? Alebo moze jak zrobić to inaczej.

 

Wiem ze mozna podać zakres ip ale to mi nic nie da bo ip sa nie po kolei.

 

Pozdr.

Odnośnik do komentarza
Udostępnij na innych stronach

A jakby tak:

iptables -t -nat -A PREROUTING -i eth0 -s 192.168.5.36 -p tcp --dport 80 -j ACCEPT
iptables -t -nat -A PREROUTING -i eth0 -s 192.168.5.xxx -p tcp --dport 80 -j ACCEPT
iptables -t -nat -A PREROUTING -i eth0 -s 192.168.5.yyy -p tcp --dport 80 -j ACCEPT
iptables -t -nat -A PREROUTING -i eth0 -s 0/0 -p tcp --dport 80 -j REDIRECT --to-port 8080

Nie wiem czy to zadziała, ale ogólna myśl chyba oczywista. Wypuszczamy wszystkie, które mają omijać proxy a pozostałe przekierowujemy na 8080.

 

[EDIT]Tak mi się jeszcze przypomniało: czy tego nie da się jakoś poprzez ACL w Squidzie zrobić?

Odnośnik do komentarza
Udostępnij na innych stronach

Ok działa:) Tylko wkradla sie literowka nie ma byc -nat tylko nat.

 

A moze ktoś wie jak zapisac to:

 

iptables -t -nat -A PREROUTING -i eth0 -s 192.168.5.36 -p tcp --dport 80 -j ACCEPT
iptables -t -nat -A PREROUTING -i eth0 -s 192.168.5.xxx -p tcp --dport 80 -j ACCEPT
iptables -t -nat -A PREROUTING -i eth0 -s 192.168.5.yyy -p tcp --dport 80 -j ACCEPT

 

w jednej linii bo po co pisać to 20 razy jak sie ma 20 komputerów z adresami nie pokolei. Wiem ze mozna dać zakres przez dodanie maski ale w tym sek ze te kompy maja adresy nie pokolei.

 

ACL jak piszesz chyba sie nie da bo

 

iptables -t -nat -A PREROUTING -i eth0 -s 0/0 -p tcp --dport 80 -j REDIRECT --to-port 8080

 

redirectuje cala siec 0/0 na port 8080. Więc w stworze acl z ip'kami które maja przechodzic przez squida a wtedy co z reszta sieci która (nie jest wymieniona w acl) i tak bedzie przekierowana na port 8080.

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

W iptables się _chyba_ nie da tego zrobić, byś musiał zrobić z tego skrypt i dodać coś takiego:

NOROUTE="192.168.5.36 192.168.5.37 192.168.5.38"
for ip in $NOROUTE
do
    iptables -t -nat -A PREROUTING -i eth0 -s $ip -p tcp --dport 80 -j ACCEPT
done

 

Wtedy teoretycznie wytstarczy dodać adresy do puli NOROUTE. Ale w praktyce tego nie testowałem więc też nie wiem jak to wyjdzie :-)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...