Jak zainstalować i skonfigurować Squid Proxy na CentOS 7

Squid to w pełni funkcjonalny buforowy serwer proxy obsługujący popularne protokoły sieciowe, takie jak HTTP, HTTPS, FTP i inne. Umieszczenie Squida przed serwerem WWW może znacznie poprawić wydajność serwera poprzez buforowanie powtarzających się żądań, filtrowanie ruchu internetowego i dostęp do treści z ograniczeniami geograficznymi.

ten poradnik wyjaśnia, jak skonfigurować Squid na CentOS 7 i skonfigurować przeglądarki Firefox i Google Chrome do korzystania z proxy.

instalacja Squid na CentOS #

Pakiet Squid jest zawarty w domyślnych repozytoriach CentOS 7. Aby go zainstalować uruchom następujące polecenie jako użytkownik sudo:

sudo yum install squid

po zakończeniu instalacji Uruchom i włącz usługę Squid:

sudo systemctl start squidsudo systemctl enable squid

aby sprawdzić, czy instalacja przebiegła pomyślnie, wpisz następujące polecenie, które wyświetli status usługi:

sudo systemctl status squid
● squid.service - Squid caching proxy Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2019-07-13 16:47:56 UTC; 12s ago...

Konfigurowanie Squid #

Squid można skonfigurować poprzez edycję pliku /etc/squid/squid.conf. Dodatkowe pliki z opcjami konfiguracyjnymi mogą być dołączane za pomocą dyrektywy „include”.

przed dokonaniem jakichkolwiek zmian Utwórz kopię zapasową oryginalnego pliku konfiguracyjnego za pomocą polecenia cp:

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

aby edytować plik, otwórz go w edytorze tekstu:

sudo nano /etc/squid/squid.conf

domyślnie Squid jest skonfigurowany do nasłuchiwania na porcie 3128 na wszystkich interfejsach sieciowych serwera.

jeśli chcesz zmienić port i ustawić interfejs nasłuchujący, znajdź linię zaczynającą się od http_port i określ adres IP interfejsu i Nowy port. Jeśli nie podano interfejsu, 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ć dobre dla większości użytkowników.

możesz kontrolować dostęp do serwera Squid za pomocą list kontroli dostępu (ACL).

domyślnie Squid umożliwia dostęp tylko z localhost i localnet.

jeśli wszyscy klienci korzystający z serwera proxy mają statyczny adres IP, możesz utworzyć ACL, który będzie zawierał dozwolone adresy IP.

zamiast dodawać adresy IP w głównym pliku konfiguracyjnym utworzymy nowy dedykowany plik, który będzie zawierał adresy IP:

/etc/squid/allowed_ips.txt

192.168.33.1# All other allowed IPs

po zakończeniu 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 przy użyciu 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

kolejność zasad http_access jest ważna. Upewnij się, że dodałeś linię przed http_access deny all.

dyrektywa http_access działa w podobny sposób jak reguły zapory sieciowej. Squid odczytuje reguły od góry do dołu, a gdy reguła pasuje do poniższych reguł nie są przetwarzane.

za każdym razem, gdy wprowadzasz zmiany w pliku konfiguracyjnym, musisz ponownie uruchomić usługę Squid, aby zmiany zaczęły obowiązywać:

sudo systemctl restart squid

uwierzytelnianie Squid #

Squid może używać różnych back-endów, w tym samby, LDAP i HTTP basic auth dla uwierzytelnionych użytkowników.

w tym przykładzie skonfigurujemy Squida tak, aby używał basic auth. Jest to prosta metoda uwierzytelniania wbudowana w protokół HTTP.

użyjemy openssl do wygenerowania haseł i dołączymy parę username:password do pliku /etc/squid/htpasswd za pomocą polecenia tee, jak pokazano poniżej:

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

na przykład, aby utworzyć użytkownika o nazwie „mike” z hasłem ” Pz$lPk76„, należy uruchomić:

printf "mike:$(openssl passwd -crypt 'Pz$lPk76')\n" | sudo tee -a /etc/squid/htpasswd
mike:2nkgQsTSPCsIo

następnym krokiem jest skonfigurowanie Squida, aby włączyć podstawowe uwierzytelnianie HTTP i używać pliku.

otwórz główną konfigurację i dodaj:

/etc/squid/squid.conf
# ...auth_param basic program /usr/lib64/squid/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

z trzema pierwszymi podświetlonymi liniami tworzymy nowy ACL o nazwie authenticated. Ostatnia podświetlona linia umożliwia dostęp do uwierzytelnionych użytkowników.

Uruchom ponownie serwis Squid:

sudo systemctl restart squid

Konfigurowanie zapory #

jeśli używasz zapory, musisz otworzyć port 3128. Aby to zrobić, uruchom następujące polecenia:

sudo firewall-cmd --permanent --add-port=3128/tcpfirewall-cmd --reload

jeśli Squid działa na innym, nie domyślnym porcie, musisz zezwolić na ruch na tym porcie.

Konfigurowanie przeglądarki do korzystania z Proxy #

teraz, gdy masz skonfigurowany Squid, ostatnim krokiem jest skonfigurowanie preferowanej przeglądarki, aby z niej korzystać.

Firefox #

poniższe kroki są takie same dla Systemów Windows, macOS i Linux.

  1. w prawym górnym rogu kliknij 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 serwera Squid w polu HTTP Host i 3128 w polu Port.
    • zaznacz pole wyboru Use this proxy server for all protocols.
    • kliknij przycisk OK, aby zapisać ustawienia.
    Firefox Squid Proxy

w tym momencie Firefox jest skonfigurowany i możesz przeglądać Internet za pośrednictwem serwera proxy Squid. Aby to zweryfikować, otwórz google.com, wpisz „what is my ip” i powinieneś zobaczyć adres IP serwera Squid.

aby powrócić do ustawień domyślnych przejdź do Network Settings, wybierz przycisk radiowy Use system proxy settings i zapisz ustawienia.

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

Google Chrome #

Google Chrome używa domyślnych ustawień systemowego serwera proxy. Zamiast zmieniać ustawienia proxy systemu operacyjnego, możesz użyć dodatku, takiego jak SwitchyOmegaor uruchom 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"

okna :

"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żna uruchomić wiele instancji Chrome w tym samym czasie.

aby potwierdzić, że serwer proxy działa poprawnie, otwórz google.com i wpisz „jakie jest moje ip”. Adres IP wyświetlany w przeglądarce powinien być adresem IP serwera.

wniosek #

nauczyłeś się jak zainstalować squida na CentOS 7 i skonfigurować przeglądarkę, aby z niego korzystać.

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

Leave a Reply

Twój adres e-mail nie zostanie opublikowany.