Blog (22)
Komentarze (997)
Recenzje (0)
@parranoyaProxy Squid 3 i Dansguardian w OpenBSD

Proxy Squid 3 i Dansguardian w OpenBSD

11.02.2013 10:48, aktualizacja: 22.07.2013 19:37

Skoro wiemy już jak instalować programy to może coś sobie zainstalujemy? A może by tak serwer proxy żeby dzieciaki/pracownicy/kumple (niepotrzebne skreślić) nie przesiadywali na stronach hmmm powiedzmy porno? ;‑) Najlepszym chyba rozwiązaniem jest serwer Dansguardian napisany z myślą o filtrowaniu treści internetowych. Dansguardian sprawdza pod kątem zabronionych słów nie tylko adres url ale i treść strony, którą chcemy wyświetlić. Danguardian do działania wymaga jakiegoś serwera proxy. Bardzo dobrze w tym zadaniu sprawdza się Squid. No to instalujemy:

[code=]pkg_add -i squid[/code]

W tym momencie OpenBSD prawdopodobnie zapyta którą wersję Squid’a chcesz - wybierz odpowiednią dla siebie. Następnie instalujemy Dansguardian’a:

[code=]pkg_add -i dansguardian[/code]

Żeby to wszystko zadziałało potrzebna jest oczywiście konfiguracja. Na początek bierzemy się za Squid’a. Squid to program o OGROMNYCH możliwościach przez co jego plik konfiguracyjny przytłacza wręcz liczbą dostępnych opcji. Chociaż tak naprawdę Squid działa zupełnie dobrze w domyślnej konfiguracji, moim zdaniem warto zmienić klika opcji. Na początek określamy jaki zakres adresów ip może korzystać ze Squida. Domyślnie dopuszczone są trzy zakresy sieci lokalnych. W pliku /etc/squid/squid.conf odszukujemy sekcję:

[code=]acl localnet src 10.0.0.0/8[/code]

[code=]acl localnet src 172.16.0.0/12[/code]

[code=]acl localnet src 192.168.0.0/16[/code]

Zostawiamy zakres adresów który używamy a pozostałe kasujemy lub zamieniamy w komentarz wstawiając na początku linii znak #. Squid nasłuchuje na porcie o numerze 3128 i wszystkich adresach ip. Odszukujemy sekcję:

[code=]http_port 3128[/code]

i wpisujemy odpowiedni adres ip i numer portu. O ile nie ma większej potrzeby zmieniać numeru portu, to jeśli nie chcemy udostępnić całemu światu naszego serwera proxy, warto wpisać adres ip karty sieciowej obsługującej naszą sieć lokalną:

[code=]http_port 192.168.1.1:3128 [/code]

W czasach powolnych łączy internetowych i statycznych stron WWW, podstawowym zadaniem serwerów proxy było przyśpieszanie ładowania stron internetowych i oszczędzania pasma. Obecnie nie ma to już większego sensu, więc moim zdaniem warto wyłączyć tą funkcję. Robi się to zmieniając poniższą sekcję:

[code=]cache_dir ufs /var/squid/cache 512 16 256[/code]

na

[code=]cache deny all[/code]

Jeśli jednak ktoś chce buforować strony WWW niech wie, że powyższe wartości oznaczają kolejno: /var/squid/cache - ścieżka do folderów z cache’m 100 - ilość wykorzystywanego miejsca na dysku w MB. 100 MB to niedużo jak na pojemność dzisiejszych dysków twardych warto więc zwiększyć tę wartość. 16 256 - liczba folderów i podfolderów w których rozmieszczony będzie cache. Nie ma istotnego powodu żeby zmieniać te wartości. maximum_object_size 4096 KB Tu można ustawić maksymalną wielkość pliku zapisywanego w cache’u. Jeśli zależy Ci na zaoszczędzeniu transferu możesz zwiększyć tę wartość lecz odbędzie się to kosztem wydajności ponieważ plik np. 32 MB podzielony będzie na 10 KB kawałki. Można łatwo policzyć, że w naszym buforze znajdzie się 3200 dodatkowych wpisów, które Squid będzie przeszukiwał przy serwowaniu treści internetowych. Ilość pamięci RAM można zmienić w linijce:

[code=]cache_mem 8 MB[/code]

8 MB to bardzo mało, a wydajność Squid’a w głównej mierze zależy od jej ilości i wydajności. Wobec tego przyznajemy Squid’owi jak najwięcej pamięci. To tylko podstawowe zmiany, które warto wprowadzić w domyślnej konfiguracji, choć i bez tego Squid będzie działał poprawnie. Na koniec wydajemy polecenie:

[code=]squid -z[/code]

Squid’a uruchamiamy poleceniem:

[code=]/etc/rc.d/squid start[/code]

Jeśli zajrzymy do logów Squid’a możemy ujrzeć komunikat:

[code=]WARNING! Your cache is running out of filedescriptors.[/code]

Powodem tego jest wartość ustawiona w pliku /etc/login.conf która wprowadza limit otwartych plików dla uruchomionego demona (programu działającego w tle np. serwera) w OpenBSD.

[code=]daemon:\[/code]

[code=] :ignorenologin:\[/code]

[code=] :datasize=infinity:\[/code]

[code=] :maxproc=infinity:\[/code]

[code=] :openfiles-cur=128:\ <-- zmienić na 2048[/code]

[code=] :stacksize-cur=8M:\[/code]

[code=] :localcipher=blowfish,8:\[/code]

[code=] :tc=default:[/code]

Zamiast 128 wpisujemy odpowiednią wartość np. 2048. Tak samą wartość należy ustawić w squid.conf w sekcji:

[code=]max_filedescriptors 2048[/code]

Oczywiście musisz samodzielnie podjąć decyzję jaka liczba otwartych plików jest odpowiednia dla Twojej sieci. Jeśli wiele komputerów będzie korzystało z proxy, 2048 jest raczej za małą wartością. Domyślnie Squid w swojej konfiguracji nie ma limitu. Jeśli chcesz możesz usunąć limit systemowy wpisując infinity w pliku login.conf. Jeśli chcemy wymusić używanie konkretnych serwerów DNS, wpisujemy odpowiednie adresy serwerów DNS w sekcji:

[code=]dns_nameservers 208.67.222.222 208.67.220.220[/code]

Aby Squid uruchamiał się automatycznie podczas startu systemu, w pliku /etc/rc.local dopisujemy:

[code=]/etc/rc.d/squid start[/code]

OK. Squid działa jak należy to teraz czas na Dansguardian’a. Z nim roboty będzie raczej niewiele bo wystarczy zmiana w kilku linijkach. Otwieramy plik /etc/dansguardian/dansguardian.conf i w linijkach:

[code=]filterip = 192.168.1.1[/code]

[code=]filterport = 8080[/code]

[code=]proxyip = 192.168.1.1[/code]

[code=]proxyport = 3128[/code]

wpisujemy wartości odpowiednie dla swojej sieci. Powyższe opcje nie wymagają chyba opisu ale na wszelki wypadek to zrobię. filterip - adres ip na którym nasłuchuje Dansguardian. Zazwyczaj jest adres ip karty sieciowej obsługującej sieć lokalną. filterport - numer portu na którym nasłuchuje Dansguardian. proxyip - adres ip na którym nasłuchuje Squid. Ta wartość musi być zgodna z tym co ustawiliśmy w pliku squid.conf. proxyport - numer portu na którym nasłuchuje Squid. Tu także musi być to samo co w squid.conf.

Dansguardian ocenia czy stronę WWW można wyświetlić na podstawie algorytmu zliczającego ilość wystąpienia zakazanych słów i ich punktacji. Każde słowo występujące na stronie przeznaczonej do wyświetlenia otrzymuje określoną liczbę punktów. Suma punktów decyduje czy strona zostanie wyświetlona czy nie. Limit zebranych punktów ustawia się w pliku /etc/dansguardian/dansguardianf1.conf. Przyjmuje się, że dla dla dorosłych użytkowników w sieci firmowej dobrą wartością jest 300. U mnie to działa ale każdy może sam sobie dobrać metodą prób i błędów. Aby Dansguardian uruchamiał się automatycznie razem z systemem, w pliku /etc/rc.local dopisujemy:

[code=]/etc/rc.d/dansguardian start[/code]

. Żeby użytkownicy sieci “nie umknęli” tym ustawieniom, odpowiednio konfigurujemy firewall, tak aby cały ruch http przechodził przez proxy. W tym celu w pliku /etc/pf.conf dopisujemy:

[code=]pass in on vr1 proto tcp from 192.168.1.0/24 to any port {80 443 3128 8080} rdr‑to 192.168.1.1 port 8080[/code]

Reboot i wszystko powinno działać jak należy.

To tylko mały wycinek możliwych ustawień. Moim celem nie jest jednak opis wszystkich opcji ale tylko tych aby móc uruchomić tandem tych serwerów. W celu dokładnego zapoznania się ze Squid’em i Dansguardian’em odsyłam do oficjalnej dokumentacji.

Wybrane dla Ciebie
Komentarze (4)