Ana Sayfa » *nix » Squid ve IPFIREWALL ile Transparan Proxy Kurulumu

Squid ve IPFIREWALL ile Transparan Proxy Kurulumu


BerbatKötüİdare EderGüzelHarika (Toplam 8 oy. 5 puan üzerinden ortalama 4,75 || Oy vererek siz de katkıda bulunabilirsiniz.)
Loading...
Bilindiği gibi squid web sayfalarının birer kopyasının kendisine alarak cache'ler ve bu şekilde daha önceden cachelenmiş herhangi bir web sayfası bir kullanıcı tarafından ikinci bir defa görüntülenmek istendiği zaman sonuçlar kullanıcıya squid'den döndürülür. Bu şekilde ilgili web sitelerine erişim hızlanmış olacağı gibi trafiğini de belli bir oranda azaltmış olursunuz. Ancak squid'in kullanım alanı bunla sınırlı değildir, squid kullanarak belli domain name'lere, dosya tiplerini, ip adreslerine erişimi de engelleyebilirsiniz. Hatta regex desteği ile içerisinde belli kelimelerin geçtiği alan adlarına ya da dosya tiplerine erişimin engellenmesi gibi işlemleri gerçekleştirebilirsiniz.

Ben normalde yasaklama konularından pek hazzetmeyen biri olsam da bazen bir okul, hastane vs. gibi kuruluşların networklerinde bir erişim mekanizmasına ihtiyaç duyulması pek doğal. İşte böyle bir kurum için bir adet proxy sunucusu gerekti ve ben de çok uzun bir aradan sonra bir squid kurulumu yaptım. Bu yazıda ilgili kurulama ait notları bulabilirsiniz.

Bu yazıda transparent olarak adlandırılan ve kullanıcı tarafında herhangi bir ayar yapmaya gerek kalmaksızın http trafiğinin squid'e yönlendirilmesi sureti yapılan şeffaf proxy uygulaması anlatılacağı için trafik yönlendirme işlemi için bir adet firewall'a gereksinim bulunuyor. Aksi taktirde networkteki kullanıcıları proxy'e yönlendirmek için client bilgisayarlara kurulu olan web browserlarda proxy ayarı yapılması gerekir. Bazı yerlerde bu ayarlar -windows domain ortamı bulunması durumunda- Group Policy Object üzerinden kullanıcıların web browser ayarları düzenlenerek yapılıyor ya da domain ortamı olmaması durumunda client bilgisayarlarda tek tek ayar yapmak vs. gibi ilkel bir yol izleniyor. Her iki durumda da kullanucıların proxy ayarlarını değiştirebilmeleri söz konusu olduğundan dolayı böyle bir uygulama yapmak için kullanıcılara hiç bir şey hissettirmeden http trafiklerini proxy'e yönlendirecek bir yapı kurmak en iyi yoldur. İşte bu yönlendirme işini kullanarak yapacağız.

Ben kuruluma sıfırdan bir kurulumu yaparak başladım ve squid'i de aynı sunucu üzerinde çalıştırdım.

Önce Squid'ten başlayalım.

KURULUM


FreeBSD üzerine squid kurulumu yapmak için en iyi yol, FreeBSD ports collection'u kullanmaktır. Eğer sisteminizde ports collection yüklü değil ya da edilmemişse öncelikle kurmanız ya d etmeniz gerekiyor. Bu işi portsnap kullanarak yapabilirsiniz: http://www.syslogs.org/2008/06/using-portsnap/

Sistemde ports yüklü ve durumdaysa, squid'i /usr/ports/www/squid dizininden kurabilirsiniz. Aşağıdaki gibi dizine geçin ve kurulumu yapın.

# cd /usr/ports/www/squid/
# make install clean

make install komutunu verdiğiniz zaman karşınıza Squid'in destekleyeceği özellikleri belirleyeceğiniz klasik options ekranı gelecektir. Bu kısımla ilgili uzun uzadıya yapılandırma seçeneklerinden, bahsetmeyeceğim; direk ok diyerek default kurulum işimizi görecektir.

Squid sorunsuz olarak kurulduysa, ayarlar ile illgili bölüme geçebiliriz.

YAPILANDIRMA


Squid'e ait yapılandırma dosyaları, /usr/local/etc/squid dizini altına bulunmaktadır. Bu dizinin içerisinde ana yapılandırma dosyası olan squid.conf ‘un yanı sıra authentication ve cachemanager ile ilgili yapılandırma dosyaları bulunmaktadır. Ancak ben proxy'e erişim durumlarını IPFW üzerinden kontrol altına aldığım için authentication ile ilgili herhangi bir ayar yapmadım.

Şimdi, squid'i, conf dosyasını editleyerek temel konfigurasyonu oluşturalım.

/usr/local/etc/squid/ dizininin altına bulunan bu dosyayı editlediğiniz zaman comment out edilmiş bir çok açıklama ve yapılandırma satırı göreceksiniz. Temel bir kurulum yapacağımız için açıklama kısımlarına takılmadan yapılandırma dosyasında ön tanımlı olarak bulunan yapılandırma satırları açıklama satırlarından temizleyerek daha okunaklı bir hale getirelim. Aşağıdaki ile ilgili dosya içerisindeki comment out edilmemiş satırları bulup ekrana yazdırabilirsiniz.

# cat /usr/local/etc/squid/squid.conf-org | sed '/ *#/d; /^ *$/d'

Bu komutun çıktısı squid 2.7 STABLE kurulumunda aşağıdaki gibidir.

acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access deny all
icp_access allow localnet
icp_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
access_log /usr/local/squid/logs/access.log squid
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|?) 0     0%      0
refresh_pattern .               0       20%     4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICYs[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
coredump_dir /usr/local/squid/cache

Squid'in ön tanımlı olarak gelen ve ayarları bu şekildedir. Şimdi dosya içerisinde kendi networkümüze göre bir düzenleme yapalım. Ama önce orjinal dosyanın bir yedeğini alarak içerisini boşaltın:

# cd /usr/local/etc/squid
# cp squid.conf squid.conf-orj
# > squid.conf

Yukarıdaki adımları takip ederek squid.conf dosyasını squid.conf-orj olarak yedekledikten ve içeriğini boşalttıktan elinizdeki boş squid.conf dosyasına aşağıdaki satırları yapıştırın.

acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl all src all
acl localnet src 192.168.25.0/24
acl yasakli_domainler dstdomain "/usr/local/etc/squid/yasakli_domainler.acl"
acl yasakli_dosyaturleri urlpath_regex -i "/usr/local/etc/squid/yasakli_dosyaturleri.acl"
acl reklam url_regex "/usr/local/etc/squid/reklamlar.acl"
acl yasakli_subnetler dst "/usr/local/etc/squid/yasakli_subnetler.acl"
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny yasakli_domainler
http_access deny yasakli_dosyaturleri
http_access deny yasakli_subnetler
http_access deny reklam
http_access allow localnet
icp_access deny all
http_port 3128 transparent
hierarchy_stoplist cgi-bin ?
access_log /usr/local/squid/logs/access.log squid
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern (cgi-bin|?)    0       0%      0
refresh_pattern .               0       20%     4320
icp_port 0
coredump_dir /usr/local/squid/cache
error_directory /usr/local/etc/squid/errors/Turkish

Gördüğünüz gibi default yapılandırmada sadece küçük değişiklikler yapmış olduk; halihazırda varolan ve sonradan izim eklediğimiz satırlarla ilgili açıklamalar şöyle;

acl localnet src 192.168.25.0/24 : Bu satırda local networkün subneti belirleniyor. Kendi ip networkünüzü buraya yazmalısınız.

icp_access deny all : ICP protokolu civardaki diğer squid'lerle cachelenmiş datalar için alışverişte bulunmak üzere kullanılıyor. Ancak bizim sadece bir proxy sunucumuz olduğundan ve başka proxy'lerle irtibat kurmayacağımız için ICP isteklerini deny ediyoruz.

http_port 3128 transparent : Bu kısımda da proxy'e tcp 3128. porttan şeffaf olarak çalışmasını söylemiş oluyoruz.

icp_port 0 : ICP istekleri kabul etmeyeceğimize göre herhangi bir port dinlemeye gerek yok.

error_directory /usr/local/etc/squid/errors/Turkish : Erişimi engellenmiş materyallere erişim olması durumunda hata mesajlarının Türkçe olarak döndürülmesi için bu Türkçe error sayfalarını barındıran dizini gösteriyoruz. (Squid 3'de bu özelliğin yerine kullanıcının dil ayarlarına göre otomatik olarak o dile ait hata bildirimleri gösteriliyormuş .)

Bu temel ayarlardan sonra conf dosyasını kaydedip kapatın. Şimdi yasaklamalarla ilgili yapılacak ayarlara değinelim.

DOMAIN ENGELLEME

squid.conf dosyasının içerisinde geçen acl yasakli_domainler dstdomain “/usr/local/etc/squid/yasakli_domainler.acl” satırında belirtilen dosyayı oluşturup içerisine erişimin engellenmesini istediğiniz domain adlarını yazın. Örnek olarak msn.com alan adına erişimi engellemiş olalım.

/usr/local/etc/squid dizininde olduğunuza emin olun ve aşağıdaki komutları verin.

# touch yasakli_domainler.acl
# echo .msn.com > yasakli_domainler.acl

Şimdi, yasakli_domainler.acl isimli bir access list dosyası oluşturduk ve içine .msn.com şeklinde msn.com ile ilgili alan adlarını belirtmiş olduk.

squid.conf dosyasında bulunan, acl yasakli_domainler dstdomain “/usr/local/etc/squid/yasakli_domainler.acl” satırı engellenecek domainlerini listesini oluşturduğumuz bu dosyadan okuyacak ve herhangi bir kullanıcının bu sitelere erişmesi durumunda gene conf dosyasında geçen http_access deny yasakli_domainler satırından hareketle erişime izin vermeyecektir.

DOSYA TİPİ ENGELLEME

Alan adlarına uygulanan erişim yasağı gibi dosya tiplerine de erişim yasağı getirebilirsiniz. Örneğin .exe uzantılı çalıştırılabilir dosyalara koyabilirsiniz. Böylece uzantısı .exe olan hiç bir dosya internetten edilemeyecektir. Yapılandırma mantığı gene aynı; dosyayı oluşturun ve örnek olarak .exe, .zip, ve .mp3 dosyalarına engel koyun.

# touch yasakli_dosyaturleri.acl
# echo '.(exe)$' >> yasakli_dosyaturleri.acl
# echo '.(zip)$' >> yasakli_dosyaturleri.acl
# echo '.(mp3)$' >> yasakli_dosyaturleri.acl

Not: dosya türlerini belirtirken regex kullanıldığı için tırnakişretlerine vs. dikkat edilmesi gerekir.

Aynı mantıkla squid.conf dosyasında belirtilen acl ve http_access deny satırları bu dosyaların indirilmesine izin vermeyecektir.

REGEX İLE CONTENT ENGELLEME

Dosya tiplerinde de görüldüğü gibi kural squid regex patternlerini algılayabiliyor; dolayısı ile bir alan adı içerisinde geçen kelimeleri tespit edip engelleme koymak da mümkün. Bu örnekte, yararlandığım kaynakta da anlatıldığı şekilde reklam ile ilgili kelimelerin geçtiği domainlerden veri alışverişine engel koyalım.

# touch reklamlar.acl
# echo '/adv/.*.gif$' > reklamlar.acl
# echo '/[Aa]ds/.*.gif$' >> reklamlar.acl
# echo '/[Aa]d[Ss]erver' >> reklamlar.acl
# echo '/[Aa][Dd]/.*.[GgJj][IiPp][FfGg]$' >> reklamlar.acl
# echo '/[Bb]annerads/' >> reklamlar.acl

Aynı mantıkla regex patternleri kullanılarak her konudaki erişim engellemesi için kullanılabilir. Bu örneklerden yola çıkarak ve aşağıda verilen kaynak linklerinden yararlanarak kendi regex kelimelerinizi oluşturabilirsiniz.

IP SUBNETLERINE ERİŞİM ENGELLEME

Gerçi ip bazlı engellemeler için IPFW kullanmak daha mantıklı olsa da Squid'in de bu işi yapabildiğinden dolayı bu konu ile ilgili de bir örnek vermek yerinde olur. Zira conf dosyasında da ilgili satırları girmiştik.

Aşağıdaki komutlar ile 65.54.152.0/24 ip netwörküne doğru yapılacak erişim istekleri engellenecektir.

# touch yasakli_subnetler.acl
# echo  65.54.152.0/24 >> yasakli_subnetler.acl

Squid'in yapılandırılması ile ilgili temel ayarlar bu kadardı. Bundan sonraki adım squid'in çalıştırılması ve test edilmesi ve genel geçer squid komutlarından ibaret. Sonrasında da temel bir ipfirewall kural seti ile yönlendirme işlerini yapacağız.

SQUID'in BAŞLATILMASI


Squid'i çalıştırmadan önce, web sayfalarının cache'leneceği dizinlerin oluşturulması için bir seferlik aşağıdaki komutu çalıştırmanız gerekmektedir.

# squid -z

Bu /usr/local/squid/cache dizini altında cache dizinlerini oluşturacak ve sisteminiz çalıştırılmaya hazır hale gelecektir.

Squid'in kurulum sırasında gelen rc.d tipi bir startup scripti bulunuyor. /usr/local/etc/rc.d dizini altında squid ismi ile bulunan bu dosya sistemin açılışı sırasında squid'in otomatik olarak başlatılmasını sağlıyor. Bu nedenle /etc/rc.conf dosyasında belirterek FreeBSD'nin açılışta bu scripti çalıştırılmasını söylemelisiniz:

# echo 'squid_enable="YES"' >> /etc/rc.conf

Böylece sistem açılışında squid otomatik olarak çalıştırılacaktır. Şimdi aynı scripti kullanarak squid'i manuel olarak çalıştırın.

# sh /usr/local/etc/rc.d/squid start

Bu komutu verdikten sonra herhangi bir hata ile karşılaşmadıysanız squid çalışıyor demektir. Kontrol etmek için ps ile sürecin durumuna bakın.

# ps -aux |grep squid
squid 2814  0.0  0.2  5396  2240  ??  Is 7:30PM   0:00.00 /usr/local/sbin/squid -D
squid 2816  0.0  0.6 11540  6128  ??  S 7:30PM   0:00.06 (squid) -D (squid)
squid 2817  0.0  0.1  1352   652  ??  Is 7:30PM   0:00.00 (unlinkd) (unlinkd)

Normal şartlarda komutun çıktısı yukarıdaki gibi olmalıdır.

Squid'in log dosyaları /usr/local/squid/logs dizini altında bulunmaktadır. Bu dizin içerisinde aşağıdaki dosyalar bulunmaktadır.

access.log – Erişim durumları ile ilgili bilgiler burada bulunur.

cache.log – Sunucunun genel durumu ile ilgili bilgiler tutulur.

squid.pid – Squid'in süreç numarası bu dosyada tutulur.

store.log– Cache'lenen data ile ilgili bilgi burada bulunur.

SQUID KOMUTLARI


squid -help komutu ile ulaşabileceğiniz komutlardan önemli bazıları şu şekilde:

squid -k reconfigure : Squid.conf dosyasında herhangi bir değişiklik yaptıktan sonra bu ile değişikliklerin aktif olmasını sağlayabiirsiniz.

squid -k rotate : Log dosyaları çok şişip de diskte yer işgal etmesin diye böyle güzel bir özellik mevcut. Bu komut logların backuplarını aldıktan sonra içeriğini boşaltmaktadır. Komutu aşağıdaki şekilde crona ekleyerek her gece 00:00'da çalıştırılmasını sağlayabilirsiniz.

0 0 * * * /usr/local/sbin/squid -k rotate

Diğer komutlar için bkz: squid -help

SQUID'in TEST EDİLMESİ

Yapılandırma ve genel geçer komutlar bu kadardı. Eğer squid'i sorunsuz bir şekilde çalıştırdıysanız manuel bir test yapmak yerinde olacaktır. Kullandığınız web taratıcısının proxy ayarlarına, squid'in ip'sini ve 3128 olan port numarasını girerek web sitelerinde gezinin. Aynı zaman da /usr/local/squid/logs dizini altında ki access.log'u takip edin. Yasaklı siteleri görüntülemeye çalışın. Herşey yolunda gittiyse yasakli sitelere giremeyecek aktivitelerle ilgili logları access.log dosyasında bulabileceksiniz.

Squid sorunsuz çalışıyorsa şimdiki adım IPFW kullanarak http isteklerini squid'e yönlendirerek transparan proxy uygulamasını devreye almak.

IPFIREWALL


Sisteminizde IPFW devrede değilse aktif hale getirmeniz gerekiyor, eğer tam olarak nasıl yapacağınızı bilmiyorsanız, http://www.syslogs.org/2008/07/ipfirewall-kurulumu/ adresinde detaylı bir döküman mevcut. İlgili dökümandan temel ayarlar ile bir IPFW kurabilirsiniz. Daha sonra yazının bundan sonraki bölümüne devam edebilirsiniz.

Sisteminizde herhangi bir kural girilmemiş bir IPFW olduğunu düşünerek konuya devam edelim. Yazının başından beri bahsettiğim gibi transparan proxy uygulaması için yapmamaız gereken tek şey, lokal networkünüzden çıkan ve hedef portu 80 olan tüm istekleri squid'in dinlediği 3128 no'lu porta göndermektir.

İşte yönlendirme için gereken kural dizini şöyle bir şey; ayrıca ikinci satırda da düzgün test yapabilmek için şimdilik herşeye izin verelim.

ipfw -q add 00500 fwd 127.0.0.1,3128 tcp from any to any 80 in via fxp1 keep-state
ipfw -q add 00900 allow all from any to any

Bu örnek kural cümlesinde fxp1 olarak geçen ibare benim firewall'umun local networke bakan ethernetinin adı. Dolayısı ile bunu kendi ethernet adınızla değiştirmeniz gerekiyor. İkinci kural cümlesi de gördüğünüz üzere her tür erişim için izin veriyor. Bu durumda yaptığımız tek şey fxp1 isimli interface'e içeriden gelen ve hedef portu 80 olan tüm istekleri localhost'un 3128. satırına iletilmesini söylemek ve geri kalan herşeye izin vermek. Bu şekilde httpd trafiği squid'e yönlendirilmiş oluyor.

Şimdi, test yapabilmek için lokal networkteki client bilgisayarlardan birinin gateway'ini yeni kurduğunuz firewall olarak set edin ve daha önceden herhangi bir proxy ayarı yaptıysanız web tarayıcısından bu ayarı kaldırın ve biraz surf yapım. Herşey yolunda gittiyse proxy üzerinde uyguladığımız erişim engellemelerinin çalışması ve örneğin www.msn.com adresine girememeniz gerekir.

Bundan sonra firewall kurallarınızı kendinize göre düzenleyebilir. Default olarak herşeyi deny ettikten sonra açmak istediğiniz portlara ilişkin ipfw kural cümlelerini sisteminize girebilirsiniz. Bu konuda herhangi sorununuz varsa biraz önce verdiğim IPFW kurulum döküman linkine bakabilirsiniz.

Hepsi bu kadar.

Transparan proxy'niz hayırlı olsun.

Kaynaklar:

http://www.squid-cache.org/

http://mkeadle.org/index.php?p=14

Visited 1.348 times, 1 visit(s) today
Kategoriler: *nix,Security |

Bu yazılar da ilginizi çekebilir:


- NCSA_AUTH ile Şifreli Squid Proxy Kurulumu | FreeBSD
- Squid ile web sitelerini manupule etmek
- Unbound ile Güvenli Recursive DNS Kurulumu
- IPFIREWALL ve Snort_Inline ile IPS – Part 2: Snort_Inline Kurulumu
- FreeBSD üzerine Rsyslog Kurulumu ve Yapılandırması

Yorumlar


  1. haydar | (Nisan 1st, 2009 2:44 pm)

    Çok faydalı bir çalışma olmuş elinize sağlık, fakat kafama takılan birşey var bu konfigurasyonu iki ethernet kartlı makineye uyarladığımızda ne yapmamız gerek. örneğin adsl modemin ip 10.0.0.1 iç network 192.168.5.0/24 bu durumda nasıl olacak?

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Merhaba,

    Zaten bir firewall’da en az iki adet ethernet olmalıdır ve makalede bahsedilen senaryo da iki ethernet’e uygulanmıştır.

    Sizin verdiğiniz örnekten yola çıkarak yardımcı olmaya çalışayım:

    Firewall’unuzun iki etherneti var ve bunlardan birisi modem’in bulunduğu ip networküne, diğeri ise, iç networkünüze bakıyor. Mesela, adsl modem’in ipsi 10.0.0.1/24 ise, firewall’unuzun bu networke bağlı ethernetine 10.0.0.2/24 ip’sini verdiniz ve firewall’un iç networkte bağlı ethernetini ise 192.168.5.1/24 olarak tanımladınız.

    Bu durumda, iç networkteki kullanıcı bilgisayarlarının default gateway’leri 192.168.5.1 olurken, firewall’un default gateway’i ise 10.0.0.1 olacaktır.

    Bu senaryoda, içerideki bir kullanıcı örneğin internet üzerinde yayın yapan bir web sitesi görüntülemek istediği zaman, bu web sitesine ait görüntüleme isteği, bilgisayarın default gateway’i olan 192.168.5.1’e iletilecektir. Firewall’a ulaşan bu istek de, firewall’un default gateway’i olan 10.0.0.1’e (adsl modem’e) yönlendirilecektir ve böylece kullanıcınız web sitesini görüntüleyebilecektir.

    Firewall’unuzda squid kurulu olduğunu düşünürsek, firewall’a gelen http isteklerini yazacağınız bir fwd kuralı ile squid’e yönlendirirseniz, ilgili web sitesine yapılan istekler squid tarafından gerçekleştirilecek ve alınan cevaplar squid tarafından kullanıcıya yönlendirilecektir. Böylece kullanıcı web sitesini görüntüleyebildiği gibi, ilgili web sitesine ait içerik squid tarafından cache’lenecektir. Böylece, içerideki ikinci bir şahıs aynı siteyi görüntülemek istediği zaman, sitenin bir kopyası, squid’de bulunduğundan dolayı bu sitenin yayın yaptığı sunucuya gitmesine gerek kalmayacaktır.

    Sonuç olarak, yapmanız gereken şey, tüm http isteklerini squid’e yönlendirmenizdir. Sizin senaryonuza göre bu işlemi yapabilmek için gerekli olan IPFW kuralı şöyle:

    ipfw -q add 00500 fwd 127.0.0.1,3128 tcp from any to any 80 in via fxp1 keep-state

    Bu kuralın açıklaması da şu;

    kaynağı herhangi bir yer olan ve hedefi herhangi bir yer olup, hedef portu 80 olan tcp paketlerinin hepsini 127.0.0.1’in 3128. portuna yolla.

    Kuralda gördüğünüz fxp1 ibaresi, firewall’un iç networkte bakan ethernetinin adı olmalıdır. in via fxp1 diyoruz ve “fxp1 ethrnetine giriş yapan paketler” anlamına geliyor. Bu da içeriden gelen paketler demek oluyor.

    Squid firewall’un kendi üzerinde çalıştığını düşündüğümüz için istekleri 127.0.0.1 (localhost’a) gönderiyoruz. 3128. port ise squid tarafından dinlenmekte olan port numarasıdır. Bu porta gelen istekler squid tarafından alınarak işlenir. Yani kullanıcılarınız web görüntülemek için istekte bulundukları zaman, çıkış kapıları firewall olduğundan dolayı buraya gelen paketler, squid’e yönlendirilir, squid de kullanıcılarınız adına istekte bulunur. Proxy (vekil sunucu) mantığı bundan ibaretttir zaten.

    Daha fazla uzatmadan, son bir hatırlatma: anlattığınız senrayonun çalışabilmesi için adsl modeminize 0.0.0.0 0.0.0.0 192.168.5.1 şeklinde bir static route tanımlaması da yapmanız icap ediyor. Bunun nedeni ise, firewall’unuzdan (adsl modem vasıtası ile) dışarı gönderilen paketlere ait cevaplar için dönüş yolunu tanımlamaktır. Zira adsl modeminizn (genel) netrowkünüzde 192.168.5.0/24 ip networkünün varligindan haberdar olamayacagi icin cevap paketlerini nereye gonderecegini bilemez. Biz de bu static route ile donus paketlerinin hepsini firewall’a (iç interface’e) gondermesi gerektigini soyluyoruz.

    Aklınızda kalan soruları, çekinmeden iletebilirsiniz.
    Selamlar.

    [Cevapla]

    haydar tarafından yanıtlandı.

    çok teşekkürler.

    [Cevapla]

  2. ahmet | (Ağustos 20th, 2009 3:43 pm)

    yazınız için çok teşşekürler.
    buradan faydalanarak squid kurma imkanım oldu.
    burada bulamadığım ve sormak istediğim, engellediğimiz dosya tiplerinin bazı domainler için serbest olmasını nasıl sağlarız?

    selamlar.

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Selamlar,

    Şunu bir dener misiniz ?

    Yeni bir acl ekleyin:

    acl dl_izinli_siteler dstdomain "/usr/local/etc/squid/dl_izinli_siteler.acl"
    

    /usr/local/etc/squid/dl_izinli_siteler.acl isimli dosyasının içerisine exclude etmek istediğiniz siteleri her bir satıra bir domain şeklinde yazın.

    Sonra da,

    conf dosyanızdaki şu satırı:

    http_access deny yasakli_dosyaturleri
    

    şu şekilde değiştirin:

    http_access deny !dl_izinli_siteler yasakli_dosyaturleri
    

    Ben deneyemedim ama çalışması gerekir.

    [Cevapla]

  3. murat arslan | (Nisan 20th, 2010 9:55 am)

    çok faydalı bir kaynak olmuş. öncelikle teşekkürler.bi sorum olucaktı Client makinam squid proxy üzerinden dışardaki bir makinaya remote desktop bağlantı yapması için squide nası bi kural eklemem gerekiyor. proxy devedeyken remote bağlantı yapılamıyor.

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Merhaba,

    Remote dekstop baglantisini engelleyen sey squid degil, firewall’dur. Transparan proxy uygulamasinda sadece 80. portu squid’e yonlendirilir (yazıda da bu sekilde bir yonlendirme soz konusu) dolayisi ile remote desktop ya da herhangi diğer bir uygulamanın squid’den etkilenmemesi gerekir. Bu nedenle IPFW kurallarinizi yeniden gozden gecirmenizi oneririm.

    [Cevapla]

  4. Bora | (Ağustos 21st, 2013 11:19 am)

    Merhabalar,
    çok eski bir konuyu hortlatıyorum ama bir sorum olacak squid serverımda tek ethernet var ve ekleme imkanım yok (bu box pclerden) zte marka ttnet modemim var bundan dhcp kapatıp lan bağlantıları servera yönlendirebiliyorum ancak wifiler maalesef bundan etkilenmiyor. windows üzerinden ayarlarda malum değiştirilebiliyor. ben bu şartlarda herkesin zorunlu olarak squid üzerinden geçmesini nasıl sağlayabilirim?

    [Cevapla]

Trackbacks

Yorumda bulunun.