Serwer proxy i filtrowanie treści

Jednym z zadań proxy jest keszowanie często odwiedzanych stron www. Istnieje wiele rozwiązań programowych tego typu tj. Squid, Polipo, Apache, Privoxy itd. Najpopularniejszym serwerem proxy jest Squid ze względu na swoje duże możliwości oraz szczególną właściwość transparentne proxy. Jednak nie zawsze jest konieczność instalowania softu o największych wymaganiach i możliwościach, dlatego też tutaj zostanie przedstawiona konfiguracja innych, mniej wymagających programów.

Polipo

Instalacja

opkg install polipo

Konfiguracja

Najważniejsze parametry z pliku polipo.conf

  • proxyPort = 8123 - ustawia proxy na port 8123
  • proxyAddress = „0.0.0.0” - wszyscy mają dostep do proxy
  • socksParentProxy = „192.168.1.1:9050” - dodatkowe proxy SOCkS5(np. tor)
  • socksProxyType = socks5 - ustawiamy socks4 lub socks5
  • daemonise = true - polipo działa jako deamon w tle
  • dnsNameServer = 192.168.1.1 - serwer dns
  • dnsUseGethostbyname = yes - konieczne do poprawnego działania :]
  • diskCacheRoot = ”/opt/polipo/” - ścieszka do keszu

Aktywacja danego parametru odbywa się przez usunięcia znaku # przed dana opcją.

Należy też poprawnie skonfigurować przeglądarkę. Wpisujemy nasz adres proxy jako HTTP i HTTPS.

Tinyproxy

Tinyproxy jest małym serwerem proxy, umożliwiającym filtrowania treści o małych wymaganiach systemowych. Możliwość filtrowania linków czy nagłówków zapytań czyni z niego idealne rozwiązanie dla małych sieci, umożliwiając realizację filtru treści czy namiastkę anonimowego przeglądania zasobów internetu.

Instalacja

opkg update
opkg install tinyproxy

Konfiguracja

Konfiguracja programu odbywa się poprzez uci. Standardowa konfiguracja wygląda następująco:

 tinyproxy.@tinyproxy[0]=tinyproxy
 tinyproxy.@tinyproxy[0].User=nobody
 tinyproxy.@tinyproxy[0].Group=nogroup
 tinyproxy.@tinyproxy[0].Port=8888
 tinyproxy.@tinyproxy[0].Timeout=600
 tinyproxy.@tinyproxy[0].DefaultErrorFile=/usr/share/tinyproxy/default.html
 tinyproxy.@tinyproxy[0].StatFile=/usr/share/tinyproxy/stats.html
 tinyproxy.@tinyproxy[0].Logfile=/var/log/tinyproxy.log
 tinyproxy.@tinyproxy[0].LogLevel=Info
 tinyproxy.@tinyproxy[0].MaxClients=100
 tinyproxy.@tinyproxy[0].MinSpareServers=5
 tinyproxy.@tinyproxy[0].MaxSpareServers=20
 tinyproxy.@tinyproxy[0].StartServers=10
 tinyproxy.@tinyproxy[0].MaxRequestsPerChild=0
 tinyproxy.@tinyproxy[0].ViaProxyName=tinyproxy
 tinyproxy.@tinyproxy[0].ConnectPort=443 563
 tinyproxy.@tinyproxy[0].enable=0
 tinyproxy.@tinyproxy[0].Allow=127.0.0.1
 

Dodajemy niezbędne opcje do poprawnego działania:

 uci set tinyproxy.@tinyproxy[0].Allow=192.168.1.0/24
 uci set tinyproxy.@tinyproxy[0].Listen=0.0.0.0
 uci set tinyproxy.@tinyproxy[0].User=root
 uci set tinyproxy.@tinyproxy[0].Group=root
 uci set tinyproxy.@tinyproxy[0].enable=1
 uci commit

Program ma nasłuchiwać na 0.0.0.0 (IP routera) oraz wpuszczać wszystkich z naszej sieci (192.168.1.0 - 192.168.1.255).

Uruchomienie

/etc/init.d/tinyproxy enable
/etc/init.d/tinyproxy start

Teraz w konfiguracji przeglądarki należy zdefiniować proxy na adres rutera (np. 192.168.1.1) i port 8888 (tak jak podano w konfiguracji) Po wczytaniu strony cała informacja powinna już iść przez proxy, co można sprawdzić w logu /tmp/tinyproxy.log.

Wymuszenie ruchu przez proxy

Czyli tzw. transparent proxy

 uci add firewall redirect
 uci set firewall.@redirect[-1]._name=transparent-proxy
 uci set firewall.@redirect[-1].src=lan
 uci set firewall.@redirect[-1].proto=tcp
 uci set firewall.@redirect[-1].dest_port=8888
 uci set firewall.@redirect[-1].src_dport=80
 uci set firewall.@redirect[-1].src_dip='! 192.168.1.1'
 uci set firewall.@redirect[-1].dest_ip=192.168.1.1

Dzięki temu nie trzeba ustawiać każdej przeglądarki z osobna.

Filtrowanie treści

Sprowadza się do wpisania odpowiednich słów kluczowych do określonego pliku. Najpierw trzeba włączyć filtrowanie. Odbywa się to przez ustawienie dwóch opcji w pliku konfiguracyjnym:

uci set tinyproxy.@tinyproxy[0].FilterURL=On
uci set tinyproxy.@tinyproxy[0].Filter=/etc/tinyproxy/filter
uci commit

Tworzymy katalog gdzie przechowamy plik z filterrm

mkdir /etc/tinyproxy

Teraz należy w pliku /etc/tinyproxy/filter umieścić odpowiednie słowa kluczowe, po których ma być filtrowany dostęp, np.

echo "nasza-klasa.pl" >> /etc/tinyproxy/filter
echo "facebook.com" >> /etc/tinyproxy/filter

Należy zrestartować proxy

/etc/init.d/tinyproxy stop
/etc/init.d/tinyproxy start

I spróbować wczytać stronę np. nasza-klasa.pl lub facebook.com - powinien pokazać się komunikat o braku dostępu to tej strony. Strony z komunikatami można dowolnie zmieniać.

Inne opcje

Plik konfiguracyjny jest dość dobrze opisany. Z innych ciekawych opcji do ustawienia należy wymienić:

  • Port - port na którym słucha serwer
  • StartServers - liczba jednoczesnych uruchomionych procesów. warto zmienić z 10 np. na 2, szczególnie dla ruterów z mała ilością pamięci.

Możliwe jest także usuwanie nagłówków żądań http (do ustawienia w pliku konfiguracyjnym), np:

Anonymous „User-Agent”

Strony informacyjne od tinyproxy można dowolnie zmienić stosowanie do wymagań - informacja o tych stronach przechowywana jest w pliku konfiguracyjnym. Oczywiście tak przedstawiona konfiguracja nie jest pełnym zabezpieczeniem, możliwe jest stworzenie tunelu i ominięcie proxy itd, ale nie jest to tematem tego dokumentu. Dzięki tinyproxy można utworzyć w pełni funkcjonalny serwer filtrujący dla małej sieci, zabezpieczający przez dostępem do niechcianych stron, czy wycinający niektóre nagłówki z żądań przeglądarek. Dzięki małemu zapotrzebowaniu na zasoby można go zainstalować nawet na małych ruterkach wyposażonych tylko w 16MB ramu.

Plugin do Gargoyle

Dostępny jest plugin do Gargoyle: Link

dansguardian

Dansguardian jest filtrem blokujacym pornografię, a także przemoc, hazard czy rasizm. W OpenWrt jest już skompilowana paczka, więc własnoręczna kompilacja jest zbędna. Wystarczy zainstalować i ustawić program.

Do poprawność działania musimy mieć zainstalowane i włączone proxy, np. tinyproxy.

Instalacja

opkg update
opkg install dansguardian

W paczcie OpenWrt brakujw skryptu startowego programu wiec trzeba zrobić własny:

#!/bin/sh /etc/rc.common
# Copyright (C) 2010 OpenWrt.org
 
START=55
start () {
     dansguardian
}

stop () {
     dansguardian -q
}

Zapisujemy w /etc/init.d/dansguardian i nadajemy prawa wykonalności

chmod +x /etc/init.d/dansguardian

Konfiguracja

W pliku /etc/dansguardian/dansguardian.conf ustawiamy port na którym działa nasz serwer proxy

 proxyport = 3128

W przypadku squida jest to właśnie 3128, tinyproxy - 8888 lub inne jakie zostało ustawione.

Do poprawnego uruchomiania należy odhaszować wpisy

daemonuser = 'root'
daemongroup = 'root'

tak aby program mógł się uruchomić jako root

Ustawienia filtru

W pliku /etc/dansguardian/dansguardianf1.conf ustawiamy specyficzne opcje samego filtrowania w tym najważniejsza opcja programu, tzw „limit niegrzeczności”. Według strony dansguardian.pl wartość 150 jest najbardziej odpowiednia.

  naughtynesslimit = 150

Warto jeszcze podmienić stronę która się nam ukazuje po wejściu na stronę o zakazanej treści. Szablon tej strony można pobrać z dansguardian.pl. Trzeba tego rara rozpakować na routerze bądź na innej maszynie i przerzucić na router plik stop_wybor.html potem tylko podmieniamy, np.

  cp stop_wybor.html /usr/share/dansguardian/languages/ukenglish/template.html

Jeżeli chcemy mimo wszystko umożliwić wejście na stronę o zakazanej treści to należy dokonać zmian w pliku /etc/dansguardian/dansguardianf1.conf. Chodzi dokładnie o opcje

bypass = 1800

Ustalamy tutaj czas zezwolenia przeglądania konkretnej zakazanej treści. W tym przypadku 30 minut. Domyślnie jest ustawione 0, czyli całkowita blokada.

W momencie gdy wg nas blokowane są zaufane strony internetowe np. onet.pl, i inne portale należy ich adresy dopisać do pliku /etc/dansguardian/lists/exceptionsitelist. Strony z tej listy nie są brane pod uwagę w czasie filtrowania.

W pliku /etc/dansguardian/lists/weightedphraselist możeny dokonać wybory jakie treści maja być filtrowane. Domyślnie jest wybrana pornografia oraz treści związane z edukacją, medycyną.

Program posiada naprawdę sporo możliwości i funkcji.

Transparentne proxy

Podobnie jak przy proxy jeżeli nie chcemy ustawiać każdej przeglądarki z osobna trzeba dodać do firewalla regułkę, która może wyglądać następująco:

 uci add firewall redirect
 uci set firewall.@redirect[-1]._name=dansguardian
 uci set firewall.@redirect[-1].src=lan
 uci set firewall.@redirect[-1].proto=tcp
 uci set firewall.@redirect[-1].dest_port=8080
 uci set firewall.@redirect[-1].src_dport=80
 uci set firewall.@redirect[-1].src_dip='! 192.168.1.1'
 uci set firewall.@redirect[-1].dest_ip=192.168.1.1
 

Jeżeli używamy dansguardian to dla niego ustalamy tę regułę, a nie samego proxy!

Uruchomienie

zastosowania/proxy.txt · ostatnio zmienione: 2011/04/01 16:45 przez arteq
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0
Profesjonalny Hosting