User:Wacek/brudnopis polipo
Ze strony Polipo:
- "Polipo to mały i szybki buforujący serwer proxy sieci Web (pamięć podręczna sieci Web, serwer proxy HTTP, serwer proxy), podczas gdy Polipo został zaprojektowany do użytku przez jedną osobę lub niewielką grupę ludzi, nic nie stoi na przeszkodzie, aby był używany przez większą grupę." W przeciwieństwie do Squid, Polipo jest bardzo lekkie i łatwe do skonfigurowania. To sprawia, że idealnie nadaje się do systemów z jednym użytkownikiem i innych nieskomplikowanych ustawień. Należy jednak pamiętać, że ta wszechstronność ma swoje źródło: Polipo zwiększy swoje wykorzystanie przestrzeni bez ograniczeń, ponieważ nie jest świadomy wzrostu pamięci podręcznej dysku. Ta postrzegana usterka jest projektowana, ponieważ pominięcie tych kontroli stanu drastycznie zmniejsza zużycie pamięci przez Polipo i ogólne opłaty za system. Praktycznym sposobem ograniczenia użycia dysku jest uruchomienie programu Polipo jako własnego użytkownika i użycie disk quota.
Poniżej opisano instalację i konfigurację Polipo.
Instalacja
Zainstaluj pakiet polipo.
Uruchamianie demona
Aby uruchomić demona polipo:
# systemctl start polipo
Aby uruchomić go automatycznie podczas rozruchu:
# systemctl enable polipo
Wiele instancji
Polipo może również działać bez uprawnień superużytkownika. Aby to zrobić, najpierw skopiuj /etc/polipo/config.sample
do odpowiedniego katalogu:
$ cp /etc/polipo/config.sample ~/.poliporc
Edytuj go tak, aby wskazywał na zapisywalną lokalizację, zamiast /var/cache/polipo
:
# Uncomment this if you want to put the on-disk cache in a # non-standard location: diskCacheRoot = "~/.polipo-cache/"
Utwórz katalog pamięci podręcznej:
$ mkdir ~/.polipo-cache
Na koniec uruchom Polipo w nowej konfiguracji:
$ polipo -c ~/.poliporc
Konfiguracja
Zarządzanie odbywa się głównie w /etc/polipo/config
. Większość użytkowników może zdecydować się na użycie przykładowego pliku konfiguracyjnego, który jest wystarczający dla większości sytuacji i dobrze udokumentowany.
# cd /etc/polipo; cp config.sample config
Jednym z elementów konfiguracji, który zasługuje na wymienienie, jest domyślne zachowanie polipa podczas blokowania połączeń wychodzących przez port. Istnieją dwie zmienne w pliku konfiguracyjnym polipo, które kontrolują dozwolone porty wychodzące. allowedPorts
określa porty wychodzących połączeń HTTP. Domyślnie jest to 80-100 i 1024-65535. tunnelAllowedPorts
} określa, że port polipo zezwala na ruch w tunelu oraz ruch HTTPS. Domyślnie jest znacznie bardziej ograniczony: "Domyślnie dopuszcza ssh, HTTP, https, rsync, IMAP, imaps, POP, pops, Jabber, CVS i Git."
Jeśli pojawi się komunikat o błędzie "403 Forbidden Port" z polipo podczas próby przejścia do hosta: port, musisz skonfigurować polo, aby zaakceptować ruch do większej liczby portów dla HTTP lub HTTPS. Aby ustawić je szeroko otwarte, dodaj poniższe do pliku /etc/polipo/config
:
allowedPorts = 1-65535 tunnelAllowedPorts = 1-65535
W przeciwieństwie do innych serwerów proxy, Polipo musi zostać ponownie uruchomiony po zmianach.
Przeglądarka
Ustaw przeglądarkę tak, aby używała localhost:8123
do proxy. Pamiętaj, aby wyłączyć pamięć podręczną dysku przeglądarki, aby uniknąć nadmiarowych operacji we/wy i zła wydajność. Jeśli localhost:8123
nie działa, spróbuj dopasować /etc/hosts
, jak hostname.localdomain:8123
.
Tunelowanie
Zamiast ręcznie konfigurować każdą przeglądarkę lub inne narzędzia, które mogą skorzystać z buforowania Polipo, można również użyć iptables do kierowania ruchem przez polipo.
Po zainstalowaniu iptables dodaj odpowiednie reguły do /etc/iptables/iptables.rules
:
*nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A OUTPUT -p tcp --dport 80 -m owner ! --uid-owner polipo -j ACCEPT -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8123 COMMIT
Prowadzi to do ruchu HTTP przez Polipo. Usuń wszystkie ustawienia proxy z przeglądarek, jeśli takie istnieją, i zrestartuj iptables.
Privoxy
Privoxy is a proxy useful for intercepting advertisement and other undesirables.
According to Polipo's developer, in order to get the privacy enhancements of Privoxy and much (but not all) of the performance of Polipo, one should place Polipo upstream of Privoxy.
In other words:
- point the browser at Privoxy:
localhost:8118
- and direct Privoxy traffic to Polipo:
forward / localhost:8123
in the Privoxy configuration file.
Tor
Tor is an anonymizing proxy network.
To use Polipo with Tor, uncomment or include the following in /etc/polipo/config
:
socksParentProxy = localhost:9050 socksProxyType = socks5
DansGuardian
DansGuardian is a web content filter. The only difference to using DansGuardian with Polipo (rather than squid or tinyproxy) is that in dansguardian.conf
the proxyport needs to be set to polipo's 8123:
# the port DansGuardian connects to proxy on proxyport = 8123
Troubleshooting
DNS Error
If the network is started in background there could be a error like this in the Polipo log:
Couldn't send DNS query: Connection refused Falling back on gethostbyname. Getaddrinfo failed: Temporary name server failure Host ***.com lookup failed: Getaddrinfo failed: Temporary name server failure (131072).
This error occurs because in background mode the network hasn't initialised before Polipo wants to connect to the DNS server (especially using DHCP). Solving this error is possible on three ways:
- Do not start the net-profiles in background mode (probably not wanted).
- Set
dnsNameServer
manually on the wanted DNS server. - Or add
sleep 10
(or more, it depends) near the beginning of the Polipo daemon script/etc/rc.d/polipo
in the start section. This will make Polipo start after the network has initialised.
See this thread for more information on this topic.