Wiem że jest pare opisów Squida krążących po sieci ale na forum nie zauważyłem
Może komuś pomogę, było by miło
Nie jestem ekspertem w tej dziedzinie, ale chciałem coś zrobić dla potomnych i forumowiczów którzy tego jeszce nie robili
1. Instalacja;
Zaczynamy od utworzenia użytkowanika i grupy squid.
Kod: Zaznacz cały
useradd -d /cache/ -s /dev/null squid
groupadd squid
Kod: Zaznacz cały
mkdir /cache
Kod: Zaznacz cały
chown -R squid.squid /cache/
Sciagamy najnowaszą wersje Squida z www.squid-cache.org
Kod: Zaznacz cały
cd /tmp
wget http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE9.tar.gz
Rozpakować
Kod: Zaznacz cały
tar -zxvf squid-2.5.STABLE9.tar.gz
Ja robię to z takimi opcjami. Ciekawy jestem jak Wy robicie.
Kod: Zaznacz cały
./configure --prefix=/usr/squid-20050317 Sciezka instalacji
--enable-delay-pools Dodajemy Obsługę delay pools
--enable-err-language=Polish
--enable-default-err-language=Polish
--enable-underscores Squid nie obsługuje nazw serwerów ze znakiem '_'.Ta opcja to zmienia.
--enable-linux-netfilter Obsługa transparentnego proxy
--enable-gnuregex
make
make install
2. Konfiguracja;
Otwieramy swoim ulubionym edytorem tekstu plik squid.conf
Postarm się opisać poszególne opcje konfiguracyjne naszego serwera, prosze o uzupełniania w razie błędu
Kod: Zaznacz cały
# transparentny proxy
# port nn którym działa serwer
http_port 3128
# Co squid ma przyspieszać
# Podajemy port 80, na tym działa www, ten port będzie przyspieszać squid
httpd_accel_port 80
# Wymagane do powyższego
httpd_accel_with_proxy on
# obsługa akceleracji hostów virtualnych
httpd_accel_host virtual
# Wymagane do transparentnego proxy
httpd_accel_uses_host_header on
# Włanczamy keszowanie cgi
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
# Ustawiamy nasz cahce,
# /cache katalog gdzie będzie przechowywany, 2500 ile Mb chcemy na nasz Cache
Cache_dir ufs /cache 2500 16 256
# Ilość pamięci przeznaczonej na Squida, odwieczna zasada, im więcej tym lepiej :)
cache_mem 64 MB
# Po jakim czasie keszowane strony mają zostać usunięte
# Po tym czasie najstarsze strony które są w Cache zostaną usunięte
reference_age 2 week
# i reguły odświerzania wybranych elementów
refresh_pattern -i (.*jpg$|.*gif$) 0 50% 28800
refresh_pattern -i (.*html$|.*htm|.*shtml) 0 20% 1440
refresh_pattern (http://.*/$) 0 20% 1440
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
# i log, przedtem zróbmy w katalogu /var/log/ katalog
# 'mkdir squid' i nadajmy mu prawa chown -R squid.squid squid
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
pid_filename /var/log/squid/squid.pid
# Zalecana minimalna konfiguracja, wydaje mi się, że nie wymaga tłumaczenia
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 1025-65535 # pozostałe porty
acl CONNECT method CONNECT
# komu pozwalamy kożystać, a komu nie...
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
# Ustawiamy parametry naszej sieci
# Ip naszego serwera
acl server src 192.168.0.1
http_access allow server
# Zakres adresowy naszej sieci
acl our_networks src 192.168.0.1-192.168.0.255
# Zezwalamy naszej sieci
http_access allow our_networks
# Zabraniamy innym
http_access deny all
http_reply_access allow all
icp_access allow all
# Użytkownik pod którym działać będzie Squid
cache_effective_user squid
cache_effective_group squid
# Tutaj chyba jasno ;-)
visible_hostname proxy.domenka.pl
cache_mgr admin@domenka.pl
coredump_dir /cache
# Maxymalnie duzy obiekt zapisywany na dysku, w naszym cache
maximum_object_size 61440 KB
Może coś dodacie? Chętnie bym się dowiedział czegoś więcej.
Nie wiem do końca, licze na wasze zdanie, jak Squid ma sie do Gadu-Gadu itp. chodzi o przesyłanie filmów, mp3
przez połączenia które oferują te komunikatory. Wystarczy zwykłe przekierowanie portu 1550 na 3128?
3. Delay pools;
Czym są Delay pools
Pozwalają limitowć ruch dla hostów lub grupy hostów.
Najlepiej odrazu jakiś przykład.
Kod: Zaznacz cały
# Zakres adresowy naszej sieci
acl magic_words1 url_regex -i 192.168
# Definujemy które rozszeżenia plików będą ograniczane
acl magic_words2 url_regex -1 .html .htm .php .cgi .asp
Dwie klasy delay pools
delay_pools 2
# Pierwsza
delay_class 1 2
# -1/-1 oznacza brak ograniczeń co do długości pliku i jegościagania
# dla całej sieci jak i hosta
delay_parameters 1 -1/-1 -1/-1
# Nasz Lan 192.168
delay_access magic_words1
# Druga, ograniczenia na wybrane pliki
# Wartości podajemy w bitach. Liczym w ten sposób:
# Przeznaczamy 100 KB więc 100*1024/8 = 12800
delay_class 2 2
delay_parameters 2 12800/25600 -1/-1
delay_access 2 allow magic_words2
# Porponuje eksperymentować
# Zakres adresowy naszej sieci
acl magic_words1 url_regex -i 192.168
# Definujemy które rozszeżenia plików będą ograniczane
acl magic_words2 url_regex -1 .html .htm .php .cgi .asp
Dwie klasy delay pools
delay_pools 2
# Pierwsza
delay_class 1 2
# -1/-1 oznacza brak ograniczeń co do długości pliku i jegościagania
# dla całej sieci jak i hosta
delay_parameters 1 -1/-1 -1/-1
# Nasz Lan 192.168
delay_access magic_words1
# Druga, ograniczenia na wybrane pliki
# Wartości podajemy w bitach. Liczym w ten sposób:
# Przeznaczamy 100 KB więc 100*1024/8 = 12800
delay_class 2 2
delay_parameters 2 12800/25600 -1/-1
delay_access 2 allow magic_words2
# Porponuje eksperymentować
Kod: Zaznacz cały
# Tworzy katalogi cache
squid -z
# Zmiana w pliku u przładowanie squida
squid -k reconfigure
# Uruchamiamy chache squida w tle
RunCache &
# Teraz jedynie regułka iptables przkierowujące ruch z portu 80 na port
# na którym nasłuchuje squid
iptables -t nat -A PREROUTING -s 192.168.0.1/255.255.255.0 -p tcp //
--dport 80 -j REDIRECT --to-port 3128
Kod: Zaznacz cały
ps aux | grep squid
root 3630 0.0 0.2 2160 1124 ? S Mar23 0:00 /bin/sh /usr/squid-20050315/bin/RunCache
squid 3708 1.7 32.2 125932 124420 ? S Mar23 26:24 squid -NsY
squid 3726 0.0 0.0 1248 276 ? Ss Mar23 0:05 (unlinkd)
lub tak:
netstat -a | grep 3128
5. Logi;
Następną rzeczą jest prawidłowe ustawienie rotacji logów squida.
Robimy to. Jak się nam rozrosną Squid będzie miał problem z dopisaniem logów Cache i się wywali.
Dopisujemy do naszego configa taką opcję (oczywiście po tej operacji należy przeładować Squida):
logfile_rotate 5
opisuje iloć logów jaka ma zostać rotowana i zachowana,
coś na wzór logów sysloga. W naszym przypadku access.log.0 - access.log.5 itd.
dopisać do crona
Kod: Zaznacz cały
crontab -e root
0 0 * * * /usr/squid-20050315/sbin/squid -k rotate
Więcej na temat logów znajdziesz tutaj .
6. Cache-manager;
Fajna sprawa. Skrypcik pokazuje na wiele ciekawych rzeczy odnośnie procesu działania Squida,
wykorzystania zasobów pamięci, keszu, oglądanych stron .. ipt.itd. najlepiej samemu zobaczeć
Cachemanager jest skryptem (cachemgr.cgi) odpowiedĽialnym za wyświetlanie statystyk
uruchomionego Squida, a takze zarządzanie Cache ustawionym w
pliku configuracyjnym Squida bez konieczności logowania się do serwera.
Po pierwsze plik cachemgr.cgi. Gdzie go masz?
Instaowałeś Squida zgodnie z tym opisem (./configure--prefix=/usr/squid-20050317...) to masz skrypt w katalogu /usr/squid-20050317/libexec/
Teraz Apache (przynajmniej ja takiego używam:)). Skrypty .cgi mam ustawione defaultowo czyli taka linijka z httpd.conf:
ScriptAlias /cgi-bin/ "/usr/apache/cgi-bin/".
Wrzucamy tam nasz skrypt
Kod: Zaznacz cały
cd /usr/apache/cgi-bin/ cp /usr/squid-20050317/libexec/cachemgr.cgi .
Wpisujemy:
Kod: Zaznacz cały
< Location /usr/apache/cgi-bin/cachemgr.cgi>
order allow,deny
< /Location>
apachectl restart
Jeśli wszystko poszło pomyślnie powinniśmy po wpisaniu:
http://www.domena.pl/cgi-bin/cachemgr.cgi/
otrzymać fomularz, wypełniamy, patrzymy co się dzieje.
Uwaga: ustaw hasło dostępu do cachemgr z pozowu apache.
To które wpisujemy na stronie głównej cachemgr jest potrzbene do kasowania cache bądź wyłączenia Suida.
7. Posłowie.
Bardzo miło by było usłyszeć komentarz, sugestie, poprawki
Przydatne linki:
Oficjalny serwis [EN]
Transparent Proxy with Linux and Squid mini-HOWTO [EN]
Fajny art nt. Squida [PL]
i jeszcze jeden [PL]