Instalacja serwera proxy dla małej sieci
Ostatnia zmiana: 2018-01-17 20:12
Tinyproxy jest serwerem proxy umożliwiającym filtrowania treści. Ma stosunkowo małe wymagania systemowe; możliwość filtrowania linków czy nagłówków zapytań czyni z niego idealne rozwiązanie dla małych sieci.
Instalacja
Instalacja jest prosta i sprowadza się do poleceń
# opkg update
# opkg install tinyproxy
Konfiguracja
Konfiguracja znajduje się w pliku
/etc/config/tinyproxy. Domyślna konfiguracja jest
prawie właściwa i wystarczy zmienić tylko kilka linii żeby proxy włączyć:
# uci set tinyproxy.@tinyproxy[0].enabled=1
# uci add_list tinyproxy.@tinyproxy[0].Allow='192.168.1.0/24'
# uci commit tinyproxy
Pierwsza opcja pozwala na włączenie działania Tinyproxy. Druga opcja pozwala na dostęp z określonych adresów ip. Oczywiście, klasę sieci należy dobrać do stosowanej adresacji.
Uruchomienie
# /etc/init.d/tinyproxy enable
# /etc/init.d/tinyproxy restart
Teraz w konfiguracji przeglądarki WWW należy zdefiniować proxy na adres rutera (np. 192.168.1.1) i port 8888 (czyli taki jak podano w konfiguracji). Po wczytaniu strony cała informacja powinna już iść przez nasz serwer proxy.
Filtrowanie treści
Sprowadza się do wpisania odpowiednich słów kluczowych do określonego pliku. Najpierw trzeba włączyć filtrowanie, a odbywa się to przez ustawienie dwóch opcji w pliku konfiguracyjnym:
# uci set tinyproxy.@tinyproxy[0].Filter="/etc/tinyproxy/filter"
# uci set tinyproxy.@tinyproxy[0].FilterURLs=1
# uci set tinyproxy.@tinyproxy[0].FilterExtended=1
# uci commit tinyproxy
Pierwsza opcja definiuje położenie pliku z filtrami, druga włącza filtry. UWAGA: włączenie filtrowania adresów może spowodować większe zużycie pamięci rutera.
Teraz należy w pliku
/etc/tinyproxy/filter umieścić odpowiednie słowa kluczowe, po których ma być filtrowany dostęp, np.
# mkdir -p /etc/tinyproxy/
# echo "nasza-klasa.pl" >> /etc/tinyproxy/filter
# echo "images" >> /etc/tinyproxy/filter
Należy zrestartować proxy
# /etc/init.d/tinyproxy restart
I spróbować wczytać stronę np. nasza-klasa.pl - powinien pokazać się komunikat o braku dostępu to tej strony. W ten sam sposób można zrealizować
blokowanie reklam umieszczając filtry typu
/block/ czy
/ads/.
Plik konfiguracyjny jest dość dobrze opisany. Z innych ciekawych opcji do ustawienia należy wymienić:
- Listen - możliwość określenia na którym interfejsie ma słuchać Tinyproxy. Warto ustawić dla interfejsu lan (czyli np. 192.168.1.1)
- 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.
- Anonymous - usuwanie nagłówków żądań http
- LogLevel - zmienia liczbę komunikatów w logu
Zakończenie
Strony informacyjne Tinyproxy można dowolnie zmienić stosowanie do wymagań - informacja o tych stronach przechowywana jest w pliku konfiguracyjnym. 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 routerach wyposażonych tylko w 16MB ramu.
Konfigurację można także wykonać "graficznie" instalując pakiet luci-app-tinyproxy (dla LuCI).
Lista opcji konfiguracyjnych:
https://github.com/banu/tinyproxy/blob/master/etc/tinyproxy.conf.inSzybka konfiguracja wg UCI
# opkg install tinyproxy
# uci set tinyproxy.@tinyproxy[0].enabled=1
# uci add_list tinyproxy.@tinyproxy[0].Allow='192.168.1.0/24'
# uci commit tinyproxy
# /etc/init.d/tinyproxy enable
# /etc/init.d/tinyproxy restart
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
# uci commit firewall
# /etc/init.d/firewall restart
Przykład zastosowania
Wyłączenie kompresji obrazków dla Orange Free na Kartę. Można to zrobić zmieniając APN na "vpn", ale także dodając do żądań http odpowiednie nagłówki:
Pragma no-cache oraz
Cache-Control no-cache. Instalujemy Tinyproxy wg sposobu przedstawionego powyżej a następnie dodajemy do pliku
/etc/rc.local następującą zawartość (na początku pliku):
echo "AddHeader \"Pragma\" \"no-cache\"" >> /var/etc/tinyproxy.conf
echo "AddHeader \"Cache-Control\" \"no-cache\"" >> /var/etc/tinyproxy.conf
killall -SIGHUP tinyproxy
Po restarcie można cieszyć się już brakiem kompresji.