Serwer proxy ma wiele zastosowań. Może on obejmować od osobistego dostępu do Internetu do ograniczenia systemów/serwerów organizacji do dostępu do świata zewnętrznego lub do ograniczenia zewnętrznego dostępu do Internetu dla zestawu serwerów w chmurze.
Najlepszym sposobem na skonfigurowanie serwera proxy jest użycie Squid proxy. Jest to szeroko stosowany serwer proxy.
W tym artykule omówiliśmy następujące zagadnienia.
- Instalacja serwera proxy
- Konfiguracja serwera proxy
- Konfiguracja podstawowego uwierzytelniania proxy.
Uwaga: Ten poradnik został przetestowany na systemie CentOS 7. Dla konfiguracji Ubuntu, sprawdź ten poradnik – Squid Proxy Setup On Ubuntu
Instalacja serwera proxy: Squid Proxy
Krok 1: Zaktualizuj serwer
sudo yum update -y
Krok 2: Skonfiguruj EPEL repo.
sudo yum -y install epel-releasesudo yum -y updatesudo yum clean all
Krok 3: Zainstaluj squid
sudo yum -y install squid
Krok 4: Uruchom i włącz serwer squid.
sudo systemctl start squidsudo systemctl enable squid
Krok 5: Sprawdź status serwera squid.
sudo systemctl status squid
Konfiguracja serwera proxy: Squid Proxy
Wszystkie konfiguracje dla serwera squid są obecne w pliku /etc/squid/squid.conf
.
Konfiguracja źródeł proxy, aby uzyskać dostęp do Internetu
Po pierwsze, musisz skonfigurować źródła, z których squid proxy powinno akceptować połączenia. Na przykład, możesz potrzebować dostępu do tego serwera proxy tylko z sieci domowej lub z określonych zakresów CIDR.
Możesz dodać źródłowy zakres IP z ACL używając następującego formatu.
acl localnet src 110.220.330.0/24
Otwórz /etc/squid/squid.conf
plik i dodaj źródło jak pokazano poniżej. Zmień IP na żądane źródło sieci/IP w oparciu o swoje potrzeby. W poniższym przykładzie, dodaliśmy pojedyncze źródło IP.
Restart serwera proxy po wprowadzeniu zmian ACL.
sudo systemctl restart squid
Sprawdź łączność z serwerem proxy
Sprawdź, czy serwer proxy działa, używając prostego żądania curl. Użyj następującego formatu curl. Domyślnie squid proxy działa na porcie 3128.
curl -x http://<squid-proxy-server-IP>:3128 -L http://google.com
Konfiguracja uwierzytelniania proxy
Wraz z listami ACL dostępu, możesz dodać podstawowe uwierzytelnianie do swojego serwera proxy dla dodatkowego bezpieczeństwa. Wykonaj poniższe kroki, aby skonfigurować podstawowe uwierzytelnianie dla serwera proxy squid.
Krok 1: Zainstaluj httpd-tools
sudo yum -y install httpd-tools
Krok 2: Utwórz plik passwd i ustaw squid jako właściciela pliku.
sudo touch /etc/squid/passwd && sudo chown squid /etc/squid/passwd
Krok 3: Dodaj pxuser do pliku haseł używając narzędzia htpasswd. Pojawi się monit o podanie niestandardowego hasła. Wprowadź silne hasło, którego potrzebujesz. Ta nazwa użytkownika i hasło będą używane dla wszystkich połączeń przez to proxy.
sudo htpasswd /etc/squid/passwd pxuser
Krok 4: Otwórz plik konfiguracyjny squida.
sudo vi /etc/squid/squid.conf
Dodaj następujące elementy do pliku konfiguracyjnego i zapisz go.
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwdauth_param basic children 5auth_param basic realm Squid Basic Authenticationauth_param basic credentialsttl 2 hoursacl auth_users proxy_auth REQUIREDhttp_access allow auth_users
Krok 5: Teraz zrestartuj serwer squid, aby zmiany w konfiguracji zostały wprowadzone.
sudo systemctl restart squid
Krok 6: Teraz, jeśli przetestujesz połączenie proxy za pomocą curl, otrzymasz komunikat „authentication required message”, jak pokazano poniżej.
Teraz przetestuj połączenie z użytkownikiem proxy i hasłem, które skonfigurowaliśmy w kroku 3. Przykładowa składnia jest pokazana poniżej.
curl -x http://35.196.101.43:3128 --proxy-user pxuser:12345 -I http://google.com
Z nazwą użytkownika i hasłem, twoje żądanie proxy powinno przejść.
Blokowanie stron internetowych
Kolejnym świetnym zastosowaniem serwera proxy jest ograniczanie dostępu do stron internetowych. Wykonaj poniższe kroki, aby utworzyć listę blokowania.
Krok 1: Otwórz plik listy blokowanych stron.
sudo vi /etc/squid/blocked_sites
Dodaj strony internetowe, które mają być zablokowane w pliku. Na przykład,
facebook.comtwitter.cominstagram.com
Krok 2: Otwórz plik konfiguracyjny squid.
sudo vi /etc/squid/squid.conf
Dodaj następujące elementy do listy ACL.
acl blocked_sites dstdomain "/etc/squid/blocked_sites"http_access deny blocked_sites
Krok 3: Uruchom ponownie serwer squid.
sudo systemctl restart squid
Teraz, jeśli spróbujesz uzyskać dostęp do zablokowanej witryny przez proxy, otrzymasz zakazany komunikat, jak pokazano poniżej.
- More