Squid w 5 minut

19 listopada 2007, P2O2

Istnieje wiele wspaniałych narzędzi, które oferują to, co Squid, ale kiedy muszę przekierować ruch sieciowy do serwera buforującego (ang. caching server) w celu zwiększenia wydajności sieci lub jej bezpieczeństwa, wybieram Squida. Squid ma wbudowaną warstwę pośredniczącą i narzędzia do jej obsługi, które są proste i efektywne.

Oryginalny tekst pochodzi z Red Hat Magazine, autorem jest Noah Gift. Opublikowano 17 kwietnia 2007 r.

Instalowałem niedawno Squida w bezpiecznej sieci, która blokowała łączność z zewnętrznymi adresami IP po porcie 80. Wiele organizacji blokuje zewnętrzny port 80 na poziomie rutera. To niezły sposób na pozbycie się wielkiej dziury w systemie bezpieczeństwa, ale równocześnie prawdziwy ból głowy dla administratora, który choć na chwilę potrzebuje wydostać się na zewnątrz w celu pobrania jakiegoś pliku.

Kolejny scenariusz: przekierować wszystkie komputery w sieci domowej (HAN - Home Area Network) do lokalnego serwera buforującego, aby zwiększyć wydajność wyszukiwania informacji w Sieci i odzyskać pasmo przepustowe do innych celów.

Właśnie w takich chwilach tekst “Squid w 5 minut” może okazać się przydatny. Wszystkie żądania dostępu do zewnętrznych adresów http mogą być obsłużone przez Squida, poprzez prostą rekonfigurację maszyn sieciowych. Brzmi skomplikowanie, ale nie jest. Weźmy się za detale.

Instalowanie

W systemach operacyjnych bazujących na Red Hat EL, czy Fedorze wystarczy sprawdzić za pomocą polecenia rpm, czy przypadkiem Squid nie jest już zainstalowany. Wpisujemy polecenie:

rpm -q squid

Jeśli jest, otrzymamy informację w rodzaju:

squid-2.5.STABLE6-3.4E.12

Jeśli nie, będziemy musieli użyć polecenia yum. Dzięki niemu proces instalacyjny będzie prościutki.

Po prostu wpisujemy w linii poleceń:

yum install squid

Gdyby zdarzyło się, iż pakiet Squida jest już pobrany, użyjemy innego polecenia:

rpm -ivh squid-2.5.STABLE6-3.4E.12.i386.rpm

Konfigurowanie

Głównym plikiem konfiguracyjnym Squida jest /etc/squid/squid.conf. Jego 3,339 wierszy może zniechęcać, niemniej Squid daje się bardzo łatwo ustawiać w zakresie serwera buforującego, który przekieruje ruch http, https i ftp na domyślny port 3128 i na dodatek będzie buforował dane.

Kopiowanie pliku konfiguracyjnego

Wykonanie kopii zapasowej pierwotnego pliku konfiguracyjnego, zanim poddamy go edycji, jest zawsze wysoce wskazane. Jeśli ktoś nie popadł jeszcze z tego powodu w tarapaty, to znaczy, że niewiele plików konfiguracyjnych edytował. Proszę wykonać kopię bezpieczeństwa z linii poleceń albo za pomocą programu graficznego, zmieniając oryginalną nazwę pliku w coś informującego. Osobiście lubię dodawać do nazwy końcówkę bck.data. Na przykład:

cp /etc/squid/squid.conf /etc/squid/squid.conf.bck.02052007

Jeśli jest to oryginalny plik konfiguracyjny można wybrać taką nazwę:

cp /etc/squid/squid.conf /etc/squid/squid.conf.orig.02052007

Edytowanie pliku konfiguracyjnego

Otwieramy plik /etc/squid/squid.conf w ulubionym edytorze. Ja korzystam z vima, ale nano jest równie dobry, szczególnie dla początkujących użytkowników linuksa. Proszę pamiętać, aby w przypadku plików konfiguracyjnych uruchamiać nano z wyłączoną opcją zawijania wierszy (nano -nowrap). Można także użyć edytora Gedit.

Konfigurowanie pięciominutowe

Wiele z interesujących opcji Squida pozostawimy niewłączone jak np. acls (listy kontrolne dostępu) czy uwierzytelnianie. Skonfigurujemy serwer buforujący bez kontroli dostępu. Wystarczy, jak na potrzeby sieci domowej schowanej za zaporą.

Domyślna konfiguracja Squida jest prawie gotowa, poza drobnymi wyjątkami. Wystarczy uaktywnić (”odkomentowć”) niektóre opcje, albo zmodyfikować opcje uaktywnione. Należy skorzystać z ulubionego edytora i znaleźć następujące wiersze zawierające:

visible_hostname machine-name
http_port 3128
cache_dir ufs /var/spool/squid 1000 16 256
cache_access_log /var/log/squid/access.log

W sekcji acl, pod koniec pliku:

acl intranet 192.168.0.0/24
http_access allow intranet

Wyjaśnijmy znaczenie każdego z tych sześciu wierszy:

visible_hostname - (nazwa bieżącego hosta) należy wpisać nazwę odpowiadającą nazwie danego komputera sieciowego. Można ją uzyskać wydając w wierszu poleceń polecenie “hostname”. Nie podanie tej nazwy może zdezorientować Squida, gdy nie będzie w stanie automatycznie określić pełnej nazwy danego komputera sieciowego.

http_port 3128 - należy wiersz jedynie odkomentować, nie ma potrzeby zmieniania domyślnej wartości tego portu.

cache_dir ufs /var/spool/squid 1000 15 256 - wiersz do odkomentowania. Można dopisać trzecie zero do 100, zwiększając w ten sposób wielkość bufora ze 100 MB do 1000 MB. Pozostałe wartości odnoszą się do ilości podpoziomów foldera głównego i odpowiednio jego podkatalogów. Nie wymagają modyfikacji.

cache_access_log - wiersz do odkomentowania. Nazwa opcji określa miejsce składowania dziennika dostępu do usług Squida.

acl intranet 192.168.0.0/24 - ten zapis należy dodać. Definiuje nazwę usługi dostępowej (tutaj intranet), która zostanie wykorzystana w definicji udostępniania usług (patrz zapis poniżej). Druga część wpisu powinna odpowiadać zakresowi sieci lokalnej w notacji CIDR. Na przykład, gdy serwer Fedory ma adres 192.168.2.5, należy wprowadzić zapis “acl intranet 192.168.2.0/24″ (bez cudzysłowu).

http_access allow intranet - opcja ta zezwala acl o nazwie intranet na wykorzystywanie serwera buforującego. Zapis musi być umieszczony powyżej zapisu http_access deny all.

Włączanie Squida

Definiujemy odpowiedni poziom uruchomieniowy:

chkconfig squid on

Uruchomiamy usługę:

service squid start

Sprawdzamy czy Squid działa:

service squid status

Jeśli pojawią się jakieś problemy z uruchomieniem Squida, należy otworzyć terminal i wydać następujące polecenie:

tail -f /var/log/messages

Następnie uruchamiamy usługi Squida w jego pierwotnym oknie:

service squid start

Polecenie tail powinno pokazać komunikaty błędów, które pomogą w rozwiązaniu problemów. Jednym z powszechniejszych błędów jest brak kartoteki (katalogu, folderu) wymiany (ang. swap). W celu usunięcia braku należy uruchomić Squid z opcją -z (squid -z), co spowoduje automatyczne utworzenie tej kartoteki (w uniksach mówimy o kartotekach, w linuksach “używa się” katalogów, a w graficznych nakładkach na systemy operacyjne powinno mówić się o folderach, gdyż są to graficzne obiekty reprezentujące katalogi/kartoteki - P2O2).

/usr/sbin/squid -z

Nadajemy squidowej kartotece wymiany uprawnienia zapisu, w przeciwnym wypadku nie zadziała.

Konfigurowanie klientów

W Firefoksie lub Mozilli należy server buforujący wpisać do konfiguracji przeglądarek:

przechodzimy do Preferences>Network>Settings

Wpisujemy nazwę serwera buforującego i port 3128

Otwieramy okno terminala dla serwera buforującego, aby śledzić zapisy w pliku dziennikowym. Ponownie korzystamy z polecenia tail, jak poprzednio:

tail -f /var/log/squid/access.log

Obecnie można już serfować poprzez serwer buforujący. Powinniśmy zaobserwować pojawianie się stron WWW w czasie rzeczywistym. Gratulacje, serwer buforujący działa!

Podsumowanie

Szybkie podsumowanie: zainstalowaliśmy Squid za pomocą polecenia yum. Wykonaliśmy kopię zapasową pliku konfiguracyjnego, a w jego oryginale poddaliśmy edycji 6 wierszy. Przypisaliśmy Squida do odpowiedniego poziomu uruchomieniowego (ang. runlevel) i uruchomiliśmy go. Następnie skonfigurowaliśmy klientów, aby mogli korzystać ze Squida i sprawdziliśmy jego poprawne działania korzystając z polecenia tail. Wszystko udało wykonać się w 5 minut. Niech no teraz ktoś zaprzeczy, że Linux nie jest przyjemny!

Errata (P2O2)

W dyskusji do artykułu pojawiła się informacja o błędnym zapisie jednej z opcji. Zamiast:

acl intranet 192.168.0.0/24

powinno być:

acl intranet src 192.168.0.0/24

Tłumaczenie: P2O2

Znalazłeś literówkę? Zgłoś ją używając formularza!

Wpisz wynik działania: pięć - 3:

Komentarze (RSS) | Trackback (URI)

Komentarze są prywatnymi opiniami dodających je osób. Prosimy o zachowanie kultury wypowiedzi. Komentarze obraźliwe oraz obniżające poziom serwisu będą usuwane. Więcej w regulaminie komentowania.

Liczba komentarzy: 12

zwiń wątek p2o2  19 listopada 2007 o godz. 14:39 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +1 [Pokaż komentarz]

Cześć,
Pragnę nadmienić, że tym tłumaczeniem otwieramy nową serię artykułów pod wspólnym tytułem “W 5 minut”. Drugi tekst jest już gotowy. Zachęcam wszystkich do nadsyłania własnych prac, jak i adresów do artykułów angielskojęzycznych.

Adresy można zgłaszać na stronie wiki: http://wiki.jakilinux.org/do-tlumaczenia

Pozdrawiam,
P2O2

 
zwiń wątek bluszcz  19 listopada 2007 o godz. 18:36 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: 0 [Pokaż komentarz]

ech squid, dajcie może jeszcze opis sendmaila to się pochlastam. mamy rok 2007

zwiń wątek p2o2  19 listopada 2007 o godz. 21:48 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +2 [Pokaż komentarz]

No więc, co Pan Szanowy sobie życzy, jakiś temacik, czy może brzytwę?
P2O2

 
zwiń wątek qroot  19 listopada 2007 o godz. 22:00 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +2 [Pokaż komentarz]

“Oryginalny tekst pochodzi z Red Hat Magazine, autorem jest Noah Gift. Opublikowano 17 kwietnia 2007 r.”

bluszcz - proponuje z takimi fochami do redakcji Red Hat Magazine albo bezpośrednio do pana Gifta - to jest tylko tłumaczenie tekstu :D

 
zwiń wątek cnr..  19 listopada 2007 o godz. 22:33 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +1 [Pokaż komentarz]

super tekścik. prosty, łatwy i przyjemny :)

a propos sendmaila, to ostatnio chciałem bezboleśnie sprawdzić działanie php-owej funkcji mail() i musiałem sobie tego sendmaila posadzić. dałem radę, ale przyznam, że taki “sendmail w 5 minut” by mi się wtedy bardzo przydał.

co do wskazówek dla autorów cyklu, to ja np. chętnie za parę odcinków bym poczytał, jak w squidzie osiągnąć inne efekty (np. blokowania niektórych stron itp itd). ale to takie tylko niezobowiązujące zachcianki ;)

jeszcze raz - dzięki za arta!

zwiń wątek MAcks  22 listopada 2007 o godz. 11:54 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +1 [Pokaż komentarz]

Większość normalnych MTA (np. postfix, exim) dostarcza swoje wersje zastępcze polecenia sendmail, więc chyba niepotrzebnie się fatygowałeś instalując prawdziwego sendmaila.

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
 
 
 
zwiń wątek michallo  20 listopada 2007 o godz. 13:02 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +1 [Pokaż komentarz]

Zastanawiam się tylko, czy w dzisiejszych czasach squid w czymś jeszcze pomaga. Większość stron jest dynamicznych, wchodzi web 2.0. Takich stron nie da się trzymać w buforze bo praktycznie za każdym razem są ponownie generowane. To co zostaje w takim razie ważnego w pamięci squida? Same obrazki? Może pliki css? Chyba niewiele więcej.

 
zwiń wątek p2o2  20 listopada 2007 o godz. 13:09 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +1 [Pokaż komentarz]

Ale z tego co słyszałem, Squid nie służy jedynie do buforowania stron HTML.Może ktoś mógłby dodać coś na ten temat? Tutaj, w komentarzach, zapraszam.

 
zwiń wątek eXtrim  20 listopada 2007 o godz. 14:39 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +1 [Pokaż komentarz]

Sadze ze taka seria”w 5 minut” do dobry pomysł nawet jeśli będzie to dotyczyło trochę starszych rzeczy, ja osobiście chętnie poświecę 5 minut żeby przeczytać artykuł i się dowiedzieć czegoś nowego albo poszerzyć wiedzę na już znany temat. Dobry pomysł oby tak dalej :) Nie pogniewał bym się gdyby to było nawet 10 minut a informacje były bardziej szczegółowe.

 
zwiń wątek jey  20 listopada 2007 o godz. 14:40 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +1 [Pokaż komentarz]

Squid to przeciez proxy serwer, skoro potrafi filtrowac ruch sluzy jako firewall. Dobrze skonfigurowany jest bardzo przydatny. Buforowanie stron to jedna zaleta.. jednak coraz mniej wykorzystywana z racji ze coraz szybszych przepustowosci

 
zwiń wątek burp  20 listopada 2007 o godz. 23:50 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +1 [Pokaż komentarz]

Jak sobie sensownie poradzic z WindowsUpdate za squidem transparentnym?

 
zwiń wątek irens  21 listopada 2007 o godz. 1:39 # Zwiększ karmę Zmniejsz karmę Cofnij swój głos Zgłoś komentarz do usunięcia KARMA: +1 [Pokaż komentarz]

Prosto:
w /etc/squid robie pliczek tesktowy:windowsupdate.txt z zawartoscią:

windowsupdate.microsoft.com
update.microsoft.com
activex.microsoft.com
download.windowsupdate.com
au.download.windowsupdate.com
www.download.windowsupdate.com
codecs.microsoft.com
stats.updates.microsoft.com
c.microsoft.com

następnie w konfiguracji squida dodaję:
acl WindowsUpdate dstdomain -i “/etc/squid/windowsupdate.txt”
no_cache deny WindowsUpdate

I aktualizacje zaczęły wreszcie śmigać (czyt. zaczęły się w końcu ściągać i instalować na końcówkach - bo wisiały na postępie ściaganie i wisiały i wisiały …)

Działa to na CentOS4 squid: squid-2.5.STABLE14-1.4E

Pozdrawiam.

 
Identyfikator (wymagane)
Adres e-mail (wymagany - nie pokażemy go publicznie)
Adres URI
Rozmiar pola: zmniejsz rozmiar | zwiększ rozmiar
Uwaga! Niektóre komentarze, m.in. te dodane przez niezalogowanych i nowych użytkowników, są ręcznie moderowane. Jeśli Twój komentarz nie ukaże się od razu, nie dodawaj go ponownie, tylko cierpliwie poczekaj na akceptację.

Literówki najlepiej zgłaszać jabberem: michuk@jakilinux.org lub kocio@jabber.org!

W komentarzach możesz używać prostych znaczników HTML. Przykłady:
  • Link: <a href="jaklinux.org">Linux dla każdego</a>,
  • Wytłuszczenie: <strong>tekst pogrubiony</strong>,
  • Kursywa: <em>tekst pochylony</em>,
  • Przekreślenie: <strike>tekst przekreślony</strike>,
  • Kod: <code>printf("blok kodu");</code>,
  • Cytat: <blockquote>cytat</blockquote>
Uwaga: jeśli dodasz nieznany znacznik, będzie on niewidoczny, gdyż system filtruje takie znaczniki.

O Autorze

Przemysław Pawełczyk

W latach 90 współpracownik PC Kuriera i Entera. Pisał teksty popularno-naukowe i techniczne. Tłumaczył instrukcje obsługi sprzętu RTV. Z wykształcenia teleradiomechanik (serwis RTV). Zainteresowania: polityka światowa, technika, komputery, nauka. Książki: angielskojęzyczne, głównie klasyka i sensacyjne. UWAGA: Zestawienie poniżej obejmuje głównie tłumaczenia!

RSS

Możesz śledzić komentarze do tego artykułu poprzez specjalny kanał; RSS 2.0 .

Porównaj dystrybucje!

vs

Dołącz do nas!

Znasz się na grafice? Wymiatasz w CSS? Przerób design jednego z serwisów Grupy Jakilinux!
Więcej o współpracy na blogu Grupy Jakilinux.

Butik JL

jakilinux butik
Obejrzyj więcej produktów i wybierz coś dla siebie.

Subskrybuj Biuletyn!

Biuletyn Grupy Jakilinux to okresowy subiektywny przegląd najważniejszych informacji o których piszemy w naszych serwisach, który wysyłamy e-mailem. Subskrybuj biuletyn!

Planeta Jakilinux

    requested list not available