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.
opkg install polipo
Najważniejsze parametry z pliku polipo.conf
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 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.
opkg update opkg install tinyproxy
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).
/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.
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.
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ć.
Plik konfiguracyjny jest dość dobrze opisany. Z innych ciekawych opcji do ustawienia należy wymienić:
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.
Dostępny jest plugin do Gargoyle: Link
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.
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
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
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.
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!
/etc/init.d/dansguardian start
