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.