Serwery proxy dla Linuksa – funkcjonalność i szybkość

Bezpieczeństwo i prywatność w sieci to dwa aspekty, które są najistotniejsze w naszym surfowaniu po internecie. Wchodzimy na strony, których treść czasami jest dla nas kontrowersyjna bądź wstydliwa. Kto w takiej sytuacji chciałby pokazać, na jakich witrynach był? Wchodząc na stronę www, na przestrzeni dyskowej serwera zostawiamy czy chcemy tego czy nie nasz wirtualny ślad. Ślad ten, potocznie nazywany adresem IP, jest niejako znacznikiem, który pozostawiamy po sobie w sieci. Na podstawie tego znacznika, administrator danej strony doskonale wie, jakie są nasze preferencje, czego szukamy i tak dalej. Doskonałym rozwiązaniem, które eliminuje takie ślady jest zastosowanie serwera pośredniczącego, czyli serwera proxy. Jego zastosowanie jest bardzo sprytne, ponieważ sam posiada inny adres IP, przez co serwer docelowy identyfikuje jego, zamiast miałby zidentyfikować komputer bezpośredniego nadawcy. Serwery Proxy obsługują dosłownie każde połączenie internetowe. Mogą one obsługiwać serwery http, które są obecne podczas zwykłego otwierania witryn. Mogą też obsługiwać obecne przy katalogach wewnętrznych stron serwery ftp, a także obsługiwać serwery pocztowe POP 3, IMAP i tak dalej. Dlatego, gdy jesteśmy na przykładowo poczcie internetowej, nie możemy zobaczyć bezpośredniego adresu IP nadawcy, ale możemy zobaczyć IP serwera pośredniczącego. Serwery proxy mają wiele zalet. Poza tym, ze mogą filtrować nasz adres IP, mogą jeszcze na przykład blokować niechciane treści, bądź też przyspieszać otwieranie strony www, której odczytywanie nasz host rozpoczyna nie z serwera macierzystego, ale z serwera pośredniczącego – proxy.

Pierwszym serwerem, który może pełnić funkcję serwera proxy (dla protokołów HTTP oraz FTP), choć może też działać jako zwykły serwer HTTP jest bardzo popularny i zarazem najdłużej rozwijany) serwer Apache (dzięki temu posiada on tez bardzo bogata dokumentację). Jest to program open source. Aby mógł on działać jako serwer proxy potrzebne jest uruchomienie modułu mod_proxy. Usługa buforowania jest zaś dostępna dzięki modułowi mod_cache. Serwer Apache, może funkcjonować w podwójny sposób. Pierwszy, to tradycyjna konfiguracja serwera proxy, który jest zabezpieczeniem i buforem danych podczas tradycyjnych połączeń z siecią. Innym zaś zastosowaniem jest tak zwana brama. Jest to już bardziej skomplikowana konfiguracja, która pozwala na łączenie się komputerów znajdujących się w sieci wewnętrznej, z komputerami znajdującymi się poza firewallem, czyli notabene poza obrębem własnej sieci. Dzięki temu, komputer w zamkniętej sieci jest chroniony przed atakami z zewnątrz. Jego ślady są zacierane przez serwer proxy, który podaje dla serwera odbiorcy swoje dane, zamiast rzeczywistych danych komputera nadawcy. Jak na razie serwer Apache działa w sposób tekstowy. Widać to zresztą powyżej. Jest bowiem wzmianka o tym, że jego funkcje uruchamia się w trybie tekstowym. Zresztą, jest to standard w Linuksie. Wiele na przykład dystrybucji Linuksowych instaluje się wyłącznie w trybie tekstowym. Nawiasem mówiąc, nauka instalacji Linuxa Slackware w trybie tekstowym musi zająć parę godzin. Wracając jednak do Apache’a trwają prace nad jego uruchomieniem w trybie graficznym.

Kolejnym, najbardziej chyba popularnym (oczywiście po Apache’u) jest serwer Squid. Ten serwer proxy jest można by powiedzieć inteligentny. Gromadzi on informacje o stronach które odwiedzamy, ale nie po to, żeby się nimi chwalić w sieci innym użytkownikom, ale po to, żeby dzięki nim tworzyć hierarchiczne listy serwerów, których zawartość jest najczęściej wyszukiwana przez użytkowników. Taka funkcjonalność jest bardzo korzystna dla użytkowników ale też i dla serwerów. Jeśli chodzi o użytkowników, to Squid znacznie przyspiesza łączenie się z witrynami poszukiwanymi przez użytkownika. Jeśli zaś chodzi o serwery, to nie wysyła zapytań o całą ich zawartość, lecz wyszukuje jedynie tych informacji, które są mu najbardziej potrzebne. Zmniejsza to obciążenie sieci, a tym samym zmniejsza też obciążenie samych serwerów, które szybciej mogą udostępniać dane informacje dla chociażby innych użytkowników, którzy niekoniecznie z samego Squida korzystają.

Innym popularnym serwerem HTTP dla Linuksa,wydawanym na licencji BSD, mogącym również działać jako serwer proxy jest nginx. Jego cechą charakterystyczną jest to, że jest on bardzo szybki i może obsługiwać bardzo obciążone portale internetowe. Taka sytuacja jest możliwa właśnie dlatego, że nginx posiada dużą skalowalność. Polega ona na tym, że może on być rozbudowywany i demontowany bardzo szybko, w zależności od tego jakie jest zapotrzebowanie na obsługę tegoż serwera. Serwer ten może być użytkowany jako serwer proxy dla serwerów pocztowych, http i innych. Może być też używany jako odwrócone proxy, czyli wspomniane nieco wyżej zabezpieczenie sieci wewnętrznych korporacji.

Kolejnym bardzo szybkim, a zarazem zużywającym mało zasobów sprzętowych (głównie pamięci operacyjnej) serwerem HTTP, który posiada wsparcie dla proxy, jest serwer lighttpd. Podobnie jak nginx jest on wysoko skalowalny. Skalowalność była już wymieniona przy serwerze nginx, oznacza ona szybką możliwość takiego kształtowania serwera, iż może on bardzo szybko dostosowywać się do obciążenia danej witryny. Działa on również w sieciach, które są bardzo obciążone. Jeśli więc wykorzystamy go w ruchu pośredniczącym, będziemy mogli cieszyć się znacznie szybszym ładowaniem strony www.

Serwery proxy są bardzo użyteczne umożliwiając zarówno ukrycie swojej tożsamości, jak i znacznie optymalizując ruch sieciowy powodując mniejsze obciążenia poszczególnych serwerów i umożliwiają szybszy dostęp do zasobów sieci. Wśród nich są tez serwery bardzo wydajne, a wykorzystujące zarazem mało zasobów sprzętowych – przede wszystkim pamięci. Dzięki funkcji odwróconego proxy możliwa jest także ochrona serwerów, an przykład serwerów firmowych, które chcą udostępniać w sieci (poza zaporą ogniową) na przykład stronę internetową firmy. Dziki ich łatwej dostępności dla systemu Linux, który jest darmowy można je łatwo przetestować tworząc chociażby własny, niewielki serwer.