Jak zainstalować i skonfigurować Squid Proxy na Ubuntu 20.04

Squid jest w pełni funkcjonalnym proxy buforującym, obsługującym popularne protokoły sieciowe, takie jak HTTP, HTTPS, FTP i inne. Może być używany do poprawy wydajności serwera WWW przez buforowanie powtarzających się żądań, filtrowanie ruchu sieciowego i dostęp do treści z ograniczeniami geograficznymi.

Ten poradnik wyjaśnia, jak skonfigurować Squid Proxy na Ubuntu 20.04 i skonfigurować przeglądarki Firefox i Google Chrome do korzystania z niego.

Instalacja Squid na Ubuntu #

Pakiet squid jest zawarty w standardowych repozytoriach Ubuntu 20.04. Aby go zainstalować, wykonaj następujące polecenia jako użytkownik sudo:

sudo apt updatesudo apt install squid

Po zakończeniu instalacji, usługa Squid uruchomi się automatycznie. Aby to zweryfikować, sprawdź status usługi:

sudo systemctl status squid

Wyjście będzie wyglądało tak:

● squid.service - Squid Web Proxy Server Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-10-23 19:02:43 UTC; 14s ago Docs: man:squid(8)...

Konfigurowanie usługi Squid #

Usługa Squid może być skonfigurowana poprzez edycję pliku /etc/squid/squid.conf. Plik konfiguracyjny zawiera komentarze, które opisują co robi każda opcja konfiguracyjna. Możesz również umieścić swoje ustawienia konfiguracyjne w oddzielnych plikach, które mogą być dołączone do głównego pliku konfiguracyjnego za pomocą dyrektywy „include”.

Przed wprowadzeniem jakichkolwiek zmian, zaleca się wykonanie kopii zapasowej oryginalnego pliku konfiguracyjnego:

sudo cp /etc/squid/squid.conf{,.orginal}

Aby rozpocząć konfigurację instancji squida, otwórz plik w edytorze tekstu:

sudo nano /etc/squid/squid.conf

Domyślnie, squid jest ustawiony na nasłuchiwanie na porcie 3128 na wszystkich interfejsach sieciowych na serwerze.

Jeśli chcesz zmienić port i ustawić interfejs nasłuchujący, znajdź linię zaczynającą się od http_port i podaj adres IP interfejsu oraz nowy port. Jeśli nie zostanie określony żaden interfejs, Squid będzie nasłuchiwał na wszystkich interfejsach.

/etc/squid/squid.conf
# Squid normally listens to port 3128http_port IP_ADDR:PORT

Uruchamianie Squida na wszystkich interfejsach i na domyślnym porcie powinno być w porządku dla większości użytkowników.

Squid pozwala kontrolować, w jaki sposób klienci mogą uzyskać dostęp do zasobów sieciowych za pomocą list kontroli dostępu (ACL). Domyślnie, dostęp jest dozwolony tylko z localhost.

Jeśli wszyscy klienci, którzy używają proxy mają statyczne adresy IP, najprostszą opcją ograniczenia dostępu do serwera proxy jest stworzenie ACL, która będzie zawierała dozwolone IP. W przeciwnym razie można ustawić squida tak, aby używał uwierzytelniania.

Zamiast dodawać adresy IP w głównym pliku konfiguracyjnym, utwórz nowy dedykowany plik, który będzie zawierał dozwolone IP:

/etc/squid/allowed_ips.txt
192.168.33.1# All other allowed IPs

Po wykonaniu tych czynności, otwórz główny plik konfiguracyjny i utwórz nowy ACL o nazwie allowed_ips (pierwsza podświetlona linia) i zezwól na dostęp do tego ACL używając dyrektywy http_access (druga podświetlona linia):

/etc/squid/squid.conf
# ...acl allowed_ips src "/etc/squid/allowed_ips.txt"# ...#http_access allow localnethttp_access allow localhosthttp_access allow allowed_ips# And finally deny all other access to this proxyhttp_access deny all

Porządek reguł http_access jest ważny. Upewnij się, że dodajesz linię przed http_access deny all.

Dyrektywa http_access działa w podobny sposób jak reguły firewalla. Squid czyta reguły od góry do dołu, a kiedy reguła pasuje, reguły poniżej nie są przetwarzane.

Kiedy dokonasz zmian w pliku konfiguracyjnym, musisz zrestartować usługę Squida, aby zmiany zaczęły obowiązywać:

sudo systemctl restart squid

Uwierzytelnianie Squida #

Jeśli ograniczanie dostępu na podstawie IP nie działa w twoim przypadku, możesz skonfigurować Squida tak, aby używał back-endu do uwierzytelniania użytkowników. Squid obsługuje Sambę, LDAP, oraz HTTP basic auth.

W tym przewodniku będziemy używać basic auth. Jest to prosta metoda uwierzytelniania wbudowana w protokół HTTP.

Aby wygenerować zaszyfrowane hasło, użyj narzędzia openssl. Poniższe polecenie dołącza parę USERNAME:PASSWORD do pliku /etc/squid/htpasswd:

printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd

Na przykład, aby utworzyć użytkownika „josh” z hasłem „P@ssvv0rT„, należy uruchomić:

printf "josh:$(openssl passwd -crypt 'P@ssvv0rd')\n" | sudo tee -a /etc/squid/htpasswd
josh:QMxVjdyPchJl6

Kolejnym krokiem jest włączenie podstawowego uwierzytelniania HTTP i dołączenie pliku zawierającego dane uwierzytelniające użytkownika do pliku konfiguracyjnego squida.

Otwórz główną konfigurację i dodaj następujące elementy:

sudo nano /etc/squid/squid.conf
/etc/squid/squid.conf
# ...auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/htpasswdauth_param basic realm proxyacl authenticated proxy_auth REQUIRED# ...#http_access allow localnethttp_access allow localhosthttp_access allow authenticated# And finally deny all other access to this proxyhttp_access deny all

Pierwsze trzy wyróżnione linie tworzą nową ACL o nazwie authenticated, a ostatnia wyróżniona linia zezwala na dostęp uwierzytelnionym użytkownikom.

Restart usługi Squid:

sudo systemctl restart squid

Konfiguracja zapory sieciowej #

Aby otworzyć porty Squid, włącz profil UFW’Squid':

sudo ufw allow 'Squid'

Jeśli Squid działa na innym, nie-domyślnym porcie, na przykład 8888 możesz zezwolić na ruch na tym porcie za pomocą: sudo ufw allow 8888/tcp.

Konfigurowanie przeglądarki do korzystania z proxy #

Teraz, gdy masz już skonfigurowany Squid, ostatnim krokiem jest skonfigurowanie preferowanej przeglądarki do korzystania z niego.

Firefox #

Poniższe kroki są takie same dla Windows, macOS i Linux.

  1. W prawym górnym rogu kliknij na ikonę hamburgera , aby otworzyć menu Firefoksa:

  2. Kliknij na link ⚙ Preferences.

  3. Przewiń w dół do sekcji Network Settings i kliknij przycisk Settings....

  4. Otworzy się nowe okno.

    • Wybierz przycisk radiowy Manual proxy configuration.
    • Wprowadź adres IP swojego serwera Squid w polu HTTP Host oraz 3128 w polu Port.
    • Zaznaczyć pole wyboru Use this proxy server for all protocols.
    • Kliknąć przycisk OK, aby zapisać ustawienia.
    Firefox Squid Proxy

W tym momencie, Twój Firefox jest skonfigurowany i możesz przeglądać Internet przez proxy Squid. Aby to sprawdzić, otwórz google.com, wpisz „what is my ip” i powinieneś zobaczyć swój adres IP serwera Squid.

Aby przywrócić domyślne ustawienia, przejdź do Network Settings, wybierz Use system proxy settings przycisk radiowy i zapisz ustawienia.

Istnieje kilka wtyczek, które mogą również pomóc w konfiguracji ustawień proxy Firefoksa, takich jak FoxyProxy.

Google Chrome #

Google Chrome używa domyślnych ustawień proxy systemu. Zamiast zmieniać ustawienia proxy systemu operacyjnego, możesz użyć dodatku, takiego jak SwitchyOmega lub uruchomić przeglądarkę Chrome z wiersza poleceń.

Aby uruchomić Chrome przy użyciu nowego profilu i połączyć się z serwerem Squid, użyj następującego polecenia:

Linux :

/usr/bin/google-chrome \ --user-data-dir="$HOME/proxy-profile" \ --proxy-server="http://SQUID_IP:3128"

macOS :

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \ --user-data-dir="$HOME/proxy-profile" \ --proxy-server="http://SQUID_IP:3128"

Windows :

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^ --user-data-dir="%USERPROFILE%\proxy-profile" ^ --proxy-server="http://SQUID_IP:3128"

Profil zostanie utworzony automatycznie, jeśli nie istnieje. W ten sposób możesz uruchomić wiele instancji Chrome w tym samym czasie.

Aby potwierdzić, że serwer proxy działa poprawnie, otwórz google.com, i wpisz „what is my ip”. IP pokazane w przeglądarce powinno być adresem IP Twojego serwera.

Wnioski #

Squid jest jednym z najpopularniejszych serwerów cache proxy. Poprawia szybkość działania serwera WWW i może pomóc w ograniczeniu dostępu użytkowników do Internetu.

Pokazaliśmy, jak zainstalować i skonfigurować Squida na Ubuntu 20.04 oraz jak skonfigurować przeglądarkę, aby z niego korzystała.

Więcej informacji na ten temat można znaleźć na stronie internetowej.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *