• Ücretsiz trafik muhasebesi programlarının SQUID ile karşılaştırılması. Kalamar modelinin SQUID Eşleştirilmiş parametrelerinin yapılandırması ve temel parametreleri

    Son zamanlarda firmamız proxy sunucularını MS ISA Server'dan özgür yazılıma aktarma ihtiyacı duydu. Bir proxy sunucusu (kalamar) seçmek uzun sürmedi. Birkaç pratik öneriden yararlanarak proxy'yi ihtiyaçlarımıza göre yapılandırdım. Muhasebe trafiği için bir program seçerken bazı zorluklar ortaya çıktı.

    Gereksinimler şunlardı:

    1) özgür yazılım
    2) aynı sunucudaki farklı proxy'lerden günlükleri işleme yeteneği
    3) postayla gönderilen standart raporları veya bir web sunucusuna bağlantı oluşturma yeteneği
    4) münferit departmanlar için raporlar oluşturmak ve bu raporları departman başkanlarına göndermek veya bir web sunucusundaki bir bağlantı aracılığıyla erişim sağlamak

    Trafik muhasebesi programları için, geliştiriciler çok az bilgi sağlar: programın amacının kısa bir açıklaması ve isteğe bağlı bir bonus olarak birkaç ekran görüntüsü. Evet, herhangi bir programın günlük/hafta/ay başına trafik miktarını hesaplayacağı açıktır, ancak bir programı diğerlerinden ayıran ek ilginç özellikler açıklanmamıştır.

    Bunu yapmak zorunda olanların seçiminde biraz yardımcı olmak için bu tür programların avantajlarını ve dezavantajlarını ve bazı temel "çiplerini" açıklamaya çalışacağım bu yazıyı yazmaya karar verdim.

    Adaylarımız:

    SARG
    serbest sa
    ışıklı mürekkep balığı
    squidanalyzer
    Ekran Kalamarı

    Geri çekilmek

    Programın "yaşı" ve en son sürümün yayımı hakkındaki bilgiler bir karşılaştırma parametresi değildir ve yalnızca bilgi amaçlı verilmiştir. Programın yalnızca işlevselliğini karşılaştırmaya çalışacağım. Ayrıca, yıllardır güncellenmemiş çok eski programları kasıtlı olarak dikkate almadım.

    Loglar kalamar tarafından yaratıldığı şekliyle işlenmek üzere analizöre iletilir ve üzerinde değişiklik yapmak için herhangi bir ön işleme tabi tutulmaz. Hatalı kayıtların işlenmesi ve günlük alanlarının olası tüm dönüşümleri analizörün kendisi tarafından yapılmalı ve yalnızca raporda yer almalıdır. Bu makale bir kurulum kılavuzu değildir. Yapılandırma ve kullanım sorunları ayrı makalelerde ele alınabilir.

    Öyleyse başlayalım.

    SARG - Kalamar Analiz Raporu Oluşturucu

    Bu sınıfın desteklenen programları arasında en eskisi (geliştirme 1998'de başladı, eski adı - sqmgrlog). En son sürüm (sürüm 2.3.10) Nisan 2015'tir. Bundan sonra, ana sürümde mevcut olan birkaç iyileştirme ve düzeltme vardı (sourceforge'dan git kullanılarak indirilebilir).

    Program manuel olarak veya cron tarafından başlatılır. Bunu parametreler olmadan çalıştırabilirsiniz (daha sonra tüm parametreler sarg.conf yapılandırma dosyasından alınacaktır) veya komut satırında veya komut dosyasında, örneğin raporun oluşturulduğu tarihler gibi parametreleri belirtebilirsiniz.

    Raporlar html sayfaları olarak oluşturulur ve /var/www/html/squid-reports dizininde saklanır (varsayılan olarak). Dizinde saklanacak raporların sayısını belirten bir parametre ayarlayabilirsiniz. Örneğin, günlük 10 ve haftalık 20, daha eski olanlar otomatik olarak silinecektir.

    Farklı rapor seçenekleri için farklı parametrelere sahip birkaç yapılandırma dosyası kullanmak mümkündür (örneğin, günlük raporlar için, grafik oluşturma seçeneğinin devre dışı bırakılacağı ve farklı bir dizinin belirleneceği kendi yapılandırmanızı oluşturabilirsiniz. rapor çıktısı).

    detayda

    Raporların olduğu ana sayfaya girerken, oluşturulduğu dönemi (rapor oluşturma parametrelerinde tanımlanır), oluşturulduğu tarihi, benzersiz kullanıcı sayısını, döneme ait toplam trafiği, ortalama miktarını seçebiliriz. kullanıcı başına trafik

    Dönemlerden birini seçerken bu döneme ait topusers raporunu alabileceğiz. Daha sonra, SARG'ın yapabileceği tüm rapor türlerinin açıklamalarını ve örneklerini vereceğim.

    1) topusers - kullanıcılara göre toplam trafik. Kullanıcı, İnternet erişiminin verildiği ana bilgisayarın adı veya kullanıcının oturum açma bilgileridir. Rapor örneği:


    IP adresleri burada görüntülenir. İlgili seçeneği etkinleştirmek için yapılandırıldığında, IP adresleri alan adlarına dönüştürülür.

    Kimlik doğrulama kullanıyor musunuz? Hesaplar gerçek adlara dönüştürülür:

    Görünüm css dosyasında özelleştirilebilir. Görüntülenen sütunlar da yapılandırılabilir, gereksiz olanları kaldırabilirsiniz. Sütun sıralaması desteklenir (sorttable.js).

    Soldaki grafik simgesine tıkladığınızda benzer bir grafik göreceksiniz:


    Sağdaki ikona tıkladığımızda 5. raporu alıyoruz.

    2) en popüler siteler - en popüler siteler hakkında rapor verin. Varsayılan olarak, en popüler 100 sitenin bir listesi görüntülenir (değer ayarlanır). Normal ifadeler veya ayar takma adları kullanarak, 3. ve daha yüksek düzeydeki alanlardan gelen trafiği 2. düzeydeki bir alanla (ekran görüntüsündeki gibi) birleştirebilir veya başka herhangi bir kural belirleyebilirsiniz. Her alan için ayrı ayrı bir kural belirleyebilirsiniz, örneğin yandex.ru ve mail.ru için 3. seviyeye kadar birleştirin. Alanların anlamı oldukça açıktır.


    3) siteler_kullanıcılar - belirli bir siteyi kimin ziyaret ettiğine dair bir rapor. Burada her şey basit: alan adı ve ona kimin eriştiği. Trafik burada gösterilmez.


    4) users_sites - her kullanıcı tarafından ziyaret edilen siteler hakkında bir rapor.


    Burada da her şey açık. İlk sütundaki simgeye tıklarsanız bir rapor alırsınız viii).

    5) tarih_saat - günlere ve saatlere göre kullanıcı trafiği dağılımı.


    6) reddedildi - kalamar tarafından engellenen istekler. Erişimin kime, ne zaman ve nerede reddedildiğini gösterir. Giriş sayısı yapılandırılabilir (varsayılan 10'dur).


    7) auth_failures - kimlik doğrulama hataları. HTTP/407.
    Giriş sayısı yapılandırılabilir (varsayılan 10'dur).


    8) site_user_time_date - kullanıcının hangi siteyi ve hangi makineden ne zaman ziyaret ettiğini gösterir.

    9) indirilenler - indirilenlerin listesi.


    10) useragent - kullanılan programlar hakkında bir rapor

    Raporun ilk bölümü, kullanılan IP adresini ve kullanıcı aracılarını görüntüler.


    İkincisi - sürümleri dikkate alarak yüzde dağılımına sahip genel bir kullanıcı listesi.


    11) yeniden yönlendirici - rapor, engelleyici aracılığıyla erişimin kime engellendiğini gösterir. Squidguard, dansguardian, rejik desteklenir, günlük formatı yapılandırılabilir.


    SARG'ın 120'den fazla ayarı, dil desteği (mesajların %100'ü Rusça'ya çevrilir), düzenli ifade desteği, LDAP ile çalışma, kullanıcılara yalnızca web sunucusundaki (.htaccess yoluyla) raporlarına erişim sağlama yeteneği vardır, yerden tasarruf etmek için günlükleri kendi biçimlerine dönüştürme, veritabanını daha sonra doldurmak için raporları bir metin dosyasına dışa aktarma, kalamar günlük dosyalarıyla çalışma (günlük bir veya daha fazla günlük dosyasını bölme).

    Örneğin, bir departman için ayrı bir rapor oluşturmak istiyorsanız, belirli bir grup grup için raporlar oluşturmak mümkündür. Gelecekte, örneğin bir web sunucusu kullanan yöneticilere departman raporlarının bulunduğu web sayfasına erişim sağlanabilir.

    Raporları e-posta ile gönderebilirsiniz, ancak şimdilik yalnızca topusers raporu desteklenmektedir ve mektubun kendisi HTML desteği olmayan bir düz metin mesajı olacaktır.

    Belirli kullanıcıları veya belirli ana bilgisayarları işlemenin dışında bırakabilirsiniz. Kullanıcılar için takma adlar ayarlayabilir, birkaç hesabın trafiğini tek hesapta birleştirebilirsiniz, örneğin tüm çalışanlar. Siteler için takma adlar da ayarlayabilirsiniz, örneğin, birkaç sosyal ağı belirli bir takma adla birleştirebilirsiniz; bu durumda, belirtilen etki alanları için tüm parametreler (bağlantı sayısı, trafik hacmi, işlem süresi) toplanır. Veya normal bir ifade kullanarak, 3. düzeyin üzerindeki etki alanlarını "atabilirsiniz".
    Dönem içinde belirli hacimleri aşan kullanıcıların listesini ayrı dosyalara yüklemek mümkündür. Çıktı birkaç dosya olacaktır, örneğin: userlimit_1G.txt - 1 Gb'yi aştı, userlimit_5G.txt - 5 Gb'yi aştı vb. - toplam 16 sınır.

    SARG'ın cephaneliğinde ayrıca birkaç PHP sayfası vardır: mevcut kalamar bağlantılarını görüntülemek ve alan adlarını squidguard engelleme listelerine eklemek için.

    Genel olarak, bu öğrenmesi kolay, çok esnek ve güçlü bir araçtır. Tüm parametreler varsayılan yapılandırma dosyasında açıklanmıştır, sourceforge projesi wiki bölümünde tüm parametrelerin daha ayrıntılı bir açıklamasına sahiptir, gruplara ayrılmıştır ve bunların kullanım örnekleri.

    serbest sa

    Ev geliştirme. Kasım 2013'ten beri yeni sürüm yok. Raporları rakip programlardan daha hızlı oluşturduğu ve tamamlanmış raporlar için daha az yer kapladığı iddia edildi. Hadi kontrol edelim!

    Çalışma mantığına göre, bu program SARG'a en yakın programdır (ve yazarın kendisi bu programla karşılaştırır (örneğin)), bu yüzden onunla karşılaştıracağız.

    Birkaç temanın varlığından memnun. Tema 3 adet css dosyası ve bunlara karşılık gelen 4 adet png ikonundan oluşmaktadır.

    Raporlar gerçekten daha hızlı yapılır. Günlük rapor, SARG'ın 12 dakikası varken saat 4:30'da oluşturuldu. Doğru, kullanılan hacimde durum böyle değildi: raporların kapladığı hacim 440 MB (ücretsiz-sa) ve 336 MB (SARG).

    Daha zor bir görev vermeye çalışalım: 26,3 milyon satırın olduğu 3,2 GB'lık bir günlük dosyasını 10 günde işlemek.

    Free-sa ayrıca raporu daha hızlı hale getirdi, 46 dakikada rapor 3.7 GB disk alanı kaplıyor. SARG 1 saat 10 dakika harcadı, rapor 2,5 GB.

    Ancak bu raporların her ikisini de okumak garip olacak. Örneğin, kim hangi alanın daha popüler olduğunu manuel olarak saymak ister - vk.com veya googlevideo.com ve tüm alt alan adlarının trafiğini manuel olarak saymak ister? SARG ayarlarında yalnızca 2. seviye alanlar kaldıysa, raporun oluşturulması yaklaşık olarak aynı süreyi alacaktır, ancak şimdi raporun kendisi diskte 1,5 GB yer kaplıyor (günlük 336 MB'den 192 MB'a düştü) .

    detayda

    Ana sayfaya girdiğinizde aşağıdaki gibi bir şey görüyoruz (blues teması seçili):


    Dürüst olmak gerekirse, yıl ve ayların çıktısının amacı net değil, üzerlerine tıkladığınızda hiçbir şey olmuyor. Arama alanına bir şeyler yazabilirsiniz ama yine hiçbir şey olmuyor. İlgilendiğiniz dönemi seçebilirsiniz.

    Engellenen URL'lerin listesi:

    CONNECT yöntem raporu:


    PUT/POST yöntem raporu:



    Popüler siteler:


    Proxy sunucusunun etkinliği hakkındaki rapor ilginç görünüyordu:


    Kullanıcı Raporu:


    İkinci sütundaki grafik simgesine tıkladığınızda, belirli bir kullanıcının İnternet kullanımının bir grafiğini alırız:


    İkinci simgeye tıkladığınızda, İnternet kanalını saate göre yükleme tablosunu alırız:

    Bir IP adresi seçerken, azalan trafik sırasına göre kullanıcıya göre sitelerin bir listesini alırız:


    Tüm istatistikler bayt cinsinden görüntülenir. Megabayta geçmek için parametreyi ayarlamanız gerekir.

    report_bytes_divisor="M"

    Program sıkıştırılmış günlük dosyalarını kabul etmez, -l parametresi ile birden fazla dosya kabul etmez, dosyaların maske ile seçilmesini desteklemez. Programın yazarı, adlandırılmış yöneltmeler oluşturarak bu sınırlamaları aşmayı önerir.

    Sinir bozucu bir aksaklık bulundu - günlük satırının uzunluğu çok büyük olduğunda, adresler yerine zaman damgaları girilir:


    Bu "kullanıcının" trafiğini görüntülerken, hatanın kaynağı olan etki alanını görebilirsiniz:


    Böylece kullanıcı sayısı birkaç kat arttı.

    Bu iki programı karşılaştırırsak, free-sa biraz daha hızlı bir rapor oluşturur. Yazarın belirttiği gibi 20 kat hız artışı bulamadım. Belki belirli koşullar altında görülebilir. Bence geceleri haftalık bir rapor oluşturmanın ne kadar sürdüğü önemli değil - 30 dakika veya 50 dakika. Raporların kapladığı alan miktarı açısından, free-sa'nın hiçbir avantajı yok.

    ışıklı mürekkep balığı

    Belki de en popüler trafik sayacı. Hızlı çalışır, raporlar fazla disk alanı kaplamaz. Bu program uzun süredir güncellenmemiş olsa da, yine de bu makalede yeteneklerini değerlendirmeye karar verdim.

    Programın mantığı farklıdır: program günlüğü okur ve daha sonra web sayfaları oluşturmak için kullandığı bir dizi veri dosyası oluşturur. Yani, veri içeren önceden oluşturulmuş raporlar yoktur, veri içeren sayfalar anında oluşturulur. Böyle bir çözümün avantajları açıktır: Bir rapor almak için, dönemin tüm günlüklerini ayrıştırmak gerekli değildir, birikmiş günlüğü günde bir kez lightsquid'e "beslemek" yeterlidir. Hızlı bir şekilde yeni bir bilgi parçası eklemek için bunu günde birkaç kez yapabilirsiniz.

    Bazı dezavantajlar vardı: farklı sunuculardan günlükleri işlemek ve tek bir yerde istatistik toplamak imkansızdır: başka bir sunucudan bir günlük günlük işlenirken, o güne ait mevcut istatistikler silinir.

    Garip bir sınırlama vardır: Lightsquid, sıkıştırılmamış günlük dosyalarının yanı sıra sıkıştırılmış olanları da "algılar" (gz - tam olarak), ancak ikinci durumda, dosya adı şu biçimde olmalıdır: access.log.X.gz, format access.log- YYYYMMDD.gz kabul etmeyecektir.

    Basit manipülasyonlarla bu sınırlamanın üstesinden gelir ve ne olduğunu görürüz.

    detayda

    Ayın raporu (toplam trafik 3 TB, 110 milyon satır) diskte 1 GB yer kapladı.

    Ana sayfada, geçerli ay için günlük trafiği görüyoruz.


    Bir gün seçerken, tüm kullanıcılar için o gün için bir rapor görürüz:


    Gruplar tanımlanmışsa, sağ sütunda kullanıcının ait olduğu grubun adı görüntülenir. Herhangi bir grubun üyesi olmayan kullanıcılar, grupta 00 nolu grupta birleştirilir (bu raporda soru işareti ile işaretlenir).

    İlgili tarih için ana sayfada grp'yi seçtiğinizde gruplara ayrılmış olarak kullanıcı raporu sayfasına geliyoruz. Önce grup olmayanlar, ardından gruplar sırayla listelenir.


    Sağdaki tabloda grubun ismine tıklayarak sayfada bu grupla ilgili raporun başladığı yere iniyoruz:


    "En iyi siteler raporu"nu tıkladığınızda, günün popüler siteleriyle ilgili bir rapor alırız:


    Büyük dosyalar raporu:


    Sağdaki tabloya geçelim.
    Burada, ay ve tüm yıl için en iyi sitelerin bir listesini (aynı görünüyorlar, bu nedenle ekran görüntüsü olmadan), yıl ve ay için genel istatistiklerin yanı sıra yıl ve ay için istatistikler alabilirsiniz. grup tarafından.

    Aylık istatistikler:


    Saat simgesine tıklayarak, bir site tablosu, erişim süresi ve saat başına tüketilen trafiği görebiliriz:


    Günün istatistikleri burada görüntülenir, ancak ay ve yıl için yaklaşık olarak aynı görünecektir, alanlara göre saatlik istatistikler özetlenecektir.

    Grafik simgesine tıklayarak, kullanıcının ay boyunca trafik tüketimini görebiliriz:


    Grafik sütunları tıklanabilir: Bir sütuna tıkladığınızda, başka bir gün için kullanıcının istatistiklerine gidersiniz.

    [M]'ye tıklayarak, kullanıcının ay boyunca trafik tüketimi hakkında, her gün ve tüm hafta için hacmi gösteren bir rapor alacağız.

    Kullanıcı adını tıkladığınızda, azalan trafik sırasına göre kullanıcı tarafından ziyaret edilen sitelerin bir listesini alırız:


    Hepsi bu kadar. Her şey basit ve özlü. IP adresleri alan adlarına dönüştürülebilir. Normal ifadeler yardımıyla, alan adları, normal bir ifade vermem durumunda, 2. seviye alan adlarında birleştirilebilir:

    $url =~ s/(+://)??(+.)(0,)(+.)(1)(+)(.*)/$3$4/o;

    Perl'deki becerilerle, onu kendiniz için değiştirebilirsiniz.

    squidanalyzer

    Lightsquid'e benzer ve yine Perl ile yazılmış bir program. Daha güzel dekor. En son sürüm 6.4 bu yıl Aralık ayı ortasında yayınlandı, birçok iyileştirme yapıldı. Programın web sitesi: squidanalyzer.darold.net.

    Squidanalyzer, raporlamayı hızlandıran birden fazla bilgisayar işlemcisi (-j seçeneği) kullanabilir, ancak bu yalnızca sıkıştırılmamış dosyalar için geçerlidir. Paketlenmiş olanlar için (gz formatı desteklenir), işlem bir işlemci çekirdeği kullanılarak gerçekleştirilir.

    Lightsquid ile bir karşılaştırma daha: Aynı sunucuda yaklaşık bir gün boyunca aynı rapor yapıldı, diskte 3,7 GB yer kaplıyor.

    Lightsquid gibi, squidanalyzer de aynı süre içinde farklı sunuculardan iki veya daha fazla günlük dosyasını birleştiremez.

    Daha

    Ana sayfa - raporun yılını seçebilirsiniz.

    Herhangi bir dönemi (yıl, ay, hafta, gün) seçerseniz, web sayfalarının görünümü benzer olacaktır: üstte şu raporları içeren bir menü vardır: MIME türleri, Ağlar, Kullanıcılar, En Çok Reddedilenler, En Çok URL'ler, En Çok Etki alanları. Seçilen dönem için proxy istatistiklerinin hemen altında: İstekler (İsabet/Kaçırıldı/Reddedildi), Megabayt (İsabet/Kaçırıldı/Reddedildi), Toplam (İstekler/Megabayt/Kullanıcılar/Siteler/Etki Alanları). Aşağıda, dönem için talep sayısına ve trafiğe göre bir grafik bulunmaktadır.

    Sağ üst köşede bir takvim var. Bir ay seçtiğinizde, kısa istatistikleri ve güne göre bir indirme programını görebilirsiniz:


    Takvim bir hafta seçme özelliğine sahiptir. Seçildiğinde, benzer istatistikleri göreceğiz:


    Bir gün seçerken, istatistikleri saat bazında görüyoruz:


    İçerik türü raporu:


    Ağ raporu.


    Kullanıcı raporu.


    Bir kullanıcı seçildiğinde, o dönem için onun istatistiklerini alırız.



    Yasaklanmış kaynaklar:


    2. düzey etki alanları hakkında rapor verin.


    Bilgi biriktikçe programın çok yavaş çalıştığını kendi adıma belirtmek isterim. Her yeni günlükte hafta, ay ve yıla ait istatistikler yeniden hesaplanır. Bu nedenle, çok fazla trafiğe sahip bir sunucudan günlükleri işlemek için bu programı önermem.

    ekran mürekkep balığı

    Bu programın farklı bir mantığı vardır: günlük MySQL veritabanına aktarılır, ardından web arayüzünde çalışırken veriler ondan istenir. Daha önce bahsedilen işlenmiş on günlük günlüğe sahip veritabanı 1,5 GB yer kaplar.

    Daha

    Program, rastgele bir ada sahip günlük dosyalarını içe aktaramaz ve yalnızca access.log'a bağlanır.

    Ana Sayfa:


    Kısa istatistikler:


    IP adresleri için takma adlar oluşturabilirsiniz:


    ... ve sonra gruplar halinde birleştirilebilirler:


    Ana raporlara geçelim.

    Rapor türlerini içeren sol menü:

    Trafik kullanıcı oturumları
    IP adresi kullanıcı trafiği
    Web sitesi trafiği
    En iyi siteler
    En İyi Kullanıcılar
    En iyi IP adresleri
    günün saatine göre
    Kullanıcı trafiği girişleri gelişmiş
    IP adresi kullanıcı trafiği genişletildi
    Çözülmüş IP adresi trafiği
    Popüler siteler
    Büyük dosyaları kim indirdi?
    Dönemlere göre trafik (günler)
    Döneme göre trafik (gün adı)
    Dönemlere göre trafik (ay)
    HTTP durumları
    Oturum açma IP adresleri
    IP adreslerinden girişler

    Rapor örnekleri.

    Kullanıcı IP adresi trafiği:


    Web sitesi trafiği:


    En iyi siteler:


    ... ayrıca, dürüst olmak gerekirse, sayfalar 3-5 dakikada oluşturulmaya başladığı için olasılıkları keşfedecek sabrım yoktu. Günlüğü hiç içe aktarılmayan bir günün "günün saatine göre" raporu 30 saniyeden uzun bir süre için oluşturuldu. Trafikli bir gün için - 4 dakika:


    Bu kadar. Umarım bu materyal birisi için yararlıdır. İlginiz için hepinize teşekkür ederim.

    İyi eğlenceler sevgili okuyucular ve konuklar! Bu yazı ile işin tarifine başlayacağım. SQUID önbelleğe alma proxy'si. Bu makale çoğunlukla giriş niteliğinde teorik olacaktır.

    Proxy sunucusu nedir ve kalamar nedir

    Temel bilgilerle başlayacağım. kalamar dır-dir proxy sunucusunu önbelleğe alma HTTP, FTP ve diğer protokoller için. HTTP için proxy sunucusu bir istemci programı (tarayıcı veya başka bir yazılım) adına HTTP istekleri yapan bir programdır. vekil olabilir Önbelleğe almak veya önbelleğe alınmıyor. Önbelleğe almak, buna göre, istemcilere daha hızlı geri dönüş için tüm istekleri bir tür depolamaya kaydeder ve önbelleğe alınmıyor- basitçe HTTP, ftp veya diğer istekleri çevirir. Önceden, trafiği önbelleğe alma, oldukça önemli trafik tasarrufu elde etmeyi mümkün kılıyordu, ancak günümüzde İnternet hızlarının artmasıyla bu, alaka düzeyini biraz kaybetti. Proxy serverA yerleşik olabilir hiyerarşi istekleri işlemek için. Aynı zamanda, proxy sunucuları A birbirleriyle şu yollarla etkileşim kurar: ICP protokolü.

    Kalamarçoğu işletim sisteminde (hem unix hem de windows) tasarlanmıştır ve çalışabilir. GNU GPL kapsamında lisanslanmıştır. DNS'nin yanı sıra HTTP, FTP, gopher, SSL ve WAIS (2.6'da kaldırılmıştır) isteklerini işleyebilir ve önbelleğe alabilir. En sık yapılan istekler RAM'de saklanır. şu anda var Kalamarın 2 kararlı versiyonu: 2.7 Ve 3.1 . Farklar makalenin sonundaki bağlantılarda bulunabilir. Paketlerden yükleme yaparken tüm bağımlılıklar aynıdır. Sürüm 2 yapılandırma dosyası, sürüm 3 ile uyumludur, ancak sürüm 3 yeni seçenekler ekler. Makalede ele alacağım kalamar3 versiyonu. Ayrıca, squid3'ü yüklerseniz, yapılandırma dosyalarını içinde tutacağını belirtmekte fayda var. /etc/kalamar3, squid3'teki varsayılan günlüklerin yanı sıra dizindedir /var/log/kalamar3/, Ama değil /var/log/kalamar/, birçok log analizcisi "saymayı sever".

    Birkaç kez kelime " Önbelleğe almak". Ve aslında bu nedir - Önbelleğe almak? Bu İnternetten istenen nesneleri saklamanın bir yolu istekte bulunan bilgisayara orijinal bilgisayardan daha yakın bir sunucuda. Bir İnternet nesnesi, bir dosya, belge veya İnternette sağlanan bazı hizmetlere (FTP, HTTP veya gopher gibi) yapılan bir çağrıya verilen yanıttır. İstemci, proxy önbelleğinden bir İnternet nesnesi ister; nesne henüz önbelleğe alınmadıysa, proxy sunucusu nesneyi alır (istenen URL'de belirtilen ana bilgisayardan veya üst veya komşu önbellekten) ve istemciye teslim eder.

    Kalamar Proxy Modları

    Squid proxy aşağıdaki üç ana modda çalışabilir:

    şeffaf mod

    Bu HTTP modunda, istemciler tarafından yapılan bağlantı, onların bilgisi veya açık yapılandırması olmadan bir proxy sunucusuna yönlendirilir. Bu modda, istemci yapılandırması gerekmez. Bu yöntemin dezavantajları: NAT yapılandırması ve trafik yeniden yönlendirmesi gerekli, istemci kimlik doğrulaması çalışmıyor, FTP ve HTTPS istekleri yeniden yönlendirilmiyor.

    Kimlik Doğrulama Modu

    Bu modda çalışmak için, istemcilerin bir proxy sunucusuyla çalışacak şekilde yapılandırılması gerekir (bağlantı ayarlarında proxy sunucu adresi belirtilmelidir). İstemciler Kerberos, Ldap, NTLM, IP ve Radius aracılığıyla doğrulanabilir ve yetkilendirilebilir. İstemcilerin - etki alanı üyelerini Kerberos protokolünü kullanarak doğrulayarak ve ardından etki alanı grubu üyelerini şeffaf modda LDAP kullanarak yetkilendirerek (kullanıcı parolasını yalnızca etki alanına kaydolurken girer) Microsoft Active Directory sunucularıyla etkileşim oluşturmak mümkündür. Yetkili gruplar için erişim kontrolü ve QoS (gecikme havuzları) için farklı ayarlar uygulamak mümkündür.

    Ters Proxy

    Proxy sunucusu giden verileri önbelleğe alır. Squid ters proxy sunucusu, istemci adına HTTP sunucusundan veri alır ve istemciye (örneğin, İnternet'e) geri iletir. Bu mod şunları yapmanızı sağlar:

    • HTTP sunucusundaki yükü azaltan önbelleğe almayı kullanma;
    • HTTP sunucuları arasında yük dengeleme;
    • HTTP sunucularını maskeleme ve özellikleri;
    • Sunuculara yapılan web saldırılarının önlenmesi.

    SQUID Çalışma Modu Diyagramları

    şeffaf mod

    ters mod

    Kimlik Doğrulama Modu

    Yukarıdaki şemalarda, yeşil oklar proxy trafiğinin akışlarını göstermektedir. Bu akışların Linux'ta hareketi çoğunlukla tarayıcının güçleri ve ayarları tarafından kontrol edilir. Ek olarak, çoğu zaman yönlendirici ve proxy işlevleri tek bir makine tarafından gerçekleştirilir.

    SQUID'i Yükleme

    Kalamar kurmadan ve yapılandırmadan önce, kalamarın çalışacağı makinenin harici ağa erişimi olduğundan ve bu proxy'yi kullanacak istemcilerin bu makineye erişimi olduğundan da emin olmalısınız. Squid proxy sunucusunu Linux'taki diğer yazılımlar gibi yüklemek, makalede açıklanan çeşitli şekillerde mümkündür. Debian'da depodan kurulum yöntemine değineceğim. Bu nedenle, kalamar yüklemek için squid3 paketini yüklemeniz gerekir, bunun için aşağıdaki komutu çalıştırın:

    Gw ~ # aptitude install squid3 Aşağıdaki YENİ paketler kurulacak: libltdl7(a) squid-langpack(a) squid3 squid3-common(a) 0 paket yükseltildi, 4 yeni yüklendi, 0 paket kaldırılmak üzere işaretlendi ve 0 paket yükseltilmedi . 2 157 kB arşiv almanız gerekiyor. Paketi açtıktan sonra 10,3 MB kullanılacaktır. Devam etmek istiyor musun? y Alın:1 http://ftp.ru.debian.org/debian/squeeze/main libltdl7 i386 2.2.6b-2 Alın:2 http://ftp.ru.debian.org/debian/squeeze/main kalamar- langpack tümü 20100628-1 Alın:3 http://ftp.ru.debian.org/debian/squeeze/main kalamar3-ortak tümü 3.1.6-1.2+squeeze2 Alın:4 http://ftp.ru.debian.org /debian/sıkmak/main squid3 i386 3.1.6-1.2+squeeze2 9 saniyede 2.157 kB aldı (238 kB/s) Önceden seçilmemiş bir libltdl7 paketi seçiliyor. (Veritabanı okunuyor... şu anda yüklü 41133 dosya ve dizin.) libltdl7 paketi açılıyor (dosyadan.../libltdl7_2.2.6b-2_i386.deb)... Daha önce seçilmemiş kalamar-langpack paketi seçiliyor. Squid-langpack paketi açıldı (.../squid-langpack_20100628-1_all.deb dosyasından)... Önceden seçilmemiş bir squid3-common paketi seçiliyor. squid3-common paketi açıldı (dosyadan.../squid3-common_3.1.6-1.2+squeeze2_all.deb)... Önceden seçilmemiş bir squid3 paketinin seçimi. squid3 paketi açılıyor (dosyadan.../squid3_3.1.6-1.2+squeeze2_i386.deb)... man-db tetikleyicileri işleniyor... libltdl7 (2.2.6b-2) paketi kuruluyor... squid-langpack kuruluyor package (20100628-1) ... squid3-common paketini yapılandırma (3.1.6-1.2+squeeze2) ... squid3 paketini yapılandırma (3.1.6-1.2+squeeze2) ... Squid HTTP proxy 3.x oluşturma biriktirme dizini yapısı 2012/02/15 21:29:41| Takas Dizinleri Oluşturma Squid HTTP Proxy 3.x Yeniden Başlatılıyor: squid3Squid HTTP Proxy 3.x önbellek yapısı oluşturuluyor... (uyarı). 2012/02/15 21:29:43| Takas Dizinleri Oluşturma .

    Gördüğünüz gibi, paketi kurarken bir yaratma girişimi oldu. önbellek dizini, ama çünkü yapılandırılmamış, uyarı düştü. Ayrıca, kalamar başlangıç, çalışan ve kabul edilen bağlantılara eklendi tüm arayüzlerde. Ama beri yapılandırılmamıştır, sunucu üzerinden İnternet sayfalarına erişim sınırlıdır. kalamar yapılandırması yer almaktadır /etc/squid3/squid.conf ve 5,5 binden fazla satırdan oluşur ve sözdizimi pratik olarak diğer herhangi bir hizmetin yapılandırmasıyla aynıdır. Bir kesimde bazı ayarları değiştirmek için acele etmeye değmez. O zaman tırmıklamayın. Varsayılan olarak bize sunulan yapılandırmaya yorumsuz ve boş satırlara bakalım:

    Gw ~ # grep -v ^# /etc/squid3/squid.conf | grep -v ^$ acl yöneticisi proto cache_object acl localhost src 127.0.0.1/32::1 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32::1 acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # kayıtsız portlar acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT yöntemi CONNECT http_access izin yöneticisi localhost http_access reddetme yöneticisi http_access reddetme !Safe_ports http_access reddetme CONNECT !SSL_ports http_access izin verme localhost http_access tümünü reddetme http_port 3128 hiyerarşi_durdurma listesi cgi-bin ? coredump_dir /var/spool/squid3 fresh_pattern ^ftp: 1440 %20 10080 fresh_pattern ^gopher: 1440 %0 1440 fresh_pattern -i (/cgi-bin/|\?) 0 %0 0 fresh_pattern . 0 %20 4320

    Gördüğünüz gibi, varsayılan yapılandırmada proxy sunucusu çalışır ve yalnızca 127.0.0.0/8 adreslerinden erişime izin verir. Tüm listeyi dikkatlice incelemeli ve gereksiz veya kullanılmayan servislerin portlarını içeren satırları yorumlamalısınız. Bu yapılandırmanın daha eksiksiz anlaşılması, aşağıdaki bölümleri okuduktan sonra olacaktır. O. lux konsol tarayıcısını proxy'mizi işaret ederek başlatırsak, verilen sayfayı görebiliriz:

    Gw ~ # # belirtilen ya.ru sayfasıyla tarayıcıyı çalıştırın: gw ~ # http_proxy=http://127.0.0.1:3128 lynx ya.ru "ya.ru" aranıyor ilk önce gw ~ # # günlükte bir referans görüyoruz verilen sayfaya : gw ~ # cat /var/log/squid3/access.log 1329527823.407 110 127.0.0.1 TCP_MISS/200 9125 GET http://ya.ru/ - DIRECT/93.158.134.203 text/html

    Kalamar yapılandırma dosyasındaki bazı seçenekler birden çok kez kullanılabilir (örn. acl). Bazı parametreler, özellikle tek değerli olanlar, yalnızca bir kez kullanılabilir. Bu durumda bu parametre 2 veya daha fazla kez kullanıldığında son değer kullanılacaktır. Örneğin:

    Logfile_rotate 10 # Birden çok değer - son 5 olacak logfile_rotate 5

    kalamar yönetimi

    Dağıtımınızın kalamarının oluşturulduğu parametreler, squid3 -v komutuyla görüntülenebilir. Örneğin, Debian squeezy'de kalamar aşağıdaki seçeneklerle oluşturulmuştur:

    Prefix=/usr - diğer anahtarlar için önek: --mandir=$(prefix)/share/man - kılavuz sayfası depolama dizini --libexecdir=$(prefix)/lib/squid3 - yürütülebilir modüllerin bulunduğu dizin (yardımcılar dahil) -- sysconfdir=/etc/squid3 - yapılandırmayı depolamak için dizin --with-logdir=/var/log/squid3 - günlükleri ve daha fazlasını depolamak için dizin. diğer...

    kalamar kurma

    kalamar3 ayarlarının açıklaması ile başlayacağım temel ayarlar, herhangi bir proxy sunucusu yapılandırması kurulurken yapılması arzu edilir. Kalamar yapılandırması şurada bulunur: /etc/squid3/squid.conf, bu, tüm ayarları içeren ana yapılandırma dosyasıdır. (Debian ve RedHat dağıtımlarında, başlangıç ​​yapılandırma dosyalarındaki parametreler de başlangıçta görüntülenir. /etc/varsayılan/kalamar3 Ve /etc/sysconfig/squid3, sırasıyla). Ayrıca 5 binden fazla satır olduğundan ve anlamadan hemen bir şeyler kurmak için acele etmeye değmeyeceğinden bahsetmiştim. kalamar3 yapılandırma sözdizimi klasik: # içeren satırlar açıklamalardır, parametreler satırlardır " parametre değeri", kullanabilirsiniz. Yapılandırma dosyası kolaylık sağlamak için bölümlere ayrılmıştır, ancak parametrelerin öncelik sırasına göre "yukarıdan aşağıya" ayrıştırıldığını unutmamak önemlidir. parametre dahil harici yapılandırma dosyalarını dahil edebilirsiniz.

    Varsayılan olarak, Squid'in çalıştığı ana bilgisayarın adı şu şekilde çözümlenir: gethostname(), DNS ayarlarına bağlı olarak bazen loglarda ve hata çıktılarında çıkacak ismi net bir şekilde belirleyememektedir” Oluşturan … server.com tarafından (squid/3.0.STABLE2)". Ana bilgisayar adını doğru şekilde kaydetmek için, bu adı (FQDN??) parametreye girmeniz gerekir:

    Visible_hostname myproxy

    Squid varsayılan olarak tüm arabirimlerdeki bağlantıları kabul eder. Sunucumuz ağ arabirimlerinden biriyle dış dünyaya bakıyorsa, bağlantıların yalnızca LAN arabiriminde sınırlandırılması önerilir (örneğin, 10.0.0.10/24). Bunun sorumlusu http_port parametresi:

    Http_port 10.0.0.10:3128

    Bu parametrelerin nasıl çalıştığı aşağıdaki listede görülebilir:

    Gw ~ # # arka plan programını kurmadan önce test edin: gw ~ # netstat -antp | grep squ tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN 25816/(squid) gw ~ # # değişiklik yapıldı: gw ~ # grep ^http_port /etc/squid3/squid.conf http_port 10.0.0.10:3128 gw ~ # # değiştirilmiş gw yapılandırmasını yeniden yükle ~ # /etc/init.d/squid3 yeniden yükle Squid HTTP Proxy 3.x yapılandırma dosyaları yeniden yükleniyor. Tamamlandı. gw ~ # # değiştirilmiş yapılandırma ile işlemi kontrol edin: gw ~ # netstat -antp | grep squ tcp 0 0 10.0.0.10:3128 0.0.0.0:* LISTEN 25816/(kalamar)

    Gördüğünüz gibi, artık arka plan programı yalnızca belirtilen ağın arayüzünde çalışıyor. Ayrıca kalamarın yeni sürümlerinin (<3.1) поддерживают задание нескольких параметров http_port. При этом, у разных параметров могут быть указанны дополнительные ключи такие как intercept, tproxy, accel и др., например:

    Gw ~ # grep ^http_port /etc/squid3/squid.conf http_port 10.0.0.10:3128 http_port 10.0.0.10:3129 tproxy

    Bu parametreler proxy sunucusu çalışma modlarını ayarlar. Örneğin, tproxy (eski sözdizimi şeffaftır) . Bu modlar ayrı makalelere layıktır ve gelecekte dikkate alınabilir.

    Şimdi bir istemci bilgisayar kurmanız ve İnternet'i kullanmanız gerekiyor. Ancak varsayılan olarak erişime yalnızca yerel ana bilgisayardan izin verilir ve web'e erişmeye çalışırken kullanıcı bir "Erişim engellendi" hatası alır. /var/log/squid3/access.log günlüğü şuna benzer bir şey içerecektir:

    1329649479.831 0 10.0.1.55 TCP_DENIED/403 3923 GET http://ya.ru/ - YOK/- text/html

    LAN istemcilerinin çalışması için şunları yapmalısınız: erişim kontrol listeleriyle izinleri yapılandırın.

    Kalamar erişimini ayarlama

    Aslında erişim ayarı yatıyor nesne açıklaması aracılığıyla erişim acl parametresi, ve daha sonra çözünürlük veya çalışma yasağı ile açıklanan acl nesnesi "http_access" parametresi. En basit konfigürasyon veri formatı aşağıdaki gibidir:

    EKL listesi_adı seçimi_türü özellikler_seçim_türü

    Nerede acl- parametre açıklayan erişim kontrol Listesi, adı değer tarafından verilen liste adı. Ad büyük/küçük harfe duyarlıdır. seçim_türü verilen sonraki türü belirtir seçim_türü özelliği. Bu özellik şu kadar sık ​​kullanılan değerleri alabilir: kaynak(kaynaktan) - talebin kaynağı, dst- varış noktası, arp- Mac Adresi, srcdomain Ve dstdomain- sırasıyla kaynak ve hedefin alan adı, liman- liman, proto- protokol, zaman- zaman ve bir sürü diğerleri. Buna göre değer selection_type_characteristics bağlı olarak oluşacaktır. seçim_türü.

    Aynı adlara ve seçim_türlerine sahip birkaç acl dizesi belirtebilirsiniz; bu durumda acl verileri, mantıksal OR işlemiyle tek bir listede birleştirilecektir. Örneğin:

    acl site dstdomain site.com acl site dstdomain site.org # aynı: acl site dstdomain site.com site.org

    Kelimelerle, kulağa şöyle geliyor: site adlı erişim listesi, site.com VEYA site.org sitesine gönderilen tüm isteklerin sahibidir. Ayrıca escape_names büyük/küçük harfe duyarlıdır, yani acl sitesi ve acl Sitesi 2 farklı erişim listesidir.

    Erişim listeleri oluşturulduktan sonra, http_access parametresi belirtilen ACL'ye erişime izin verin veya erişimi reddedin. Genel çağrı formatı:

    Http_access izin ver|reddet [!]list_adı

    Nerede, http_access- sonraki izin kuralını belirten parametre ( izin vermek) veya yasaklar ( reddetmek) aşağıda belirtilen erişim liste adı. Bu durumda isteğe bağlı ünlem işareti, liste adının değerini tersine çevirir. Yani, bir ünlem işareti ile, değer liste adı gibi ses çıkaracak bu listeye ait olanlar dışında herkes. Ek olarak, bir boşlukla ayrılmış birkaç liste belirtebilirsiniz, ardından belirtilen tüm listelere aitse erişime izin verilir. Bu durumda, izin veren tüm kurallar, reddeden ALL kurallarından önce belirtilmelidir:

    http_access hepsini reddet

    Makul bir soru ortaya çıkabilir: Örneğin, kalamarın yalnızca seçilen acl'lere erişmesine izin veriyorsak, neden bu kuralı koyduk? Sonuçta, bu acl'ye girmeyen geri kalanlar, yani "geçip" ... Çok basit. Kalamar varsayılan olarak zıt izin verme/reddetme kuralını kullanır. Örneğin:

    # bazı acl kullanıcıları için tek bir izin verme kuralımız var: http_access allow kullanıcı # eğer müşteri kalamara erişirken bu acl'de değilse, reddetme eylemi ona uygulanacaktır. # Ve eğer iki kuralımız varsa http_access allow user http_access allow user2 # ve istemci ne acl user ne de acl user2'ye dahil değildir, o zaman allow ona uygulanacaktır. # Yani, son http_access kullanıcı2'yi reddetme eyleminin tersi

    Bu, dedikleri gibi - vakıfların temelleri. Basit bir örneğe bakalım. Diyelim ki 10.0.1.0/24 ve 10.0.0.0/24 olmak üzere 2 ağımız ve ayrıca İnternet erişimine izin verilmesi gereken bir ana bilgisayar 10.0.4.1'imiz var. Erişime izin vermek için, squid.conf dosyasının "ACCESS CONTROL" bölümünde yeni erişim listesinin açıklamasını oluşturmanız gerekir:

    acl lan kaynağı 10.0.1.0/24 10.0.0.0/24 acl lan kaynağı 10.0.4.1

    Daha fazla rahatlık için, bu kuralları yerinde belirterek yolu ayrı bir dosyada ayarlayabilirsiniz. seçim_türü özellikleri. Burada:

    Gw ~ # # erişim listelerini depolamak için ayrı bir dizin oluşturun gw ~ # mkdir /etc/squid3/acls/ gw ~ # # alt ağlarımızı ve ana bilgisayarlarımızı ayrı bir dosyaya koyun gw ~ # vim /etc/squid3/acls/lan.acl gw ~ # cat /etc/squid3/acls/lan.acl 10.0.1.0/24 10.0.0.0/24 10.0.4.1 gw ~ # # oluşturulan dosyayı yapılandırmada tanımlayın (yol tırnak içine alınmalıdır) gw ~ # grep lan.acl /etc /squid3/squid.conf acl lan src "/etc/squid3/acls/lan.acl"

    Oluşturulan lan erişim listesinin internete erişmesine izin verin ve mürekkep balığına yapılandırma dosyasını yeniden okumasını söyleyin:

    Gw ~ # grep lan /etc/squid3/squid.conf | grep acce http_access allow lan gw ~ # service squid3 reload Squid HTTP Proxy 3.x yapılandırma dosyaları yeniden yükleniyor. Tamamlandı.

    Bu bölümü kısaca özetlemek gerekirse, acl bir Web isteğini tanımlar ve http_access tanımlanan isteğe izin verir veya reddeder. Artık yerel müşterilerimiz, daha önce tarayıcıyı yapılandırmış olarak İnternet'i kullanmaktan mutlular!

    Kalamar önbelleği ayarlarını yapılandırma

    Kalamar kurulumunda önemli bir nokta kalamarda önbelleğe alma seçeneklerini ayarlama. Önbelleğin konumu ayarlandı cache_dir parametresi kalamar.conf'ta. Parametre formatı aşağıdaki gibidir:

    Cache_dir türü yol boyutu L1 L2

    Nerede, tip- bu önbellek oluşturma algoritmasıdır, belki: ufs (unix dosya sistemi), aufs (eşzamansız ufs), diskd(disk G/Ç'de kalamarın engellenmesini önlemek için harici işlemler). kullanılması tavsiye edilir ufs bazı övgüler olsa da aufs. Yol- dosya sistemindeki önbelleğin konumunu belirtir (mevcut olmalı ve kalamarın altında çalıştığı kullanıcı için yazma erişimine sahip olmalıdır - genellikle bir proxy). Boyut- önbelleğin temizlenmeye başlayacağı maksimum boyutu ayarlar. Bu parametre için ağda birçok holivar var. İdeal önbellek boyutu, istemci sayısına bağlı olarak 2 GB ile 10 GB arasındadır. Her 100.000 istek/gün için yaklaşık 1 GB önbellek. 5 GB ile devam ediyorum. Squid'de önbelleğe alınan her nesne ayrı bir dosyada bulunur, dosyaların kendileri tek bir yere dökülmez, ancak iki seviyeli bir dizin hiyerarşisi kullanılır. 1 ve 2 seviyeli katalogların sayısını ve parametrelerini belirleyin L1 ve L2. Bu değerler varsayılan olarak bırakılabilir. Ancak duruma uyum sağlamak için bog.pp.ru'dan alıntı yapacağım:

    Deney, 700 MB'lık bir önbellek ile birinci seviyeden yalnızca 2 dizinin kullanıldığını gösterdi. Yani, standart bir önbellek dizin yapısı için, bir milyon nesne (9 GB) ona "rahat" sığar, eğer daha fazlası varsa, o zaman üst düzey dizinlerin sayısını artırmanız gerekir

    birden fazla kullanabilirsiniz önbellek_dir. Bu, özellikle önbelleği farklı disklere yerleştirirseniz, performans üzerinde olumlu bir etkiye sahiptir. Önbelleği tmpfs içine yerleştirerek önbelleği daha da hızlandırabilirsiniz. her parametre için önbellek_dir içinde mümkün seçenekler bölümü salt okunur (salt okunur) ve maksimum boyut (maksimum nesne boyutu) seçeneklerini tanımlayın.

    Önbellekteki bir nesnenin maksimum boyutu, maximum_object_size parametresi tarafından belirlenir., varsayılan değer 4 MB'dir. Bu değeri 60 MB'a yükselttim çünkü. yerel ağdaki çalışanların genellikle aynı türdeki dosyaları belirtilen boyuta kadar indirmesi gerekir:

    Maximum_object_size 61440 KB

    Aynı şekilde? sahip olmak ve minimum_object_size parametresi nesnenin minimum boyutundan sorumludur, varsayılan olarak değeri “0” dır, yani devre dışıdır. Küçük nesneleri ararken disk üzerindeki yükü azaltacak olan bu parametrenin değerini 2-3 KB'ye yükseltmenizi öneririm.

    Veri deposu, kalamar tarafından kullanılan ayarlanır önbellek_mem parametresi, varsayılan değer 256 MB'dir (sürüm 3.1'de). Bu değeri varsayılan olarak bıraktım. Bu değeri yalnızca kalamar size günlüklerde sorarsa değiştirmeye değer. Bu değişikliklerden sonra squid'i yeniden başlatmanız gerekir, bu dizin yapısını oluşturacaktır:

    Gw ~ # service squid3 start Squid HTTP Proxy 3.x başlatılıyor: squid3Squid HTTP Proxy 3.x önbellek yapısı oluşturuluyor... (uyarı). 2012/02/19 22:58:21| Takas Dizinleri Oluşturma 2012/02/19 22:58:21| /var/spool/squid3 mevcut 2012/02/19 22:58:21| /var/spool/squid3/00 2012/02/19 22:58:21| /var/spool/squid3/01 2012/02/19 22:58:21| /var/spool/squid3/02 2012/02/19 22:58:21| /var/spool/squid3/03 2012/02/19 22:58:21| /var/spool/squid3/04 2012/02/19 22:58:21| /var/spool/squid3/05 2012/02/19 22:58:21| /var/spool/squid3/06 2012/02/19 22:58:21| /var/spool/squid3/07 2012/02/19 22:58:21| /var/spool/squid3/08 2012/02/19 22:58:21| /var/spool/squid3/09 2012/02/19 22:58:21| /var/spool/squid3/0A 2012/02/19 22:58:21| /var/spool/squid3/0B 2012/02/19 22:58:21| /var/spool/squid3/0C 2012/02/19 22:58:21| /var/spool/squid3/0D 2012/02/19 22:58:21| /var/spool/squid3/0E 2012/02/19 22:58:21| /var/spool/squid3/0F içinde dizinler yapmak.

    Kalamarın önbelleğinin ve belleğinin kullanımıyla ilgili birçok ilginç soru ve bunlara verilen yanıtlar açıklanmaktadır.Bu konuda, tam bir proxy sunucusu kurmak için tipik bir çözüm düşünebiliriz.

    kalamar şeffaf proxy yapılandırma örneği

    Nedir şeffaf vekil? Bu, proxy sunucusunun çalışma modudur. yapılandırılamaz bir proxy üzerinden çalışmak ve tarayıcı istemcisi doğrudan web sunucusuyla çalışıyormuş gibi HTTP protokolünü kullanarak ağa istekler göndermek. Aynı zamanda, zorunlu olarak (linux'ta - ) giden HTTP istekleri, proxy'nin çalıştığı bağlantı noktasına yönlendirilir. Proxy sunucusu ise HTTP isteklerini proxy sunucusu protokol isteklerine dönüştürür ve istemciye bir web sunucusu gibi yanıtlar gönderir. O. istemci şeffaf bir şekilde proxy sunucusuyla etkileşime girer.

    Anlamak ve bilmek önemlidir! Bu yöntem destekler sadece HTTP protokolü ve gopher, FTP veya diğer proxy'leri desteklemez. Ayrıca Squid, şeffaf modda ve kimlik doğrulama modunda aynı anda çalışamaz.

    Şeffaf modu ayarlamak için yapmanız gerekenler:

    1. Şeffaf modu ayarla proxy ayarlarında. Bu yapılır http_port parametresi, Örneğin:

    Http_port ip: bağlantı noktası şeffaf

    2. Kullanıcıları Kaydır iptables kullanarak istenen bağlantı noktasına karşılık gelen kural:

    Iptables -t nat -A PREROUTING -i incoming_interface_name -s LAN_subnet -p tcp --dport 80 -j REDIRECT --to-port kalamar_portu, örnek: iptables -t nat -A PREROUTING -i eth1 -s 10.0.0.0/24 - p tcp --dport 80 -j REDIRECT --to-port 3128

    Tüm. Proxy sunucumuzda sarılmış ve şüphelenmeyen kullanıcıların keyfini çıkarmak mümkündür.

    Sorun giderme

    Öncelikle, kalamar operasyonunun teşhisi yatıyor günlükleri görüntüleme konumlanmış /var/log/kalamar3. Çoğu sorun bu şekilde çözülür. Bu, sorunu çözmeye yardımcı olmadıysa, komutla arka plan programını hata ayıklama moduna geçirin kalamar3 -k hata ayıklama sorunu bulmak daha kolay olacaktır. Aslında kalamar günlüğü nedir? Günlük dosyaları, Squid'in yüklenmesi ve performansı hakkında çeşitli bilgiler içerir. /pre, erişim bilgilerine ek olarak, sistem hatalarını ve örneğin bellek veya disk alanı gibi kaynakların tüketimi hakkındaki bilgileri de günlüğe kaydetmek için yazar.

    Kalamar günlük dosyası biçimi bir veya daha fazla boşlukla ayrılmış bir değerler dizisidir:

    time.ms yanıt_zamanı ip_src Squid_req_status/HTTP_status byte_snd yöntem URL kullanıcı squid_her_status/ip_dst MIME

    • zaman- unix formatında zaman (00:00 1970.01.01'den itibaren saniye sayısı)
    • Hanım- 3 haneye kadar milisaniye
    • Tepki Süresi- tepki süresi, milisaniye
    • ip_src- Kaynak IP Adresi
    • kalamar_req_status- kalamar istek durumu (örneğin, önceden önbelleğe alınmış nesneler için TCP_HIT, istenen nesne yerel önbellekten alınmadıysa TCP_MISS, kardeş istekleri için UDP_HIT ve UDP_MISS aynıdır)
    • HTTP_status- http protokolü durumu (başarı için 200, UDP istekleri için 000, yönlendirmeler için 403, hatalar için 500)
    • bayt_snd- iletilen, HTTP başlığı dahil olmak üzere yanıt olarak bayt sayısı
    • yöntem- istek yöntemi GET veya POST
    • URL- istenen url
    • kullanıcı- yetkili kullanıcı adı
    • kalamar_her_status- kalamar hiyerarşisinin durumu - Kardeş/ebeveyn önbelleklerine yapılan isteklerin sonucu
    • ip_dst- İstenen düğümün IP adresi
    • MIME mim tipi

    Bir örneğe bakalım:

    1329732295.053 374 10.0.1.55 TCP_MISS/200 1475 http://www.youtube.com/live_comments? - DOĞRUDAN/173.194.69.91metin/xml

    Gördüğünüz gibi istek 1329732295.053'te yapıldı, uzak sunucunun yanıtı 374 ms oldu, sayfayı isteyen ana bilgisayar IP 10.0.1.55'e sahip, istenen nesne yerel önbellekten (TCP_MISS) aktarılmadı, sunucu yanıt kodu 200 idi, GET yöntemi kullanılarak istemciye 1475 bayt gönderildi, URL http://www.youtube.com/live_comments? istendi, kullanıcı adı tanımlanmadı, nesne doğrudan sunucudan IP ile alındı 173.194.69.91, metin geçildi, çünkü mime-metin/xml. Burada.

    kalamar3 hakkında bazı son noktalar

    Makalede, proxy sunucusunun temel ilkelerini ve ayrıca en basit önbellek sunucusunu uygulamanıza ve kalamarın şeffaf (şeffaf) modda çalışmasını düzenlemenize izin veren temel ayarları inceledim. Squid, çeşitli yetkilendirme seçeneklerini (IP, LDAP, MySQL, NTLM vb. Yoluyla), kanalın bant genişliğini sınırlama ve İnternet kaynaklarına erişimi kontrol etme özelliğini destekler. Bir kalamarın farklı yetkilendirme yöntemleri ile çalışmasını ve trafik kontrol örneklerini ilerleyen yazılarda ele alacağım.

    Makale çok yararlı, anlaşılması kolay ve oldukça ayrıntılı
    Koruma için buradan alınmıştır http://www.opennet.ru/base/net/squid_inst.txt.html

    anahtar kelimeler: kalamar proxy acl
    Gönderen: Zabudkin Lev Miroslavoviç
    Tarih: Cum, 14 Ocak 2005 15:04:58 +0500 (YEKT)
    Konu: Squid'i yeni başlayanlar için kurmak

    Aptallar için Squid'i kurma
    (29.10.2004 tarihli makale sürümü 1.0)

    Zabudkin Lev Miroslavoviç,
    Rusya, Tyumen bölgesi,
    G. Nizhnevartovsk,
    kurşun kodlayıcı
    MU "Kütüphane ve Bilgi Sistemi"
    [e-posta korumalı]
    http://zabudkin.com

    GİRİİŞ
    ———-

    Birçok yönetici makul kullanım sorunuyla karşı karşıyadır.
    İnternete erişmek için zaman ve kanal, olasılıkları düşünün
    zamandan ve paradan tasarruf edin, belirli türler için hız sınırları
    dosyalar veya kişilikler, sonunda ilgili her şeyi kaydetme hakkında
    küresel ağa erişimin belirli yönleri.

    Bu makalenin yardımıyla, hakkında açık ve anlaşılır bir şekilde açıklamaya çalışacağım.
    en yaygın proxy sunucusunun ayarları - proxy
    Kalamar sunucuları.

    KULLANICI ERİŞİMİ İÇİN İLK SQUID AYARLARI
    —————————————————

    Bir Squid proxy sunucusu kurma sürecine girmeyeceğiz, ancak
    Ayarlamaya geçelim.

    Kurulumdan sonra yapmamız gereken en temel şey
    yerel ağımızın kullanıcılarına erişime izin ver. Bunun için hizmet ediyorlar
    http_port, http_access parametreleri. Ek olarak, acl (liste) alacağız.
    erişim kontrolü) yerel ağımız için.

    Ve böylece, proxy sunucumuz Squid olduğu sürece http_port'a ihtiyacımız var
    yalnızca yerel ağımızdaki bilgisayarlara hizmet vermeli ve
    "kötü" olasılığını dışlamak için dış dünyaya görünmez
    kanalımızı veya trafiğimizi kullanmak için harici ağın "kişileri" ve
    proxy sunucu kodunda "delikler" bulunması durumunda
    Kalamar, onlardan yararlan.

    http_access parametresi, erişime izin vermek veya erişimi reddetmek için kullanılır.
    belirli kaynaklara, belirli adreslere veya belirli
    adresler, belirli sitelere, belirli protokollere, bağlantı noktalarına ve
    Acl kullanılarak doğrudan belirtilen her şey (kontrol listeleri
    erişim).

    Tablo N 1. Bazı alt ağlar.

    |Adres aralığı |Uzun biçim |Kısa biçim
    192.168.0.1-192.168.0.254 192.168.0.0/255.255.255.0 192.168.0.0/24
    192.168.20.1-192.168.20.254 192.168.20.0/255.255.255.0 192.168.20.0/24
    192.168.0.1-192.168.254.254 192.168.20.0/255.255.0.0 192.168.20.0/16
    10.0.0.1-10.254.254.254 10.0.0.0/255.0.0.0 10.0.0.0/8

    192.168.0.1 ila 192.168.0.254 adresleri olan bir ağınız olduğunu varsayalım,
    sonra yeni bir Acl ekleyin (bkz. tablo N1):

    acl LocalNet kaynağı 192.168.0.0/24

    Şu adreste bulunan bir Squid proxy sunucunuz olduğunu varsayalım:
    3128 numaralı bağlantı noktasında 192.168.0.200, ardından yapılandırma dosyasına şunu yazıyoruz:

    http_port 192.168.0.200:3128

    Bir sonraki eylemimiz, proxy'mizin kullanımını devre dışı bırakmak olacaktır.
    yerel ağımızın kullanıcıları dışındaki sunucular:

    http_access LocalNet'e izin ver
    http_access hepsini reddet

    Bu durumda, izin ver kelimesi izindir ve reddetme kelimesi
    reddet, yani Squid proxy sunucusuna erişime izin veriyoruz.
    yerel ağımızın adreslerini ve diğer herkesin erişimini reddedin.

    Squid bunları kullandığı için http_access'i belirtirken dikkatli olun.
    sizin tarafınızdan belirtilen sırayla.

    ÖĞRENME ACL (Erişim Kontrol Listeleri)
    ————————————-

    Squid proxy sunucusundaki erişim kontrol sistemi çok esnektir
    ve kapsamlı. Değerlere ve erişim listelerine sahip öğelerden oluşur c
    izin verme (izin verme) veya reddetme (yasaklama) belirleme.

    ACL formatı aşağıdaki gibidir:

    acl adı öğe listesi

    Erişim listesi formatı:

    acl_name belirten http_access

    Proxy kullanmanıza izin veren bazı unsurlara bakacağız.
    Kalamar sunucusu, elbette örneklerle:

    * acl adı kaynak listesi

    Bu öğe (src) ile kaynağın IP adresini belirtiriz, yani.
    isteğin proxy sunucumuza geldiği istemci.

    Aşağıdaki örnekte Vasya Pupkin ve departmana izin vereceğiz.
    proxy sunucumuza programlama (Progs) erişimi ve tüm
    gerisi yasaklanacak:

    acl Progs src 192.168.0.1-192.168.0.9
    acl Pupkin src 192.168.0.10
    http_access Prog'lara izin ver
    http_access Pupkin'e izin ver
    http_access hepsini reddet

    * acl adı dst listesi

    Bu öğe (dst), hedef IP adresini, yani IP adresini belirtir.
    proxy sunucusu istemcisinin erişmek istediği sunucu.

    Aşağıdaki örnekte, Vasya'nın 194.67.0.0/16 alt ağına (
    örneğin, aynı aport.ru'yu içerir):

    acl Net194 dst 194.67.0.0/16
    http_access Pupkin Net194'ü reddet

    * acl dst alan adı listesi

    Bu öğe (dstdomain) ile etki alanını, erişimi belirtiriz.
    proxy sunucusu istemcisinin almak istediği.

    Aşağıdaki örnekte, Vasya'nın warez sitelerine nnm.ru ve
    kpnemo.ru:

    acl SitesWarez dstdomain .nnm.ru .kpnemo.ru
    http_access Pupkin SitesWarez'i reddet

    Kaynak etki alanını belirtmek gerekirse, kullanın
    srcdomain.

    * acl adı [-i] srcdom_regex listesi
    * acl adı [-i] dstdom_regex listesi

    Bu öğeler, srcdomain ve dstdomain'den yalnızca içerdikleri özelliklerle farklılık gösterir.
    Bu makalede kullanmayacağımız düzenli ifadeler kullanılır.
    Bir göz atalım, ama işte bir örnek:

    Acl SiteleriRegexSex dstdom_regex sex
    Acl SitesRegexComNet dstdom_regex \.com$ \.net$
    http_access Pupkin SitesRegexSex'i reddet
    http_access Pupkin SitesRegexComNet'i reddet

    Bu örnekte, Vasily Pupkin'in tüm alanlara erişimini engelledik,
    seks kelimesini içeren ve .com ve .net bölgelerindeki tüm alan adlarına.

    -i anahtarı, normal ifadelerdeki karakterlerin durumunu yok saymak için tasarlanmıştır.

    * acl adı [-i] url_regex listesi

    Bu öğeyle (url_regex) düzenli bir kalıp belirtiriz
    URL ifadeleri.

    sex kelimesiyle başlayan avi uzantılı dosyaların belirtilmesine bir örnek:

    acl NoAviFromSex url_regex -i sex.*\.avi$

    Yalnızca URL yolu için bir kalıp belirtmek isterseniz, örn.
    protokol ve ana bilgisayar (etki alanı) adı hariç, ardından urlpath_regex kullanın.

    Müzik dosyalarını belirtmek için örnek:

    acl ortamı urlpath_regex -i \.mp3$ \.asf$ \.wma$

    * acl acl_name bağlantı noktası listesi

    Hedef port numarasının, yani gitmek istediği portun belirtilmesi
    proxy sunucumuzun istemcisi bağlanacaktır.

    Örnek olarak, herkesin Mirc programını proxy'miz aracılığıyla kullanmasını yasaklayacağız.
    sunucu:

    Acl Mirc bağlantı noktası 6667-6669 7770-7776
    http_access tüm Mirc'leri reddet

    * acl acl_name protokol listesi

    Aktarım protokolünü belirtin.

    Örnek olarak, FTP protokolünün yukarıda bahsedilen Vasya tarafından kullanılmasını yasaklayacağız.
    proxy sunucumuz aracılığıyla:

    acl ftpproto protokol ftp
    http_access Pupkin ftpproto'yu reddet

    * acl acl_name yöntem listesi

    İstemci tarafından http istek yönteminin belirtilmesi (GET, POST).

    Vasya Pupkin'in izlemesinin yasak olduğu bir durumu ele alalım.
    mail.ru sitesinde posta, ancak aynı zamanda sitede onsuz dolaşmanıza izin verir.
    yasaklar, yani Vasya'nın posta kutusuna girmesini yasaklamak
    sitedeki giriş formu aracılığıyla:

    acl SiteMailRu dstdomain .mail.ru
    acl methodpost yöntemi POST
    http_access, Pupkin methodpost SiteMailRu'yu reddediyor

    KULLANICI SINIRLAMALARI
    ————————-

    Ülkemizde oldukça sık olarak, erişim kanalının içinde olduğu bir durum vardır.
    tüm kullanıcılar için küresel İnternet ağı yeterli değildir ve
    herkese maksimum verme arzusu, ancak aynı zamanda kanalı vermemek
    Dosya yüklemeyi sevenler yüzünden "bükülmüş".

    Squid proxy araçları, bunun çeşitli şekillerde elde edilmesini sağlar:

    - birinci yol, nesnelerin önbelleğe alınmasını optimize etmektir;

    - ikincisi, belirli kullanıcılar için geçerli olmayan bir süre sınırıdır.
    oldukça doğru;

    - üçüncü yol, belirli türler için hızı sınırlamaktır
    dosyalar, kullanıcılar ve Acl aracılığıyla tarafımızca tanımlanan her şey.

    ZAMAN SINIRLARI
    ———————-

    Kullanıcıları zamana göre şu şekilde sınırlayabilirsiniz:

    acl adı zaman gün ss:dd-hh:dd

    Gün nerede: M - Pazartesi, T - Salı, W - Çarşamba, H - Perşembe, F -
    Cuma, A - Cumartesi, S - Pazar.

    Bu durumda ss:dd, SS:DD'den küçük olmalıdır, yani ile belirtebilirsiniz.
    00:00-23:59, ancak 20:00-09:00 olarak belirtemezsiniz.

    Aynı Vasya'nın 10'dan internete erişmesini yasaklayalım.
    Her gün 15 saat:

    acl TimePupkin zamanı 10:00-15:00
    http_access Pupkin TimePupkin'i reddediyor

    Vasya'nın Mirc programını 13'ten 14'e kullanmasına izin vermek istiyorsanız
    saat yazıyoruz:

    acl TimePupkin zamanı 13:00-14:00
    http_access izin ver Pupkin TimePupkin Mirc
    http_access Pupkin Mirc'i reddet

    Ya belirli günlerde yasaklamanız veya izin vermeniz gerekirse?
    haftalar? Kalamar da bunu yapmanıza izin verir, örneğin 13'ten 14'e
    Pazartesi ve Pazar:

    acl TimePupkin zamanı MS 13:00-14:00

    Gördüğünüz gibi, bu konuda karmaşık bir şey yok.

    HIZ LİMİTLERİ
    ————————

    Squid proxy sunucusunda hız kontrolü kullanılarak gerçekleştirilir.
    havuzlar. Havuz, içinde sürekli bira bulunan bir tür bira fıçısıdır.
    ağzına kadar doldurulur ve müşteriler bardaklarına veya diğer kaplara doldurur
    aracılığıyla ihtiyaç duyulduğunda daha fazla iç tüketim için
    kişisel dokunuşlar

    Havuzlar üç parametre kullanılarak düzenlenir: gecikme_sınıfı,
    gecikme_parametreleri, gecikme_erişimi. Havuz sayısı kullanılarak belirtilir
    delay_pools parametresi.

    Havuzlar üç sınıfta olabilir:

    1. Tüm bira akışı tek bir dokunuşla sınırlıdır (tüm ağ için).

    2. Tüm bira akışı tek bir muslukla sınırlıdır, ancak musluk bölünmüştür
    vinçler için (her IP için).
    3. Tüm bira akışı tek bir muslukla sınırlıdır, ancak musluk ikiye bölünmüştür
    ayrıca mini vinçlere (alt ağlara) bölünmüş vinçler (alt ağlara)
    her IP).

    delay_pools sayı_of_declared_pools
    gecikme_erişim havuzu_numarası eylem acl_adı

    eylem izin verebilir (izin verebilir) ve reddedebilir (yasaklayabilir). nerede,
    bu havuz izin verilenler için geçerlidir ve izin verilenler için geçerli değildir.
    kime yasak. allow all belirtilmişse ve ardından Pupkin'i reddediyorsa,
    o zaman bu sınıf Pupkin'i etkilemeye devam edecek, çünkü Pupkin'in IP adresi
    acl'de bildirilen Pupkin, acl tüm adresler listesindedir. Sahip olmak
    görünümünde.

    gecikme_sınıfı havuz_numarası havuz_sınıfı
    gecikme_parametreleri havuz_numarası parametreleri

    parametreler havuz sınıfına göre değişir:

    birinci sınıf için:

    gecikme_parametreleri 1 byte_to_whole_network

    ikinci sınıf için:

    gecikme_parametreleri ağ başına istemci başına 1

    üçüncü sınıf için:

    gecikme_parametreleri 1 her_whole_network her_subnet herclient için

    Örneğin, 128 Kb'lik bir kanalımız var (saniyede ortalama 15 Kb) ve biz
    Vasya'nın (Pupkin) sadece 4 Kbyte / sn vermesini diliyoruz (her şey hakkında her şey için bir
    küçük cam), programlama departmanına (Prog) toplam 10 verin
    KB/sn ve her biri için yalnızca 5 KB/sn (yalnızca iki bardak), tümü
    gerisini her biri için 2 Kb/s ve tümü için 10 Kb/s ile sınırlayın ve
    mp3 dosyaları (medya) tümü için saniyede 3 Kbyte ile sınırlıdır (tüm varil için)
    bira çok küçük bir musluk). Sonra şunu yazıyoruz:

    acl Prog kaynağı 192.168.0.1-192.168.0.9
    acl Pupkin src 192.168.0.10
    acl LocalNet kaynağı 192.168.0.0/255.255.255.0
    acl ortamı urlpath_regex -i \.mp3$ \.asf$ \.wma$

    gecikme havuzları 4
    # ilk sınır mp3
    gecikme_sınıfı 1 1
    gecikme_parametreleri 1 3000/3000
    delay_access 1 medyaya izin ver
    delay_access 1 hepsini reddet
    # zavallı Vasya'yı sınırla
    gecikme_sınıfı 2 1
    gecikme_parametreleri 2 4000/4000
    delay_access 2, Pupkin'e izin verir
    delay_access 2 hepsini reddet
    # programlama departmanını sınırlayın
    gecikme_sınıfı 3 2
    gecikme_parametreleri 3 10000/10000 5000/5000
    delay_access 3 Prog'a izin verir
    delay_access 3 hepsini reddet
    # ve şimdi geri kalanını kısıtlıyoruz (havuzun ikinci sınıfı)
    gecikme_sınıfı 4 2
    gecikme_parametreleri 4 10000/10000 2000/2000
    delay_access 4 medyayı reddet
    delay_access 4 Pupkin'i reddet
    delay_access 4 Prog'u reddet
    delay_access 4 LocalNet'e izin verir
    delay_access 4 hepsini reddet

    Sıklıkla şu soru ortaya çıkar: Bu kadar küçük bir cihazı kullanmanın en iyi yolu nedir?
    kanal, şu anda tüm kişiler arasında otomatik olarak paylaşılacak şekilde
    bir şey yüklüyor mu? Bu sorunun kesin bir cevabı var -
    Squid proxy sunucusunu kullanarak bunu yapmak mümkün değildir, ancak yine de
    yapabileceğiniz bir şey:

    gecikme_sınıfı 1 2
    gecikme_parametreleri 1 -1/-1 5000/15000
    delay_access 1 LocalNet'e izin verir
    delay_access 1 hepsini reddet

    Böylece, tüm ağımız ve alt ağlarımız için maksimum tahsis ediyoruz.
    kanal (-1, sınırsız anlamına gelir) ve verdiğimiz her kullanıcı için
    indirdikten sonra maksimum 5 Kb/sn hız
    belgenin ilk 15 KB'lik hızı.

    Böylece, müşteri tüm kanalı yemeyecek, ancak hızlı bir şekilde alacaktır.
    ilk 15 KB.

    SQUID'DE NESNE Önbelleğe Alma İşlemini Optimize Etme
    ——————————————

    Yeterince güncellenmemiş birçok dosya türü vardır.
    genellikle proxy sunucusunun başlıklara yanıt vermesine izin vermek için
    Bu nesnenin önbelleğe tabi olmadığı veya önbelleğe alındığı web sunucuları
    şaşırtıcı bir şekilde sadece değişti. Bu oldukça yaygın bir durumdur.

    Bu tür durumları çözmek için, dosyadaki fresh_pattern parametresi
    Kalamar proxy ayarları, ancak tamamen formüller vb. biz o
    dikkate alınmayacaktır.

    fresh_pattern [-i] dize MINV yüzdesi MAXV parametreleri

    Bu parametre bir nesnenin yaşını belirlemek için kullanılır.
    (okuma dosyası) önbellekte yenilenmesi gerekip gerekmediği.

    MINV (minimum süre) - nesnenin mevcut olduğu dakika cinsinden süre
    önbellek yeni kabul edilir.

    MAXV (maksimum süre) - nesnenin bulunduğu dakika cinsinden maksimum süre
    taze sayılır

    Seçenekler, aşağıdaki seçeneklerden biri veya birkaçıdır:

    - geçersiz kılma süresi - nesnenin tazeliğinin sona ermesiyle ilgili bilgileri yok sayın
    ve minv'yi kullanın.

    - geçersiz kılma-lastmod - dosya değiştirme tarihi bilgisini yok sayın ve
    MINV'yi kullanın.

    - ims içine yeniden yükle - bir müşteri isteği istemek yerine "önbelleğe alma
    belgeler" (önbelleksiz) "Değiştirildiyse" isteği gönder
    (Eğer-Değiştirildiyse-Başından beri)

    - yoksay-yeniden yükle - "belgeleri önbelleğe alma" istemci isteklerini yoksayın
    (önbellek yok) veya "belgeyi yeniden yükle" (yeniden yükle).

    Ve böylece, en önemli şeye geliyoruz. Peki, ne tür dosyalar daha az yaygındır?
    hepsi güncellendi mi? Kural olarak, bunlar çeşitli müzik dosyalarıdır ve
    Resimler.

    Resimler ve müzik dosyaları için nesnelerin tazeliğini ayarlayın
    örneğin 30 gün (43200 dakika) kadar diyelim:

    fresh_pattern -i \.gif$ 43200 %100 43200 geçersiz kılma-son mod geçersiz kılma-süresi
    fresh_pattern -i \.png$ 43200 %100 43200 geçersiz kılma-son mod geçersiz kılma-süresi
    fresh_pattern -i \.jpg$ 43200 %100 43200 geçersiz kılma-son mod geçersiz kılma-süresi
    fresh_pattern -i \.jpeg$ 43200 %100 43200 geçersiz kılma-son mod geçersiz kılma-süresi
    fresh_pattern -i \.pdf$ 43200 %100 43200 geçersiz kılma-son mod geçersiz kılma-süresi
    fresh_pattern -i \.zip$ 43200 %100 43200 geçersiz kılma-son mod geçersiz kılma-süresi
    fresh_pattern -i \.tar$ 43200 %100 43200 geçersiz kılma-son mod geçersiz kılma-süresi
    fresh_pattern -i \.gz$ 43200 %100 43200 geçersiz kılma-son mod geçersiz kılma-süresi
    fresh_pattern -i \.tgz$ 43200 %100 43200 geçersiz kılma-son mod geçersiz kılma-süresi
    fresh_pattern -i \.exe$ 43200 %100 43200 geçersiz kılma-son mod geçersiz kılma-süresi
    fresh_pattern -i \.prz$ 43200 %100 43200 geçersiz kılma-son mod geçersiz kılma-süresi
    fresh_pattern -i \.ppt$ 43200 %100 43200 geçersiz kılma-son mod geçersiz kılma-süresi
    fresh_pattern -i \.inf$ 43200 %100 43200 geçersiz kılma-son mod geçersiz kılma-süresi
    fresh_pattern -i \.swf$ 43200 %100 43200 geçersiz kılma-son mod geçersiz kılma-süresi
    fresh_pattern -i \.mid$ 43200 %100 43200 geçersiz kılma-son mod geçersiz kılma-süresi
    fresh_pattern -i \.wav$ 43200 %100 43200 geçersiz kılma-son mod geçersiz kılma-süresi
    fresh_pattern -i \.mp3$ 43200 %100 43200 geçersiz kılma-son mod geçersiz kılma-süresi

    Yukarıda gösterilen ayarlar, açıklık açısından sadece bir örnektir.
    öz.

    Artık proxy sunucunuzun etkinliğini kontrol edebilirsiniz.
    kesinlikle artacaktır.

    ÇÖZÜM
    ———-

    Squid proxy sunucusu tek ortak proxy değil
    sunucu, başkaları da var. Ama istatistikler gösteriyor ki çoğu
    bu belirli proxy sunucusunu kullanın, ancak yine de birçok
    Yeni başlayanlar kurulumda sorun yaşarlar.

    Bu makalenin yardımıyla, kapsamlı için en azından biraz ortaya çıkarmaya çalıştım.
    Squid proxy sunucusunun bazı işlevlerini toplar.

    Yayınlanan: ,
    etiketlendi: , , Artık çeşitli insan grupları için bir indirme hız sınırı olacak. Hazır mısın? :) Gitmek…

    Başlangıç. EKL oluştur

    EKL grupları oluşturun:
    acl mp3_deny src "/etc/squid/lists/mp3_deny_users"
    acl super_users src "/etc/squid/lists/super_users"
    acl deny_all src "/etc/squid/lists/deny_all_users"

    Bu nedenle, adresleri dosyalarda bulunan listeler veya daha doğrusu üç kullanıcı grubu oluşturduk. IP'ler benden önce atandığından ve neyin indirilip neyin indirilemeyeceği konusunda anlaşamadıkları için, IP'lerini bir dosyaya yazmak, aralık oluşturmaktan daha kolay olacaktır, ama ne istersen :)
    acl mego_super_user src 192.168.0.0-256 # =) sadece bu aralığa dikkat edin
    Liste dosyası içeriği örneği
    nano "/etc/squid/lists/mp3_deny_users"
    192.168.0.213
    192.168.0.75
    192.168.0.52
    195.168.0.254

    Şimdi reddedilen izinlerin bir listesini oluşturmanın zamanı geldi:
    acl mobil urlpath_regex -i (\.thm|\.sis|\.swf|\.jad|\.jar|\.3gp|\.mp4)((\#|\&|\?|\s)(1 )|$)
    acl multimedya urlpath_regex -i (\.swf|\.mp3|\.m3u|\.flv|\.wav|\.vqf|\.avi|\.wmv|\.mpeg|\.mp|\.asf| \.mpe|\.dat|\.mpg|\.wma|\.midi|\.aiff|\.au|\.qt|\.ram|\.rm|\.iso|\.raw|\. mov)((\#|\&|\?|\s)(1)|$)
    acl arşivi urlpath_regex -i (\.tar.gz|\.gz|\.tar|\.zip|\.rar|\.cab|\.arj|\.lzh|\.ace|\.7-zip| \.gzip|\.uue|\.bz2|\.iso)((\#|\&|\?|\s)(1)|$)
    acl soft urlpath_regex -i (\.exe|\.msi|\.rpm)((\#|\&|\?|\s)(1)|$)
    acl mp3 urlpath_regex -i (\.wav|\.mp3|\.mp4)((\#|\&|\?|\s)(1)|$)

    Hepsi bu kadar, altıncı kova büyük ilgi görüyor:
    her biri her şeyi 10'luk bir hızda pompalar, alt ağda hız aşarsa, o zaman kesme kanalı başlar,
    Diğer alt ağlardan da indirirlerse ve ikiden fazla varsa, o zaman bile hız düşmeye başlar ...
    Bunu bir fritya üzerinde yaparsanız, kalamar oluştururken, onu --enable-delay-pools seçeneğiyle oluşturduğunuzdan emin olun!
    Not: Mümkün olduğunca açık hale getirmek için elimden gelenin en iyisini yapmaya çalıştım. Anlamanıza yardım ettiysem, bu konuyu boşuna yazmadım. Çok mutlu olacağım. Bir şey net değilse, soru sorun, kesinlikle cevaplayacağım.
    Not: Varsayılan kalamar yapılandırması, tüm bunları bir rüyada yazmaya yardımcı oldu, okumaya başlarsanız, birçok yeni şey öğrenebilirsiniz!
    P.S.S.S Sevgili KorP, ne yazık ki artık domain için zaman yok, o yüzden şimdilik kafamdakini yazıyorum.
    güncelleme
    answer_body_max_size 1000, 1 kilobayttan büyük tüm dosyaların indirilmesine izin vermez

    SQUID, istemcilerden HTTP/FTP isteklerini alan ve bunları İnternet kaynaklarına erişmek için kullanan bir programdır. Bir proxy sunucusunun (mürekkep balığı) kullanılması, dahili ağda hayali IP adreslerinin kullanılmasını mümkün kılar (Masquerading - maskeleme), yeniden erişildiğinde istek işleme hızını artırır (önbelleğe alma) ve ayrıca ek güvenlik sağlar.

    Tarayıcı önbelleğe alma işlevlerini yerine getirdiğinden, ev makinenize bir proxy kurmanın bir anlamı yoktur. Proxy sunucusu, yalnızca ağınızda İnternet erişimine ihtiyaç duyan üç veya dört bilgisayar varsa kullanılmalıdır. Bu durumda, tarayıcıdan proxy sunucusuna yapılan istek, tarayıcıdan İnternet kaynaklarına göre daha hızlı işlenir ve bu nedenle performans artar. Bu durumda, istemci tarayıcılarda önbellek boyutunu güvenle sıfıra ayarlayabilirsiniz.

    SQUID, bir proxy sunucusundan daha fazlasıdır. Bu, İnternette bilgileri önbelleğe almak için bir tür standarttır. SQUID'in her yerde bulunması nedeniyle, kitapta yapılandırmaya çok dikkat ettim.

    Kalamar proxy sunucusu, kalamar sunucusu programının kendisi ve ayrıca bir DNS sorgu işleme programı olan dnsserver programı dahil olmak üzere birkaç programdan oluşur. Kalamar programı başladığında, önce belirli sayıda dnsserver işlemi başlatır, her biri kendi başına çalışır ve yalnızca bir DNS araması yapabilir. Bu, genel DNS yanıtı zaman aşımını azaltır.

    15.2. SQUID'i Yükleme

    SQUID, kaynaktan veya bir RPM paketi olarak kurulabilir. SQUID RPM paketini kurmak çok kolaydır - tek yapmanız gereken komutu girmek

    rpm –ih kalamar-2.3.STABLE2-3mdk.i586.rpm

    Kalamar sürüm 2.3 kullanıyorum. Kaynak kodları olarak daha yeni bir sürüm mevcuttur. Kaynaklar ftp://ftp.squid.org adresinden temin edilebilir. Kaynak kodlarını paketinden çıkarmak için aşağıdaki komutları çalıştırın:

    gunzip kalamar-2.3.STABLE2-3-src.tar.gz
    tar xvf kalamar-2.3.STABLE2-3-src.tar.gz

    Şimdi doğrudan kuruluma geçelim:

    ./configure --prefix=/usr/local/squid

    SQUID, önek anahtarı - /usr/local/squid tarafından belirtilen dizine yüklenecektir. Ön eke ek olarak, Tabloda sunulan tuşları da kullanabilirsiniz. 15.1.

    komut dosyası seçeneklerini yapılandırma Tablo 15.1

    15.3. SQUID'i ayarlama

    SQUID sunucusu, genellikle /etc/squid dizininde (veya önceki sürümlerde /usr/local/squid/etc) bulunan squid.conf yapılandırma dosyasını kullanır. joe/usr/local/squid/etc/squid.conf gibi herhangi bir metin düzenleyiciyle açın. Ardından, aşağıdaki işlem sırasını gerçekleştirin:

    1. Sağlayıcı proxy'sini belirtin:

    Bu durumda proxy .isp.ru bizim "komşumuz" (komşu, eş) olur.

    2. Kalamarın kullanabileceği bellek miktarını ve önbellek dizini ayarlayın:

    cache_dir /usr/yerel/kalamar/önbellek 1024 16 256

    burada: 65536 - önbellek için kullanılabilecek bayt cinsinden RAM miktarı;

    1024 - önbellek için belirtilen dizinde diskte ayrılan megabayt sayısı. Bu dizin, önbelleğe alınan dosyaları depolar. Söylemeye gerek yok, birkaç sabit sürücünüz varsa, önbellek en hızlı olana yerleştirilmelidir.

    3. Proxy sunucusuna erişmesine izin verilen ana bilgisayarları belirtin:

    acl'ye izin verilen ana makineler src 192.168.1.0/255.255.255.0
    acl localhost src 127.0.0.1/255.255.255.255

    4. İzin verilen SSL bağlantı noktalarını belirtin:

    http_access CONNECT !SSL_ports'u reddet

    ve şunları yapabilenler dışında herkesin erişimini reddedin:

    http_access allow allow_hosts

    6. Kalamar kullanmasına izin verilen kullanıcıları belirtin (bu örnekte bunlar den, admin, geliştirici):

    acl allow_users kullanıcı ve yönetici geliştirici
    http_access allow allow_users

    maxium_object_size ve maxium_object etiketleri, geçirilen nesnelerin boyutuna sınırlar koyar.

    Aşağıda, model oyunlarıyla eşleşen herhangi bir URL'ye erişimin reddedilmesine ve diğer tüm URL'lere erişime izin verilmesine ilişkin bir örnek verilmiştir:

    15.4. SQUID'i Çalıştırmak

    SQUID'in temel kurulumunu tamamladığınıza göre, çalıştırmanız gerekir: /usr/local/squid/bin/squid -z

    Önbelleği içeren dizini oluşturmak (sıfırlamak) için -z seçeneği gereklidir. Genellikle bu parametreye yalnızca ilk çalıştırmada ihtiyaç duyulur. Diğer bazı faydalı SQUID parametreleri Tablo 1'de gösterilmektedir. 15.2.

    SQUID parametreleri Tablo 15.2

    Parametre Tanım
    -bir liman Gelen HTTP istekleri için bağlantı noktasını belirtir
    -D Hata ayıklama çıktısını standart hataya etkinleştirir (stderr'de)
    -f dosyası Bir yapılandırma dosyası belirtir
    -H Yardım bilgileri sağlar
    -k yeniden yapılandır HUP sinyali gönderir
    -k kapatma Proxy sunucusunu kapatma
    -k öldür Günlükleri kapatmadan tamamlama
    -u bağlantı noktası Gelen ICP istekleri için bağlantı noktasını belirtir
    -S Syslog ile günlüğe kaydetmeyi etkinleştir
    -v SQUID sürümü hakkında bilgi verir.
    -D Başlangıçta DNS testi yapma
    -N Bir arka plan programı olma (arka plan süreci)
    -Y Daha hızlı felaket kurtarma

    15.5. kalamar.conf dosya biçimi

    squid.conf dosyası, çeşitli proxy sunucusu yapılandırma seçeneklerini içerir. Hepsine sırayla bakalım.

    15.5.1. Ağ ayarları

    İstemci istekleri için bağlantı noktası (bkz. Şekil 15.1):

    Pirinç. 15.1. Vekil sunucu Ayarları


    "Komşular" (eş) yoksa, icp_port 0'ı ayarlayın

    Komşularla iletişim için bağlantı noktası - ICP - TCP aracılığıyla. Bu seçeneği kullanırken, htcp_port 4827'yi ayarlarken --enable-htcp anahtarını ayarlamanız gerekir.

    Bir sonraki parametre, ana bilgisayarın birden çok arabirimi varsa, gelen paketlerin hangi adresten alınacağını belirtir. Sürüm 2.3'te bu seçenek yoktur:

    Bilgi gönderirken, kaynak olarak belirtilen adres kullanılacaktır:

    Aynı, ancak ICP için:

    (benzer şekilde, ICP için)

    Aynı, ancak ICP için (alırken):

    Varsayılan olarak, bu mod etkindir, ancak proxy sunucusu bir kalenin (güvenlik duvarı) arkasındaysa, o zaman pasif_ftp parametresi devre dışı bırakılmalıdır:

    15.5.2. komşu seçenekleri

    Komşular aşağıdaki formatta açıklanmıştır:

    cache_peer ana bilgisayar adı türü proxy bağlantı noktası icp bağlantı noktası seçenekleri

    burada: ana bilgisayar adı - komşunun adı;

    tür - komşu tür: ebeveyn - kıdemli, kardeş - aynı düzeyde;

    proxy bağlantı noktası - proxy sunucu bağlantı noktası;

    icp bağlantı noktası - ICP bağlantı noktası;

    seçenekler - seçenekler.

    Bu durumda her komşu ayrı bir satıra yazılır.

    Ebeveyn - yerel önbellekte istek yoksa, ebeveyne yönlendirilir; istek önbelleğinde değilse, daha ileri iletir, vb. Bağımlıya hazırlanmış bir yanıt döndürür. Kalamar ebeveynden TCP_DENIED alırsa, kaynağa doğrudan erişilir.

    Kardeş - istek yerel önbellekte değilse kardeşe yönlendirilir; içinde herhangi bir istek yoksa bununla ilgili bir mesaj döndürür, başka bir işlem yapılmaz.

    15.5.3. önbellek yönetimi

    Bu önbellek doluluk düzeyine (yüzde olarak) ulaşıldığında, hızlandırılmış eski nesneleri silme işlemi başlar.

    Bu seviyeye ulaşıldığında silme işlemi durur.

    Önbelleğe alınacak nesnenin maksimum boyutu.

    Daha küçük dosyalar kaydedilmez.

    15.5.4. Kerestecilik

    SQUID günlük kaydı modları, ilgili günlükleriyle birlikte aşağıda listelenmiştir. Bazı günlüğe ihtiyacınız yoksa, dosya adı yerine hiçbiri ayarlayın.

    cache_access_log /usr/local/squid/logs/access.log

    SQUID'e yapılan her istek günlüğe kaydedilir. Günlük /usr/local/squid/logs/access.log şeklindedir.

    cache_log /usr/local/squid/logs/cache.log

    İşlem başlangıçları günlüğe kaydedilir. Günlük /usr/local/squid/logs/cache.log şeklindedir.

    cache_store_log /usr/local/squid/logs/store.log

    Önbellekteki nesne girişleri günlüğe kaydedilir. Günlük /usr/local/squid/logs/store.log şeklindedir.

    15.5.5. Harici program seçenekleri

    Burada belirtilen e-posta, ftp sunucularına anonim erişim için şifre yerine kullanılacaktır.

    dns_nameservers IP adresleri listesi

    /etc/resolv.conf dosyasında tanımlanan DNS sunucuları listesi yerine bu parametrenin değeri kullanılır; varsayılan hiçbiri.

    cache_dns_program /usr/yerel/kalamar/bin/dnsserver

    Bu parametre, IP adreslerini adlara (DNS sunucusu) çözümlemek için programı belirtir.

    Talepte bulunan istemcilerin kimlik doğrulamasına izin verir. Bu durumda, proxy_auth ACL tanımlanmalıdır.

    kimlik doğrulama programı /usr/yerel/kalamar/bin/ncsa_auth /usr/yerel/kalamar/etc/passwd

    Geleneksel kimlik doğrulama programı. ../auth_modules/NCSA'da tanımlanmıştır.

    15.5.6. EKL'ler

    ACL (Erişim Kontrol Listeleri) - kontrol listelerine erişim. Oldukça sık olarak, sonraki işlemleri için aynı türdeki parametrelerin tek bir bütün halinde gruplandırılmasına ihtiyaç vardır. Bu sorunu etkili bir şekilde çözmek için erişim kontrol listeleri (ACL'ler) kullanılır. Örneğin:

    Bu giriş, bağlantı noktası türünde bir SSL_ports listesi oluşturulduğu anlamına gelir. Liste öğeleri port numaraları 443 ve 563'tür.

    Halihazırda var olan bir listeye (parametre ekleme) şu şekilde yeni bir öğe ekleyebilirsiniz:

    Del parametresini kullanarak gereksiz bir öğeyi silebilirsiniz: acl del SSL_ports 999

    ren parametresi (rename'den) listeyi yeniden adlandırmanıza izin verir:

    acl ren SSL_ports İzin Verilen_portlar

    Temizleme seçeneği, içerikleriyle birlikte tüm listeleri silmenizi sağlar:

    ACL standardı, liste adından önce $ simgesinin gelmesini gerektirir. Başka bir deyişle, yukarıdaki örneklerin tümü genel olarak yanlış olmalıdır. Örneğin, bir liste oluşturmak için şu girişi kullanmanız gerekir:

    Ancak, SQUID gibi çoğu filtre bu gereksinimi göz ardı eder ve liste adlarını dolar işareti olmadan belirtebilirsiniz.

    Dolayısıyla, ACL bir erişim listesinin tanımıdır. Aşağıdaki formata sahiptir:

    acl adı türü dizesi

    burada: tip, nesnenin tipidir;

    string normal bir ifadedir.

    Bir liste kullanabilirsiniz:

    acl adı türü dosya adı

    Parametreler, her satıra bir parametre olarak numaralandırılır. ACL'lerin derlenmesinde kullanılabilecek türler Tablo 1'de listelenmiştir. 15.3.

    ACL Tipleri Tablo 15.3

    Tip Tip Açıklama
    src ip adresi/ağ maskesi İstemcilerin IP adresini belirtir
    kaynak adresi addr1-addr2/ağ maskesi Bir adres aralığı belirtir
    Dst ip adresi/ağ maskesi Ana bilgisayar URL'lerini belirtir
    Zaman Günün SMTWHFA'dan bir harf olduğu zaman
    liman Liman Listesi
    Bağlantı noktası bağlantı noktası1–bağlantı noktası2 Liman Aralığı
    Proto Protokol - HTTP veya FTP
    yöntem Yöntem - GET veya POST
    Tarayıcı [-i] normal ifade User-Agent başlığı karşılaştırılır

    [-i] - harflerin durumu yoksayılır.

    15.5.7. Erişim Seçenekleri

    http_access izin ver|aclname reddet

    HTTP proxy erişimine izin ver.

    icp_access'e izin ver | onay adını reddet

    ICP aracılığıyla proxy'ye erişime izin verin.

    miss_access'e izin ver | onay adını reddet

    Sizden bir MISS yanıtı almasına izin verin.

    cache_peer_access önbellek ana bilgisayarı izin ver|aclname reddet

    İstekleri bu komşuyla sınırla - cache_peer_domain uzantısı.

    proxy_auth_realm Squid proxy önbelleğe alma web sunucusu

    Bir önbellek erişim adı/parolası istenirken istemcinin ekranında görüntülenecek bir metin dizisi.

    15.5.8. Yönetim Seçenekleri

    Bu parametre, kalamar çalışmayı durdurursa e-postanın gönderileceği e-posta adresini belirtir.

    SQUID'i root olarak çalıştırırken, UID'yi cache_fect_user parametresinde belirtilene değiştirin.

    SQUID'i kök olarak çalıştırırken, GID'yi cache_fect_group parametresinde belirtilenle değiştirin.

    görünür_ana bilgisayar adı ana bilgisayar adı

    Bu isim hata mesajlarında belirtilecektir.

    Bu parametre, ana bilgisayar adı için takma adların bir listesini belirtir.

    15.6. Reklamları devre dışı bırakmak. Afiş Filtresi

    Reklam afişlerini indirerek fazladan zaman kaybetmek istemiyor musunuz? Ben de. Şans eseri, SQUID bu sorunu çözmeyi oldukça kolaylaştırıyor. Aşağıdaki satırları /usr/local /etc/squid/squid.conf dosyanıza yapıştırmanız yeterlidir:

    acl good_url url_regex "/usr/local/etc/squid/acl/good_url"
    acl bad_urlpath urlpath_regex "/usr/local/etc/squid/acl/bad_urlpath"
    acl bad_url url_regex "/usr/local/etc/squid/acl/bad_url"
    http_access bad_urlpath'i reddet !good_url
    http_access bad_url'yi reddet !good_url

    Buna göre, üç dosyanın oluşturulması gerekecektir: good_url, bad_url_path ve bad_url. bad_url dosyasına "kötü" URL'ler koymalısınız, örneğin:

    ^http://.*-ad.flycast.com/server/img/
    ^http://1000-stars-ru/cgi-bin/1000-cgi
    ^ http://1000.stars.ru/cgi-bin/1000.cgi

    Ve bad_url_path dosyasında - "kötü" bir yol, örneğin:

    Genellikle bu tür isimlerin afişleri vardır.

    good_url, bad_url_path ve bad_url dosyalarının örnekleri ana sayfamda bulunabilir - http://dkws.narod.ru

    15.7. Kanal ayrımı

    Diyelim ki bir proxy sunucusunu, bir grup bilgisayar bir hızda, diğeri başka bir hızda çalışacak şekilde kurmanız gerektiğini varsayalım. Bu, örneğin kanalı iş için kullanan kullanıcılar ile kanalın kaynaklarını ev amacıyla kullanan kullanıcılar arasında ayrım yapmak için gerekli olabilir. Doğal olarak, kanal bant genişliği birincisi için ikincisinden daha önemlidir. SQUID proxy kullanarak kanalı bölebilirsiniz.

    Başlamak için, yapılandırma dosyasında kaç havuza, yani kullanıcı grubuna sahip olacağınızı belirtin:

    Ardından havuz sınıflarını tanımlayın. Toplamda üç sınıf vardır:

    1. Hepsi için tek kanal bant genişliği limiti kullanılır.

    2. Her C sınıfı ağ düğümü için bir genel kısıtlama ve 255 bireysel.

    3. Her B sınıfı alt ağın kendi sınırı ve her ana bilgisayar için ayrı bir sınırı olacaktır.

    Aşağıdaki yönergeleri squid.conf dosyasına ekleyin:

    delay_class 1 1 #, ev kullanıcıları için birinci sınıf 1 havuzunu tanımlar
    delay_class 2 2 #, çalışanlar için ikinci bir sınıf 2 havuzu tanımlar

    Şimdi havuzlara ait olacak düğümleri ayarlayın:

    Ardından sınırları belirtin:

    gecikme_parametreleri 1 14400/14400
    gecikme_parametreleri 2 33600/33600 16800/33600

    Yukarıda belirttiğim gibi, 1. sınıf bir havuz için, havuza dahil olan tüm bilgisayarlar için bir sınır kullanılır - 14400 bayt. İlk sayı, havuzun tamamı için doluluk oranını (bayt/saniye) belirtir. İkincisi, maksimum sınırdır.

    Bir sınıf 2 havuzu için, sırasıyla tüm alt ağ için ve her kullanıcı için ayrı ayrı sınırlar kullanılır. Tanımlanmış bir 3. sınıf havuzumuz olsaydı, bunun için kısıtlamalar şöyle görünürdü:

    gecikme_parametreleri 3 128000/128000 64000/128000 12800/64000

    İlk iki sayı, sırasıyla doluluk oranını ve tümü için maksimum sınırı belirler. Sonraki sayı çifti, her bir alt ağ için doluluk oranını ve maksimum limiti tanımlar ve üçüncü çift, bireysel kullanıcı başına doluluk oranını ve maksimum limiti belirtir.

    15.8. Trafik muhasebesi yazılımı

    SQUID'in çalışmasını izlemek ve genel olarak trafiği hesaba katmak için aşağıdaki programları kullanabilirsiniz:

    sqmgrlog - http://www.ineparnet.com.br/orso/index.html

    mrtg - http://www.switch.ch/misc/leinen/snmp/perl/

    iptraf - http://dkws.narod.ru/linux/soft/iptraf-2.4.0.tar.gz

    bandmin - http://www.bandmin.org

    webalizer (Apache analizi) - http://www.mrunix.net/webalizer/

    Bu programlarla birlikte oldukça okunabilir belgeler sağlanıyor, bu yüzden kullanımları üzerinde ayrıntılı olarak durmayacağım. MRTG programı bölüm 8.5'te açıklanmaktadır.

    15.9. İstemcileri ayarlama

    Artık proxy sunucusunu kurduğunuza göre, istemcileri, yani kullanıcının tarayıcılarını kurmaya geçelim. Bunu veya bu tarayıcıyı nasıl yapılandıracağınızı bildiğinizden hiç şüphem yok, size yalnızca bazı yaygın tarayıcılar için yapılandırma prosedürünü hatırlatacağım.

    Internet Explorer 5

    Menü Araçlar→İnternet Seçenekleri→Bağlantı sekmesi→Ağ ayarları. Görünen pencerede, gerekli parametreleri, yani proxy sunucusunun adını ve bağlantı noktasını ayarlayın (bkz. Şekil 15.2).

    Pirinç. 15.2. Internet Explorer'ı kurma


    Netscape İletişim Aracı

    Menü Düzenle→Tercihler→Gelişmiş→Proxy'ler→Manuel Proxy Yapılandırması→Görüntüle (bkz. Şekil 15.3).

    Pirinç. 15.3. Netscape Communicator'ı Yapılandırma


    Konqueror

    Menü Ayarlar→Ayarlar→Proxy (bkz. Şekil 15.4).

    Pirinç. 15.4. Konqueror'u kurmak