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.
# 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:
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):
# ...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:
# ...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
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.
-
w prawym górnym rogu kliknij ikonę hamburgera
☰, aby otworzyć menu Firefoksa: -
kliknij na link
⚙ Preferences. -
przewiń w dół do sekcji
Network Settingsi kliknij przyciskSettings.... -
otworzy się nowe okno.
- wybierz przycisk radiowy
Manual proxy configuration. - wprowadź adres IP serwera Squid w polu
HTTP Hosti3128w poluPort. - zaznacz pole wyboru
Use this proxy server for all protocols. - kliknij przycisk
OK, aby zapisać ustawienia.

- wybierz przycisk radiowy
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.




