Zarejestruj się na BitBay.net
Home > Linux > SQUID – Instalacja i konfiguracja proxy

SQUID – Instalacja i konfiguracja proxy

Squid – popularne oprogramowanie serwera pośredniczącego (ang. proxy) rozwijane na wolnej licencji GPL. Serwer Proxy jest to serwer z odpowiednim oprogramowaniem, które dokonuje pewnych operacji (zwykle nawiązuje połączenia) w imieniu użytkownika. Serwer Proxy jest rodzajem bufora między Tobą, a zasobami Internetu. Informacje idą najpierw do serwera poxy, a dopiero potem dane transmitowane są do Ciebie. Wśród głownych zalet Squida zawsze wymienia się wydajność oraz rozbudowane możliwości konfiguracyjne, w szczególności jeśli chodzi o konfigurację związaną z dostępem użytkowników.

Instalacja:

  1. Sciagamy zrodla, czyli: #wget http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STABLE17.tar.gz
  2. Rozpakowujemy: #tar -zxvf squid-2.6.STABLE17.tar.gz
  3. Konfiguracja: #./configure --prefix=/usr/local/squid --enable-cache-digests --enable-dlmalloc --enable-removal-policies="heap,lru" --enable-linux-netfilter --enable-truncate --enable-useragent-log --enable-delay-pools --enable-default-err-language=Polish --enable-err-languages="Polish"
    • --disable-ident-lookups
      redukcja kodu wynikowego o klienta IDENT
    • --enable-cache-digests
      wkompilowanie mechanizmu współpracy między serwerami web cache zwanego cache digests
    • --enable-dlmalloc
      wkompilowanie bardziej niezawodnej biblioteki obsługującej procesy alokacji pamięci, np. biblioteki dlmalloc
    • --enable-removal-policies
      wkompilowanie zaawansowanych algorytmów usuwania obiektów z bufora serwera
    • --enable-truncate
      zwiększenie wydajności przy usuwaniu plików
    • --enable-linux-netfilter
      obsługa transparentnego proxy
  4. Kompilacja: #make all
  5. Instalacja: #make install
  6. Edytujemy plik /usr/local/squid/etc/squid.conf i ustawiamy po kolei:
    • http_port numer
      – ustawia numer portu, na którym nasłuchuje squid, domyślnie 3128
    • cache_mem rozmiar
      – ustawia rozmiar pamięci używany dla potrzeb cache, domyślnie 8 MB. UWAGA, ten parametr nie ustawia całkowitych wymagań pamięciowych Squida, więc należy dać tu bardzo niską wartość, jeśli Squid ma pracować na serwerze z drobną ilością pamięci (32 MB i mniej).
    • cache_replacement_policy typ, memory_replacement_policy typ
      – definiuje kolejność, w jakiej obiekty będą usuwane z cache, odpowiednio dyskowego i pamięciowego. Możliwe typy to:
      • lru
        – usuwanie obiektu o najdawniejszym dostępie, jak w starych wersjach Squida.
      • heap LRU
        – algorytm LRU używający sterty.
      • heap LFUDA
        – zostawia w cache popularne obiekty niezależnie od ich rozmiaru.
      • heap GDSF
        – zatrzymuje w cache niewielkie popularne obiekty.
      • Preferowane dla cache dyskowej (przy odpowiednim rozmiarze) LFUDA, natomiast dla cache pamięciowej – GDSF.

    • cache_dir typ katalog rozmiar L1 L2 [dodatkowe...]
      – definiuje katalog cache Squida. Domyślne ustawienia są całkiem w porządku, można jednak zmienić typ np. na aufs, używający wątki w celu uniknięcia blokowania. Należy z całą pewnością zmienić rozmiar cache – 100 MB to bardzo niewiele. Dla średniego rozmiaru sieci jakieś 2 GB powinny być wystarczające.
    • acl all src 192.168.0.0/24
      – udostepnij proxy dla adresów 192.168.0.*
      http_access allow all– komu przyspieszyć http (tu wszystkim)
    • cache_peer w3cache.tpnet.pl parent 8080 8082 no-query default
      – nadrzedne proxy
    • store_avg_object_size 8 kB
      – średni rozmiar obiektu cache’owanego
    • acl FTP proto FTP
      always_direct allow FTP

      – zawszse bezpośrednie FTP
    • cache_log /dev/null
      cache_store_log none

      – w celu zwiekszenia szybkości działania sqida wyłączamy logowanie
    • forwarded_for off
      – Anonimowość dla użytkownikow za natem – squid ustawia w nagłówku HTTP/1.1 pole 'X-Forwarded-For: unknown' zamiast 'X-Forwarded-For:numer_ip
  7. chown nobody.nogroup /usr/local/squid/var/ -R
  8. Wydajemy polecenie #/usr/local/squid/sbin/squid -z to utworzy odpowiednie katalogi, następnie odpalamy Squida#/usr/local/squid/sbin/squid Po wydaniu polecenia #ps -u root powinien być widoczny proces squid. Gdyby coś było nie tak sprawdzamy logi.


Blokowanie stron:

Tworzymy acl’kę blokowane_adresy:

acl blokowane_adresy url_regex "/etc/squid/blokowane_adresy"
http_access deny blokowane_adresy

Spis blokowanych adresów (/etc/squid/blokowane_adresy):

^http://www.microsoft.com
^http://www.wp.pl


Strony które nie mają być cachowane:

Tworzymy acl’kę bezposrednie_adresy:

acl bezposrednie_adresy url_regex "/etc/squid/bezposrednie_adresy"
no_cache deny bezposrednie_adresy

Spis adresów (/etc/squid/bezposrednie_adresy):

^https://www.mbank.com.pl
^https://aliorbank.pl


Transparentne proxy:

Transparentne proxy jest to proxy niewidoczne dla komputerów z sieci lokalnej – nie trzeba wpisywać żadnych adresow proxy czy to w przglądarce czy w innych programach. Wystarczy w firewallu przekierować cały ruch z portu 80 na port proxy i zmienić jedną opcję w squid.conf

  1. Edytujemy /usr/local/squid/etc/squid.conf i ustawiamy:
    • http_port 8080 transparent
  2. W firewallu dodajemy regułkę:
    • iptales -t nat -A PREROUTING -s $INTNET -p tcp -d ! $INTNET --dport 80 -j DNAT --to-destination $INTIP:8080
      gdzie np: INTNET=”192.168.1.0/24″


SQUID i ZPH TOS patch – czyli ustawiamy TOS 0x8 na potrzeby shaperda czy też niceshapera

Często przy połaczeniu SQUIDA ze skryptami do dynamicznego podziału pasma zachodzi potrzeba oznaczenia pakietów pochodzących z servera proxy po to by skrypty nie przycinały ruchu ze sqida. Do tego celu porzebny jest nam ZPH TOS patch.

  1. Przechodzimy do katalogu ze źródłami SQUID’a np:#cd /usr/src/squid-2.6.STABLE17
  2. Ściągamy pacha: #wget http://zph.bratcheda.org/squid-2.6.STABLE2-ToS_Hit_ToS_Preserve.patch
  3. Łatamy źródła: #patch -p1 < squid-2.6.STABLE2-ToS_Hit_ToS_Preserve.patch
  4. Konfiguracja: #./configure --prefix=/usr/local/squid --enable-cache-digests --enable-dlmalloc --enable-removal-policies="heap,lru" --enable-linux-netfilter --enable-truncate --enable-useragent-log --enable-delay-pools --enable-default-err-language=Polish --enable-err-languages="Polish"
  5. Kompilacja: #make
  6. Instalacja: #make install
  7. Edytujemy /usr/local/squid/etc/squid.conf ustawiamy wszystko tak jak w opisie poprzednio +
    • zph_tos_local 8
    • zph_tos_peer 0
    • zph_tos_parent off
  8. Uruchamiamy SQUID’a i sprawdzamy czy pakiety mają prawidłowy TOS: # tcpdump -nv -i eth0 src port 80


W sieci:

Kategorie:Linux Tagi:, ,
  1. Wrzesień 16th, 2012 at 13:31 | #1

    Dzięki za poradnik 🙂

  2. Szymek
    Luty 26th, 2015 at 15:03 | #2

    Bardzo hałotycznie napisane, bez sensu.. nic nie rozumiem – wielki minus dla tego kto to opracowywał

  3. Lipiec 25th, 2018 at 10:18 | #3

    Hello. I see that you don’t update your site too often. I know that writing articles is time consuming and boring.
    But did you know that there is a tool that allows you to create new articles using existing content (from article directories or other blogs from your niche)?
    And it does it very well. The new posts are high quality and
    pass the copyscape test. You should try miftolo’s tools

  1. Brak jeszcze trackbacków

*