_B2
Пассажир
- Сообщения
- 27
- Реакции
- 30
Введение.
Предисловие.
1 Теоретическая част.
1.1 Архитектура сети интернет.
1.2 Взаимодействия в сети.
1.3 Маршрутизация.
1.4 Ранговость.
1.5 Процессоры и архитектуры.
1.6 Проблема программных продуктов.
1.7 Открытый код.
1.8 Криптография.
1.9 Обзор предложений линий коммуникаций.
1.10 Краткий итог теоретической части.
2 Практическое руководство. Развертывания XMPP сервер.
2.1 VPS.
2.2 DNS.
2.3 EJABBERD.
2.4 Клиенты.
Итог.
В этой статье мы поговорим об интернете, как устроена сеть, как устройства взаимодействуют друг с другом, немного о маршрутизации, о ранговости сети, криптографии, затронем тему открытого кода, о процессоре и архитектуре, мини обзор предложений серверных частей XMPP, VPS, DNS ну и мануал по тому как развернуть свой собственный сервер.
Важно! Всё описано максимально простым языком, на сколько могу упростить.
Немного о себе, являюсь техническим IT специалистом как DevOps, так и разработки и проектирования ПО. Большой опыт вхождения в различные предметные области, от высокоуровневой архитектура ERP до реверса инженеринга сетевых потоков, ну да ладно.
С темными форумом знаком с времен LegalRC, когда там был под форум «Тортуга» - или как то так, были времена когда я растил куст и общался на этом форуме.
Увидел конкурс, решил что могу поучаствовать и поймать свою «рыбку», рассказать много что могу.
Не являюсь каким то ораторам и искусным владельцем русского языка.
Для первого шага на этом форуме думаю неплохо. Дальше посмотрим к чему это приведет.
Также, хочу воспользоваться моментом и спросить, нужны ли на этом форуме компетентные курсы по анонимности ? Если не сложно, напишите какие темы особо интересны.
Те, кто решит следовать инструкции и развернуть свой XMPP сервер, в случае сложностей пишите мне в Tg: @b2b2b2b2b2b2b2b2b2b2b2b2b2b2.
В первую очередь для лидеров своих команд, также полезна будет для всех кого интересует вопрос анонимности, для общего расширения кругозора.
Хочу рассказать маленькую историю. Общался со знакомой, она поделилась со мной инфой что устроилась менеджером по подбору персонала в какую то команду по продаже ПАВ … , и сказала о том что они используют какой-то мега крутой и анонимный мессенджер, о котором все говорят. Мессенджер «Wickr», я залез на официальный сайт, промотал в низ и увидел что создатели мессенджера продают разные версии, типа премиум, бизнес и т п… Меня это все улыбнуло. Вопрос ? Как создатели мессенджера контролируют подписки ? Скорее всего у них отдельные инструменты контроля. Уже доверия к создателям стремится к 0. Я поползал по сайту, в надежде найти инфу о том, как возможно развернуть серверную часть, по итогу ее нет и сразу закрылся первый вопрос о контроле подписок, потому что стало ясно что коммуникации между корреспондентами А и Б проходят через частные сервера этой компании. Возвращаемся к тому что мессенджер «мега крутой и анонимный» - НЕТ!
Когда есть трете лицо, неважно в чем, анонимность слово не подходит! - думаю понятно о чем я!
Есть аргумент, что если «сильно не сверкать» то не кому я и не буде интересен, ради бога…
Лично мне, просто не комфортно от существования самой потенциальной вероятности.
На сегодняшний день, уже очень много устройств у человека, это пк, телефон, роутер, телевизор, холодильник, утюг, камера контроля за квартирой и многое. Если мы расширим взгляд, то у коммерческой отросли еще больше, это станки, различное специальное оборудования, пульты управления, медицина, наука, полиция, рации … В общем очень и очень много всего, даже тяжело вообразить это большое количество техники.
Вся техника которую мы видим, представили и не представили, имеет общее, это стандарт взаимодействия по сети, проще говоря сетевой чип, который является у всех одинаковый, как у утюга, так и у поезда. Это факт и аргумент! Далее мы более подробно это поймем. Но для большего понимания попробуем визуализировать все это на примере нашего мира. Возьмем РФ, что одинаковое у граждан ? Это конституция, федеральные законы, УК и т п… Эта параллель аналогична техники, вся, абсолютно вся техника является равноправным членом сети, с равными правами и возможностями, в сетевом пространстве нет объекта который выше другого, это противоречит семой сети. Не один объект не может делать что-то, что не может делать другой. Вся это называется одноранговость! Думаю с сетевыми правами вся понятно, маленькая еще ремарка, что сетевым управлением занимается процессор, то есть, процессор управляет чипом сети. И тут уже встает вопрос запрограммированных функций процессора и у разного оборудования оно разное.
То есть, когда Петя и Вася стали участником сети, у них есть равные права в этой сети и зная IP адрес друг друга они могут взаимодействовать друг с другом используя различные протоколы (Стандарты взаимодействия).
Принцип и порядок взаимодействия устройств в сети описан в моделях OSI — ISO — эта тема очень сложна, я ее описывать не буду, кому интересно гугл в помощь.
Но утрируя и упрощенно скажу что когда Петя взаимодействует с Васей, оборудования Пети делает манипуляции с данными и проходит через определенные этапы и формирует пакет данных, после чего это данные по сети отправляются Васе и уже оборудования Василия делает обратные манипуляции с пакетом данных Пети, чтоб понять что он хочет.
Далее мы просто будем говорить о пакете данных, Петя отправляет пакет Васе …
Есть такое слово как Порт. Не знаю с чего начать, давайте начнем с представления большого многоэтажного дома, пусть это будет небоскреб который имеет 65 тысяч окон. Пусть у нас будет 2 небоскреба на разных континентах, первым владеет Петя, а вторым Вася. Весь небоскреб принадлежит владельцу, все этажи, все окна. И тут Вася ловит голубя, привязывает к ноге листочек с сообщение и наказывает ему лететь в небоскреб Пети и очень четко говорит чтоб он летел именно в 80 окно. Тем временем Петр знает что ему летит голубь, он бежит и садиться слушать и смотреть в окно 80. Когда Вася отправлял голубя, он указал что ждет ответ в 71 окно. Когда Петя прочитает сообщения от голубя он будет знать в какое окно отправить ответ.
Аналогия с небоскребами и окнами аналогична цифровому миру сетевого взаимодействия, только под небоскребом предполагается оборудования с сетевым индикатором или IP адресом, а под окнами предполагается порты.
Подытожим.
В сетевом взаимодействии (в сети интернет), оборудования имеют равноправные права и функции взаимодействия, где само оборудования имеет сетевой идентификатор IP-адрес и 65536 портов
Тема маршрутизации достаточно глубока, но я постараюсь максимально упростить.
Наверное так же надо начать с аналогии. Каждый представляет себе сеть почты России,
Петя отправляет письмо Васе. Он формирует его в стандарт, то есть он подготавливает его в соответствие правил приемного пункта, то есть марка, дынные и т п… Это аналогия еще и подходит к тому, когда наше оборудования готовит пакет данных перед отправкой в сеть. Важным правилом для отправки письма служит индекс аналогия IP адреса, ну и улица, номер дома и квартиры - аналогия с портом.
Хорошо, ценз приемного пункта пройдет, письмо Пети принято в отделения почты России. Что дальше ? Отделения не думая отправляет его в городское отделения, городское отделения проверяет его на принадлежность получателя к своей территории, если получатель не тут, не думая отправляет его в областное отделения, областное отделения проверяет его на получателя своей территории есть да то отправляет его на пункт ниже в городской отдел, если нет то выше, в региональный отдел почты рф, и так далее. Думаю достаточно понятно. Ну и маршрутизация сетевых пакетов проходит примерно также. У IP — адресов есть свой международный стандарт, который делить их на интервалы к примеру от 0-10 это китай, от 10-20 РФ и т п, уже РФ имея 10 адресов имеет право разделить их в своём локальном порядке, 11-Кирову, 12-воронежу … Только IP адреса состоят из 4 — байтов, имеют вид 255.255.255.255 и всего их 4228250625.
Думаю не много, но должно стать понятно.
В сети интернет, управления трафиком лежит на провайдерах, в сетевых настройках оборудования, это называется шлюз. Когда Петя отправляет пакет данных Васе, у Пети есть договорённость с провайдером который предоставляет IP-адрес оборудования/шлюза, а оно в свою очередь будет отвечать за доставку пакета. И эта схема идет дальше, провайдеры передают пакет своим провайдерам и т д, по итогу пакет данных отправленный от Пети доходит до Васи.
По этому была придумана иллюзорная двухранговость , клиент-сервер. Не официальное названия WEB2. Смысл в том, что одноранговая архитектура искусственно превращается в двухранговую и делит устройства на клиентов и серверов. Сервера всегда работают, а клиентам дается право динамически появляться и отключатся от сети. Такая модель по-прежнему является равной для всех, просто одни всегда работаю, а другие нет. Тем самым появилось очень много продуктов и сервисов. И это удобно. К примеру с серверами Телеграмм, мы захотели зашли туда, там пообщались и ушли. Так же форум RuTor. Это по сути сервер/сервис который предоставляет какие-то возможности, а мы с вами клиенты которые захотели, подключились, что-то поделали и ушли.
Немного поговорим о них.
Если очень глубоко взглянуть, то процессор состоит из маленьких примитивных регистров и транзисторов, они очень примитивные. Но создатели процессоров создают обертку над всеми этими регистрами и контролерами, создавая интерфейс взаимодействия и стандартизирует его, пишут документацию и продают процессоры.
Если кому-то будет это интересно, рекомендую посмотреть про «машину Тьюрига» и что такое полнота по Тьюрингу. Очень сложно эти темы раскрыть в упрощенном виде. Но утрируя максимально просто могу сказать что заложенный подход реализуется по сегодняшний день, смысл которого в том. Что когда производитель выпускает чип, он говорит о том какие команду у этого чипа есть, он выкладывает список машинных команд. Если кто-то слышал про машинный код и ассемблер, то это как раз это и есть.
Машинные команды делают различные примитивные задачи,
Например:
Команда 1 = поместить из регистра А в регистр Б
Команда 2 = провести сравнения регистров Б и С
И Т д…
Примитивные машинные команды слишком сложны для понимания человеком, по этому люди начали обертывать их в более высокоуровневые языки программирования, например «C». Со временем «C» начал казаться сложным у его абстрагировали и подняли еще выше и появился язык «C++», потом опять подумали что сложный и появился более высокий язык это «JAVA» и т д… Языки программирования это высокоуровневая абстракция машинных кодов, самый высокоуровневый язык по моему мнению это JS и Пайтон.
По-простому, когда программист пишет код, сам код трансформируется в машинный код конкретного чипа.
Когда мы говорим об архитектуре чипа, мы предполагаем стандартны процессорных команд,
примеры архитектуры:
X86 - стандарт команд такой...,
AMD64 - стандарт команд такой-то другой...,
ARM,
x86-64,
и многие …
Каждый чип поддерживает строго свои машинные коды, что означает что необходимо написанный код на C++ под каждую архитектуру компилировать.
Маленькое резюме.
Процессор задает функционал устройства.
От архитектуры процессора зависит какие процессорные команды он поддерживает.
Процессорные команды управляют сетевым чипом.
Ладно, возможно эта инфа покажется сложной, но я максимально просто как мог, попытался объяснить и это важно для следующего раздела.
Понимаете к чему я веду ?
Вопрос, как я могу понять что делает, получены мной процессорный код который вообще мало кто может понять ? Не как) Единственное на что можно упираться, это на заявлены функции создателя, я знаю что компания ВК заявляет функции: могу общаться через их приложения, обмениваться данными , и т п… Но при этом, они мне дают продукт из процессорных команд который я не могу понят и который управляет моим устройством в виде микрофона, камеры, GPS , сетевого чипа … Каждый сам сделает выводы из этого.
Ладно, продолжим, компания ВК, помимо своих закрытых приложений для наших телефонов предоставляет сервера. На которых «тусуются» пользователи и взаимодействуют друг с другом. И самое интересное, что мы даже процессорных команд сервера не видим, просто не чего не видим.
Вернемся к мессенджеру «Wickr» который кто-то считает «мега крутым и анонимным».
Его по-прежнему можно считать анонимным ?
Еще раз повторим по процессору.
Транзисторы и контролеры предоставляют машинные команды управления процессором.
Языки программирования созданы для облегчения управления этими машинными командами.
Создатель зявляет о функционале своего продукта.
Кому вы будите верить больше ? Тому кто дал вам машинный код или тому кто дал вам свои высокоуровневый исходный код ? Вполне логично что 2. Имея открытый код программы можно прочитать и подтвердить заявленный функционал программы. Мировые примеры программ с открытым кодом, например OpenVPN, Bitcoin, KVM, и многое…
Если создатель заявляет что мол мой продукт делает это и это, ну и дает только машинный код, закрывая исходный код языка программирования. Тут можно допускать обман.
История про Телеграмм.
Все помнят когда Телеграмм нагнул РКН…
Телеграмм провёл очень гениальный маркетинговый ход, когда заявил что он открывает свои исходный код. Кто-то, что-то, поверхностно понимая, повелся на это и начал говорить о большом доверии телеграмму … мол код та открыт. Я прям помню людей кто мне так говорил. Но почему РКН требовал ключи шифрования ? Если систему телеграмм не сломать ? Да потому что это все иллюзия, код серверов телеграмма до сих пор закрыт, не кто не знаю, как и что там работает. А Паша просто виртуозный манипулятор. Пуская пыль в глаза. Нельзя прямо обвинить ТГ в обмане, но сам факт существовании вероятности … Думаю смысл понятен.
Пару слов об Аудите.
Когда создатель продукта говорит о функциях и открывает код, для обычного пользователя это все равно сложновато. Типа например языка программирования я не знаю… Хотя сам факт открытого кода вызывает больше доверия, бывают факты ошибок программиста которые могут привести к большим проблемам.
Аудит кода — это когда стороннее специалисты, читают исходных код продукта и помимо заключения о соответствии заявленных функций и функций программы, дают оценку безопасности кода ставя на кон свое авторитетное имя! Это очень и очень серьезный акт доверия. Наверное даже не может быть более высокой квоты доверия чем открытый код прошедший аудит и доказавший свой функционал временем. Например, продукт OpenVPN.
О методах шифрования, можно посмотреть видео на ютуб, тему семеричного и асимметричного шифрования. Настоятельно рекомендую попытаться понять алгоритм Диффи-Хеллмана, есть хорошее видео на примере с красками показывающий смысл этого метода. Ну и кстати PGP — шифрования базируется на этом алгоритме Диффи-Хеллман.
Одним из фундаментальным кирпичиком всей крипто науки является ХЭШ.
ХЭШ — это функция, которая принимает один аргумент, на выходе даёт другой.
Простыми словами на вход я подаю одни данные, на выходи получаю другие.
Смысл ХЭШ функции, что имея выходные данные, невозможно получить входные.
Пример:
Подавая на вход аргумент «Привет» на выходе мы получаем последовательность рандомных символов «ads2131sads». Из символов «ads2131sads» мы не может определить что входом было слово «Привет». Это факт.
Больше инфы в интернете, ну а кто максимально хочет взорвать себе мозг, может попытаться вникнут в гипотезу Римана, и в загадку тысячелетия за которое полагается вознаграждения в 1мил. Если максимально упростить, то перед человечеством нет понимания по каким законом формируются последовательности натуральных чисел и на это опирается наука криптографии и хеш функции.
Методика взлома хеш функций на сегодня только одна, это грубой силой когда входные параметры тупо подбираются. Ну а такой метод не имеет смысла так как что бы взломать один хэш функции sha256 , необходимо обеденить все компьютеры нашей планеты в одну задачу и заставить их перебирать… и весть это процесс займет много световых лет, за которое наше солнце погаснет.
Ну и закончу этот пункт тем, где используются хэш функции.
Самое первое это сайт, все мы видим замочек на сайте, это функция sha256.
Sha256 участвует в коммуникациях мобильных приложения, таких как онлайн банкинг.
Далее, хэш функции являются участниками виртуальных приватных сетей VPN. Частные приватные сети используют банки, для своих банкоматов с деньгами, различные бюджетные организации строят VPN сети для своих офисов, медицина, полиция, мерия, армия, криптовалюта, спутники, телевиденье, мессенджеры … все, абсолютно все использует хэш функции, даже сеть ТОР и то использует хэш функции, I2P … Куда не ткни, везде ХЭШ ...
Думаю чуть понятна серьезность и сила современной криптографии.
Ну и в заключении хочу сказать что если случится прецедент взлома современных хэш функций, произойдет своего рода переход на новые стандарты, так было с MD5 когда все перешли на семейства функций SHA2, сейчас актуально новое семейство это SHA3.
Думаю эти все темы послужат большим фундаментом для понимания вообще темы анонимности.
Если мы взглянем на рынок, мы можем сразу же разделить продукты на 2 группы, это коммерческие и продукты энтузиазма.
Думаю всем понятно что коммерческие продукты, ватсап, телеграмм, вк, инста и т п полная чепуха. Там где стоит цель заработать денег, верить просто нельзя.
Продукты энтузиазма, это продукты по умолчанию с открытым кодом, которые обычно развиваются волонтерами за идею.
Я очень много разных проектов видел, анализирова.
Пару слов о проекте Tox, очень интересный проект, минусом является одноранговость которая и ограничивает, в отправке сообщений где два корреспондента должны быть онлайн, если условия не выполняется вылезает геморрой, так же программа реализована на технологиях SyncTorrent, что ограничивает в быстрой смене ip-адресов (Цепочек TOR), так как вызывает много геморроя.
О духранговых проектах, их называют федеративными, так как серверные части выступают как федерации которые могут друг с другом взаимодействовать, но влиять друг на друга не могут, аналогия с почтой, yandex и google два разных почтовых сервера, но клиенты разных серверов могут взаимодействовать друг с другом так как сервера могут общаться. Тем самым архитектура называется федеративной.
3 место — Diaspora *
Интересный проект, открытый код как клиента так серверной части. Можно развернуть свой сервер. Быть равноправным участником сети. Но философия проекта нацелена, на соцсети. Проект с 2014 года. Как частная линия коммуникации достойна внимания. Больше можно прочитать в Википедии.
2 место — Matrix
Достаточно функциональный проект, естественно он открытый как клиент, так и сервер. Федеративная архитектура, прикольный мощный. Пишу о нем как о хорошем варианте. Википедия в помощь.
1 место. — проекты - XMPP/Jabber.
Федеративность, открытый код клиента,сервера.
Но для меня очень большим фактом важно время, этот проект самый старый. Вообще об XMPP можно много что сказать, это протокол взаимодействия вывернутый в продукты коммуникации позволяющий расширятся и дополнятся методами шифрования и т п …
+ по мимо всего, этот проект имеет различные варианты серверных сценарием что имеет преимущество перед 2 предыдущими проектами. По-простому, мы можем выбрать какой сервер у нас будет. Протокол XMPP используется для создания своих локальных закрытых продуктов, что показывает свою гибкость и популярность. Ну и вишенка на торте это методы шифрования PGP, OTR, OMEMO...
Данный выводы сугубо мои личные. У вас своя голова на плечах и вы сами решаете прислушиваться или нет.
Считаю что достаточно широкий взгляд попытался донести.
Возможно кто-то это все и знал, кто-то подчеркнул новое, ну а кто-то вообще взглянул по-новому на интернет и программы.
В этом практическом руководстве мы развернем свой XMPP федерацию\сервер. Что позволит полностью контролировать всю линию связи между корреспондентом А и Б.
Где искать VPS ?
inbox.lv — почтовый сервис без идентификации, для регистраций.
Я понимаю что разные люди с разными знаниями, но учимся пользоваться гуглом, проявляем интуицию, и арендуем себе машину.
Если у кого, то будут сложности, но большое желания, пишите мне, помогу советом.
Минимальные требования.
2 потока CPU
2gb ОЗУ
Памяти от 10-20gb
Так же, важно выбрать операционную систему именно Ubuntu 20.04.*
Цена от 3 до 15 баксов в месяц
На выходе мы должны получаем информацию о подключении по SSH.
Просим помощи у поддержки, все разжуют.
Например:
Так, теперь о том что такое SSH.
Это протокол удаленного консольного управления.
Если у вас Linux , пишем в консоли
ssh root@ip-addres-vps
водим пароль когда попросит.
Если Windows — прошу подуматься о Linux, клиент для SSH подключения PuTTY , гуглим инфу, смотрим ютуб
Если MacOS, то я вам сочувствую … Не знаю как подключится , но можно, гуглим.
На выходе мы должны получить приветственное сообщения
...
si@2d09666:~$ ssh [email protected]
Welcome to Ubuntu 20.04.5 LTS (GNU/Linux 5.4.0-29-generic x86_64)
* Documentation:
* Management:
* Support:
Last login: Thu Nov 17 22:39:01 2022 from 185.56.83.83
root@vm763838:~#
...
Вводим команду на проверку наличия обновлений
apt update
И следом команда на установку обновления
apt upgrade -y
Ждем, получаем готовую машину к дальнейшим действием.
...
Calculating upgrade... Done
127 upgraded, 43 newly installed, 0 to remove and 0 not upgraded.
root@vm763838:~#
...
Фаервол. Выше я писал о портах, переставляя виде дома с окнами. По умолчанию у машины все открыто, нам нужно закрыть!
Качаем фаервол UFW
apt install ufw
открываем порт для SSH.
ufw allow ssh.
Включаем
ufw enabe
Нажимаем y
нам нужно открыть 80,5222, 5269, 5443, 5280, для корректной работы
ufw allow 80
ufw allow 5222
ufw allow 5269
ufw allow 5443
ufw allow 5280
проверяем статус
ufw status
...
root@vm763838:~# ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
80 ALLOW Anywhere
5222 ALLOW Anywhere
5269 ALLOW Anywhere
5443 ALLOW Anywhere
5280 ALLOW Anywhere
443 ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
5222 (v6) ALLOW Anywhere (v6)
5269 (v6) ALLOW Anywhere (v6)
5443 (v6) ALLOW Anywhere (v6)
5280 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
root@vm763838:~#
...
Проброс 80 порт на 5443.
Нам нужно сделать это для того чтоб было безопасное соединения.
Для этого открываем файл
nano /etc/ufw/before.rules
и перед filter добавляем
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 5280
COMMIT
нажимаем ctrl + o
и ctrl + c
Все, теперь 80 порт перенаправляет пакеты на 5280.
Перезапускаем ufw disable и ufw enable.
Я сейчас утрируя, для простоты понимания.
Если максимально упростить DNS можно рассматривать как реестр:
Domain : ip-addres
google.com : 142.250.179.174
hihi.xa : 12.321.21.222
И т д…
У нас есть VPS и есть сетевой адрес, IP.
Придумываем синоним, ассоциацию для нашего IP-addres
Для этого мануала я придумаю forRuTor.biz (Домен придуман для этого руководства и будет выкинут)
Для чего это все?
У XMPP есть ID-jabber, например мой [email protected]d
b2 — пользователь
bastion.ltd — Это сервер, а конкретно доменное имя которое равно IP-addres моей машины/сервера.
Тем самым когда Вася с ID-jabber [email protected] пишет [email protected] .
Он/vasya отправляет сообщения на свой сервер xmpp.com, его сервер определяет мой сервер bastion.ltd, а уже мой сервер определяет мой аккаунт b2 и уведомляет меня о сообщении.
Все то же самое, как и с почтой, 1 в 1.
Где регистрировать DNS?
Гугл в помощь:
Примеры
hostinger.com
regway.com
monovm.com
Важно, при регистрации вводите левые данные, но реалистичные. Я спалился и меня заставили перерегистрировать и платить повторно, а потом забанили акк...
Можно воспользоваться сервисом ugener.com - генерирует пользовательские данные.
По моему опыту, регистры доменов очень интуитивно запутаны, задача найти менеджер DNS. Место где мы будем добавлять записи.
К примеру я покупаю домен для этой инструкции forRuTor.biz
Мне нужно найти место где я сопоставлю свой IP адрес моей VPS с этим доменом.
Добавлю запись в регистр
…
forRuTor.biz : 185.231.205.202
…
сли не можете найти интуитивно, пишем в поддержку, создаем тикиты,
с контекстом, … не могу найти менеджер DNS, хочу добавить запись «A»… Естественно на английском, если не знаем, переводчик в помощь…
На выходи мы должны найти менеджер DNS для добавления новых записей.
Возможно для кого то сложно, но пользуйтесь интуицией, вы знаете что вам нужно, отпинывайет мозги поддержке. Там пошаговые скрипты действий заготовлены.
Есть разные типы записей, нам нужны 2 это A и SRV
Запись «A»
Это тип записи который сопоставляет купленное доменному имени с IP.
Должно быть примерная запись такая:
@ A 185.231.205.202 TTL
Еще раз, если трудно, пишем в поддержку, они пошагово все объяснят, я так делал когда, покупал первые разы…
Запись SRV
Этот тип записи нужен для поддержания возможности общения между серверами, старого типа, для которых эта запись важна.
Примеры записи.
_xmpp-client._tcp.example.net. TTL IN SRV priority weight port target
_xmpp-server._tcp.example.net. TTL IN SRV priority weight port target
Важно проявить сообразительность.
Думаю все должно быть понятно, если нет, тикет в поддержку.
Ну или пишите мне.
Заходим на сайт check SRV xmpp
kingant.net/check_xmpp_dns/
Вводим наш домен, должны получить это
...
Client records for forRuTor.biz
XMPP clients will use these when logging in.
Server records for forRuTor.biz
Other XMPP servers will use these when peering with this domain.
...
Если нет, зонного еще раз читайте этот пункт.
Если хочется, пишите мне.
Что мы имеем?
VPS — IP 185.231.205.202
DNS — forRuTor.biz указывающей на ip-addres VPS.
Круто, идем дальше
Но помимо программы чутка анализа. Кто стоит за этой программой ? Компания process-one, да да, это бизнес, со своими мотивами…. Но почему можно доверять серверному решения этой компании ? Обо всём этом я думал когда, знакомился с продуктом, думаю ход мыслей понятен.
Компания Process-one занимается коммерческим налаживанием линий связи и не только, в огромных компаниях, например BBC, Nokia, UBISOFT, EAsport и т п … Официальный сайт process-one.net посмотрите сами. Помимо программного решения, есть еще очень важный момент связанный с инфраструктурой нагрузки, представим что нам нужно пару десяткам тысяч человек наладить связь, нам нужно думать не о продукте в первую очередь, а об инфраструктуре аппаратных средств. За это компания Process-one и получает свою прибыль, а продукт ejabberd с открытым исходным кодом, вишенка на торте. Потенциальные конкуренты могут нервно курить в сторонке.
Считаю что из всех серверных решений для XMPP, ejabered вызывает самое большое доверия.
Сейчас мы настроим на нашей VPS, демон — Ejabberd.
Демоном в it называется фоновый процесс на машине.
Еще раз. У нас есть VPS с настроенным DNS.
Доступ мы получили по SSH и находимся в консоли.
У ejabberd свой отдельный linux репозиторий.
Подключаем его, вводя последующее команды:
systemctl status ejabberd.service
Получаем развернутую информацию о демоне/процессе который запустился автоматически.
Сейчас актуальная версия 22.10.
...
* ejabberd.service - XMPP Server
Loaded: loaded (/lib/systemd/system/ejabberd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-11-17 23:22:34 CET; 1 day 13h ago
Main PID: 41841 (ejabberdctl)
Tasks: 27 (limit: 1109)
Memory: 63.9M
CGroup: /system.slice/ejabberd.service
|-41841 /bin/sh /opt/ejabberd-22.10/bin/ejabberdctl foreground
|-41862 /opt/ejabberd-22.10/erts-12.3.2.5/bin/beam.smp -K true -P 250000 -- -root /opt/ejabberd-22.10 -progname erl -- -home /opt/ejabberd -->
|-41876 /opt/ejabberd-22.10/erts-12.3.2.5/bin/epmd -daemon
|-41879 erl_child_setup 65536
|-41894 /opt/ejabberd-22.10/lib/eimp-1.0.22/priv/bin/eimp
|-41895 /opt/ejabberd-22.10/lib/epam-1.0.12/priv/bin/epam
|-41896 inet_gethost 4
|-41897 inet_gethost 4
|-41898 /opt/ejabberd-22.10/lib/os_mon-2.7.1/priv/bin/memsup
`-46478 inet_gethost 4
...
Ctrl + c - выйти
Останавливаем процес командой.
systemctl stop ejabberd.service
Далее, идем в каталок с конфиг файлом для настройки демона.
cd /opt/ejabberd/conf/
Смотрим что есть в каталоге командой
ll
...
root@vm763838:~# cd /opt/ejabberd/conf/
root@vm763838:/opt/ejabberd/conf# ll
total 260
drwxr-x--- 2 ejabberd ejabberd 4096 Nov 17 23:14 ./
drwxr-xr-x 5 ejabberd ejabberd 4096 Nov 17 22:43 ../
-rw-r--r-- 1 ejabberd ejabberd 225403 Oct 28 10:23 cacert.pem
-rw-r--r-- 1 ejabberd ejabberd 5842 Oct 28 10:23 ejabberdctl.cfg
-rw-r--r-- 1 ejabberd ejabberd 5364 Nov 17 23:14 ejabberd.yml
-rw-r--r-- 1 ejabberd ejabberd 111 Oct 28 10:23 inetrc
-rw------- 1 ejabberd ejabberd 5086 Nov 17 22:43 server.pem
root@vm763838:/opt/ejabberd/conf#
...
Видим файл ejabberd.yml — этот файл конфиг для всго управления серверным приложением.
По умолчанию он дает все что нужно. Мы добавим маленькие правки.
Открывает файл для редактирования командой
nano ejabberd.yml
Управляя стрелками меняем значени
//////
hosts
- "forrutor.biz"
...
acl:
...
admin:
user:
- "[email protected]"
...
/////
для сохранения нажимаем клавиши
ctrl + o
потом
ctrl + x
запускаем демон
systemctl start ejabberd.service
Создаем сертификат для DNS.
ejabberdctl request-certificate forrutor.biz
регестрируем учетныю запись нашего админа командой
ejabberdctl register root forutor.biz password
переходим в браузер
Вводим наш логин и пароль админа. Получаем доступ к нашему серверу XMPP. Всё!
Разбираемся/ползаем/ настраиваем, не чего сложного.
Важный момент, обязательно должен быть замок в строук URL.
Если его нет, то нельзя вводить данные, канал не безопасен, разбираемся и пробуем еще раз.
Как создать аккаунт ?
В панеле админа переходим в
выбираем наш хаст forRuTor.biz, у вас ваш.
далее User
Видим поля логина и пароля нового пользователя .
Создаём аккаунт, Все!
На ПК я пользуюсь GAJIM, на телефоне BLABBER.
Ввходим в свои созданные аккаунты и тестим.
Думаю все информация послушит очень и очень хорошим фундаментом для дальнейшего изучения вопроса анонимности. Для тех кто в начале этого пути.
Также, я написал мануал руководство к действию по развертыванию XMPP сервер. Что максимально полезно для лидеров команд.
Открыт к диалогу, пишите вопросы. Если кому что то интересно глубже, не стесняйтесь.
Так же хочу напомнить о вопросе, Какие темы в вопросе анонимности были бы более интересны? Напишите пожалуства свое мнения. Зарания большое спасибо.
Всем хорошего дня, спасибо за внимания.
Скриншот отправики сообщения с [email protected] к [email protected] и обратно с шифрованием OMEMO.
Предисловие.
1 Теоретическая част.
1.1 Архитектура сети интернет.
1.2 Взаимодействия в сети.
1.3 Маршрутизация.
1.4 Ранговость.
1.5 Процессоры и архитектуры.
1.6 Проблема программных продуктов.
1.7 Открытый код.
1.8 Криптография.
1.9 Обзор предложений линий коммуникаций.
1.10 Краткий итог теоретической части.
2 Практическое руководство. Развертывания XMPP сервер.
2.1 VPS.
2.2 DNS.
2.3 EJABBERD.
2.4 Клиенты.
Итог.
Введение.
Привет, читатель.В этой статье мы поговорим об интернете, как устроена сеть, как устройства взаимодействуют друг с другом, немного о маршрутизации, о ранговости сети, криптографии, затронем тему открытого кода, о процессоре и архитектуре, мини обзор предложений серверных частей XMPP, VPS, DNS ну и мануал по тому как развернуть свой собственный сервер.
Важно! Всё описано максимально простым языком, на сколько могу упростить.
Немного о себе, являюсь техническим IT специалистом как DevOps, так и разработки и проектирования ПО. Большой опыт вхождения в различные предметные области, от высокоуровневой архитектура ERP до реверса инженеринга сетевых потоков, ну да ладно.
С темными форумом знаком с времен LegalRC, когда там был под форум «Тортуга» - или как то так, были времена когда я растил куст и общался на этом форуме.
Увидел конкурс, решил что могу поучаствовать и поймать свою «рыбку», рассказать много что могу.
Не являюсь каким то ораторам и искусным владельцем русского языка.
Для первого шага на этом форуме думаю неплохо. Дальше посмотрим к чему это приведет.
Также, хочу воспользоваться моментом и спросить, нужны ли на этом форуме компетентные курсы по анонимности ? Если не сложно, напишите какие темы особо интересны.
Те, кто решит следовать инструкции и развернуть свой XMPP сервер, в случае сложностей пишите мне в Tg: @b2b2b2b2b2b2b2b2b2b2b2b2b2b2.
Предисловие.
Для кого эта статья ?В первую очередь для лидеров своих команд, также полезна будет для всех кого интересует вопрос анонимности, для общего расширения кругозора.
Хочу рассказать маленькую историю. Общался со знакомой, она поделилась со мной инфой что устроилась менеджером по подбору персонала в какую то команду по продаже ПАВ … , и сказала о том что они используют какой-то мега крутой и анонимный мессенджер, о котором все говорят. Мессенджер «Wickr», я залез на официальный сайт, промотал в низ и увидел что создатели мессенджера продают разные версии, типа премиум, бизнес и т п… Меня это все улыбнуло. Вопрос ? Как создатели мессенджера контролируют подписки ? Скорее всего у них отдельные инструменты контроля. Уже доверия к создателям стремится к 0. Я поползал по сайту, в надежде найти инфу о том, как возможно развернуть серверную часть, по итогу ее нет и сразу закрылся первый вопрос о контроле подписок, потому что стало ясно что коммуникации между корреспондентами А и Б проходят через частные сервера этой компании. Возвращаемся к тому что мессенджер «мега крутой и анонимный» - НЕТ!
Когда есть трете лицо, неважно в чем, анонимность слово не подходит! - думаю понятно о чем я!
Есть аргумент, что если «сильно не сверкать» то не кому я и не буде интересен, ради бога…
Лично мне, просто не комфортно от существования самой потенциальной вероятности.
1 Теоретическая част.
Многие люди не совсем понимают вообще принципы интернета, считаю нужно немного поговорить об это, попробуем по визуализировать, разобрать какие-то вопросы, это все даст нам более глубокое понимания вещей и принципов. Ну и чутка тему программ затронем.1.1 Архитектура сети интернет.
Если кому-то интересно, в ютуб много разных видео об истории интернета и его развития. Но мы будем говорить об интернете который сейчас.На сегодняшний день, уже очень много устройств у человека, это пк, телефон, роутер, телевизор, холодильник, утюг, камера контроля за квартирой и многое. Если мы расширим взгляд, то у коммерческой отросли еще больше, это станки, различное специальное оборудования, пульты управления, медицина, наука, полиция, рации … В общем очень и очень много всего, даже тяжело вообразить это большое количество техники.
Вся техника которую мы видим, представили и не представили, имеет общее, это стандарт взаимодействия по сети, проще говоря сетевой чип, который является у всех одинаковый, как у утюга, так и у поезда. Это факт и аргумент! Далее мы более подробно это поймем. Но для большего понимания попробуем визуализировать все это на примере нашего мира. Возьмем РФ, что одинаковое у граждан ? Это конституция, федеральные законы, УК и т п… Эта параллель аналогична техники, вся, абсолютно вся техника является равноправным членом сети, с равными правами и возможностями, в сетевом пространстве нет объекта который выше другого, это противоречит семой сети. Не один объект не может делать что-то, что не может делать другой. Вся это называется одноранговость! Думаю с сетевыми правами вся понятно, маленькая еще ремарка, что сетевым управлением занимается процессор, то есть, процессор управляет чипом сети. И тут уже встает вопрос запрограммированных функций процессора и у разного оборудования оно разное.
1.2 Взаимодействия в сети.
Думаю все слышали аббревиатуры IP! IP — расшифровывается как интернет протокол. Под протоколом имеется виду стандарт. Когда устройства становится равноправным одноранговым участником сети, IP-адрес является индикатором этого самого устройства.То есть, когда Петя и Вася стали участником сети, у них есть равные права в этой сети и зная IP адрес друг друга они могут взаимодействовать друг с другом используя различные протоколы (Стандарты взаимодействия).
Принцип и порядок взаимодействия устройств в сети описан в моделях OSI — ISO — эта тема очень сложна, я ее описывать не буду, кому интересно гугл в помощь.
Но утрируя и упрощенно скажу что когда Петя взаимодействует с Васей, оборудования Пети делает манипуляции с данными и проходит через определенные этапы и формирует пакет данных, после чего это данные по сети отправляются Васе и уже оборудования Василия делает обратные манипуляции с пакетом данных Пети, чтоб понять что он хочет.
Далее мы просто будем говорить о пакете данных, Петя отправляет пакет Васе …
Есть такое слово как Порт. Не знаю с чего начать, давайте начнем с представления большого многоэтажного дома, пусть это будет небоскреб который имеет 65 тысяч окон. Пусть у нас будет 2 небоскреба на разных континентах, первым владеет Петя, а вторым Вася. Весь небоскреб принадлежит владельцу, все этажи, все окна. И тут Вася ловит голубя, привязывает к ноге листочек с сообщение и наказывает ему лететь в небоскреб Пети и очень четко говорит чтоб он летел именно в 80 окно. Тем временем Петр знает что ему летит голубь, он бежит и садиться слушать и смотреть в окно 80. Когда Вася отправлял голубя, он указал что ждет ответ в 71 окно. Когда Петя прочитает сообщения от голубя он будет знать в какое окно отправить ответ.
Аналогия с небоскребами и окнами аналогична цифровому миру сетевого взаимодействия, только под небоскребом предполагается оборудования с сетевым индикатором или IP адресом, а под окнами предполагается порты.
Подытожим.
В сетевом взаимодействии (в сети интернет), оборудования имеют равноправные права и функции взаимодействия, где само оборудования имеет сетевой идентификатор IP-адрес и 65536 портов
1.3 Маршрутизация.
Тема маршрутизации достаточно глубока, но я постараюсь максимально упростить.
Наверное так же надо начать с аналогии. Каждый представляет себе сеть почты России,
Петя отправляет письмо Васе. Он формирует его в стандарт, то есть он подготавливает его в соответствие правил приемного пункта, то есть марка, дынные и т п… Это аналогия еще и подходит к тому, когда наше оборудования готовит пакет данных перед отправкой в сеть. Важным правилом для отправки письма служит индекс аналогия IP адреса, ну и улица, номер дома и квартиры - аналогия с портом.
Хорошо, ценз приемного пункта пройдет, письмо Пети принято в отделения почты России. Что дальше ? Отделения не думая отправляет его в городское отделения, городское отделения проверяет его на принадлежность получателя к своей территории, если получатель не тут, не думая отправляет его в областное отделения, областное отделения проверяет его на получателя своей территории есть да то отправляет его на пункт ниже в городской отдел, если нет то выше, в региональный отдел почты рф, и так далее. Думаю достаточно понятно. Ну и маршрутизация сетевых пакетов проходит примерно также. У IP — адресов есть свой международный стандарт, который делить их на интервалы к примеру от 0-10 это китай, от 10-20 РФ и т п, уже РФ имея 10 адресов имеет право разделить их в своём локальном порядке, 11-Кирову, 12-воронежу … Только IP адреса состоят из 4 — байтов, имеют вид 255.255.255.255 и всего их 4228250625.
Думаю не много, но должно стать понятно.
В сети интернет, управления трафиком лежит на провайдерах, в сетевых настройках оборудования, это называется шлюз. Когда Петя отправляет пакет данных Васе, у Пети есть договорённость с провайдером который предоставляет IP-адрес оборудования/шлюза, а оно в свою очередь будет отвечать за доставку пакета. И эта схема идет дальше, провайдеры передают пакет своим провайдерам и т д, по итогу пакет данных отправленный от Пети доходит до Васи.
1.4 Ранговость.
Очень кратко раскрою тему рангов. Как я говорил выше сеть интернет является одноранговой, что значит что каждый член является равноправным участником с равными правами и функциями. Данную модель неофициально называют WEB1. Такая модель очень интересна, но формирует не удобства, связанные с онлайном, то есть я могу взаимодействовать с другим устройством пока он в сети, он вышел, я не могу с ним взаимодействовать.По этому была придумана иллюзорная двухранговость , клиент-сервер. Не официальное названия WEB2. Смысл в том, что одноранговая архитектура искусственно превращается в двухранговую и делит устройства на клиентов и серверов. Сервера всегда работают, а клиентам дается право динамически появляться и отключатся от сети. Такая модель по-прежнему является равной для всех, просто одни всегда работаю, а другие нет. Тем самым появилось очень много продуктов и сервисов. И это удобно. К примеру с серверами Телеграмм, мы захотели зашли туда, там пообщались и ушли. Так же форум RuTor. Это по сути сервер/сервис который предоставляет какие-то возможности, а мы с вами клиенты которые захотели, подключились, что-то поделали и ушли.
1.5 Процессоры и архитектуры.
Процессор управляет сетевым чипом и он закладывает функционал оборудования.Немного поговорим о них.
Если очень глубоко взглянуть, то процессор состоит из маленьких примитивных регистров и транзисторов, они очень примитивные. Но создатели процессоров создают обертку над всеми этими регистрами и контролерами, создавая интерфейс взаимодействия и стандартизирует его, пишут документацию и продают процессоры.
Если кому-то будет это интересно, рекомендую посмотреть про «машину Тьюрига» и что такое полнота по Тьюрингу. Очень сложно эти темы раскрыть в упрощенном виде. Но утрируя максимально просто могу сказать что заложенный подход реализуется по сегодняшний день, смысл которого в том. Что когда производитель выпускает чип, он говорит о том какие команду у этого чипа есть, он выкладывает список машинных команд. Если кто-то слышал про машинный код и ассемблер, то это как раз это и есть.
Машинные команды делают различные примитивные задачи,
Например:
Команда 1 = поместить из регистра А в регистр Б
Команда 2 = провести сравнения регистров Б и С
И Т д…
Примитивные машинные команды слишком сложны для понимания человеком, по этому люди начали обертывать их в более высокоуровневые языки программирования, например «C». Со временем «C» начал казаться сложным у его абстрагировали и подняли еще выше и появился язык «C++», потом опять подумали что сложный и появился более высокий язык это «JAVA» и т д… Языки программирования это высокоуровневая абстракция машинных кодов, самый высокоуровневый язык по моему мнению это JS и Пайтон.
По-простому, когда программист пишет код, сам код трансформируется в машинный код конкретного чипа.
Когда мы говорим об архитектуре чипа, мы предполагаем стандартны процессорных команд,
примеры архитектуры:
X86 - стандарт команд такой...,
AMD64 - стандарт команд такой-то другой...,
ARM,
x86-64,
и многие …
Каждый чип поддерживает строго свои машинные коды, что означает что необходимо написанный код на C++ под каждую архитектуру компилировать.
Маленькое резюме.
Процессор задает функционал устройства.
От архитектуры процессора зависит какие процессорные команды он поддерживает.
Процессорные команды управляют сетевым чипом.
Ладно, возможно эта инфа покажется сложной, но я максимально просто как мог, попытался объяснить и это важно для следующего раздела.
1.6 Проблема программных продуктов.
Когда мы, что-то устанавливаем на свой телефон, допустим социальную сеть вконтакте, приложения. Как вы думаете , что мы получаем ? Машинные команды процессора или высокоурожайный код языка программирования ? Ммм… Мы получаем уже готовые машинные инструкции, которые вообще мало кому понятны. Вообще само по себе спрос таких специалистов кто понимает этот машинный код единицы, их днем с огнём не сыскать.Понимаете к чему я веду ?
Вопрос, как я могу понять что делает, получены мной процессорный код который вообще мало кто может понять ? Не как) Единственное на что можно упираться, это на заявлены функции создателя, я знаю что компания ВК заявляет функции: могу общаться через их приложения, обмениваться данными , и т п… Но при этом, они мне дают продукт из процессорных команд который я не могу понят и который управляет моим устройством в виде микрофона, камеры, GPS , сетевого чипа … Каждый сам сделает выводы из этого.
Ладно, продолжим, компания ВК, помимо своих закрытых приложений для наших телефонов предоставляет сервера. На которых «тусуются» пользователи и взаимодействуют друг с другом. И самое интересное, что мы даже процессорных команд сервера не видим, просто не чего не видим.
Вернемся к мессенджеру «Wickr» который кто-то считает «мега крутым и анонимным».
Его по-прежнему можно считать анонимным ?
1.7 Открытый код.
Открытый код, думаю многие его слышали. Давайте под раскроем смысл этого.Еще раз повторим по процессору.
Транзисторы и контролеры предоставляют машинные команды управления процессором.
Языки программирования созданы для облегчения управления этими машинными командами.
Создатель зявляет о функционале своего продукта.
Кому вы будите верить больше ? Тому кто дал вам машинный код или тому кто дал вам свои высокоуровневый исходный код ? Вполне логично что 2. Имея открытый код программы можно прочитать и подтвердить заявленный функционал программы. Мировые примеры программ с открытым кодом, например OpenVPN, Bitcoin, KVM, и многое…
Если создатель заявляет что мол мой продукт делает это и это, ну и дает только машинный код, закрывая исходный код языка программирования. Тут можно допускать обман.
История про Телеграмм.
Все помнят когда Телеграмм нагнул РКН…
Телеграмм провёл очень гениальный маркетинговый ход, когда заявил что он открывает свои исходный код. Кто-то, что-то, поверхностно понимая, повелся на это и начал говорить о большом доверии телеграмму … мол код та открыт. Я прям помню людей кто мне так говорил. Но почему РКН требовал ключи шифрования ? Если систему телеграмм не сломать ? Да потому что это все иллюзия, код серверов телеграмма до сих пор закрыт, не кто не знаю, как и что там работает. А Паша просто виртуозный манипулятор. Пуская пыль в глаза. Нельзя прямо обвинить ТГ в обмане, но сам факт существовании вероятности … Думаю смысл понятен.
Пару слов об Аудите.
Когда создатель продукта говорит о функциях и открывает код, для обычного пользователя это все равно сложновато. Типа например языка программирования я не знаю… Хотя сам факт открытого кода вызывает больше доверия, бывают факты ошибок программиста которые могут привести к большим проблемам.
Аудит кода — это когда стороннее специалисты, читают исходных код продукта и помимо заключения о соответствии заявленных функций и функций программы, дают оценку безопасности кода ставя на кон свое авторитетное имя! Это очень и очень серьезный акт доверия. Наверное даже не может быть более высокой квоты доверия чем открытый код прошедший аудит и доказавший свой функционал временем. Например, продукт OpenVPN.
1.8 Криптография.
Много что можно сказать по этому разделу, но наверное попробую донести силу современной криптографии.О методах шифрования, можно посмотреть видео на ютуб, тему семеричного и асимметричного шифрования. Настоятельно рекомендую попытаться понять алгоритм Диффи-Хеллмана, есть хорошее видео на примере с красками показывающий смысл этого метода. Ну и кстати PGP — шифрования базируется на этом алгоритме Диффи-Хеллман.
Одним из фундаментальным кирпичиком всей крипто науки является ХЭШ.
ХЭШ — это функция, которая принимает один аргумент, на выходе даёт другой.
Простыми словами на вход я подаю одни данные, на выходи получаю другие.
Смысл ХЭШ функции, что имея выходные данные, невозможно получить входные.
Пример:
Подавая на вход аргумент «Привет» на выходе мы получаем последовательность рандомных символов «ads2131sads». Из символов «ads2131sads» мы не может определить что входом было слово «Привет». Это факт.
Больше инфы в интернете, ну а кто максимально хочет взорвать себе мозг, может попытаться вникнут в гипотезу Римана, и в загадку тысячелетия за которое полагается вознаграждения в 1мил. Если максимально упростить, то перед человечеством нет понимания по каким законом формируются последовательности натуральных чисел и на это опирается наука криптографии и хеш функции.
Методика взлома хеш функций на сегодня только одна, это грубой силой когда входные параметры тупо подбираются. Ну а такой метод не имеет смысла так как что бы взломать один хэш функции sha256 , необходимо обеденить все компьютеры нашей планеты в одну задачу и заставить их перебирать… и весть это процесс займет много световых лет, за которое наше солнце погаснет.
Ну и закончу этот пункт тем, где используются хэш функции.
Самое первое это сайт, все мы видим замочек на сайте, это функция sha256.
Sha256 участвует в коммуникациях мобильных приложения, таких как онлайн банкинг.
Далее, хэш функции являются участниками виртуальных приватных сетей VPN. Частные приватные сети используют банки, для своих банкоматов с деньгами, различные бюджетные организации строят VPN сети для своих офисов, медицина, полиция, мерия, армия, криптовалюта, спутники, телевиденье, мессенджеры … все, абсолютно все использует хэш функции, даже сеть ТОР и то использует хэш функции, I2P … Куда не ткни, везде ХЭШ ...
Думаю чуть понятна серьезность и сила современной криптографии.
Ну и в заключении хочу сказать что если случится прецедент взлома современных хэш функций, произойдет своего рода переход на новые стандарты, так было с MD5 когда все перешли на семейства функций SHA2, сейчас актуально новое семейство это SHA3.
1.9 Обзор предложений линий коммуникаций.
Достаточно широкое количество тем затронули перед тем, чтоб говорить о предложениях.Думаю эти все темы послужат большим фундаментом для понимания вообще темы анонимности.
Если мы взглянем на рынок, мы можем сразу же разделить продукты на 2 группы, это коммерческие и продукты энтузиазма.
Думаю всем понятно что коммерческие продукты, ватсап, телеграмм, вк, инста и т п полная чепуха. Там где стоит цель заработать денег, верить просто нельзя.
Продукты энтузиазма, это продукты по умолчанию с открытым кодом, которые обычно развиваются волонтерами за идею.
Я очень много разных проектов видел, анализирова.
Пару слов о проекте Tox, очень интересный проект, минусом является одноранговость которая и ограничивает, в отправке сообщений где два корреспондента должны быть онлайн, если условия не выполняется вылезает геморрой, так же программа реализована на технологиях SyncTorrent, что ограничивает в быстрой смене ip-адресов (Цепочек TOR), так как вызывает много геморроя.
О духранговых проектах, их называют федеративными, так как серверные части выступают как федерации которые могут друг с другом взаимодействовать, но влиять друг на друга не могут, аналогия с почтой, yandex и google два разных почтовых сервера, но клиенты разных серверов могут взаимодействовать друг с другом так как сервера могут общаться. Тем самым архитектура называется федеративной.
3 место — Diaspora *
Интересный проект, открытый код как клиента так серверной части. Можно развернуть свой сервер. Быть равноправным участником сети. Но философия проекта нацелена, на соцсети. Проект с 2014 года. Как частная линия коммуникации достойна внимания. Больше можно прочитать в Википедии.
2 место — Matrix
Достаточно функциональный проект, естественно он открытый как клиент, так и сервер. Федеративная архитектура, прикольный мощный. Пишу о нем как о хорошем варианте. Википедия в помощь.
1 место. — проекты - XMPP/Jabber.
Федеративность, открытый код клиента,сервера.
Но для меня очень большим фактом важно время, этот проект самый старый. Вообще об XMPP можно много что сказать, это протокол взаимодействия вывернутый в продукты коммуникации позволяющий расширятся и дополнятся методами шифрования и т п …
+ по мимо всего, этот проект имеет различные варианты серверных сценарием что имеет преимущество перед 2 предыдущими проектами. По-простому, мы можем выбрать какой сервер у нас будет. Протокол XMPP используется для создания своих локальных закрытых продуктов, что показывает свою гибкость и популярность. Ну и вишенка на торте это методы шифрования PGP, OTR, OMEMO...
Данный выводы сугубо мои личные. У вас своя голова на плечах и вы сами решаете прислушиваться или нет.
1.10 Краткий итог теоретической части.
Мы поговорили об интернете, подчеркнули одноранговость сети, принципов и методов взаимодействия устройств, маршрутизации пакетов. Затронули вопрос архитектуры процессоров, машинного кода и роли «Открытого кода» в программных продуктах.Считаю что достаточно широкий взгляд попытался донести.
Возможно кто-то это все и знал, кто-то подчеркнул новое, ну а кто-то вообще взглянул по-новому на интернет и программы.
2 Практическое руководство. Развертывания XMPP сервер.
После всей теории, думаю должно быть сформулировано мнения о том как устройства взаимодействуют между собой, что такое федеративная архитектура взаимодействия и почему важно доверять открытому коду, а не заявлениям создателя …В этом практическом руководстве мы развернем свой XMPP федерацию\сервер. Что позволит полностью контролировать всю линию связи между корреспондентом А и Б.
2.1 VPS.
Для того чтоб мы могли создать свою полностью контролируемую линию связи, развернуть XMPP сервер, нам нужна машина. VPS — это виртуальный выделенный сервер. Смысл в том, что одна физическая машина может быть разделена на несколько виртуальных. Каждой виртуальной машине,может управлять частями физической машины, все зависит от настроек. Существует разные виды виртуализации, способы разделять физическую машину на виртуальные. Самый популярный это KVM, этот проект открыл свой исходный код, что вызвало большую квоту доверия и полюбилось обществом.Где искать VPS ?
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
- список сервисов предоставляющей услуги VPS за крипту, естественно оплачиваем все криптом, как можно больше концов в воду...inbox.lv — почтовый сервис без идентификации, для регистраций.
Я понимаю что разные люди с разными знаниями, но учимся пользоваться гуглом, проявляем интуицию, и арендуем себе машину.
Если у кого, то будут сложности, но большое желания, пишите мне, помогу советом.
Минимальные требования.
2 потока CPU
2gb ОЗУ
Памяти от 10-20gb
Так же, важно выбрать операционную систему именно Ubuntu 20.04.*
Цена от 3 до 15 баксов в месяц
На выходе мы должны получаем информацию о подключении по SSH.
Просим помощи у поддержки, все разжуют.
Например:
Server information:
- Service package: Aluminium[FR]
- Setup date: 2022-11-16
- Domain name: vm763838.stark-industries.solutions
- Server IP address: 185.231.205.202
- User: root
- Password: 0snv15wLcjQY
Так, теперь о том что такое SSH.
Это протокол удаленного консольного управления.
Если у вас Linux , пишем в консоли
ssh root@ip-addres-vps
водим пароль когда попросит.
Если Windows — прошу подуматься о Linux, клиент для SSH подключения PuTTY , гуглим инфу, смотрим ютуб
Если MacOS, то я вам сочувствую … Не знаю как подключится , но можно, гуглим.
На выходе мы должны получить приветственное сообщения
...
si@2d09666:~$ ssh [email protected]
Welcome to Ubuntu 20.04.5 LTS (GNU/Linux 5.4.0-29-generic x86_64)
* Documentation:
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
* Management:
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
* Support:
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
Last login: Thu Nov 17 22:39:01 2022 from 185.56.83.83
root@vm763838:~#
...
Вводим команду на проверку наличия обновлений
apt update
И следом команда на установку обновления
apt upgrade -y
Ждем, получаем готовую машину к дальнейшим действием.
...
Calculating upgrade... Done
127 upgraded, 43 newly installed, 0 to remove and 0 not upgraded.
root@vm763838:~#
...
Фаервол. Выше я писал о портах, переставляя виде дома с окнами. По умолчанию у машины все открыто, нам нужно закрыть!
Качаем фаервол UFW
apt install ufw
открываем порт для SSH.
ufw allow ssh.
Включаем
ufw enabe
Нажимаем y
нам нужно открыть 80,5222, 5269, 5443, 5280, для корректной работы
ufw allow 80
ufw allow 5222
ufw allow 5269
ufw allow 5443
ufw allow 5280
проверяем статус
ufw status
...
root@vm763838:~# ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
80 ALLOW Anywhere
5222 ALLOW Anywhere
5269 ALLOW Anywhere
5443 ALLOW Anywhere
5280 ALLOW Anywhere
443 ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
5222 (v6) ALLOW Anywhere (v6)
5269 (v6) ALLOW Anywhere (v6)
5443 (v6) ALLOW Anywhere (v6)
5280 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
root@vm763838:~#
...
Проброс 80 порт на 5443.
Нам нужно сделать это для того чтоб было безопасное соединения.
Для этого открываем файл
nano /etc/ufw/before.rules
и перед filter добавляем
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 5280
COMMIT
нажимаем ctrl + o
и ctrl + c
Все, теперь 80 порт перенаправляет пакеты на 5280.
Перезапускаем ufw disable и ufw enable.
2.2 DNS.
DNS — это аббревиатура обозначающая систему имен доменов. Домен это синоним идентификации машины. По сути IP-addres равно Домен. Человеку проще запомнить google.com чем 142.250.179.174 хотя это в сети одно и тоже.Я сейчас утрируя, для простоты понимания.
Если максимально упростить DNS можно рассматривать как реестр:
Domain : ip-addres
google.com : 142.250.179.174
hihi.xa : 12.321.21.222
И т д…
У нас есть VPS и есть сетевой адрес, IP.
Придумываем синоним, ассоциацию для нашего IP-addres
Для этого мануала я придумаю forRuTor.biz (Домен придуман для этого руководства и будет выкинут)
Для чего это все?
У XMPP есть ID-jabber, например мой [email protected]d
b2 — пользователь
bastion.ltd — Это сервер, а конкретно доменное имя которое равно IP-addres моей машины/сервера.
Тем самым когда Вася с ID-jabber [email protected] пишет [email protected] .
Он/vasya отправляет сообщения на свой сервер xmpp.com, его сервер определяет мой сервер bastion.ltd, а уже мой сервер определяет мой аккаунт b2 и уведомляет меня о сообщении.
Все то же самое, как и с почтой, 1 в 1.
Где регистрировать DNS?
Гугл в помощь:
Примеры
hostinger.com
regway.com
monovm.com
Важно, при регистрации вводите левые данные, но реалистичные. Я спалился и меня заставили перерегистрировать и платить повторно, а потом забанили акк...
Можно воспользоваться сервисом ugener.com - генерирует пользовательские данные.
По моему опыту, регистры доменов очень интуитивно запутаны, задача найти менеджер DNS. Место где мы будем добавлять записи.
К примеру я покупаю домен для этой инструкции forRuTor.biz
Мне нужно найти место где я сопоставлю свой IP адрес моей VPS с этим доменом.
Добавлю запись в регистр
…
forRuTor.biz : 185.231.205.202
…
сли не можете найти интуитивно, пишем в поддержку, создаем тикиты,
с контекстом, … не могу найти менеджер DNS, хочу добавить запись «A»… Естественно на английском, если не знаем, переводчик в помощь…
На выходи мы должны найти менеджер DNS для добавления новых записей.
Возможно для кого то сложно, но пользуйтесь интуицией, вы знаете что вам нужно, отпинывайет мозги поддержке. Там пошаговые скрипты действий заготовлены.
Есть разные типы записей, нам нужны 2 это A и SRV
Запись «A»
Это тип записи который сопоставляет купленное доменному имени с IP.
Должно быть примерная запись такая:
@ A 185.231.205.202 TTL
Еще раз, если трудно, пишем в поддержку, они пошагово все объяснят, я так делал когда, покупал первые разы…
Запись SRV
Этот тип записи нужен для поддержания возможности общения между серверами, старого типа, для которых эта запись важна.
Примеры записи.
_xmpp-client._tcp.example.net. TTL IN SRV priority weight port target
_xmpp-server._tcp.example.net. TTL IN SRV priority weight port target
Важно проявить сообразительность.
Думаю все должно быть понятно, если нет, тикет в поддержку.
Ну или пишите мне.
Заходим на сайт check SRV xmpp
kingant.net/check_xmpp_dns/
Вводим наш домен, должны получить это
...
Client records for forRuTor.biz
XMPP clients will use these when logging in.
| Target | Port | Priority | Weight |
|---|---|---|---|
| forrutor.biz | 5222 | 5 | 0 |
Server records for forRuTor.biz
Other XMPP servers will use these when peering with this domain.
| Target | Port | Priority | Weight |
|---|---|---|---|
| forrutor.biz | 5269 | 5 | 0 |
Если нет, зонного еще раз читайте этот пункт.
Если хочется, пишите мне.
Что мы имеем?
VPS — IP 185.231.205.202
DNS — forRuTor.biz указывающей на ip-addres VPS.
Круто, идем дальше
2.3 EJABBERD.
Ejabbered — это программа, которая развернет серверную часть нашей безопасной линии связи.Но помимо программы чутка анализа. Кто стоит за этой программой ? Компания process-one, да да, это бизнес, со своими мотивами…. Но почему можно доверять серверному решения этой компании ? Обо всём этом я думал когда, знакомился с продуктом, думаю ход мыслей понятен.
Компания Process-one занимается коммерческим налаживанием линий связи и не только, в огромных компаниях, например BBC, Nokia, UBISOFT, EAsport и т п … Официальный сайт process-one.net посмотрите сами. Помимо программного решения, есть еще очень важный момент связанный с инфраструктурой нагрузки, представим что нам нужно пару десяткам тысяч человек наладить связь, нам нужно думать не о продукте в первую очередь, а об инфраструктуре аппаратных средств. За это компания Process-one и получает свою прибыль, а продукт ejabberd с открытым исходным кодом, вишенка на торте. Потенциальные конкуренты могут нервно курить в сторонке.
Считаю что из всех серверных решений для XMPP, ejabered вызывает самое большое доверия.
Сейчас мы настроим на нашей VPS, демон — Ejabberd.
Демоном в it называется фоновый процесс на машине.
Еще раз. У нас есть VPS с настроенным DNS.
Доступ мы получили по SSH и находимся в консоли.
У ejabberd свой отдельный linux репозиторий.
Подключаем его, вводя последующее команды:
- apt install curl -y
- curl -o /etc/apt/sources.list.d/ejabberd.list
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
- curl -o /etc/apt/trusted.gpg.d/ejabberd.gpg
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
- apt update
- apt install ejabberd -y
systemctl status ejabberd.service
Получаем развернутую информацию о демоне/процессе который запустился автоматически.
Сейчас актуальная версия 22.10.
...
* ejabberd.service - XMPP Server
Loaded: loaded (/lib/systemd/system/ejabberd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-11-17 23:22:34 CET; 1 day 13h ago
Main PID: 41841 (ejabberdctl)
Tasks: 27 (limit: 1109)
Memory: 63.9M
CGroup: /system.slice/ejabberd.service
|-41841 /bin/sh /opt/ejabberd-22.10/bin/ejabberdctl foreground
|-41862 /opt/ejabberd-22.10/erts-12.3.2.5/bin/beam.smp -K true -P 250000 -- -root /opt/ejabberd-22.10 -progname erl -- -home /opt/ejabberd -->
|-41876 /opt/ejabberd-22.10/erts-12.3.2.5/bin/epmd -daemon
|-41879 erl_child_setup 65536
|-41894 /opt/ejabberd-22.10/lib/eimp-1.0.22/priv/bin/eimp
|-41895 /opt/ejabberd-22.10/lib/epam-1.0.12/priv/bin/epam
|-41896 inet_gethost 4
|-41897 inet_gethost 4
|-41898 /opt/ejabberd-22.10/lib/os_mon-2.7.1/priv/bin/memsup
`-46478 inet_gethost 4
...
Ctrl + c - выйти
Останавливаем процес командой.
systemctl stop ejabberd.service
Далее, идем в каталок с конфиг файлом для настройки демона.
cd /opt/ejabberd/conf/
Смотрим что есть в каталоге командой
ll
...
root@vm763838:~# cd /opt/ejabberd/conf/
root@vm763838:/opt/ejabberd/conf# ll
total 260
drwxr-x--- 2 ejabberd ejabberd 4096 Nov 17 23:14 ./
drwxr-xr-x 5 ejabberd ejabberd 4096 Nov 17 22:43 ../
-rw-r--r-- 1 ejabberd ejabberd 225403 Oct 28 10:23 cacert.pem
-rw-r--r-- 1 ejabberd ejabberd 5842 Oct 28 10:23 ejabberdctl.cfg
-rw-r--r-- 1 ejabberd ejabberd 5364 Nov 17 23:14 ejabberd.yml
-rw-r--r-- 1 ejabberd ejabberd 111 Oct 28 10:23 inetrc
-rw------- 1 ejabberd ejabberd 5086 Nov 17 22:43 server.pem
root@vm763838:/opt/ejabberd/conf#
...
Видим файл ejabberd.yml — этот файл конфиг для всго управления серверным приложением.
По умолчанию он дает все что нужно. Мы добавим маленькие правки.
Открывает файл для редактирования командой
nano ejabberd.yml
Управляя стрелками меняем значени
//////
hosts
- "forrutor.biz"
...
acl:
...
admin:
user:
- "[email protected]"
...
/////
для сохранения нажимаем клавиши
ctrl + o
потом
ctrl + x
запускаем демон
systemctl start ejabberd.service
Создаем сертификат для DNS.
ejabberdctl request-certificate forrutor.biz
регестрируем учетныю запись нашего админа командой
ejabberdctl register root forutor.biz password
переходим в браузер
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
Вводим наш логин и пароль админа. Получаем доступ к нашему серверу XMPP. Всё!
Разбираемся/ползаем/ настраиваем, не чего сложного.
Важный момент, обязательно должен быть замок в строук URL.
Если его нет, то нельзя вводить данные, канал не безопасен, разбираемся и пробуем еще раз.
Как создать аккаунт ?
В панеле админа переходим в
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
выбираем наш хаст forRuTor.biz, у вас ваш.
далее User
Видим поля логина и пароля нового пользователя .
Создаём аккаунт, Все!
2.4 Клиенты.
Клиенты для XMPP можно использывать какие угодно, их много. Гуглим, если интересно. У нас развернут свой сервер, сервер не определяет ценз для сообщений, что и как должно отправлятся и т п .. Сервер всего лишь наша рабочая лошадка. Тем самым вопрос шифрования делигирован клиентам. При выборе клиента нужно смотреть на методы шифрования. Мне симпатизирует протокол шифрования OMEMO и метод PGP. Так же смотрим на открытый код и репутацию приложения.На ПК я пользуюсь GAJIM, на телефоне BLABBER.
Ввходим в свои созданные аккаунты и тестим.
Итог.
Я проделал не малую работу, чтоб все максимально просто донести.Думаю все информация послушит очень и очень хорошим фундаментом для дальнейшего изучения вопроса анонимности. Для тех кто в начале этого пути.
Также, я написал мануал руководство к действию по развертыванию XMPP сервер. Что максимально полезно для лидеров команд.
Открыт к диалогу, пишите вопросы. Если кому что то интересно глубже, не стесняйтесь.
Так же хочу напомнить о вопросе, Какие темы в вопросе анонимности были бы более интересны? Напишите пожалуства свое мнения. Зарания большое спасибо.
Всем хорошего дня, спасибо за внимания.
Сообщение обновлено:
Скриншот отправики сообщения с [email protected] к [email protected] и обратно с шифрованием OMEMO.
Вложения
Последнее редактирование:

