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:
- Sciagamy zrodla, czyli:
#wget http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STABLE17.tar.gz
- Rozpakowujemy:
#tar -zxvf squid-2.6.STABLE17.tar.gz
- 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- Kompilacja:
#make all
- Instalacja:
#make install
- 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 3128cache_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.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 proxystore_avg_object_size 8 kB
– średni rozmiar obiektu cache’owanegoacl FTP proto FTP
always_direct allow FTP
– zawszse bezpośrednie FTPcache_log /dev/null
cache_store_log none
– w celu zwiekszenia szybkości działania sqida wyłączamy logowanieforwarded_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
chown nobody.nogroup /usr/local/squid/var/ -R
- 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 processquid
. Gdyby coś było nie tak sprawdzamy logi.
Preferowane dla cache dyskowej (przy odpowiednim rozmiarze) LFUDA, natomiast dla cache pamięciowej – GDSF.
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
- Edytujemy
/usr/local/squid/etc/squid.conf
i ustawiamy:http_port 8080 transparent
- 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.
- Przechodzimy do katalogu ze źródłami SQUID’a np:
#cd /usr/src/squid-2.6.STABLE17
- Ściągamy pacha:
#wget http://zph.bratcheda.org/squid-2.6.STABLE2-ToS_Hit_ToS_Preserve.patch
- Łatamy źródła:
#patch -p1 < squid-2.6.STABLE2-ToS_Hit_ToS_Preserve.patch
- 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"
- Kompilacja:
#make
- Instalacja:
#make install
- 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
- Uruchamiamy SQUID’a i sprawdzamy czy pakiety mają prawidłowy TOS:
# tcpdump -nv -i eth0 src port 80
Dzięki za poradnik 🙂
Bardzo hałotycznie napisane, bez sensu.. nic nie rozumiem – wielki minus dla tego kto to opracowywał