Konfigurowanie serwera proxy Squid z ograniczonym dostępem i konfigurowanie klientów do korzystania z proxy - Część 5

Konfigurowanie serwera proxy Squid z ograniczonym dostępem i konfigurowanie klientów do korzystania z proxy - Część 5

A Inżynier certyfikowanego Linux Foundation jest wykwalifikowanym profesjonalistą, który ma wiedzę specjalistyczną do instalowania, zarządzania i rozwiązywania problemów z usługami sieciowymi w systemach Linux i jest odpowiedzialny za projektowanie, wdrażanie i ciągłe utrzymanie architektury całego systemu.

Certyfikowany inżynier Linux Foundation - Część 5

Wprowadzenie programu certyfikacji Fundacji Linux.

W Część 1 Z tej serii pokazaliśmy, jak zainstalować Squid, serwer buforowania proxy dla klientów internetowych. Przed kontynuowaniem zapoznaj się z tym postem (link podany poniżej), jeśli nie zainstalowałeś jeszcze kałamarnicy w swoim systemie.

  1. Część 1 - Zainstaluj usługi sieciowe i konfiguracja automatycznego uruchamiania podczas rozruchu

W tym artykule pokażemy, jak skonfigurować serwer proxy Squid w celu udzielania lub ograniczenia dostępu do Internetu oraz jak skonfigurować klienta HTTP lub przeglądarkę internetową, aby korzystać z tego serwera proxy.

Moja konfiguracja środowiska testowego

Serwer Squid
System operacyjny: Debian Wheezy 7.5 Adres IP: 192.168.0.15 nazwa hosta: Dev2.Gabrielcanepa.com.ar 
Maszyna klienta 1
System operacyjny: Ubuntu 12.04 Adres IP: 192.168.0.104 nazwa hosta: Ubuntuos.Gabrielcanepa.com.ar 
Maszyna klienta 2
System operacyjny: Centos-7.0-1406 Adres IP: 192.168.0.17 nazwa hosta: Dev1.Gabrielcanepa.com.ar 

Pamiętajmy, że w prostych słowach serwer proxy Web jest pośrednikiem między jednym (lub więcej) komputerami klientów a określonym zasobem sieciowym, najczęstszym dostępem do Internetu. Innymi słowy, serwer proxy jest podłączony z jednej strony bezpośrednio do Internetu (lub z routerem podłączonym do Internetu), a po drugiej stronie sieci komputerów klienckich, które będą dostępne w Internecie na całym świecie.

Być może zastanawiasz się, dlaczego miałbym chcieć dodać kolejny oprogramowanie do mojej infrastruktury sieciowej?

Oto 3 najlepsze powody:

1. Squid przechowuje pliki z poprzednich żądań, aby przyspieszyć przyszłe transfery. Na przykład, przypuśćcie Klient1 Pliki Centos-7.0-1406-X86_64-DVD.ISO z Internetu. Gdy klient2 żąda dostępu do tego samego pliku, Squid może przesyłać plik z pamięci podręcznej zamiast pobierać go ponownie z Internetu. Jak można się domyślić, możesz użyć tej funkcji, aby przyspieszyć transfer danych w sieci komputerów, które wymagają częstego aktualizacji.

2. ACLS (Listy kontroli dostępu) Pozwól nam ograniczyć dostęp do stron internetowych i / lub monitorować dostęp na zasadzie użytkownika. Możesz ograniczyć dostęp na podstawie dnia tygodnia lub pory dnia lub domeny, na przykład.

3. Omijanie filtrów internetowych jest możliwe dzięki korzystaniu z serwisu serwisowego, do którego składane są żądania i które zwraca żądaną treść do klienta, zamiast mieć żądanie klienta bezpośrednio do Internetu.

Załóżmy na przykład, że jesteś zalogowany Klient1 i chcę uzyskać dostęp www.Facebook.com Za pośrednictwem routera Twojej firmy. Ponieważ witryna może być zablokowana przez zasady Twojej firmy, możesz zamiast tego połączyć się z serwerem serwera internetowego i poprosić o dostęp do dostępu www.Facebook.com. Następnie zwracana jest zdalna zawartość za pośrednictwem serwera internetowego serwera proxy, omijając zasady blokujące routera firmy.

Konfigurowanie kałamarnic - podstawy

Schemat kontroli dostępu serwera proxy Squid Web Server składa się z dwóch różnych komponentów:

  1. Elementy ACL to linie dyrektyw, które zaczynają się od słowa „ACL”I reprezentują rodzaje testów, które są wykonywane w stosunku do dowolnej transakcji żądania.
  2. Reguły listy dostępu składają się z umożliwić Lub zaprzeczyć działanie, po których następuje szereg elementów ACL i są używane do wskazania, jakie działanie lub ograniczenie muszą być egzekwowane dla danego żądania. Są one sprawdzane w kolejności, a wymieniają końce wyszukiwanie, gdy tylko jedna z zasad jest dopasowana. Jeśli reguła ma wiele elementów ACL, jest wdrażana jako logiczna i działająca (wszystkie elementy ACL reguły muszą być dopasowane, aby reguła była dopasowana).

Główny plik konfiguracyjny Squid to /etc/kalmar.conf, który jest ~ 5000 Linie już dawno, ponieważ obejmują zarówno dyrektywy konfiguracyjne, jak i dokumentację. Z tego powodu stworzymy nowy kałamarnica.conf Plik z tylko wierszami zawierającymi dyrektywy konfiguracyjne dla naszej wygody, pomijając puste lub skomentowane wiersze. Aby to zrobić, użyjemy następujących poleceń.

# mv/etc/kalmar.conf/etc/kalmar.conf.BKP 

I wtedy,

# grep -eiv '(^# |^$)'/etc/squid/squid.conf.bkp lub # grep -ve ^ # -ve ^$/etc/squid/squid.conf.BKP>/etc/squid/squid.conf 
Kopie zapasowe plik konfiguracji kalmarów

Teraz otwórz nowo utworzone kałamarnica.conf złożyć i szukaj (lub dodaj) następujące ACL Elementy i listy dostępu.

ACL LocalHost Src 127.0.0.1/32 ACL Localnet SRC 192.168.0.0/24 

Dwa powyższe wiersze stanowią podstawowy przykład wykorzystania ACL elementy.

  1. Pierwsze słowo, ACL, wskazuje, że jest to linia dyrektywy elementu ACL.
  2. Drugie słowo, Lokalny Gospodarz Lub Localnet, Określ nazwę dyrektywy.
  3. Trzecie słowo, src W takim przypadku jest typem elementu ACL, który służy odpowiednio do reprezentowania adresu IP klienta lub zakresu adresów. Możesz określić pojedynczy host według IP (lub nazwa hosta, jeśli masz zaimplementowane rozdzielczość DNS) lub adresu sieciowego.
  4. Czwarty parametr to argument filtrujący, który jest „karmiony„Do dyrektywy.

Dwie poniższe linie są Lista dostępu rządzi i reprezentują wyraźne wdrożenie ACL Wspomniane wcześniej dyrektywy. W kilku słowach wskazują na to Dostęp HTTP należy przyznać, jeśli żądanie pochodzi z sieci lokalnej (Localnet) lub od Lokalny Gospodarz. W szczególności, jakie jest dozwolone adresy sieci lokalnej lub lokalnego hosta? Odpowiedź brzmi: te określone w dyrektywach LocalHost i Localnet.

HTTP_ACCESS Zezwalaj na Localnet Http_Access Zezwalaj 
Lista dostępu Squid ACL

W tym momencie możesz ponownie uruchomić Kałamarnica w celu zastosowania wszelkich oczekujących zmian.

# Service Squid Restart [Upstart / Sysvinit Oparte.serwis [dystrybucje oparte na systemie] 

a następnie skonfiguruj przeglądarkę klienta w sieci lokalnej (192.168.0.104 w naszym przypadku) w celu uzyskania dostępu do Internetu za pośrednictwem twojego proxy w następujący sposób.

W Firefox

1. Idź do Edytować menu i wybierz Preferencje opcja.

2. Kliknij Zaawansowany, potem na Sieć zakładka i wreszcie włączona Ustawienia

3. Sprawdzać Ręczna konfiguracja proxy i wejdź do adres IP serwera proxy i Port gdzie słucha połączeń.

Skonfiguruj proxy w Firefox

Notatka Że domyślnie Squid słucha w porcie 3128, ale możesz zastąpić to zachowanie, edytując Lista dostępu zasada, która zaczyna się od http_port (Domyślnie czyta http_port 3128).

4. Kliknij OK zastosować zmiany i możesz iść.

Sprawdzanie, czy klient uzyskuje dostęp do Internetu

Możesz teraz sprawdzić, czy klient lokalnej sieci uzyskuje dostęp do Internetu za pośrednictwem proxy w następujący sposób.

1. W swoim kliencie otwórz terminal i typ,

# Adres IP Pokaż ETH0 | grep -ei '(inet.*ETH0) ' 

To polecenie wyświetli prąd adres IP Twojego klienta (192.168.0.104 na poniższym obrazie).

2. W swoim kliencie użyj przeglądarki internetowej, aby otworzyć dowolną witrynę internetową (www.Tecmint.com w tym przypadku).

3. Na serwerze uruchom.

# ogon -f/var/log/squid/access.dziennik 

I otrzymasz widok na żywo próśb serwowanych Kałamarnica.

Sprawdź przeglądanie proxy

Ograniczenie dostępu przez klienta

Załóżmy teraz, że chcesz wyraźnie odmówić dostępu do tego konkretnego adresu IP klienta, jednocześnie utrzymując dostęp do reszty sieci lokalnej.

1. Zdefiniuj nowy ACL dyrektywa w następujący sposób (wymieniłem to Ubuntuos Ale możesz to nazwać, co chcesz).

acl Ubuntuos src 192.168.0.104 

2. Dodaj ACL dyrektywa do dostęp do lokalizacji Lista, która już jest na miejscu, ale wstępnie ją zaprzestała znakiem wykwalifikowania. To znaczy, "Zezwalaj na dostęp do Internetu do klientów pasujących do dyrektywy Localnet ACL, z wyjątkiem tej, która pasuje do dyrektywy Ubuntuos".

HTTP_ACCESS Zezwalaj na LocalNet !Ubuntuos 

3. Teraz musimy ponownie uruchomić kałamarnicę, aby zastosować zmiany. Następnie, jeśli spróbujemy przeglądać na dowolną stronę.

Zablokować dostęp do Internetu

Konfigurowanie kałamarnic - Drobne strojenie

Ograniczenie dostępu przez domenę i / lub porę dnia / dzień tygodnia

Aby ograniczyć dostęp do kałamarnicy według domeny dstdomain Słowo kluczowe w ACL dyrektywa, jak następuje.

acl zabronione dstdomain "/etc/squid/forbidden_domains" 

Gdzie Forbidden_domains to zwykły plik tekstowy, który zawiera domeny, do których chcemy odmówić dostępu.

Blokuj dostęp do domen

Wreszcie, musimy przyznać dostęp do kałamarnicy na żądania, które nie pasują do powyższej dyrektywy.

HTTP_ACCESS Zezwalaj na LocalNet !zabroniony 

A może będziemy chcieli umożliwić dostęp do tych stron o określonej porze dnia (10:00 do 11:00) tylko na Poniedziałek (m), Środa (w), I Piątek (f).

ACL Pewnego dnia czas MWF 10: 00-11: 00 HTTP_ACCESS ZAPOMNIENIE POWOSTAJĄCY HTTP_ACCESS ZAPROSZENIE 

W przeciwnym razie dostęp do tych domen zostanie zablokowany.

Ograniczenie dostępu przez uwierzytelnianie użytkownika

Squid obsługuje kilka mechanizmów uwierzytelniania (Basic, NTLM, Digest, SPNEGO i OAuth) i Helpers (SQL Batabase, LDAP, NIS, NCSA, żeby wymienić kilka). W tym samouczku będziemy używać podstawowego uwierzytelnienia NCSA.

Dodaj następujące wiersze do swojego /etc/kalmar.conf plik.

Auth_param podstawowy program/usr/lib/squid/ncsa_auth/etc/squid/passwd Auth_param Podstawowy umiłacznia 30 minut Auth_param Podstawowe przypadki wrażliwe na Auth_param Basic Realm Proxy Web Server dla serii LFCE LFCE TECMINT ACL NCSA PROXY_AUTH 

Notatka: W Centos 7, Wtyczkę NCSA do kalmarskiej można znaleźć w /usr/lib64/squid/basic_nsca_auth, Więc zmień odpowiednio w powyższej linii.

Włącz uwierzytelnianie NCSA

Kilka wyjaśnień:

  1. Musimy powiedzieć Squid, który program pomocniczy uwierzytelniania użyć z Auth_param dyrektywa, określając nazwę programu (najprawdopodobniej, /usr/lib/squid/ncsa_auth Lub /usr/lib64/squid/basic_nsca_auth) oraz dowolne opcje wiersza poleceń (/etc/squid/passwd W takim przypadku) w razie potrzeby.
  2. /etc/squid/passwd Plik jest tworzony przez htpasswd, narzędzie do zarządzania podstawowym uwierzytelnianiem za pośrednictwem plików. Pozwoli nam dodać listę nazw użytkowników (i odpowiednie hasła), które będą mogły używać kalmary.
  3. CredentialSttl 30 minut będzie wymagało wprowadzenia nazwy użytkownika i hasła co 30 minut (możesz określić ten przedział czasu również z godzinami).
  4. przypadki wrażliwe Wskazuje, że nazwy użytkowników i hasła są wrażliwe na literę.
  5. królestwo reprezentuje tekst okna dialogowego uwierzytelniania, który zostanie użyty do uwierzytelnienia do kałamarnicy.
  6. Wreszcie dostęp jest przyznawany tylko wtedy, gdy uwierzytelnianie proxy (Wymagany Proxy_auth) sukces.

Uruchom następujące polecenie, aby utworzyć plik i dodać poświadczenia dla użytkownika Gacanepa (Pomiń -C flaga, jeśli plik już istnieje).

# htpasswd -c/etc/squid/passwd gacanepa 
Ogranicz dostęp do kałamarnicy do użytkowników

Otwórz przeglądarkę internetową na komputerze klienta i spróbuj przeglądać dowolną witrynę.

Włącz uwierzytelnianie kalmarów

Jeśli uwierzytelnianie się powiedzie, dostęp jest przyznawany do żądanego zasobu. W przeciwnym razie dostęp do dostępu.

Korzystanie z pamięci podręcznej do przyspieszania transferu danych

Jedną z cech wyróżniających Squid jest możliwość buforowania zasobów wymaganych z sieci na dysku w celu przyspieszenia przyszłych żądań tych obiektów przez tego samego klienta lub innych.

Dodaj następujące dyrektywy w swoim kałamarnica.conf plik.

Cache_dir UFS/var/cache/squid 1000 16 256 Maksymum_Object_Size 100 MB Refresh_pattern .*\.(MP4 | ISO) 2880 

Kilka wyjaśnień powyższych dyrektyw.

  1. UFS to format przechowywania kalmarów.
  2. /var/cache/kalmar to katalog najwyższego poziomu, w którym pliki pamięci podręcznej będą przechowywane. Ten katalog musi istnieć i być napisany przez Squid (Squid nie utworzy dla ciebie tego katalogu).
  3. 1000 to kwota (w MB) do użycia w tym katalogu.
  4. 16 jest liczbą podlokatorów pierwszego poziomu, podczas gdy 256 jest liczbą podlokatorów drugiego poziomu wewnątrz /var/szpula/kalmar.
  5. Maximum_Object_Size dyrektywa określa maksymalny rozmiar dozwolonych obiektów w pamięci podręcznej.
  6. odświeżanie_pattern Mówi Squid, jak radzić sobie z określonymi typami plików (.MP4 I .ISO w takim przypadku) i jak długo powinien przechowywać żądane obiekty w pamięci podręcznej (2880 minut = 2 dni).

Pierwszy i drugi 2880 są odpowiednio niższymi i górnymi limitami, o tym, jak długie obiekty bez wyraźnego czasu wygaśnięcia będą uważane za niedawno, a zatem będą obsługiwane przez pamięć podręczną, podczas gdy 0% to odsetek wieku obiektów (czas od ostatniej modyfikacji), że każdy obiekt bez wyraźnego czasu wygaśnięcia będzie uważany za niedawno.

Studium przypadku: pobieranie .Plik MP4 od 2 różnych klientów i testowanie pamięci podręcznej

Pierwszy klient (IP 192.168.0.104) Pobieranie a 71 MB .MP4 Plik w 2 minuty i 52 sekundy.

Włącz buforowanie kałamarnicy

Drugi klient (IP 192.168.0.17) Pobiera ten sam plik w 1.4 sekundy!

Sprawdź buforowanie kalmarów

To dlatego, że plik był obsługiwany z Pamięć podręczna kałamarnicy (wskazany przez TCP_HIT/200) W drugim przypadku, w przeciwieństwie do pierwszej instancji, kiedy został pobrany bezpośrednio z Internetu (reprezentowany przez TCP_MISS/200).

UDERZYĆ I CHYBIĆ Słowa kluczowe wraz z 200 http Kod odpowiedzi, wskazuj, że plik został pomyślnie obsługiwany za każdym razem, ale pamięć podręczna została odpowiednio uderzona i pominięta. Gdy z jakiegoś powodu nie może być odobowiązana prośba, wówczas kalmar.

Kody HTTP kalmarów

Wniosek

W tym artykule omówiliśmy, jak skonfigurować Proxy buforowania w kalm. Możesz użyć serwera proxy do filtrowania zawartości za pomocą wybranych kryteriów, a także w celu zmniejszenia opóźnień (ponieważ identyczne żądania przychodzące są obsługiwane z pamięci podręcznej, która jest bliżej klienta niż serwer WWW, który faktycznie obsługuje treść, co skutkuje szybszym transfer danych) i ruch sieciowy (zmniejszając kwotę używanej przepustowości, która oszczędza pieniądze, jeśli płacisz za ruch).

Możesz odwołać się do strony internetowej Squid w celu uzyskania dalszej dokumentacji (upewnij się, że również sprawdź wiki), ale nie wahaj się z nami skontaktować, jeśli masz jakieś pytania lub komentarze. Będziemy więcej niż zadowolenie z ciebie!

Zostań inżynierem certyfikowanym Linux