Wyszukiwanie w witrynie

Jak skonfigurować serwer „Squid Proxy” na Ubuntu i Debianie


Squid to najpopularniejszy internetowy serwer proxy HTTP do buforowania i przesyłania dalej, używany przez moją szeroką gamę firm do buforowania stron internetowych z serwera internetowego w celu poprawy szybkości serwera WWW, skrócenia czasu odpowiedzi i zmniejszenia wykorzystania przepustowości sieci.

Przeczytaj także: Jak utworzyć serwer proxy HTTP za pomocą Squid w CentOS 7

W tym artykule wyjaśnimy, jak zainstalować serwer proxy squid w dystrybucjach Ubuntu i Debian i używać go jako serwera proxy HTTP.

Jak zainstalować Squida na Ubuntu

Zanim zaczniemy, powinieneś wiedzieć, że serwer Squid nie ma żadnych wymagań, jednak ilość wykorzystanej pamięci RAM może się różnić w zależności od klientów przeglądających Internet za pośrednictwem serwera proxy.

Pakiet Squid jest dostępny do zainstalowania z podstawowego repozytorium Ubuntu, ale wcześniej pamiętaj o zaktualizowaniu pakietów poprzez uruchomienie.

sudo apt update

Po zaktualizowaniu pakietów możesz przejść dalej, aby zainstalować squid, uruchomić go i włączyć podczas uruchamiania systemu, używając następujących poleceń.

sudo apt -y install squid
sudo systemctl start squid
sudo systemctl enable squid

W tym momencie Twój internetowy serwer proxy Squid powinien już działać i możesz sprawdzić status usługi za pomocą.

sudo systemctl status squid
Przykładowe wyjście
● squid.service - LSB: Squid HTTP Proxy version 3.x
   Loaded: loaded (/etc/init.d/squid; generated)
   Active: active (running) since Tue 2018-12-04 06:42:43 UTC; 14min ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 4 (limit: 1717)
   CGroup: /system.slice/squid.service
           ├─2761 /usr/sbin/squid -YC -f /etc/squid/squid.conf
           ├─2766 (squid-1) -YC -f /etc/squid/squid.conf
           ├─2768 (logfile-daemon) /var/log/squid/access.log
           └─2772 (pinger)

Dec 04 06:42:43 tecmint systemd[1]: Starting LSB: Squid HTTP Proxy version 3.x...
Dec 04 06:42:43 tecmint squid[2708]:  * Starting Squid HTTP Proxy squid
Dec 04 06:42:43 tecmint squid[2708]:    ...done.
Dec 04 06:42:43 tecmint systemd[1]: Started LSB: Squid HTTP Proxy version 3.x.
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: will start 1 kids
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: (squid-1) process 2766 started

Poniżej znajduje się kilka ważnych lokalizacji plików squid, o których powinieneś wiedzieć:

  • Plik konfiguracyjny Squida: /etc/squid/squid.conf
  • Dziennik dostępu Squid: /var/log/squid/access.log
  • Dziennik pamięci podręcznej Squid: /var/log/squid/cache.log

Domyślny plik konfiguracyjny zawiera pewne dyrektywy konfiguracyjne, które należy skonfigurować, aby wpłynąć na zachowanie Squida.

Teraz otwórz ten plik do edycji za pomocą edytora Vi i wprowadź zmiany, jak pokazano poniżej.

sudo vim /etc/squid/squid.conf

Teraz możesz wyszukiwać następujące linie i zmieniać je zgodnie z żądaniem. W edytorze Vi możesz wyszukiwać te linie, naciskając 'ESC' i wpisując „/ ”, aby wpisać konkretne wiersze, których należy szukać.

  • http_port: jest to domyślny port dla serwera proxy HTTP, domyślnie jest to 3128, możesz go zmienić na dowolny inny, możesz także dodać Tag „przezroczysty” na końcu linii, np. http_port 8888 przezroczysty, aby serwer proxy Squid działał jak przezroczysty serwer proxy, jeśli chcesz.
  • http_access odmów wszystkim: ta linia nie pozwoli nikomu uzyskać dostępu do serwera proxy HTTP, dlatego musisz ją zmienić na http_access zezwól wszystkim, aby rozpocząć korzystanie z serwera proxy Squid .
  • visible_hostname: ta dyrektywa służy do ustawienia konkretnej nazwy hosta dla serwera squid. Możesz nadać dowolną nazwę hosta Squidowi.

Po dokonaniu powyższych zmian możesz zrestartować serwer proxy Squid za pomocą polecenia.

sudo systemctl restart squid

Konfigurowanie Squida jako serwera proxy HTTP w systemie Ubuntu

W tej sekcji konfiguracji squid wyjaśnimy Ci, jak skonfigurować squid jako serwer proxy HTTP, używając wyłącznie adresu IP klienta do uwierzytelnienia.

Dodaj listy ACL Squid

Jeśli chcesz zezwolić tylko jednemu adresowi IP na dostęp do Internetu za pośrednictwem nowego serwera proxy, musisz zdefiniować nową acl (listę kontroli dostępu) w pliku konfiguracyjnym.

sudo vim /etc/squid/squid.conf

Reguła acl, którą powinieneś dodać, to:

acl localnet src XX.XX.XX.XX

Gdzie XX.XX.XX.XX to adres IP komputera klienckiego. To acl należy dodać na początku sekcji ACL, jak pokazano na poniższym zrzucie ekranu.

Zawsze dobrą praktyką jest zdefiniowanie komentarza obok ACL, który będzie na przykład opisywał, kto korzysta z tego adresu IP.

acl localnet src 192.168.0.102  # Boss IP address

Aby nowe zmiany zaczęły obowiązywać, konieczne będzie ponowne uruchomienie usługi Squid.

sudo systemctl restart squid

Otwórz porty w Squid Proxy

Domyślnie w konfiguracji squid dozwolone są tylko niektóre porty. Jeśli chcesz dodać więcej, po prostu zdefiniuj je w pliku konfiguracyjnym, jak pokazano.

acl Safe_ports port XXX

Gdzie XXX to numer portu, na który chcesz zezwolić. Ponownie dobrą praktyką jest zdefiniowanie komentarza obok acl, który będzie opisywał, do czego port będzie używany.

Aby zmiany odniosły skutek, będziesz musiał ponownie uruchomić squida.

sudo systemctl restart squid

Uwierzytelnianie klienta proxy Squid

Aby umożliwić użytkownikom uwierzytelnianie przed użyciem proxy, musisz włączyć podstawowe uwierzytelnianie http w pliku konfiguracyjnym, ale wcześniej musisz zainstalować pakiet apache2-utils za pomocą poniższego polecenia.

sudo apt install apache2-utils

Teraz utwórz plik o nazwie „passwd”, w którym później będzie przechowywana nazwa użytkownika na potrzeby uwierzytelnienia. Squid działa z użytkownikiem „proxy”, więc plik powinien być własnością tego użytkownika.

sudo touch /etc/squid/passwd
sudo chown proxy: /etc/squid/passwd
ls -l /etc/squid/passwd

Teraz utworzymy nowego użytkownika o nazwie „tecmint” i ustawimy jego hasło.

sudo htpasswd /etc/squid/passwd tecmint

New password: 
Re-type new password: 
Adding password for user tecmint

Teraz, aby włączyć podstawowe uwierzytelnianie http, otwórz plik konfiguracyjny.

sudo vim /etc/squid/squid.conf

Po listach ACL portów dodaj następujące wiersze:

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED
http_access allow auth_users

Zapisz plik i zrestartuj squida, aby nowe zmiany zaczęły obowiązywać:

sudo systemctl restart squid

Blokuj strony internetowe na Squid Proxy

Aby zablokować dostęp do niechcianych witryn, najpierw utwórz plik o nazwie „blacklisted_sites.acl”, w którym będą przechowywane witryny umieszczone na czarnej liście.

sudo touch /etc/squid/blacklisted_sites.acl

Teraz dodaj na przykład strony internetowe, do których chcesz zablokować dostęp.

.badsite1.com
.badsite2.com

Poniższa kropka informuje squida, aby zablokował wszystkie odniesienia do tych witryn, w tym www.badsite1, subsite.badsite1.com itp.

Teraz otwórz plik konfiguracyjny Squida.

sudo vim /etc/squid/squid.conf

Zaraz po powyższych listach ACL dodaj następujące dwie linie:

acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl"
http_access deny bad_urls

Teraz zapisz plik i uruchom ponownie squid:

sudo systemctl restart squid

Zablokuj określone słowo kluczowe za pomocą Squid

Aby zablokować listę słów kluczowych, utwórz najpierw plik o nazwie „blockkeywords.lst”, w którym będą przechowywane słowa kluczowe z czarnej listy.

sudo touch /etc/squid/blockkeywords.lst

Teraz dodaj na przykład słowa kluczowe, do których chcesz zablokować dostęp.

facebook
instagram
gmail

Teraz otwórz plik konfiguracyjny Squida i dodaj następującą regułę.

acl blockkeywordlist url_regex "/etc/squid/blockkeywords.lst"
http_access deny blockkeywordlist

Teraz zapisz plik i uruchom ponownie squid:

sudo systemctl restart squid

Gdy już wszystko zostanie poprawnie skonfigurowane, możesz teraz skonfigurować przeglądarkę internetową klienta lokalnego lub ustawienia sieciowe systemu operacyjnego, aby korzystało z nowo skonfigurowanego serwera proxy HTTP Squid.

Skonfiguruj klienta do korzystania z serwera proxy Squid

Teraz, aby sprawdzić, czy Twój serwer proxy działa, możesz otworzyć Firefox i przejść do Edycja –> Preferencje –> Zaawansowane –> Sieć –> Ustawienia i wybrać „Ręczna konfiguracja serwera proxy ” i wprowadź adres IP serwera proxy oraz port, który będzie używany dla wszystkich połączeń w następujący sposób.

Po wypełnieniu wszystkich wymaganych danych serwera proxy będziesz mógł surfować po Internecie za pomocą serwera proxy Squid. Możesz zrobić to samo w dowolnej innej przeglądarce lub programie.

Aby mieć pewność, że surfujesz po Internecie za pomocą serwera proxy, możesz odwiedzić http://www.ipaddresslocation.org/, w prawym górnym rogu musisz zobaczyć ten sam adres IP, co Twój serwer Adres IP.

Aby uzyskać więcej dodatkowych ustawień konfiguracyjnych, możesz sprawdzić oficjalną dokumentację squida. Jeśli masz jakieś pytania lub uwagi, dodaj je w sekcji komentarzy poniżej.