W czasach, kiedy internet współdzieliliśmy z sąsiadami przeciągając skrętkę między piętrami i między oknami naszych bloków, a dostawcy internetu oferowali zawrotne prędkości na poziomie 64 Kb/s czy 128 Kb/s, a potem dochodziliśmy powoli do 512 Kb/s i wyżej, szalenie ważną rolę odgrywały serwery proxy. Pozwalały one na przechowywanie w cache części zawartości stron, dzięki czemu, tak w ogromnym uproszczeniu, strony ładowały się po prostu szybciej. Wystarczyło, że jeden ze współdzielących internautów odwiedził daną stronę, a jej elementy zostawały na serwerze proxy (takie jak obrazki, skrypty – innymi słowy zawartość statyczna), dzięki czemu wszyscy inni, podpięci już łączami na poziomie 10 Mb/s i 100 Mb/s w sieci lokalnej, ładowali część strony bezpośrednio z proxy odciążając internet. Dziś, kiedy mamy łącza rzędu 1 Gb/s, nie ma to praktycznie znaczenia, ale wtedy bez proxy – internet po prostu działał niesamowicie wolno.
Proxy dzisiaj może mieć, podobnie jak wtedy, wiele innych zalet. Przede wszystkim, w korporacjach często korzysta się z proxy po to, aby limitować ruch do zasobów sieci. Nie zawsze takie usługi realizowane są przez urządzenia do tego stworzone, ale często spotykamy się z rozwiązaniami software opartymi właśnie na squid. Budując reguły, dopuszcza się konkretne strony, a całą resztę blokuje, dzięki czemu pracownicy, którzy mają ograniczone możliwości wyłączenia proxy czy ominięcia go, mogą wchodzić wyłącznie na strony dopuszczone przez dział bezpieczeństwa. Inna sprawa, że wciąż na Polskiej mapie są miejsca, gdzie internet nie przekracza 5 Mb/s lub dostęp jest możliwy tylko za pomocą sieci mobilnej z ograniczoną liczbą danych do przesłania. Zatem Proxy wciąż jest bardzo szeroko wykorzystywany.
W dzisiejszym artykule pokażę, jak zainstalować i skonfigurować serwer proxy w oparciu o najbardziej popularne rozwiązanie tego typu – squid, uruchomiony na serwerze z najnowszym systemem operacyjnym CentOS 9.
Instalacja
yum install squid
Squid znajduje się w repozytoriach standardowych, więc nie ma potrzeby dorzucania dodatkowych repozytoriów. W chwili pisania tego poradnika najnowszą dostępną wersją w repozytorium jest: squid-5.5-1.el9
Uruchamiamy i włączamy squid’a, aby startował razem z systemem.
systemctl enable squid
systemctl start squid
Konfiguracja
Pliki konfiguracyjne squid’a znajdują się w katalogu /etc/squid.
Główny plik konfiguracyjny: /etc/squid/squid.conf
Domyślnym portem nasłuchiwania dla proxy squid jest port: 3128 i binduje na wszystkie interfejsy, zarówno zewnętrzny, jak i lokalny na serwerze.
Aby zmienić port nasłuchu zmieniamy konfigurację:
http_port INNY_PORT
Ja, dla potrzeb niniejszego artykułu, zostawiłem port domyślny: 3128
Konfigurowanie dostępów realizowane jest za pomocą ACL – access control list.
Domyślnie, jak widać, squid zezwala na dostęp i komunikację w sieciach lokalnych. Z reguły jest to wystarczające do podstawowej kontroli dostępu.
Uwierzytelnianie w proxy Squid
Aby nasz serwer proxy był jeszcze bardziej bezpieczny, konieczne będzie dodanie możliwości uwierzytelniania – czyli dostępu na login i hasło. Dzięki temu dodamy kolejną warstwę ochrony. Wówczas, nawet jeśli ktoś przypadkowo w naszej sieci lokalnej przyłączy nieautoryzowane urządzenie, to i tak nie będzie mógł skorzystać z naszego serwera.
Konfiguracja pliku autoryzacyjnego znajduje się w /etc/squid/htpasswd.
Wygląd i działanie pliku znamy z pewnością z basic auth serwera www Apache. Instalujemy niezbędne narzędzie do generowania haseł i loginów. Możemy też generować hasła na boku i po prostu wklejać je do pliku- jeśli chcemy zachować pełny minimalizm systemu i nie instalować tool’a z Apache.
yum install httpd_tools
Dodawanie użytkowników
htpasswd -c /etc/squid/htpasswd azug
Pamiętaj, że przełącznik -c używamy tylko pierwszy raz. Kolejne dodawanie użytkowników realizujemy bez -c (nadpisze on nasz plik).
Umieszczamy konfigurację w /etc/squid/squid.conf, aby nasz mechanizm autoryzacji mógł działać poprawnie.
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/htpasswd.
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
Przeładowujemy konfigurację squid’a
systemctl restart squid
Dodanie wyjątku do firewalla
Jeśli mamy uruchomiony Firewall – nie zapomnijmy o dodaniu odpowiedniej regułki do naszego filtra, aby dopuścić ruch dla squid’a.
Np. dla firewalld, którego konfigurację także pokazywałem na Władcach Sieci, przykładowa regułka wyglądałaby mniej więcej tak:
firewall-cmd --permanent --add-port=3128/tcp
Sprawdzamy czy squid nasłuchuje na wskazanym przez nas porcie.
Konfiguracja przeglądarki
W ustawieniach sieciowych przeglądarki (w tym przypadku Firefox) wpisujemy dane do naszego Squid’a.
Po wejściu na stronę, na przykład wladcysieci.pl, pojawi nam się okienko logowania do proxy.
Wpisujemy wygenerowany login i hasło.
To wszystko J Mamy uruchomiony własny serwer proxy i już możemy filtrować na nim ruch układając ACL, regułki przyspieszając działanie stron i ich wczytywanie się.
Korzystanie ze Squid’a bez hasła
Dla niektórych adresów IP, możemy dodatkowo zrezygnować z uwierzytelniania, na przykład z naszego domowego IP, jeśli jest stałe lub z całej klasy adresowej.
Jeśli chcemy otworzyć squida na świat i zezwolić na komunikację z innego zewnętrznego IP, to w tym miejscu musimy dodać odpowiednią regułę ACL.
# Własny zakres IP
# Pojedynczy IP
acl moje-ip src 1.2.3.4/32
# Klasa adresowa
acl moja-klasa src 4.3.2.1/24
Poniżej zdefiniowanych wszystkich ACL musimy dodać regułę dopuszczającą ruch:
http_access allow moje-ip
http_access allow moja-klasa
Restartujemy Squid’a
systemctl restart squid
Wskazany adres IP lub klasa adresowa będą mogły łączyć się bez wpisywania hasła.
W kolejnych artykułach pokażę, jak jeszcze mocniej zabezpieczyć, jak filtrować wskazane strony internetowe i konfigurować cache w proxy Squid.
Autor zapomniał napisać o najważniejszym! Że to nie będzie dzizłać bo 95% www jest szyfrowana a nie Squid zaszyfrowanych www nie jest w stanie cachować.
… [Trackback]
[…] Here you will find 56191 additional Information on that Topic: wladcysieci.pl/2022/09/07/uruchamiamy-serwer-proxy-w-sieci-lokalnej-instalacja-i-prosta-konfiguracja-squid-proxy/ […]
… [Trackback]
[…] Find More on on that Topic: wladcysieci.pl/2022/09/07/uruchamiamy-serwer-proxy-w-sieci-lokalnej-instalacja-i-prosta-konfiguracja-squid-proxy/ […]
… [Trackback]
[…] Here you will find 40433 additional Info to that Topic: wladcysieci.pl/2022/09/07/uruchamiamy-serwer-proxy-w-sieci-lokalnej-instalacja-i-prosta-konfiguracja-squid-proxy/ […]
… [Trackback]
[…] Read More Info here on that Topic: wladcysieci.pl/2022/09/07/uruchamiamy-serwer-proxy-w-sieci-lokalnej-instalacja-i-prosta-konfiguracja-squid-proxy/ […]
… [Trackback]
[…] Read More Info here to that Topic: wladcysieci.pl/2022/09/07/uruchamiamy-serwer-proxy-w-sieci-lokalnej-instalacja-i-prosta-konfiguracja-squid-proxy/ […]
… [Trackback]
[…] Info on that Topic: wladcysieci.pl/2022/09/07/uruchamiamy-serwer-proxy-w-sieci-lokalnej-instalacja-i-prosta-konfiguracja-squid-proxy/ […]