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 squid
sudo 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/tcp
firewall-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 Settings
i kliknij przyciskSettings...
. -
otworzy się nowe okno.
- wybierz przycisk radiowy
Manual proxy configuration
. - wprowadź adres IP serwera Squid w polu
HTTP Host
i3128
w 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.