Когда наступит луковое счастье для простых пользователей?

Я еще застал времена, когда при слове "шлюз" возникала стойкая ассоциация со "старым компьютером", в которых втыкали две карточки и колхозили шлюз в Интернет.
И действительно, выбора для SOHO тогда не было никакого, хочешь шлюз – собирай сам.
Мне пришлось тоже собрать такой шлюз, сначала на NT4, а потом освоил линуксовый вариант.
Те годы ушли безвозвратно, и теперь с термином "интернет-шлюз" ассоциируется крохотная коробочка с роутером, который при помощи веб-интерфейса можно легко и быстро настроить в режим шлюза, с чем справляются даже школьники.

А вот с Tor-шлюзом ситуация явно затоhмозилась. Да, есть Tor Browser, но это всего лишь браузер для анонимного ползания по сайтам.
Полноценный же Tor-шлюз для работы по ВСЕМ протоколам по-прежнему собирают знатоки на 2-карточных компах – ситуация повторяется по спирали.
Никто не портирует Tor на ASUS, Linksys, ZyxeL и прочие коробочки, как это давно делают с DD-WRT и OpenWRT.
Хотя по Сети периодически пролетают сборы на краудфандинг на создание аппаратного Tor-шлюза, но мне еще не удалось найти хотя бы один реально действующий проект, в котором можно купить нормально работающую "коробочку".

И как быть простым пользователям, которые не умеют собирать самодеятельные Tor-шлюзы? Вернее, собрать-то могут, всякие хавту имеются, но нет полной уверенности, что все тонкости по настройке будет сделаны без ошибок, кроме того, все компьютерные решения потенциально подвержены взлому больше, к тому же не хочется вместо крохотной коробочки держать целый комп, пусть он будет даже на Rassberry.

Хочется такое же готовое решение, как нынешние роутеры: – Купил – Воткнул – Работает!

Когда же наступит такое всемирное луковое счастье? Кто ему мешает и почему оно никак не наступит?



Комментарии
— гыук (03/10/2016 23:55, исправлен 04/10/2016 00:11)   

Года 3 назад наступило. Вы были в Северной Кореи ?)
Onion Pi[link1]


А можете купить Raspberry Pi 3 и установить сами туда Tor. Вот и инструкция[link2]


TOR роутер на базе Raspberry с поддержкой VPN[link3]

— Piano (05/10/2016 01:30)   
Спасибо большое, изучаю!
Хотя жаль, всего один Ethetnet, а вместо второго небезопасный WiFi, хотя виновата в этом сама малинка.
— Piano (05/10/2016 15:38)   
Почитал внимательно. Конечно, формуле "Купил – Воткнул – Работает" эта самоделка не соответствует, но хоть что-то приближенное.
А кто-то из наших уже собирал такую, есть отзывы?
И оно точно туннелирует через Tor весь трафик, или только http?

И есть ли еще подобные аналоги?
— Piano (06/10/2016 16:31)   
Господа криптологи, пожалуйста, не бросайте эту тему!
Я всерьез настроился купить что-то подобное, но поскольку других вариантов не предлагаете, то опишите хотя бы подробнее эту самоделку
— Гость_ (06/10/2016 17:32, исправлен 06/10/2016 17:33)   

Время таких самоделок ушло, даже толком не прийдя. Раньше бытовало мнение, что для полного счастья достаточно завернуть весь трафик в тор, и больше ничего не нужно. На этой волне стали популярны разные тор-шлюзы начиная от заброшенного JanusVM и кончая современными аналогами.


А потом оказалось, что завернуть трафик в тор – это только часть проблемы, и, возможно, даже меньшая её часть. Стало понятно, что заворачивать надо разных пользователей и софт в разные цепочки, приложения должны быть достаточно очищены от ненужных метаданных, должно быть разделение между разными анонимными профилями и, тем более, они должны быть отделены от неанонимных. Так от эры "прописал SOCKS в браузере" люди постепенно перешли к эре специализированного софта под задачу анонимности: специальный браузер, специальный mail-клиент (torbirdy?), специальный IM-клиент (tor-messenger). Чтоб это органично работало, понадобились специализированные ОС со своими настройками: Tails, Qubes TorVM, Whonix и т.п. Начался развиваться свой анонимный интернет со своей адресацией и, возможно, заточенными под эти цели протоколами. На следующем этапе окажется, что софта, операционных систем и сети мало, чтобы быть анонимным – нужно специальное анонимное железо, свободное от закладок, недокментированных возможностей и не светящее всюду свои уникальные серийники и другие характеристики. Хотели просто анонимности – оказалось, нужен целый альтернативный анонимный мир.


В анонимном мире на данном этапе, раз приходится лезть так глубоко, отдельный хардварный тор-шлюз не так существенен. Если делаете виртуалки и специализированные ОС, с достаточной надёжностью можно завернуть трафик средствами того же ПК. А заворачивание в тор-шлюз чего попало и как попало может оказаться ещё хуже, чем не заворачивание.

— Piano (07/10/2016 15:01)   
Печальную картину вы нарисовали..... Я-то надеялся, что Tor-шлюз – панацея от всех утечек. По логике казалось бы что пусть они утекают на здоровье, но только через Tor-шлюз, и тогда не произойдет никакой деаномизации.
А по вашему мета-данные и прочая умная терминология, которую я не понимаю, разрушит всю ожидаемую анонимную идиллию.

К примеру, который день ломаю голову как решить такую задачку:
– есть дитрибутив, которому не доверяю, но приходится им пользоваться;
– более того, не хочу, чтобы знали, что я его использую, с этой целью скачивал через TorBrowser;
– соответственно к Интернет его не подключаю даже физически, использую его чисто локально/автономно;
– но вот незадача – его все-таки надо периодически обновлять, только вот как?

Надеялся, что эта волшебная коробочка из малинки поможет в этом, деаномизируя трафик обновления, но увы, по-вашему это не получится, насколько вас понял
— Гость_ (07/10/2016 22:52, исправлен 07/10/2016 22:54)   

А если через Tor пойдёт трафик, котрый элементарно связывается с вашим ФИО, и пойдёт он через те же цепочки, что и тот, который анонимизируете, что выйдет? А если про фингерпринтинг вспомнить? Тор решает одну единственную задачу – подмену IP. Анонимность – более сложный вопрос, он на подмену IP опирается, но к ней не сводится.


Сейчас у тор-браузера 4 положения для слайдера, 2 варианта с JS (включен/выключен), около 20 языков (дефолтных отдаваемых локалей) и около того же – разных размеров окон по умолчанию, ещё fullscreen-режим вроде как палит размер экрана, при включенном JS определяется ОС. Все варианты и комбинации (штатные, заметим!) торбраузера посчитать – их будут сотни. Значит, среди анонимных юзеров почти все разные. Даже если какой-то сверхпопулярный сайт посещает десятка два анонимов через тор, этих уникальных характеристик, скорей всего, хватит, чтобы сайт смог достоверно различать всех из них. Всё тот же паноптиклик, но внутри тора.



Настроить программы обновления на работу с сетью через тор, прикрыв другие возможности выхода в сеть фаерволлом. Самое простое – ставить вспомогательные ОС в качестве гостевых, трафик к которым фильтруется и настраивается на хосте, там же можно и в тор завернуть.

— Piano (08/10/2016 20:01, исправлен 08/10/2016 20:09)   
А если через Tor пойдёт трафик, котрый элементарно связывается с вашим ФИО, и пойдёт он через те же цепочки, что и тот, который анонимизируете, что выйдет?

Еще раз подчеркну, что компьютер, через который проворачиваю свои анонимные дела – это совсем не офисный компьютер!
На нем нет ФИО, адресов, паролей, явок. На нем нет документов и офисных программ.
Софт макимально упрощен и служит единственной вышеуказанной задаче – стащил что надо из тырнета – перебросил на десктоп – и уж затем спокойно рассматриваем и обрабатываем полученные данные.
Поэтому так негативно отношусь к KDE. Кстати, не я один, вот наткнулся на новость, в которой умная девушка Йоанна Рутковская тоже пришла к аналогичному выводу по KDE для своей Qubes:


По умолчанию предложен рабочий стол Xfce, который теперь предлагается вместо KDE. В качестве опции предложены KDE 5 и мозаичные оконные менеджеры awesome и i3. Из причин перехода на Xfce упоминаются низкий уровень стабильности (частые крахи plasma/kwin), тяжеловесность, высокое потребление ресурсов, низкая скорость работы, перегруженность интерфейса и неоднородность при отображении приложений на GTK+. В Qubes 4.0 использование Xfce4 будет продолжено, но будет проведён эксперимент по портированию GNOME, от успехов которого будет зависеть выбор окружения в дальнейших релизах Qubes.

Так что лучше не будем в данной теме рассматривать такие детские проблемы, как утечки ФИО и пр. – их попросту нет, поскольку анонимный компьютер изначально специально подготовлен – минимум софта и никких персональных данных.


Тор решает одну единственную задачу – подмену IP. Анонимность – более сложный вопрос, он на подмену IP опирается, но к ней не сводится.

Все это прекрасно понимаю, и на последующие проблемы


Сейчас у тор-браузера 4 положения для слайдера, 2 варианта с JS (включен/выключен), около 20 языков (дефолтных отдаваемых локалей) и около того же – разных размеров окон по умолчанию, ещё fullscreen-режим вроде как палит размер экрана, при включенном JS определяется ОС. Все варианты и комбинации (штатные, заметим!) торбраузера посчитать – их будут сотни. Значит, среди анонимных юзеров почти все разные. Даже если какой-то сверхпопулярный сайт посещает десятка два анонимов через тор, этих уникальных характеристик, скорей всего, хватит, чтобы сайт смог достоверно различать всех из них. Всё тот же паноптиклик, но внутри тора.

спрошу – ну и что? Что такого, если узнают, что у меня общая с кем-то локаль, экран и т.п.? Из этого будет понятно, каким инструментарием я поьзуюсь – да на здоровье! IP то все равно им неизвестен.


Самое простое – ставить вспомогательные ОС в качестве гостевых, трафик к которым фильтруется и настраивается на хосте, там же можно и в тор завернуть.

Растолкуйте, пожалуйста, подробнее об этом самом простом :)


PS. Кстати, термин "завернуть через Tor" меня всякий раз ставит в тупик, создавая впечатление, что этот трафик сначала вырывается в открытый Интернет, потом его, негодника, ловят, заворачивают и выпускают уже через Tor :)
Может, уместнее употреблять термин "пропустить", "пробросить"?

— Следящий (08/10/2016 23:23)   
Растолкуйте, пожалуйста, подробнее об этом самом простом :)

Посмотрите Whonix. Там настройка для домохозяек.
— Piano (09/10/2016 01:04, исправлен 09/10/2016 01:05)   

Разве Whonix удовлетворяет требованию "Купил – Воткнул – Работает" и помещается в маленькую коробочку??
Похоже, что вы еще не прочли начальные пожелания, изложенные в стартовом посте.


А так, какое-то время его использовал, свои впечатление о нем изложил в
соседнем топике[link4], но в любом случае он для этой задачи не подходит.

— Следящий (09/10/2016 17:30)   
Ну вы спросили про вспомогательную ОС, а тут в Хуниксе такая уже есть, это gateway, вот и используйте его для дальнейшей настройки, заворачивайте туда все, что Вам нужно. Когда Вам говорили про "Самое простое – ставить вспомогательные ОС в качестве гостевых, трафик к которым фильтруется и настраивается на хосте, там же можно и в тор завернуть" это тоже не предполагает "Купил – Воткнул – Работает и помещается в маленькую коробочку", но тем не менее Вас это заинтересовало, вот я Вам и ответил.
— Piano (09/10/2016 21:06, исправлен 09/10/2016 21:07)   

Я не специалист по этим криптопремудростям, а только любитель-рыболов, поэтому ориентируюсь, что здесь говорят гуру, пытаясь выудить осуществимый практически результат.
Чуть выше Гость_ так разгромил "малиновую коробочку", что у меня создалось впечатление, что на ней можно ставить крест. Дальше по "малине" больше никто не распространяется, поэтому вынужден интересоваться параллельно всем, что поможет обрести решение, в том числе и вспомогательными ОС.
И раз вы порекомендовали использовать шлюз от Хуникса, то какое, по вашему, у него будет преимущество по сравнению с "малиновым шлюзом"?

— Гость_ (10/10/2016 18:34, исправлен 10/10/2016 18:37)   

Речь не о конкретно вашем случае, а о среднестатистическом. Обсуждается, почему время тор-шлюзов ушло в прошлое, почему они не стали популярными среди широких масс.



Что мешает для этой цели использовать Tails, запускаемый в виртуалке?



Если общая – ничего, а если локали разные (речь не только о локалях, а о всех подобных параметрах в их совокупности)? Значит, можно различать разных анонимов, отделять активность одного из них на сайте от активности другого. Это уже не анонимность, а псевдонимность получается. От псевдонимности до полной идентификации – один шаг. Вектор движения вам должен быть понятен.



Вообще, людей вычисляют не только по IP. В тяжёлых случаях – в основном не по IP, как мне кажется. Достаточно соотнести вашу активность в онлайне и в оффлайне, чтобы сузить поиск до настолько малого количества людей, чтоб всех претендентов можно было проверить вручную.



В простейшем случае: есть виртуальная машина, которая запускается на "хостовой" ОС. В виртуальной машине запускается "гостевая" ОС. Гостевых можно быть несколько, и они могут работать параллельно. Всю предметную активность можно вынести в гостевые ОС, а в хостовой оставить только сетевые настройки и управление трафиком, фактически она будет играть роль шлюза во внешнюю сеть. Как вариант, можно на хостовой сети заворачивать в тор сетевые пакеты из гостевых ОС, направляющиеся в интернет.



Фраза "завернуть в тор" означает, что трафик (поток сетевых пакетов), покидающий сетевой адаптер (инетрфейс), перенаправляется в локальный тор-клиент вместо того, чтобы отправляться в сеть напрямую – буквально так происходит с прозрачным проксированием ("прозрачной торификацией"). В случае соксов приложения сами заворачивают свои данные в пакеты сокс-протокола и сами отправляют их на порты, на которых слушает локально запущенный тор. В обоих случаях некоторое "заворачивание" имеет место.



Там есть вариант инсталляции на физически разные машины. На Raspberry ставите Whonix gateway, на основной компьютер – Whonix station (или как там это у них называется?). После некоторой доводки и указания правильных настроек должно заработать. Основная проблема – то, что в Raspberry только одна сетевая, поэтому локальная сеть (между gateway и station) будет на Wi-Fi. Не знаю, ширфуется ли это соединение по умолчанию. Читайте документацию. Если вы ничего не знаете, настроить Whonix под ваш вариант будет, по моему мнению, проще, чем создать аналогичное решение со своим кастомным софтом.


PS: Вам "шашечки" или "ехать"? Отделяйте важные требования к софту от рюшечек. В вашем случае KDE там будет или ещё что – рюшечка. Дареному коню (готовому программному решению для масс) в зубы не смотрят. Если же считаете, что вы достаточно грамотен, то прекращайте критиковать готовые сборки и собирайте целиком всё под себя.

— гыук (10/10/2016 23:14)   

Да Workstation


Ну тут возможны варианты:
1. Ethernet – локалка, wifi/usb-модем интернет
2. Ethernet – инет, wifi – локалка
3. USB-модем инет, wifi – локалка

Тут умельцы смартфон собирают на Raspberry[link5]
— Piano (15/10/2016 20:13, исправлен 15/10/2016 20:36)   

Whonix интересен для меня своей концепцией безопасности, но огорчает реализацией (использование KDE, любимая жена Сухова среда создателя Whonix).
Если я правильно догадываюсь, то можно использовать шлюз от Whonix, а десктоп к нему замутить самому, только как это сделать пока не знаю.


А пока конкретная просьба к вам: подскажите, плиз, как настроить файрволл в Debian-8, чтобы запретить выход в Internet любых приложений по любым адресам и портам? (ну и самом собой по дефолту запрет входа в компьютер снаружи).


Но оставить при этом возможность выхода приложений в Интернет ТОЛЬКО ЧЕРЕЗ Socks, создаваемого с помощью TBB, установленного на этом же компьютере.
Т.е. "запереть" компьютер в програмной ловушке, оставив только узкий выход через TBB.


А то надоело таскать софт на комп на флешке ;)
Тем более, что зависимости в таком "флешечном" режиме порой приходится разрешать очень долго, за множество итераций.

— Гость_ (15/10/2016 20:59)   

Что мешает заменить KDE на другую среду? Там что, гвоздями всё прибито?


Можно сделать всё, что угодно, – даже разобрать Whonix по запчастям и собрать самому.


Правила – тут[link6] (за исключением того, что по IPv6 ориентируйтесь на это[link7], но лучше всего отключить через grub). Глобально эти вопросы обсуждались в отдельной теме[link8], там же по ссылкам походите.
— Piano (15/10/2016 21:24, исправлен 15/10/2016 21:25)   
Правила – тут

Вздыхаю... извиняюсь, но это не правила, не хавту, а просто вольная дискуссия на тему "Как бы можно это сделать" – без тестирования кем-либо, без занесения в аналы pgpru как провереное руководство к действию.
А своей объемистостью оно только страху нагнало.
Из него я понял только то, что задача не такая уж простая, как мне вначале казалось, и кроме pgprubot, никто не пытался сделать надежное проверенное хавту – так получается, что ли?
Тогда я в печали... потому что я не настолько знаток, чтобы переварить это чтиво и сделать надежную инструкцию к действию (и никогда им не стану – я простой пользователь).
Поэтому и пришел сюда за помощью, т.е. за имеющимся конкретным опытом по даннному вопросу (а не за общей теорией).


По поводу отключения поддержки IPv6.
Вы написали, что лучше отключать через grub, а в данной вами ссылке есть такое примечание:


Примечание. Разработчики рекомендуют не отключать IPv6-модуль ядра, наличие которого можно проверить командой:
lsmod | grep ipv6
а применять указанный метод, чтобы избежать получения ошибки от SELinux и других компонентов.

т.е.:


1. Добавить в файл /etc/sysctl.conf следующие строки:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

Я затрудняюсь понять, что из них правильнее – отключить в grub или добавить строки в /etc/sysctl.conf

— Гость_ (16/10/2016 16:14, исправлен 16/10/2016 16:21)   

Это how-to с правилами iptables – пошаговое руководство к действию.



Некоторые how-to со страниц Tor Project позже оказались ошибочными – приводящими к утечкам. Всегда есть вероятность никем не замеченной ошибки. Это ещё один аргумент в пользу того, чтобы разобраться с iptables самостоятельно и понять, что делают те или иные правила. Поскольку абсолютной альтернативы Linux, а, следовательно, и iptables, на горизонте не предвидится, это умение полезное, в жизни ещё не раз пригодится.



Да, к сожалению, iptables – это сложно. Это как простенький язык программирования в самых основах изучить. Другие сетевые экраны такого класса тоже непросты. По настройке сетевых экранов пишут целые книжки. Однако, для написания простых правил фильтрации вам нужна лишь пара процентов от возможностей iptables, и эту пару процентов можно легко понять, прочитав пару популярных статей[link9] на тему.



How-to под вашу задачу непопулярно. Те, кто начинают так сильно заморачиваться, либо берут готовые решения с уже настроенным сетевым экраном (Tails, Whonix), либо, как минимум, отвязывают Tor Browser от встроенного тора и привязывают его к системному[link10] (и уже для такой конфигурации пишут правила iptables). Запирание сетевым экраном конфигурацию по умолчанию (TBB) – неполноценная полумера, хоть она и получила некоторую популярность из-за corridor[link11].



Когда-то с чего-то надо начинать, это не так сложно, это не паяльник с программатором брать в руки. Доверие к посторонним инструкциям без понимания рано или поздно всё равно вас подведёт, какими бы авторитетными эти инструкции ни были.



Даёшь общюю теорию, как написать правила под свой случай – вы требуете готовые пошаговые инструкции, которые можно тупо выполнить без понимания. Даёшь ссылку на такие инструкции – вы начинаете жаловаться, что они слишком сложные, что вы их не понимаете, и, вообще, "а вдруг там ошибки? а можно ли доверять?". Вы определитесь: либо вы включаете голову и самостоятельно пишете правила под свой случай (возможно, разбирая чужие готовые примеры), либо тупо едите то, что вам дают, веря на слово.


Безопасность требует жертв, она не даётся даром. Либо вы становитесь "знатоком" и получаете тот уровень безопасности, который вам комфортен, либо остаётесь "простым пользователем" с "безопасностью простого пользователя". Не бывает "простых пользователей" с безопасностью, как у "знатоков". Никто не становился бы "знатоком", если б тот же уровень безопасности можно было б получить нахаляву, ничего серьёзно не изучая.



В порядке убывания надёжности:

  1. Убрать поддержку IPv6 из ядра (его придётся перекомпилировать).
  2. Выключить на уровне grub на стадии старта системы.
  3. Воспользоваться sysctl.conf

Предостережение было написано на случай использования SELinux. Если вы его не используете, не обращайте внимания. В любом случае, это не прибивание гвоздями: будут проблемы – вернёте назад, как было.

— Piano (16/10/2016 21:39, исправлен 16/10/2016 21:55)   

Я, конечно, не могу оценить корректность этого гигантского скрипта, но меня настораживают следующие комментарии pgprubot:


Я могу, конечно, формально ответить на вопрос, но не думаю, что это поможет делу.
проверил, вроде работает как надо):

(ключевое слово – "вроде")

Трудно вспомнить всю сотню действий, особенно если сам их делаешь на автоматизме.
Оно когда-то было настроено, и мне затруднительно с нуля вспомнить полную последовательность шагов, ничего не забыв.

– Какое может быть доверие к скрипту с такими ремарками от самого автора?


Howto – неоднократно проверенно несколькими пользователями конкретное руководство к действию, а это сыроежка.
Конечно, очень нужная и полезная, но в класс howto она еще не попала ввиду причин, указанных абзацем выше.


Даёшь общюю теорию, как написать правила под свой случай – вы требуете готовые пошаговые инструкции,

Так это объяснимо – теории в тырнете полным-полном, а готовых решений для простого пользователя не хватает.


Даёшь ссылку на такие инструкции – вы начинаете жаловаться, что они слишком сложные, что вы их не понимаете, и, вообще, "а вдруг там ошибки? а можно ли доверять?".

И это объяснимо – ввиду причин, только что указанных ("сыроежка").


Вы же не станете отрицать, что использование непроверенных решений в сфере безопасности может создавать лишь иллюзию защищенности, на деле же может оказать еще даже хуже, чем без них.


Предостережение было написано на случай использования SELinux. Если вы его не используете, не обращайте внимания.

Всегда использую. Хотя не настраиваю – слишком сложно.


В любом случае, это не прибивание гвоздями: будут проблемы – вернёте назад, как было.

Хотелось бы без лишних экспериментов, т.е. знать заранее, что лучше.


Вы определитесь: либо вы включаете голову и самостоятельно пишете правила под свой случай (возможно, разбирая чужие готовые примеры), либо тупо едите то, что вам дают, веря на слово.

Давно определился :) Хотя в Линуксе не один десяток лет, но знаю его на уровне простого пользователя, и из этой ниши никогда не выйду – способности не те.
Но это же не мешает мне оставаться продвинутым пользовтаелем, не залезая в дебри глубоких теорий?


Поэтому да – доверяю чужим решениям, но не тупо, как вы попыталсь пристегнуть "тупо" + едите".
Я доверяю чужим решениям, основываясь на репутации их создателей, массовости использования и тестов.


Вы же не разбираете Linux по косточкам, тем не менее пользуетесь им? Вот и я также.


Это я ответил на ваши вопросы. И спасибо, что подерживаете эту тему.
Теперь немного впечатлений по скрипту от pgprubot.
Когда-то я пытался осилить iptables, но его сложность оказалось не для моего ума.
Пытался еще использовать к нему фронтенды, ноони создавли такое месиво, что отказался от их использования.
Тем не менее какие-то совсем миниммальные навыки сохранились, которые позволяют копировать iptables с компьютера на компьютер, открывая нужные порты, и для большинства типичных простых задач хатало.
Tor, если судить по скрипту от pgprubot – это не простой случай, но все равно меня не покидает удивление, почему скрипт так сложен.


Ведь на первый взляд кажется так: запереть все порты на вход и на выход, оставив на выход только один 9150.
И такое решение по идее должно быть простейшим. Но решение от pgprubot это опровергает.
Где же я ошибаюсь?

— Гость_ (17/10/2016 19:41, исправлен 17/10/2016 19:47)   

Это вы гигантских скриптов на сотни и тысячи строк не видели со своими библиотеками. За вычетом определения переменных и установки стандартных политик там всего 17 правил, и все элементарные.



Эта ремарка касается всего вместе (настройка TBB, iptables и всего остального) на безопасный режим, а не одних только правил iptables.



Забыли добавить: в идеальном мире. В реальном – добавляют документ, подходящий по формату и не содержащий багов на уровне быстрого поверхностного чтения, никто детально не проверяет, но все надеются, что если будет обнаружена проблема, о ней тут же сообщат, и всё исправят. В общем, всё как и с разработкой софта.



Готовое решение для простого пользователя – это Tails. Одного iptables всё равно будет мало для безопасной настройки системы.



А вывод какой? Всё тот же: либо едим, что дают, либо сами становимся "знатоками" и перепроверяем чужие решения. Как промежуточный вариант – платим тому, кому доверяем, и кто может перепроверить за нас. Правда, тут всё равно остаётся проблема, кому доверять, – чтобы правильно ответить на этот вопрос, нужно самому быть "знатоком". Круг замкнулся.


Что касается конкретно iptables, он не может сделать хуже, чем полное отсутствие сетевого экрана. Дополнительные некорректные правила могут закрыть не все дыры из имеющихся, но iptables не открывает никаких новых дыр относительно полностью открытой системы. Если у вас сейчас нет никакого сетевого экрана, скрипт не сделает хуже – это точно.



Понять готовый скрипт iptables, в котором нет ничего, кроме примитивных правил фильтрации, не под силу "продвинутому" пользователю? Да ну?



Tails – массовое решение? Казалось бы, да. Однако, это не помешало найти там проблему в правилах iptables, из-за которой трафик мог идти в обход Tor. Всему виной i2p, трафик для которого они не достаточно аккуратно и параноидально описали в правилах. Если делаешь решение для себя, нет необходимости тащить туда всё, что может понадобиться среднестатистическому пользователю – как итог, правила получаются более простыми и надёжными, чем чьё-то монстроидальное, но массовое решение.


Правила для прозрачного проксирования трафика через тор много лет висели на страницах Tor Project, пока однажды сами же члены TP не нашли в них нетривиальную дыру. Массовость – это обычно палка в двух концах. С одной стороны, массовое решение "проверенное", с другой – это сам по себе монстр, от которого вам нужна лишь малая часть его возможностей. Одно играет на руку безопасности, другое – наоборот.



В тех случаях, где понимание нужно позарез, а без этого понимания происходит недокументированное чёрти что, разбираю, вплоть до ныряния в исходники. В остальных случаях полагаюсь на корректность документации.



А что сложного в базовых правилах? Перечисляется, с какого интерфейса, с какого IP, по какому протоколу и на какой (какие) IP и порт можно посылать пакеты, а на какие нельзя. Можно – ACCEPT, нельзя – DROP. Каждый пакет проходит правила попорядку сверху вниз пока не дойдёт до того, которое подходит под его критерии, определяя его в ACCEPT или DROP.



Тогда я тем более не понимаю, в чём проблема. Скрипт элементарен.



Может быть, дело не в Tor, а в том, что там гайки затянуты в скрипте, хотя обычно их никто не затягивает?



Ну да, но когда вы будете реализовывать вот это "запереть все порты на вход и на выход, оставив на выход только", получится много правил.



Это стандартная шапка: определение переменных, сброс всех ранее загруженных правил, выставление политики по умолчанию в DROP (всё, что не разрешено, запрещено).



Эти правила можно не писать, но вам же интересно было бы узнать, что какое-то приложение попыталось выйти в обход тора и дать утечку? Такой трафик блокируется, и в iptables-save -c будет идти счётчиком пакетов в DROP. Однако, его можно дополнительно блокировать принудительно, и тогда iptables-save -c покажет счётчик пакетов напротив каждого из правил. Вы увидите, на каком интерфейсе и по какому протоколу кто-то захотел выйти в сеть. Для более редких протоколов – только по какому протоколу (без интерфейса). В общем, тут можно нагородить, как пожелаете. В идеале ставят просто логирование и сохраняют такие пакеты или их метаданные в сторонний файл, который потом можно проанализировать, указав достаточно точные причины попыток прорваться наружу: какой юзер, в какое время, с какого интерфейса, на какой IP, по какому протоколу, и что он вообще хотел. Соотнося это с другими системными логами можно выяснить, почему так произошло (например – вы запустили приложение, дающее утечки по DNS, и система в логах вам просигнализировала об этом).


Но вернёмся к тому, с чего начали: всё это опционально. Можно ничего не знать и не анализировать, а тихо блокировать, тогда эти правила писать не нужно.


Пока думал, что значат другие правила, увидел, что не приметил слона: они написаны не под ваш случай. Там пример системного тора + выход TBB (или firefox) через системный тор, где системный тор запущен от служебного пользователя, а пользователь браузера – это другой. Т.е. речь о более-менее рекомендуемой стандартной настройке.


Ваш случай (один только портабл TBB без системного тора) с помощью iptables вообще толком не решается, потому что система не может различить трафик тор-демона от трафика браузера (или иного трояна), потому что они оба запущены под одним пользователем, а сетевой экран сортирует трафик только по пользователям (не но по приложениям). Полумеры здесь – либо ограничивать соединения с сетью списком ваших конкретных guard-узлов, либо всей тор-сетью. Первый вариант нестабилен в работе, потому что guard-узлы периодически меняются. Он, возможно, подходит только тем, кто прописывает guard-узлы вручную в torrc. Второй вариант, в общем-то, решаем, но чтобы ограничить соединения тор-сетью, нужно уметь парсить списки всех нод сети и их портов – примерно так[link12]. Однако, толку от этого всё равно мало, потому что атакующий просто поднимет подконтрольную ноду в сети, и при деаононимизации будет слать на неё специфический трафик – iptables этот вариант отловить не сможет.


Одним словом, как ни крутись, если что-либо предпринимать, лучше поставить системный тор и отвязать TBB от встроенного тора[link13]. В этом случае задача решаема указанным вам скриптом. Всё остальное – пляскок не меньше, а дыры останутся почти теми же.

— Piano (18/10/2016 00:33, исправлен 18/10/2016 00:35)   

Внимательно прочел ваше эссе, спасибо! Интересно пишете, однако :)
Когда читал, понемногу формировалось решение, и когда дочитал до конца, оказалось, что оно практически совпало с вашим :)) Т.е. – использовать системный Tor.
Более того – решил вернуться к рекомендованному ранее проекту Onion Pi[link1], учитывая его недостатки, описаные выше.


Просьба подсказать по выбору компонент:


1. Покупать готовый набор[link14] за $69.95 с вшитым Тором заманчиво (поскольку работает формула "Купил-Воткнул-Работает!"), но в ближайшей лавке такое не продают, а заказывать из-за бугра это много возни и ехать будет долго, поэтому – соберу и залью сам.


2. Однако самосбор порождает другую проблему – рекомендованных устаревших моделей Raspberry Pi 1-й тихоходной версии B+ (или просто B) уже так просто не найти, или будет задорого.
Поэтому остается 2-я или 3-я модель.


3. И тут вопрос – какую лучше взять – 2-ю или 3-ю?
3-я пошустрее будет, и WiFi уже на борту. Но – зачем Tor эта шустрость, если она напрямую связана с настолько повышенной прожорливостью, что к этой "малине" нужен радиатор и даже кулер?
Ведь с Tor справлялась даже "малина" 1-й версии.
Или же эта "малина" потребляет эту высокую мощность только при высокой загрузке?
В таком случае хотелось бы знать, насколько загружает "малину" наш Tor – сильно или не очень?


4. И если же энергопотребеление "малины" 3-й версии при работе Tor будет таким же, как у 1-й, тогда можно не париться с розысками устаревших версий и взять нынешнюю 3-ю.


5. И в этих "малинах" вообще как принято – если в 3-ю встроили WiFi-чип, то его поддержка в системе уже есть готовая, или где-то надо разыскивать на него драйвера?
Просто еще ни разу не работал с Raspberry, опыта нет совсем.

— Гость_ (18/10/2016 17:47, исправлен 18/10/2016 17:49)   

Если что, для использования системного тора отдельный компьютер-шлюз не необходим. И системный и локальный тор запускаются на той же машине.



Я бы и обычное железо не советовал заказывать, а такое специализированное – тем более. Шансы нарваться на такую штуку[link15] велики. Если покупать специализированное, то только лично из рук продавца-изготовителя. Если покупать иное простое железо – то анонимно в любом обычном магазине, не сообщая своих данных. Почтовые заказы и пересылки – прямой путь к получению имплантов.



Где-то писалось про проблемы с тор-нодами, запущенными на RP, где из-за DDoS они начали массово выходить из строя. Обычных тор-шлюзов это касаться не должно, тор ест мало ресурсов. Минимального железа должно хватать.



Нужно читать отзывы тех, кто уже ставил соответствующий дистрибутив на это железо. Для популярного железа обычно таких отзывов хватает. Там пишут, что работает из коробки, и что требует плясок, и если плясок, то каких именно.

— Piano (18/10/2016 20:21, исправлен 18/10/2016 20:21)   
Если что, для использования системного тора отдельный компьютер-шлюз не необходим. И системный и локальный тор запускаются на той же машине.

Я обычно так и делаю. Например, для серфинга TBB, а для обмена биткоинами системный Tor.
Однако это постоянная зависимость при переинсталляциях, надо ставить заново. Кроме того, оно по дефолту распространяется на только на какой-то комп.
В конечном счете захотелось создать такую комфотную защищеную от просмотра трафика подсеть, в которую входили бы десктоп, ноутбуки, смарты, планшеты и пр., которую один раз настроил, положил на комод и забыл.
Использование с этой целью Tor-шлюза, кмк, самый оптимальный вариант.
К тому же такая архитектура во многом подобна Whonix (за исключением использования не виртуалок, а реальных аппаратных устройств, что, конечно, хуже).


Я бы и обычное железо не советовал заказывать, а такое специализированное – тем более. Шансы нарваться на такую штуку велики.

Я бы выразился более грубо: в нашу продвинутую эру в каждое устройство и достаточно объемистый софт уже заложена та или иная закладка, а то и целая коллекция.
Но делать для кого-то специально закладку? Если бы я был, скажем, вице-премьером и заказал какой-то дивайс на свое имя, то ясное дело, призводитель за сутки нашпиговал бы спецэкземпляр уймой закладок и выслал бы в кратчайшие сроки, пока я не передумал – на, пользуйся, дарагой медвэд!
Но поскольку речь идет о скромной никому неизвестной персоне, то никто этой затратной фигней маяться не будет – просто всю партию устройств заранее обеспечат дежурными закладками, а дальше останется только ловить рыбку в мутной воде тырнета.
В любом случае я не питаю никаких иллюзий относительно защищенности своих решений и реализации 100% безопасности – это миф! Закладки заложены еще на докомпиляторном уровне, и просмотр исходников – это народная забава для "икспертов по безопасности".


Как известно, все тайное рано или поздно становится явным.
И безопасность, что тоже известно, это не результат, а непрерывный процесс, как борьба с ветряными мельницами :)
Но слегка сузить круг соглядатаев – это возможно, что я и пытаюсь сделать.

— Гость_ (18/10/2016 23:28, исправлен 18/10/2016 23:41)   

Не факт. Все персоны, которые так заморочились безопасностью и анонимностью, что пошли покупать специализированные хардварные решения – очень интересные люди, и найдётся очень много желающих за ними присмотреть и выяснить, что они там прячат за тором. Использующих софтварные решения много, да и не так просто там вмешаться в систему, а здесь всё просто: и людей таких мало и имплант вставить легко. К примеру, в одной стране в прошлом году прослушке подвергся миллион человек[link16]:


Прикиньте, хотя бы примерно, с каким количеством разных людей вы говорили по телефону за последние полгода? 50? 100? 300? Ну пусть даже 50. Вероятно, и каждый из миллиона прослушиваемых — тоже. У телефонного разговора же две стороны. Так что в 2015 году, вероятно, несколько десятков миллионов человек были участником хотя бы одного прослушиваемого телефонного разговора.
— Piano (19/10/2016 11:37)   
Все персоны, которые так заморочились безопасностью и анонимностью, что пошли покупать специализированные хардварные решения – очень интересные люди

Откуда же им известно, что "малина" куплена для Тора? Может, я на ней, как многие сейчас ударились в это, компактный видеоплеер собираю. К тому же "малину" уже трудно назвать специализированным решением, на ней сейчас городят что угодно, даже такие примитивные задачки, управление оконными жалюзями (блин, мало им Ардуино).

найдётся очень много желающих за ними присмотреть и выяснить, что они там прячат за тором.

Максимум, что они узнают – так это упрутся в аппаратный файрволл, а то и не один – цепочку :)

Мимиходом: с каждым годом у меня крепнет впечатление, что эпоха защиты от вторжений извне (весьма затяжная) довольно успешна решена и ее острота постепенно иссякла, и на первый план выходит защита от "проблемы наоборот" – собственных утечек.
И вот тут, кмк, радикального решения без своего соственного железа и софта пока нет.

В-общем, решение принято, "малина" в дороге, в ближайшеее время ждите впечатлений и вопросов :)
— Гость_ (19/10/2016 19:14, исправлен 19/10/2016 19:15)   

Речь шла о тех случаях, когда это железо высылается в виде преднастроенного тор-шлюза от сторонней организации, которая этим занимается. Достаточно мониторить все заказы этой организации.



Встроив бэкдор-имплант в RP, который заворачивает ваш нешифрованный трафик в тор, они узнают всё.



Вторжения извне обычно происходят при активной поддержке изнутри, будь то социнжиниринг или предустановленные бэкдоры. Достаточно почитать, как АНБ ломает сети.

— Piano (20/10/2016 18:22, исправлен 20/10/2016 18:26)   
Встроив бэкдор-имплант в RP, который заворачивает ваш нешифрованный трафик в тор, они узнают всё.

Это да. Гарантированной защиты нет. Надеюсь лишь на, что в RP еще не успели встроить закладки, тогда как в каждой материнской плате, а то и в процессоре, убежден, они всегда есть.
Наверное, вероятность закладок минимальна в первых версиях RP, когда разработчики еще не ожидали такого громкого успеха своего устройства. На все последующие АНБ наверняка наложило свою лапу.


Будь я специалистом, поставил бы перед RP снифер, и понаблюдал, ходит ли он налево. Да и то это бесполезно, можна годами наблюдать и не заметить ничего подозрительного, если закладка "спящего" типа и отзывается только на активацию секретным пакетом.

— Гость_ (20/10/2016 21:38, исправлен 20/10/2016 21:40)   

Ещё на стадии выхода на рынок железо, используемое в RP, было раскритиковано[link17] за множество закрытой фирмвари.

— Piano (21/10/2016 01:27, исправлен 21/10/2016 02:10)   

Дааааа, Гость_, умеете вы оптимизм вселять ;)
Вы почти загнали меня в угол.
Впрочем – я там мало что понял: сначало кто-то кого-то непонятно за что-то проклял, а дальше все потонуло в местных идиоматических выражениях :-P


В любом случае защита хоть на малине, хоть на клубнике это лучше, чем ничего. Идеальной-то все равно нет.
К тому же вроде ничего не мешает установить на "малину" тот же Whonix – и все на выходе равно получим ту же крохотную коробочку с голубой каемочкой ;)

— Гость_ (21/10/2016 21:51, исправлен 21/10/2016 22:02)   

Здесь[link18] чуть подробнее, ну, и ранее понемногу[link19] упоминалось[link20].



Конкретно Тео[link21] конкретно за вот это[link22]. Если железо без блобов не работает, что с ним делать? Правда, ввиду открывшейся позже информации от АНБ вопрос доверия к любым железякам-роутерам (в том числе, китайским) очень непростой. Создатели RP могли бы взять более-менее открытые компоненты и свободное железо для своего проекта (благо подвижек в сторону открытого железа и соответствующих проектов хватает), но не пошли по этому пути. Кто теперь и когда сдизассемблит и заменит все блобы в этом железе на открытый свободный код?



Gateway в Whonix должен быть доверяемым как в плане софта, так и железа. Не путайте с workstation. Установкой на RP Wnonix-gateway вы никак не нейтрализуете те баги, которые в RP есть. Они ограниченно нейтрализуются, только когда прячете это железо за ещё один внешний роутер.

— Yellow (02/11/2016 10:55)   

Будьте добры, опишите проблему чуть подробнее или ткните носом в ссылку.
— grandalexey (02/11/2016 11:08)   
wwwТут умельцы смартфон собирают на Raspberry


Не плохо
— Гость_ (02/11/2016 13:14)   

Ссылки: a[link24], b[link25], c[link26]. Timeline – 2014-07: I2P bug and zero-days buzz[link27]. Проблема в дизайне: нельзя было из одного браузера ходить и в I2P и в тор, надо было разделить этот трафик по юзерам и прикрыть разделение с помощью iptables, но они этого не сделали в пользу удобства. Эта проблема рано или поздно просто обязана была возникнуть, что и произошло.

Ссылки
[link1] https://learn.adafruit.com/onion-pi/

[link2] https://learn.adafruit.com/onion-pi/install-tor

[link3] https://cryptoworld.su/tor-router-na-baze-raspberry-s-podderzhkoj-vpn/

[link4] https://www.pgpru.com/forum/anonimnostjvinternet/zaschitazhelezavmwarevirtualboxiliqemu?p=last#Comment95457

[link5] https://habrahabr.ru/post/255047/

[link6] https://www.pgpru.com/comment93626

[link7] https://www.pgpru.com/chernowiki/rukovodstva/administrirovanie/linux/konfigurirovanielinux#h62044-15

[link8] https://www.pgpru.com/chernowiki/rukovodstva/administrirovanie/policybasedfiljtracijaiptables

[link9] https://www.opennet.ru/docs/RUS/iptables/

[link10] https://www.pgpru.com/biblioteka/rukovodstva/setevajaanonimnostj/prodvinutoeispoljzovanietorvunix/razdeljnoeispoljzovanietorbrowserssistemnymtoriprozrachnajatorifikacija

[link11] https://www.pgpru.com/novosti/2014/corridorprostojjsposobfiljtraciiutechektortrafikanavneshnemroutere

[link12] https://www.pgpru.com/chernowiki/rukovodstva/administrirovanie/policybasedfiljtracijaiptables/zagruzkatorstatistikivspiskiipset

[link13] https://www.pgpru.com/comment94428

[link14] https://www.adafruit.com/product/1410

[link15] https://en.wikipedia.org/wiki/Interdiction

[link16] http://www.leonidvolkov.ru/p/175/

[link17] https://www.pgpru.com/comment59607

[link18] https://www.pgpru.com/comment82238

[link19] https://www.pgpru.com/comment85951

[link20] https://www.pgpru.com/comment65036

[link21] https://en.wikipedia.org/wiki/Theo_de_Raadt

[link22] https://en.wikipedia.org/wiki/Binary_blob#Acceptance

[link23] https://www.pgpru.com/comment95515

[link24] https://thehackernews.com/2014/07/tails-operating-system-zero-day-vulnerabilities_23.html

[link25] https://tails.boum.org/news/On_0days_exploits_and_disclosure/index.en.html

[link26] https://tails.boum.org/security/Security_hole_in_I2P_0.9.13/

[link27] https://tails.boum.org/news/report_2014_06-07/