Прозрачная торификация рута
Программы управления пакетами в никсах, портами -в БСД, работают от рута. Всякого рода iptables -L -v и tcpdump запускаются от рута (да,да, я знаю про опцию -n, но иногда хочется посмотреть названия хостов – они бывают более информативными чтоли), многие опции nmap работают только от рута и т.д. и т.п.
В связи с этим возникает вопрос, а что будет, если в правилах прозрачной торификации прописать юзера с UID==0 ?
Естественно, никто от рута не собирается ходить в сеть через браузер, отправлять почту и т.п. Но вышесказанного достаточно, чтобы задуматься над этим вопросом.
Могут ли быть в этом случае какие-либо побочные проблемы с функционированием системы?!
И еще такой вопрос, раз уж речь зашла про nmap. А зачем многие его опции работают от рута, как это способствует безопасности? Типа чтобы браузерный эксплойт не мог его запустить? И стоит ли снизить эти привилегии, или решать вопрос торификацией рута (если это не вызывает побочных проблем)?
Ссылки
[link1] https://trac.torproject.org/projects/tor/wiki/doc/BlockNonTorTrafficDebian?version=42
[link2] https://trac.torproject.org/projects/tor/wiki/doc/TorBOX/Dev#SettingcorrecttimeNTPHTPWAITFORUPSTREAMBETTERSOLUTION
[link3] http://www.pgpru.com/forum/anonimnostjvinternet/timefingerprintingnovajaugrozaanonimnostivseti
[link4] http://www.pgpru.com/forum/anonimnostjvinternet/kakzatoritjsetevyekonsoljnyekomandy
[link5] http://www.pgpru.com/comment27740
[link6] https://lists.torproject.org/pipermail/tor-talk/2012-April/023907.html
[link7] http://www.pgpru.com/comment51267
[link8] http://www.pgpru.com/comment51738
[link9] http://www.linux.org.ru/news/security/3639847
[link10] http://www.pgpru.com/comment51922
[link11] http://www.pgpru.com/comment51958
[link12] http://www.pgpru.com/novosti/2013/uvedomlenieokriticheskojjujazvimostivtorbrowser
Некоторые низкоуровневые операции с сетевым стеком требуют работы с "сырыми" сокетами. Для этого нужны привилегии рута.
nmap/tcpdump работают с / видят пакеты в сети как есть. Значит один пользователь можно видеть что делает другой, что именно он шлёт в сеть и т.д. А вдруг там пароли открытым текстом? Это небезопасно, потому требуется рут.
root c точки зрения iptables точно такой же юзер, как и все остальные. Для прозрачной торификации важно только одно — пользователь, от имени которого запущен Tor, должен ходить в сеть напрямую, без прозрачной торификации, а все остальные (включая рута) уже могут эту "прозрачку" использовать (а могут и нет — как настроите). Если Tor запущен от рута, то рута прозрачно торифицировать не получится — это просто логически самопротиворечиво, ибо Tor-клиент соединяется с Tor'ом напрямую, а не через Tor.
Это понятно. Все-таки UNIX – многопользовательская система. Но если у меня все пользователи суть профили одного физического юзера, те. меня, грешнаго?!
При старте системы, скрипт запуска Tor'а стартует от рута, а затем передается юзеру debian-tor.
Зачем программе, имеющей доступ к одному из ваших профилей, иметь доступ к данным из другого вашего профиля? Может быть вы не хотите их друг с другом связывать.
Ну вот, торифицировал, все замечательна пашет.
Помниться было где-то обсуждение по этому вопросу, так никто из Гуру не посоветовал это сделать.
Может unknown'у включить это в фак? Или лучше сначала в рассылке самого тора обсудить?!
Не знаю точно, но кажется можно создать другого пользователя и включить его в группу root. Так и привилегий будет хватать и расфайрволлить по разным юзерам в Tor можно.
Некоторые кривые приложения проверяют только id == 0, так что одного включения в группу может не хватить.
После того, как я прозрачно торифицировал root, не было проблем с получением обновлений через Tor.
Однако на днях заметил, что некоторые утилиты, запускаемые от прозрачно торифицированного root, ведут себя не так, как те же утилиты, запускаемые от просто прозрачно торифицированного обычного юзера.
Так, напримет, если натравить nmap на ip роутера в своей локальной сети, то он nmap'ит неизвестно что, подозреваю, что какую-то Tor-ноду:
И далее идет огромный листинг tcp-портов. По-видиму, это даже не Tor-нода, а вся сеть Tor :), ибо он показывает туеву хучу tcp-портов как открытую.
Если же тот же nmap я натравливаю на роутер из под прозрачно-торифицированного root'а, то она почему-то nmap'ит именной мой роутер:
Правда, если запустить с опциями, оно выдает такое:
При этом mac-адрес моего роутера, действительно, 1 hop до него, но на нем открыто вообще-то только несколько портов, а не все tcp-порты. Похоже, что она частично nmap'ит роутер, частично – сеть Tor.
При этом tcpdump кажет как Tor-трафик (возможно общий, не от nmap, может частично от него), так и трафик между роутером и хостом.
Как это объяснить?
P.S. При выполнении sudo iptables -L -v -t nat вроде бы тоже видно dns-запросов и т.п., но есть следующая фигня.
У меня в настройках прозрачно торифицированы юзеры, а также, на всякий случай, несколько удаленных ip, чтобы по ошибке не законнектиться на них напрямую.
Во время исполнения указанной команде в tcpdump вижу следующее:
Чо это за странный такой запрос на ip роутера?
При выполнении tcpdump на внешний интерфейс роутера (который коннектиться с ISP) вроде ничего такого коромольного не заметно...
OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 13.13 seconds
Поток сознания, который трудно распарсить. Не понятна схема вашей сети, как она настроена; где, откуда, под кем и что выполняется. Но попутно замечу, что nmap часто шлёт UDP/ICMP, а их Tor вообще не передаёт (за исключением проксирования DNS-запросов). nmap нельзя сделать от юзера, нужен root. Что вы сравниваете, не ясно. Как минимум есть 4 варианта из-под кого запустить nmap
Я не думаю, что посылая какие-то левые tcp-пакеты через Tor-сеть можно эффективно сканировать Tor-ноды. А если на Tor-ноде ещё и firewall настроен, так вообще труба. Кроме того, мне кажется слишком невероятным, чтобы Tor-клиент без спецпатчей соглашался посылать пакеты в сеть, у которых dst IP локальный.
Multicast DNS? Где-то здесь есть винда?
— Гость (15/12/2011 00:45
root торифицированный на локальной машине в локальной сети
udp насколько я понимаю, настройки прозрачной торификации "режут"
Видимо, icmp
Я думаю, что открытые tcp-порты (все) – это не tor-нода, это nmap воспринимает весь Tor как большой роутер при сканировании по tcp
nmap выполняется от юзера, некоторые опции требуют рута, но не все
На роутере самба стоит, снести наверное надо, винда в локальной сети так и не завелась :)
Вообще, прозрачная торификация — не стандарт. Что пропишете в конфиге, то и будет. Можно резать, можно заворачивать на DNS-порт Tor'а и т.д.
А ntp (в дебиане работает от юзера ntp) тоже шлет пакеты в сеть от рута, как и ping?
Заметил, что ntp, если прозрачно торифицировать рут, перестает работать корректно.
Нужно открыть коннект для udp через port 123, чтобы этого избежать? Но ведь через него, гипотетически, что-то еще может утечь? (через этот порт)
Или время от времени "расторифицировать" рут и давать возможность обновить системное время, а потом обратно заторифицировать?
Что лучше?
Лучше руками выставить время. Хотя fingerprinting remote devices (была тут статья на тему) по отличию во времени может что-то такое существенное и даст, но мне слабо верится. Если так сильно боитесь, велкам ту виртуалки.
Гипотетически да, но пока предлагают открыть[link1].
Обсуждение возможных решений (не для серьёзного самостоятельного использования — только для экспериментирования и выработки общего подхода!) здесь[link2]. Например, можно использовать HTP: выдёргивание времени из заголовков HTTP-ответов, но с точностью только до секунды и с до конца неясными проблемами.
unknown, а в случае с прозрачной торификацией отдельных юзеров, как в faq нашего сайта и в wiki Tor'а – тогда надо такое правило в таблицу nat вставлять?
Причем первой из записей, над всеми, касающимися прозрачной торификации:
Хотя недавно где-то читал, что "новомодная" тенденция закрывать фаерволом всю систему (прозрачно торифицировать в смысле), и затем открывать для отдельных юзеров, т.е. наоборот.
Однако в вику тора этого не внесли, при этом.
Вот она[link3], кстати. Проблема «что делать с NTP» на форуме всплывает[link4]... регулярно[link5].
Каждый городит правила в меру своей испорченности. В официальной вики на тему правил тоже можно поспорить — там скорее PoC дан, а доделывать их под себя каждый сам должен, включив мозги. Из давних обсуждений с линуксоидами инструкций unknown'а в FAQ помню, что ругались на него. Сразу скажу, что деталей не помню: то ли были претензии как использованию полуdepricated-опций, то ли к некоторым самим правилам (не деанон, а просто «грязно»). Сам я iptables не знаю настолько хорошо, чтоб судить.
Если почитать общие книжки по файерволлам, можно узнать общие рекомендации. Есть, кстати, 2 способа изложения правил:
- Разрешить всё, и потом пометить руками что запретить.
- Запретить всё, и потом руками внести правила, которые разрешат необходимое (всё, что не рзарешено, должно быть запрещено).
Для Tor'а 2ой способ больше подходит (что не мешает в инструкциях в официальном Tor-вики писать правила по 1ому методу). Ну и гайки позавинчивать стоит.По последним новомодным тенденциям разработчики вообще забили на прозрачную торификацию. А один из них даже робко осуждает сам торовский проект — "Tor router" или "Onionbox" — где тор вынесен на отдельную машину. И судя по всему, любое использование тора вне рамок торбраузера также под вопросом. Потому как это делает пользователя псевдонимным, а не анонимным, а пользователи таких тонкостей не понимают. Ради популяризации тора и роста базы стабильных бриджей, на запуск которых агитируют пользователей таких роутеров, пока на это скорее всего закрывают глаза.
А что будет, если все udp заворачивать на DNS-порт Tor'а? Они будут выходить из Tor в публичный Интернет? Т.е. можно ли таким образом "научить" SIP Tor'у?!
Неужели все-таки угробят прозрачную торификацию? Будет очень плачевно, так как такая псевдониность зачастую более безопасна, чем анонимность. Например, если что-то активно делаешь через Tor (управляешь антиправительственными серверами, например), где крайне нежелательно в первую очередь раскрытие физического местоположения, а не связывание одних твоих действий с другими).
Да и я не совсем понимаю, а как, например, можно профилировать ssh-соединения?!
P.S. А в чем состоит пседонимность, если, например, юзаешь тот же TBB не через локальный Tor, а через системный и прозрачную торификацию?
Поэтому для особо продвинутых применений скорее всего не угробят.
Проблема в том, что помимо TBB в одном сеансе может быть другое соединение от другой программы и пользователь не будет за этим следить (нет единого механизма для всех). А эксит (или их сотрудничающая злоумышленная фракция) будет. И может выделять этого пользователя среди остальных: профилирование, разделение одного большого множества анонимов на кучки мелких, особо выдающихся своей навороченностью и продвинутостью, но невнимательных. Поэтому псевдонимность какбы плохо всем — нарушается принцип: "чем больше пользователей в сети Tor, тем больше анонимность"; нагрузка на сеть растёт с меньшей пользой.
Предполагается сделать разные подключения и построение отдельных цепочек для разных программ, в общем нужен встроенный механизм разруливания ситуаций под такие требования, одна прозрачная торификация может принести больше вреда, чем пользы. Поэтому её статус пока неясен.
Я лично из-под разных профилей с одного компа одновременно не работаю. Да и трудно это физически.
А если поднять несколько демонов tor'а от разных системных тороюзеров и распихать по каждому из них прозрачно торифицированных юзеров с тем, чтобы каждый профиль прозрачно торифицированного юзера лез в Сеть через свои собственные цепочки?!
Можно, главное не запутаться.
https://lists.torproject.org/p.....12-April/023907.html[link6] – а как вам это решение?!
Правда, у человека из 7 раза два раза не сработало...
А, так это уже значит реализовали в альфа-версии. Возможно, криво реализовали, подождём ответ с разъяснением. Альфа по-определению — это для тех, кому экспериментировать и участвовать в отладке интереснее.
Очевидно, необходимость того, чтобы работало у всех и во всех конфигурациях с минимальными телодвижениями настраивающих это пользователей.
Да, но если TorBrowser ходит во внешнюю сеть и на скрытые ресурсы, а сторонний трафик того же клиента Tor (например, XMPP) идёт только на скрытые ресурсы, то экситы в пролёте, как и администраторы скрытых ресурсов Tor — никакого профайлинга не получится, т.к. нет точки, через котрую весь трафик проходит расшифрованным. Более того, это даже работает как антипрофайлинг — владельцам тор-энтри будет труднее фингерпринтить сайты, на которые ходят пользователи.
Если через тот же системный Tor не идёт трафик других приложений (не TBB), то ни в чём.
Я чувствую, они однажды докаркаются подобно Debian OpenSSL. Вот найдут однажды нормальную дыру в FireFox, от которой TBB не спасает, загрузят её на самые злачные места, посещаемые анонимами, соберут статистику. Вот вы и узнаете зачем нужна прозрачная торификация и контроль на уроне firewall'ов, когда тысячи одновременных арестов по всем странам пройдёт. С катанием бочки на прозрачную торификацию (точнее, на firewall-контроль Tor'а) надо быть очень, очень аккуратным — это та последняя миля, которая реально страхует утечку реального IP от полного фейла.
Нельзя. Tor не проксирует DNS трафик через Tor — он редиректит только DNS-запросы, причём своими методами, на эксит, и DNS-разрешение производит эксит на тех DNS-серверах, которые у него прописаны в настройках (у всех разные, в общем случае). Что при этом прописано у клиента в качестве DNS-сервера не влияет ни на что — firewall сливает в Tor либо режет всё, что идёт по DNS-порту и/или UDP.
Вы когда-нибудь логинились на какой-нить OpenSSH-сервер неанонимно? Или у вас есть серверы, куда вы до сих пор так логинитесь? Поздравляю, значит, эти серверы знают точно ваш name string. Включайте ssh -v и ищите в выводе строчку «debug1: Local version string». Итак, ssh-сервера, посещаемые анонимно и неанонимно знают о вас нечто общее. Можно, конечно, завести 2 ssh-клиента, один для анонимных, а другой — для неанонимных соединений, это слегка сгладит проблему. В частности, в BSD помимо ssh из базы есть gnu-порт ssh в портах — они дают разные version string.
Очень интересно. Могли бы создать отдельную ветку или новость на эту тему, с объяснением зачем это надо, введением и заключением. А то потом фиг найдёшь этот ваш пост, чтобы сослаться в ответе другим. И да, конечно, вы (и не только вы) уже конкретно затрахали с вставкой ссылок как есть. Что, синтаксис ссылок не судьба посмотреть? Надо засрать форум кишками ссылок длиной во всю страницу? Ссылка вставляется так: [[http://адрес имя_ссылки]].
Это частный случай. Может быть много частных случаев, которые полезны/интересны пользователю. Прекрасно, пусть он и настраивает персонально, если уверен в своих силах. Пусть пользователи обмениваются опытом, экспериментируют в нестандартных настройках, если это потенциально помогает в выработке стандартизированных решений в будущем. У большинства же неразбирающихся пользователей могут возникнуть скорее нежелательные ситуации.
Это так. Но этим пользуется меньшинство, это бывает сложно интегрировать в приоритетные задачи и связать в стандартизированное, неподдающееся профилированию по трафику решение, по аналогии с TBB.
Вначале у разработчиков был большой энтузиазм в этом направлении. На торпроджекте есть слайды и видео выступления Роджера, где он рекламировал прозрачную торификацию, чуть ли ни как "киллер-фичу" для юникс-систем. Но, вероятно, после открытия тем с профилированием трафика и усиления представления о том, что большинство пользователей абсолютно непродвинутые (приём звонков и какие-то программы по непосредственному общению с тор-юзерами их добили похоже окончательно), проект к прозрачной торификации несколько охладел. При этом, скрытые ресурсы тоже не являются приоритетом ни у разработчиков, ни (по мнению разработчиков) у большинства пользователей.
Возможно, проект не расчитывает на то, что в случае фейла с браузером, незначительное число столь продвинуто подстраховавшихся хоть как-то скрасят общую картину.
Довести до ума Tails и список инструкций к нему «что можно делать» и «что нельзя»?
Судя по нашим недавним[link7] обсуждениям, скрытые ресурсы стремительно набирают популярность (к добру ли это для них в частности и для всего Tor'а в целом — уже другой вопрос).
P.S.: Всё-таки мы некорректно называем страховку firewall'ом прозрачной торификацией. Всё, что нужно, по минимуму, — это системный Tor, работающий как http/https-прокси, слушающий на определённом порту, причём трафик в обход прокси чтоб резался iptables/pf'ом. Здесь нет никаких существенных недостатков прозрачной торификации as is — достаточно, чтобы TorBrowser-девы выпустили сборку, не привязанную к своему Tor'у, остальные бы сами привязали его к системному. Отсутствие такого выпуска — предмет лени, а не нежелания проделывать большую работу, как я понимаю. Более того, подозреваю, что у самих сборщиков TorBrowser'а такая версия TB (без привязки к текущему Tor) даже есть (просто для тестов): при сборке
монстрабандла сначала собираются все компоненты по отдельности, тестируются, а потом уже сливаются в один бандл и тестируются вместе. В данном случае их просят выложить предварительный результат, до сливки в бандл, а они не хотят.Возможно, юниксовая версия будет ещё сильнее отличаться от виндовой. Хотя должны быть и более существенные проблемы. У нас была отдельная тема в форуме и разработчикам мы посылали свои недовольства. Они с нами в чём-то соглашались и что-то отвечали. Где-то на проджекте висит тикет об отвязке TBB от своего тора и привязке его к системному. Если интересно, можно это всё отыскать, чтобы найти конкретный ответ.
Просто, если бы всё было легко и не было подводных камней — это бы сделали. А желания запоминать или разбираться заново, почему что-то не получилось, не вышло, не всегда хватает.
ИМХО, зря. Раз СР (скрытые ресурсы) предоставляют куда больше анонимности, чем просто Tor как транспорт, довести их до ума (до приемлемой степени анонимности, какую в принципе могут допускать протоколы реального времени) более реалистично. Ну и уже имеющийся задел у СР впечатляет: есть p2p-инфраструктура, анонимость серверов и клиентов, отсутствие необходимости иметь реальный IP, аутентификация для приватных СР и т.д. Может быть, когда-нибудь популярность СР будет сравнима с оной у обычных интернет-ресурсов. Во всяком случае, то, что любой серьёзный современный протокол должен иметь поддержку шифрования, уже давно осознаётся сообществом — осталось только, чтобы анонимность стала считаться такой же необходимостью.
Давеча сидел в огороженном всеми средствами и заторенном юзере. Никто не должен был из-под этого юзера ходить в интернет, никогда, кроме руками запускаемого TorBrowser, в котором прописаны верные настройки сети. Сижу спокойно, уже долго читаю постороннюю страницу в одной из вкладок, как вдруг передо мной внезапно всплывает окно какого-то музыкального (или даже видео) проигрывателя в gnome. У меня отвисает челюсть (первый раз вижу такое), мысли в голове путаются, но, зная что подстраховки есть, слежу за тем, что будет дальше. Он, значит, запустился, и сразу же полез в интернет, какой-то ubuntu store или что там... не помню деталей. Как мне показалось, это как-то связано с не очень давно введёной фичей подгрузки песен, текстов или даже самой музыки из каких-то централизованных харнилищ. Ума, правда, вылезти в интернет у него не хватило (нужно было к прокси подцепиться, а он настройки из TorBrowser не распознал), потому просто пожаловался на отсутствие сети, и шоу закончилось. Я сдуру забыл сделать скриншот перед закрытием окна, но дамп процессов ps aux на всякий пожарный сохранил. А теперь представьте себе, что внешнего Tor-рутера не было б, что не было б контроля на уровне firewall. Сразу сухари сушить или кирпичи откладывать? Невольно вспоминается[link8]: Ладно, если кое-где собирают информацию об имеющихся уязвимостях в браузере, а если там коллекционируют 0day на ядра Linux, загружая их на подставные сайты?
Одна из проблем модных решений — написать так, чтобы работало у всех и при всех конфигурациях, иначе замучишься искать проблему (у кого и почему не работает). Намного лучше, когда пользователь знает, что делает и продуманно составляет правила сам под себя. Иногда оказывается, что чего-то не хватает, что-то не работает и т.д. Я бы не сказал, что отладка правил файерволла — непростая вещь, даже для опытного UNIX-юзера. Самый правильный способ (и самый требовательный к квалификации настраивающего), на мой взнгляд, таков:
Так проще всего анализировать безопасность правил.
*Например, в pf когда-то была дыра, работающая, только если не был указан список конкретных протоколов[link9]. У меня он предусмотрительно был указан (tcp,udp,icmp), на всякий случай, потому система оказалась неуязвимой.
Прошёл всего один год, и пророчество сбылось[link12].
Справедливости ради, арест пока
прошёлсостоялся только один. Хотя кого-то могли взять на карандаш, да, но это уже спекуляции.