[Linux] Re: iptables ve squid

---------

New Message Reply About this list Date view Thread view Subject view Author view

From: Serdar KÖYLÜ (serdarkoylu@fisek.com.tr)
Date: Mon 01 Jul 2002 - 12:18:34 EEST


Selamlar..

On Sun, 30 Jun 2002 21:55:10 +0300
AHMET PEHLİVAN <aplinux@dominant.com.tr> wrote:

>
> Merhaba;
>
> iptable ile inputu tum kullanıcılara kapatıp. Squid proxy calıstırmak
> istiyorum. Input drop yapınca squid calısmıyor. Neler yapamam gerek. Scrip
> asagıdai gibi. Fikri olan arkadaslardan yardım bekliyorum.
........
> /sbin/iptables -t nat -A POSTROUTING -j MASQUERADE

Cikan her paketi masquerade etmeyin. Gereksiz CPU yuku ve port israfina neden olur.

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

seklinde (192.168.0.0/24 yerel aginiz) sadece gereken paketleri masquerade edin.

> /sbin/iptables -A INPUT -p tcp --dport 53 -j ACCEPT
> /sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
> /sbin/iptables -A INPUT -p tcp --dport 3128 -j ACCEPT
> /sbin/iptables -A INPUT -j DROP

Tipik bir Transparent Proxy sisteminde paket akisi soyle olur:
S = Source, D = Dest. LOC = LOCAL IP, LP* = LOCAL PORTLAR (1025...)

(CLIENT - S=Y:LP1 D=X:80) -> PREROUTING TABLE -> (S=Y:LP1 D=LOC:3128) -> ROUTING PROCESS -> INPUT TABLE -> SQUID

Bu sekilde paket SQUID'e ulasir. SQUID kendisi bir LOCAL port uzerinden gercek web servere baglanmak ister:

SQUID -> (S=LOC:LP2 D=X:80) -> OUTPUT TABLE -> ROUTER PROCESS -> POSTROUTING -> INET Interface..

Bu paket hedefe ulasir. Oradan cevap gelir:

WEBSRV -> (S=X:80 D=LOC:LP2) -> INTERNET -> PREROUTING -> ROUTER PROCESS -> INPUT -> SQUID..

Sizin tariflerde, en bastaki transparency icin gerekli olan PREROUTING TABLE deki D. IP degistirme olayi yok. Demekki istemciler dogrudan proxy'ye baglaniyor. Standart PROXY baglantisi ise su sekilde yapilir:

(CLIENT - S=LOC:LP1 D=SQUID_IP:3128) -> PREROUTING TABLE -> ROUTING PROCESS -> INPUT TABLE -> SQUID

Bu sekilde paket SQUID'e ulasir. SQUID kendisi bir LOCAL port uzerinden gercek web servere baglanmak ister:

SQUID -> (S=LOC:LP2 D=X:80) -> OUTPUT TABLE -> ROUTER PROCESS -> POSTROUTING -> INET Interface..

Bu paket hedefe ulasir. Oradan cevap gelir:

WEBSRV -> (S=X:80 D=LOC:LP2) -> INTERNET -> PREROUTING -> ROUTER PROCESS -> INPUT -> SQUID..

Goruldugu uzere islemler arasinda pek bir fark yok. SQUID gelen bilgiye baktiktan sonra, cache'e ekler vs. isini yapar ve istemciye yollar.

Puf noktasi, SQUID'in kendisinin local bir port kullanarak orijinal web serverden veri istemesi. O web serverden donen paketin DESTINATION PORT'u, Squid'in acmis oldugu yerel port olacaktir. Sizin sadece 53, 80 ve 3128'e gelen (--dport) paketleri kabul ediyor olmaniz nedeniyle, squid'e geri donen paketler DROP edilmekte, squid webten data alamamakta. Cozum olarak DROP satirini su sekle getirebiliriz saniyorum:

iptables -A INPUT -p tcp --syn -j DROP

Bu durumda, bize yeni bir baglanti kurmak isteyen paketler DROP olacaktir. Bizim onceden kurdugumuz baglanti uzerinden geri donecek olan veriler ise yoluna devam edecektir. Sanirim bu sorununuzu cozecektir.

Diger yandan tum UDP paketleri elini kolunu sallayarak gecip gidiyor. Buna da bir cozum bulmaniz faydali olabilir..

Saygi ve sevgiler..
-----------------------------------------------------------------------
Liste üyeliğiniz ile ilgili her türlü işlem için
http://liste.linux.org.tr adresindeki web arayüzünü kullanabilirsiniz.

Listeden çıkmak için: 'linux-request@linux.org.tr' adresine,
"Konu" kısmında "unsubscribe" yazan bir e-posta gönderiniz.
-----------------------------------------------------------------------


New Message Reply About this list Date view Thread view Subject view Author view

---------

Bu arsiv hypermail 2b29 tarafindan uretilmistir.