OpenWrt - Tinyproxy
Instalacja serwera proxy dla małej sieciOstatnia zmiana: 2013-01-24 18:04
1. Instalacja
2. Konfiguracja
3. Uruchomienie
4. Filtrowanie treści
5. Zakończenie
6. Szybka konfiguracja wg UCI
7. Transparent Proxy
8. Przykład zastosowania
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 set tinyproxy.@tinyproxy[0].Allow="192.168.1.0/24"
# uci commit tinyproxy
Uruchomienie
# /etc/init.d/tinyproxy enable
# /etc/init.d/tinyproxy restart
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="On"
# uci commit 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 "images" >> /etc/tinyproxy/filter
# /etc/init.d/tinyproxy restart
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://banu.com/docs/tinyproxy/1.8.2/man5/tinyproxy.conf.html
Szybka konfiguracja wg UCI
# opkg install tinyproxy
# uci set tinyproxy.@tinyproxy[0].enabled=1
# uci set 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