Privoxy, Tor и https


Здравствуйте.

У меня стоит системка Tor+Privoxy и торифицированный браузер. Как я понимаю, траффик идет от браузера к Privoxy, там из него удаляется все лишнее, после чего он поступает в TOR. Но при использовании https, к Privoxy идет уже шифрованные SSL данные, обработать которые он не может. Т.е. https нарушает анонимность в случае, если целевой сервер враждебен.

В принципе напрашивается решение – обрабатывать траффик до шифровки. Не делается ли этого в интегрированных браузерах типа operaTor со втроенным прокcи Polipo или в xBBrowser (TorPark)? Не делается ли этого в известном плагине Torbutton к FireFox (не заменяет ли он Privoxy)? Также слышал про проксиметрон, который вроде умеет работать с SSL. Подскажите плиз.

P.S. Немного не в тему. Возможен ли перехват и подмена открытых ключей при создании цепочки или они все подписываются?

Комментарии
— SATtva (25/09/2008 20:03)   
Т.е. https нарушает анонимность в случае, если целевой сервер враждебен.

Всё верно.

Не делается ли этого в известном плагине Torbutton к FireFox (не заменяет ли он Privoxy)?

Делается. При использовании текущей экспериментальной версии Torbutton необходимость в Privoxy отпадает. Есть ещё полностью настроенный пакет TorBrowser (на основе Firefox с расширениями и Polipo).

Возможен ли перехват и подмена открытых ключей при создании цепочки или они все подписываются?

Все ключи Tor-узлов заверены ключами корневых узлов, которые, в свою очередь, вшиты в дистрибутив программы. Таким образом, если Вы располагаете достоверной копией программы, подмена ключей исключена. Если интересуют некоторые нетривиальные соображения на по этому вопросу, смотрите эту большую тему[link1].
Гость (11/11/2008 02:03)   
установил пакет vidalia-bundle-0.2.0.31-0.1.9.exe и возник вопрос: если установлен Torbutton и отмечена галочка "использовать Privoxy", то "настройки безопасности" в Torbutton 1.2.0 дополняют настройки в Privoxy 3.0.6 в файлах default.action, user.action, standard.action или модифицируют их?
— SATtva (11/11/2008 20:57)   
Дополняют.
Гость (12/11/2008 01:51)   
SATtva:
Как я сказал, используйте для Firefox в качестве http-прокси Privoxy — 127.0.0.1:8118 (чтобы избежать хитрого и простого трюка с выявлением Вашего реального адреса, укажите этот же прокси и для FTP. FTP в этом случае не будет работать, но не будет происходить и утечки Вашего IP, если на злоумышленном сайте одна из картинок будет находиться на

а где лучше это указать: в файле Privoxy или в настройке Torbutton на вкладке "настройка прокси/установить параметры прокси вручную"?
Гость (12/11/2008 04:14)   
еще вопрос, Torbutton 1.2.0 может удалять из https-запросов небезопасные заголовки, если да, то в какой настройке это прописано?
— SATtva (12/11/2008 22:17, исправлен 12/11/2008 22:19)   
а где лучше это указать: в файле Privoxy или в настройке Torbutton на вкладке "настройка прокси/установить параметры прокси вручную"?

Если Privoxy у Вас установлен в комплекте с Tor и другими программами (bundle), то в его настройки своими руками лучше не лезть, если не уверены, чего именно хотите добиться (Ваш случай судя по всему). Torbutton во включенном состоянии сам правильно устанавливает IP и порты для поддерживаемых браузером протоколов (в том числе и FTP), так что не старайтесь его перемудрить.

еще вопрос, Torbutton 1.2.0 может удалять из https-запросов небезопасные заголовки, если да, то в какой настройке это прописано?

Torbutton одинаково обрабатывает и HTTPS, и HTTP, вносить какие-то специальные настройки не требуется. Основные параметры обработки хидеров находятся во вкладке Security Settings > Headers. Есть и другие, влияющие на хидеры косвенно; описывать здесь всё не вижу смысла.
Гость (13/11/2008 23:04)   
User:
Torbutton во включенном состоянии сам правильно устанавливает IP и порты для поддерживаемых браузером протоколов (в том числе и FTP)

У меня при включении Torbutton происходит изменение настроек в Firefox на вкладке "Дополнительно/Сеть/Настроить" с "Без прокси" на "Ручная настройка сервиса прокси" с уже заполненными полями, но поле "FTP прокси" там пустое, если в Torbutton отмечена галочка "использовать Privoxy".

Я еще хочу запретить Firefox идти в обход Privoxy. Тогда в поле "Узел SOCKS" нужно указать 127.0.0.1 порт 8118 вместо 9050?
— SATtva (13/11/2008 23:58, исправлен 13/11/2008 23:59)   
но поле "FTP прокси" там пустое, если в Torbutton отмечена галочка "использовать Privoxy".

Privoxy — это HTTP-прокси, он в любом случае не способен транслировать и обрабатывать FTP-трафик. Если поле FTP пустое, но при этом заполнено поле SOCKS (собственно, так и делает Torbutton), то именно указанный socks-прокси используется для FTP-трафика, т.е. FTP траслируется напрямую в Tor. Короче говоря, настройки, предлагаемые Torbutton, предназначены для корректной работы и отсутствия утечек.

Я еще хочу запретить Firefox идти в обход Privoxy. Тогда в поле "Узел SOCKS" нужно указать 127.0.0.1 порт 8118 вместо 9050?

Ещё раз повторю: Privoxy — это HTTP-прокси, а не socks-прокси. Порт 8118 — это стандартный порт Privoxy (http-прокси), порт 9050 — это порт Tor'а (socks-прокси). Tor способен принимать любой трафик (tcp-трафик, если быть точным), Privoxy — только http-трафик. Указывать порт Privoxy в качестве socks-прокси глупо — он просто не будет работать.

Если Вы используете Torbutton, то он уже устанавливает наиболее подходящие настройки. Не пытайтесь его перемудрить. По крайней мере до тех пор, пока не станете более компетентным, чем разработчик этого расширения.
Гость (14/11/2008 11:33)   
SATtva, большое спасибо за понятные комментарии. Я тоже всегда вручную правил эти поля, так как в описаниях на сайте Тора такого вразумительного объяснения работы этой связки не находил. Мне, как непрофессионалу, тоже всегда казалось, что в этих настройках кроется какое-то противоречие. Спасибо.
— SATtva (14/11/2008 12:15)   
Пожалуйста. Обращайтесь ещё. :-)
— Enkee (15/12/2008 18:25)   
Добрый день

Не подскажете, как настроить Privoxy чтобы можно было открывать url с указанием порта.
Например www.site.com:8114, где site это нужный мне домен, я не могу открыть – получаю пустую страницу.
Убираю http(s) прокси, оставляю один только ТОР на socks и всё работает.

Что делаю не так?
Гость (15/12/2008 19:06)   
Это странно. У меня вроде бы такое работало, и точно работало для скрытых ресурсов тор (мануальное указание отличного от умолчального порта).
— SATtva (16/12/2008 15:49)   
Если www.site.com:8114 открываете по HTTPS, нужно добавить этот порт (8114) в разрешённые HTTPS-порты Privoxy.
Гость (19/12/2009 03:02)   
Если поле FTP пустое, но при этом заполнено поле SOCKS (собственно, так и делает Torbutton), то именно указанный socks-прокси используется для FTP-трафика, т.е. FTP траслируется напрямую в Tor. Короче говоря, настройки, предлагаемые Torbutton, предназначены для корректной работы и отсутствия утечек.

подскажите плиз почему тогда здесь[link2] советуют в поле FTP-Proxy писать localhost.
А Torbutton это поле оставляет пустым.
Где истина?
Гость (19/12/2009 09:23)   
А Torbutton это поле оставляет пустым.

Tb – очень глубокая настройка внутренних штук ff, возможно, потому он позволяет достичь цели и без прописывания ftp-proxy. FF вроде бы поддерживает socks5, tor – также socks5 (?), тогда можно указать в качестве прокси socks и не мучаться: все протоколы пойдут через socks. Другие браузеры, например, не поддерживают работу в socks-прокси, потому там приходится извращаться с http- и https-прокси. В то же время, privoxy удобна тем, что она фильтрует http-страницы, потому отказываться от неё полностью не предпочтительно. В связи с этим tb в ff (как я понимаю) оставляет порт privoxy для http, а для остального – указывает порт тора как socks-прокси.
P. S.: честно говоря, там всё достаточно запутанно. Лучше все соединения, идущие не в tor, закрыть fw'ом и не мучаться. Как-то так для pf:
После такого хрен пользователь tor_user пошлёт хоть что-нибудь на адрес:порт, отличные от 127.0.0.1:8118 и 127.0.0.1:9050. Заметьте, что закрыть таким образом порты намного проще, чем настроить полноценную прозрачную проксификацию[link3].
— ГОсть (08/01/2010 18:12, исправлен 08/01/2010 19:11)   

От 192.168.1.1 (IP адрес) к 192.168.1.2 (Основной шлюз) идут пакеты.
Порт N/A
Протокол IP/ICMP


В логе:


Что это значит?
Понимаю, что вопрос скорее всего глупый поэтому не создаю отдельныю тему.

Гость (09/01/2010 02:51)   
Это не есть понятный людям формат. Из логов tcpdump и то понятней. К тому же, надо разбираться: в каких случаях появляются подобные пакеты, какая программа их генерирует и т.п. Нужно отключить всё лишнее и смотреть на то, что ваш комп шлёт в сеть. Есть порт N/A (not availavle), это могут быть, кажется, броадкасты, или dhcp-запросы к серверу (?).
— Гость (09/01/2010 16:31)   
P.
S.: честно говоря, там всё достаточно запутанно. Лучше все соединения, идущие не в tor, закрыть fw'ом и не мучаться. Как-то так для pf:

После такого хрен пользователь tor_user пошлёт хоть что-нибудь на адрес:порт, отличные от 127.0.0.1:8118 и 127.0.0.1:9050. Заметьте, что закрыть таким образом порты намного проще, чем настроить полноценную прозрачную проксификаци
ю.
$ перед lo0 лишнее, машинальная очепятка наверное.
можно еще упростить, опустив две средние строчки и вставив одну, чтобы уж никуда кроме как:

имхо разумеется.
— ГОсть (09/01/2010 20:11)   
Да это Broadcast

Wireshark пишет:
ARP Who has 192.168.1.1? Tell 192.168.1.2.
ARP 192.168.1.1 is at xx:xx:xx:xx:xx:xx (x-числа)

У меня WInXP, Eathernet, ADSL. Я тут немного поискал на тему Broadcast.
Наиболее внятное:

"Буквально – широковещание. В сетях – пакет, предназначенный для всех, кто обнаружится в данном сегменте. Понятие сегмента зависит от протокола, о котором идет речь. Так, бывает, если я правильно ошибаюсь, броадкаст на уровне Ethernet, бывают броадкасты на уровне протоколов IP и IPX, бывают на некоторых более высокоуровневых протоколах, типа NetBIOS. Нужен он для ответов на вопросы типа "кто вообще в этой сети есть?". Соответственно, сеть без него обходиться может, если на каждой машине во все положенные места намертво засунуты ответы на эти вопросы. Типичное применение IP броадкаста – "who-has 192.168.0.1", то есть вопрос о том, на каком MAC-адресе живет данный IP, если этот IP в твоем сегменте (называется это ARP – Address Resolution Protocol). Ответ заносится в ARP table, через некоторое время устаревает, вопрос повторяется. Можно занести туда это сокровенное знание руками (man arp) и тем самым избавиться от этих вопросов, что повышает security, но и геморрой заодно. На уровне IP броадкасты реализуются посредством посылки пакета на специальный адрес. Разумеется, все машины в сегменте должны придерживаться одинакового мнения о том, какой это адрес, и ни одна не должна его иметь своим. На уровне, скажем, NetBIOS броадкастами выясняется, кто у нас сегодня local browser данного сегмента, и т.п. Какие при этом будут гоняться броадкасты, зависит от того, поверх какого протокола работает NetBIOS, насколько я понимаю."

Тогда еще вопрос. Как отключить Broadcast и нужно ли это? Возможна утечка чего-нибудь из-за Broadcast?
Гость (10/01/2010 01:56)   
$ перед lo0 лишнее, машинальная очепятка наверное

Нет, всё романтичней (см. пояснения к конфигу ниже).

можно еще упростить, опустив две средние строчки и вставив одну, чтобы уж никуда кроме как

Нет, нельзя. То, что вы предлагаете сделать, итак запрещено конфигом (см. ниже правило block all) – это во-первых, а во-вторых, ваше предложение неэквивалентно мной написанным строчкам (ибо первые фильтруют трафик для юзера privoxy, а последняя – для юзера tor_user). Предполагалось, что privoxy для Tor'а запущена от имени юзера privoxy, tor – от имени юзера user1, сам работаю с Tor'ом под юзером tor_user, и сам работаю с инетом под юзером user1 (неидеальная схема, но см. комментарии в конфиге):
По поводу критики, окромя уже сказанной в комментариях:
  • Гайки можно закрутить сильнее, создав отдельного юзера под OpenVPN и прделав с ним те же извращения, что и с tor_user. Явно разрешить только используемые юзерами net_users порты на $lh, а остальные – запретить.
  • На самом деле на текущий момент соединение с инетом возможно только через административный прокси (privoxy, которая priv_un, умеет сама редиректить весь траф на локальный прокси, и сама же подставлять нужные login:pass), и каждая программа проксифицируется отдельно, а потому OpenVPN никак не интерферирует с уже запроксированными программами: чтобы трафик какой-то программы под user1 пустить через OpenVPN-туннель, достаточно лишь убрать прокси из её настроек. По этой же причине NAT на $eif на текущей конфигурации локальной сети не работает (но работает на $tif при поднятом OpenVPN).
  • ssh-туннель, кому интересно, делается так: запускается скрипт
на своей машине, а на удалённой перед этим прописывается:
ЗЫ: названия переменных типа MY_ETHERNET_IP и REMOTE_ETHERNET_IP всюду подразумеваются относительной основной, т.е. моей (MY) машины. Т.о. с основной машины выполняется под root'ом вышеуказанный скрипт, и это автоматом поднимает туннель. Практичнее дилегировать право поднятия туннеля клиенту, а не серверу (как в вышеуказанном случае), но в моём случае это было бы менее безопасно. Если кто не понял, то хоть коннект и идёт на root-аккаунт по ssh, его инициирующий не может выполнить абсолютно ничего кроме как поднять туннель, т.е. схема достаточно безопасна.

Соответственно, сеть без него обходиться может, если на каждой машине во все положенные места намертво засунуты ответы на эти вопросы

А врать не хорошо. Сеть без него вообще всегда обходиться может, если только каким-то на головёшку больным сервисам (какой-нибудь samba) вдруг не понадобится узнать кто вообще есть в сети (а зачем? Если вы хотите послать в сеть кому-то что-то, вы делаете arp-запрос на нужный IP, получаете его MAC и шлёте пакет, но зачем вам знать кто в сети, если вы им ничего не собираетесь слать?). И да, arp-запросы к конкретному IP – это не броадкасты, стоит заметить. А намертво засунуть проще простого: команду "arp -s IP MAC" добавить в стартовые скрипты системы (как уж в винде – не знаю). У меня, к примеру, система броадкасты не рассылает (смеха ради, отмечу: это умолчальные настройки – я ничего не менял), и ничего. Как отключить это в винде – без понятия.

DHCP-запросы к серверу, если есть, отрубаются остановкой DHCP-клиента и прописыванием статического IP, навязываемого DHCP-сервером. У хороших админов всегда есть статическая таблица MAC<->IP, потому это действие не вызывает проблем, у мудоголовых же полный срач в сети, IPшники постоянно меняются при новых запросах к серверу, и прописка статикой IPшника может начать глючить (раз DHCP-клиент долго не запрашивает IP, DHCP-сервер начинает считать, что он сдох и не пускает в инет).

Возможна утечка чего-нибудь из-за Broadcast?

В норме – нет. Если же начать фантазировать о том, что злоумышленник получил на вашем компе привелегии, и пытается деанонимизировать вас как только можно, я не берусь предсказывать (но это в вашем случае и не имеет смысла: против такой целевой атаки защититься на винде крайне сложно, если не иметь дополнительный рутер под UNIX-системой с принудительной торификацией всего виндотраффика; к тому же есть много куда более простых атак супротив стандартной винды, с которых куда логичнее начать вашему противнику).
P. S.: Вы ещё не устанавливаете себе UNIX?! Тогда мы идём к Вам!
— ГОсть (10/01/2010 14:07)   
А может модем слать Broadcast?
И, если кто знает, как заблокировать это в WinXP? Например с помощью Outpost?


DHCP я отключил давно, ничего кроме 192.168.1.2 для соединия с провайдером не прописывал и все норм.

P. S. Как я понял в UNIX надо долго копаться с настройками, а на это нужно время. ):
Гость (10/01/2010 14:41)   
Например с помощью Outpost?
Проще отключить в настройках самой ОС, если это вообще делается.
P. S. Как я понял в UNIX надо долго копаться с настройками, а на это нужно время. ):
Ну как бы да...[link4]
— ГОсть (18/01/2010 15:53)   
Блокировка броадкаст ( Broadcast ) в Outpost 4.
Параметры => системные => правила => добавить =>
В качестве адреса отмечаем пункт макро-адрес, в выпадающем меню выбираем BROADCAST_ADDRESSES => Ставим галачку блокировать.


Вроде так.
— ГОсть (26/01/2010 19:28)   
Нет. Я оказался не прав, так BROADCAST не заблокируеш. :(
— Grey (28/07/2010 18:26)   
Подскажите плиз, если у меня инет идет через прокси, то как этот прокси прописать в privoxy. Privoxy стоит под дебианом.
— SATtva (28/07/2010 18:47)   
Вам это для работы с Tor? В конфиге Privoxy в директиве

замените точку в конце строки на адрес прокси.
— danil4 (03/08/2010 09:38)   
Подскажите пожалуйста, можно ли используя privoxy изменить поля plugins= fonts= timezone= video= если да, то можно ссылки на доки? Как отключить все правила privoxy и заставить ее использовать только мои настройки?
Гость (03/08/2010 19:58)   
А разве эти "поля" — не следствие включённого JS, к коему privoxy не имеет никакого отношения? Не говорю уже о том, что https privoxy фильтровать не может, а потому там будет всё таким, каким это выдаст браузер. Хотите переизобрести torbutton?

Ссылки
[link1] https://www.pgpru.com/forum/anonimnostjvinternet/prostojjsposobatakivobhodtor

[link2] http://www.torproject.org/docs/tor-doc-web.html.ru

[link3] https://www.pgpru.com/faq/anonimnostj#h41-13

[link4] https://www.pgpru.com/faq/obschie#h46-12