В свете недоступности некоторых сайтов во время выборов и митингов декабря одиннадцатого года, а также доступности их-же через анонимайзеры плюнул я в угол и полез наконец расчехлять tor.
К слову сказать, squid был у меня уже даненько поднят в прозрачном режиме и его работа меня устраивала целиком и полностью. Перенастраивать браузеры между tor и squid тоже не было никакого желания. Тем более что дома то компьютер не один, есть еще и медиастанция, и планшет и нетбуки итд. Так что надо было придумывать универсальное решение. Также надо было придумать, как просить сквида загружать через тор лишь некоторые сайты, а с остальными работать как всегда.
Также, во время раскопок решения было выяснено, что tor+squid работать не будут, ибо tor — socks-прокси, а не http-прокси и быть в качестве родительского прокси для сквида не хочет.
В итоге было сделано следующее: squid, следуя url-rexep'ам, обращается при необходимости к privoxy, как к родительскому прокси. Privoxy, в свою очередь обращается к tor. Дальше уже магия.
Итак, устанавливаем тор и privoxy. Как в вашем дистрибутиве это делается — я не знаю, у меня так: emerge tor privoxy.
И начинаем конфигурировать.
Конфиг tor'а:
Большего, в принципе, тору и не надо. Указали куда и сколько логов кидать, где данные хранить, кем представиться и какой порт слушать.
Конфиг privoxy:
Это также весь конфиг. В принципе небольшой. В этом конфиге я лишь поправил порт, на котором privoxy будет ожидать подключений, а также указал forward-socks4a на адрес: порт tor.
Со сквидом несколько сложнее, там конфиг побольше, так что приведу лишь то, что изменил/добавил:
Ну, и наконец ради чего все это заворачивалось: сайты, которые следует пускать через тор:
В принципе, можно на этом не останавливаться. Можно разделить url на сам url и на url path (все, что после первой /), и настроить пропуск через tor некоторых страниц.
Для этого надо немного изменить конфиг squid:
И еще добавить один файл с путями:
Желаю успешного серфинга.
К слову сказать, squid был у меня уже даненько поднят в прозрачном режиме и его работа меня устраивала целиком и полностью. Перенастраивать браузеры между tor и squid тоже не было никакого желания. Тем более что дома то компьютер не один, есть еще и медиастанция, и планшет и нетбуки итд. Так что надо было придумывать универсальное решение. Также надо было придумать, как просить сквида загружать через тор лишь некоторые сайты, а с остальными работать как всегда.
Также, во время раскопок решения было выяснено, что tor+squid работать не будут, ибо tor — socks-прокси, а не http-прокси и быть в качестве родительского прокси для сквида не хочет.
В итоге было сделано следующее: squid, следуя url-rexep'ам, обращается при необходимости к privoxy, как к родительскому прокси. Privoxy, в свою очередь обращается к tor. Дальше уже магия.
Итак, устанавливаем тор и privoxy. Как в вашем дистрибутиве это делается — я не знаю, у меня так: emerge tor privoxy.
И начинаем конфигурировать.
Конфиг tor'а:
User tor
PIDFile /var/run/tor/tor.pid
Log notice syslog
DataDirectory /var/lib/tor/data
SocksPort 3127
SocksListenAddress 127.0.0.1
Большего, в принципе, тору и не надо. Указали куда и сколько логов кидать, где данные хранить, кем представиться и какой порт слушать.
Конфиг privoxy:
user-manual /usr/share/doc/privoxy-3.0.17/user-manual/
confdir /etc/privoxy
logdir /var/log/privoxy
filterfile default.filter
logfile privoxy.log
listen-address 127.0.0.1:3126
toggle 1
enable-remote-toggle 0
enable-remote-http-toggle 0
enable-edit-actions 0
enforce-blocks 0
buffer-limit 4096
forward-socks4a / localhost:3127 .
forwarded-connect-retries 0
accept-intercepted-requests 0
allow-cgi-request-crunching 0
split-large-forms 0
keep-alive-timeout 5
socket-timeout 300
handle-as-empty-doc-returns-ok 1
Это также весь конфиг. В принципе небольшой. В этом конфиге я лишь поправил порт, на котором privoxy будет ожидать подключений, а также указал forward-socks4a на адрес: порт tor.
Со сквидом несколько сложнее, там конфиг побольше, так что приведу лишь то, что изменил/добавил:
acl tor_url url_regex "/etc/squid/url.tor"
cache_peer 127.0.0.1 parent 3126 0 no-query default
never_direct allow tor_url
always_direct deny tor_url
always_direct allow all
Ну, и наконец ради чего все это заворачивалось: сайты, которые следует пускать через тор:
gate squid # cat /etc/squid/url.tor
^https?.*facebook.*
^https?.*addthis.*
^https?.*ustream\.tv.*
^https?.*livejournal\.com.*
В принципе, можно на этом не останавливаться. Можно разделить url на сам url и на url path (все, что после первой /), и настроить пропуск через tor некоторых страниц.
Для этого надо немного изменить конфиг squid:
acl tor_url url_regex "/etc/squid/url.tor"
acl tor_urlpath url_regex "/etc/squid/urlpath.tor"
cache_peer 127.0.0.1 parent 3126 0 no-query default
never_direct allow tor_url
never_direct allow tor_urlpath
always_direct deny tor_url
always_direct deny tor_urlpath
always_direct allow all
И еще добавить один файл с путями:
gate squid # cat /etc/squid/urlpath.tor
\/.*login.*
\/.*sheridan.*
Желаю успешного серфинга.