Статья Анонимный jabber средствами TOR на Rapsberry pi

Скопипастил . Может пригодится кому. Ведь скоро Большой Пиздец.

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

У схемы jabber + tor + rapsberry pi есть ряд плюсов:

  1. не придётся покупать доменное имя
    • не нужно ничего оплачивать ежегодно
    • никто не отследит по денежным транзакциям кто владелец
    • домен не угонят (естественно всё относительно, ведь могут украсть ключи) и никто не забанит и не отключит домен
  2. не придётся искать и покупать анонимного хостера, а если он и анонимный, то нет гарантии в отказе слива информации о вас. Плюс их услуги довольно дорогие и часто отсуствует качество предоставляемых услуг, потому как довольно маленькая конкуренция
  3. дешёвое обслуживание (всего 4Вт)
  4. отсутствие левых владельцев, которым следует верить, что у них всё "на самом деле отключено и ничего не сливается третьим лицам".
  5. rapsberry pi может находиться за кучей натов и ей не нужно пробрасывание портов и тем более выделенный IP
  6. местонахождение сервера будет никому не известно, кроме владельца
(почти все перечисленные преимущества — TOR)

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

Далее необходимо определиться с jabber-сервером. Тут варинтов не очень много, мы выберем в этой роли prosody, он молод и интенсивно развиваем.

Ставим необходимые пакеты:

Код:
$ sudo apt install tor prosody

Генерация домена
Более подробно про генерацию доменов в TOR можно в статье, , но если кратко:

Код:
$ printf "HiddenServiceDir /var/lib/tor/jabber\nHiddenServicePort 5222 127.0.0.1:5222\n" | sudo tee /etc/tor/torrc
$ sudo systemctl tor restart
$ sudo cat /var/lib/tor/jabber/hostname
pigf5kfufjz63s5z.onion

pigf5kfufjz63s5z.onion — домен, который мы будем использовать в jabber-сервере.

Далее создаём конфиг /etc/prosody/prosody.cfg.lua с примерно таким содержанием:

Код:
admins = { "root@nsltzcvhmzfa7ypr.onion" }
modules_enabled = {

   -- Generally required
       "roster"; -- Allow users to have a roster. Recommended ;)
       "saslauth"; -- Authentication for clients and servers. Recommended if you want to log in.
       "tls"; -- Add support for secure TLS on c2s/s2s connections
       -- "dialback"; -- s2s dialback support
       -- "disco"; -- Service discovery

   -- Not essential, but recommended
       "private"; -- Private XML storage (for room bookmarks, etc.)
       "vcard"; -- Allow users to set vCards

   -- These are commented by default as they have a performance impact
       --"privacy"; -- Support privacy lists
       --"compression"; -- Stream compression (Debian: requires lua-zlib module to work)

   -- Nice to have
       "version"; -- Replies to server version requests
       "uptime"; -- Report how long server has been running
       "time"; -- Let others know the time here on this server
       "ping"; -- Replies to XMPP pings with pongs
       "pep"; -- Enables users to publish their mood, activity, playing music and more
       -- "register"; -- Allow users to register on this server using a client and change passwords

   -- Admin interfaces
       -- "admin_adhoc"; -- Allows administration via an XMPP client that supports ad-hoc commands
       --"admin_telnet"; -- Opens telnet console interface on localhost port 5582

   -- HTTP modules
       --"bosh"; -- Enable BOSH clients, aka "Jabber over HTTP"
       --"http_files"; -- Serve static files from a directory over HTTP

   -- Other specific functionality
       "posix"; -- POSIX functionality, sends server to background, enables syslog, etc.
       --"groups"; -- Shared roster support
       --"announce"; -- Send announcement to all online users
       --"welcome"; -- Welcome users who register accounts
       --"watchregistrations"; -- Alert admins of registrations
       --"motd"; -- Send a message to users when they log in
       --"legacyauth"; -- Legacy authentication. Only used by some old clients and bots.
};

modules_disabled = {
   -- "offline"; -- Store offline messages
   -- "c2s"; -- Handle client connections
   "s2s"; -- Handle server-to-server connections
};

allow_registration = true;

daemonize = true;

pidfile = "/var/run/prosody/prosody.pid";

c2s_require_encryption = true

authentication = "internal_hashed"

log = {
   -- Log files (change 'info' to 'debug' for debug logs):
   info = "/dev/null";
   error = "/dev/null";
   -- Syslog:
   { levels = { "error" }; to = "syslog";  };
}

VirtualHost "nsltzcvhmzfa7ypr.onion"
   enabled = true -- Remove this line to enable this host

   ssl = {
       key = "/etc/prosody/certs/host.key";
       certificate = "/etc/prosody/certs/host.crt";
   }


Include "conf.d/*.cfg.lua"

Все вхождения pigf5kfufjz63s5z.onion необходимо поменять на тот домен, который сгенерировался у вас.

Создание ключей ssl
Код:
$ sudo openssl req -new -x509 -days 365 -nodes -out "/etc/prosody/certs/host.crt" -newkey rsa:2048 -keyout "/etc/prosody/certs/host.key"

После чего перезапускаем prosody:

Код:
$ sudo systemctl prosody restart

Настройка клиентской стороны
На клиентской стороне ставим и запускаем TOR:

Код:
$ sudo apt install tor
$ sudo systemctl tor restart

А в клиенте jabber выбираем в свойствах соединения Socks5-прокси, в качестве Host указываем 127.0.0.1 в качестве Port9050. Пишем логин (если логина ещё нет — регистрируемся, выбрав соответствующий пункт меню в клиенте), а в качестве хоста сервера указываем ваш свежесгенерированный onion-ресурс (в моём случае это pigf5kfufjz63s5z.onion).

Регистрацию так же можно сделать закрытой (для "своих") поменяв в конфиге prosody allow_registration с true на false, тогда регистрировать пользователей можно из консоли:

Код:
$ sudo prosodyctl register имя_пользоавтеля ваш_onion_домен пароль_пользователя

Остальные тонкости настройки .

Напоследок несколько важных нюансов
Не забываем на малинке поменять пароль для pi, root, настроить , запустить netstat -tulpan и убедиться что никаких левых сервисов не запущено (как правило светят наружу ненужные ntpd, avahi-daemon, dhcpcd — всё лишнее удаляем через apt purge имя_пакета), либо вообще запрещаем все порты кроме 9050 фаерволлом (об этом можно почитать, например, . Ещё можно поставить и минимально настроить fail2ban и .

Кстати, если в вашей стране TOR блокируется, то поможет вот .

Удачной анонимной и относительно безопасной переписки на личном одноплатном сервере!
[doublepost=1498408644,1498395271][/doublepost]Не забываем добавить в :
Код:
modules_enabled = {
                                "register"; -- Allow users to register on this server using a client
                          };
чтобы можно было регистрироваться из jabber-клиента.
[doublepost=1498410334][/doublepost]P.S. Кто желает затестить свежесозданный мной сервер пишите в ЛС или жабу... :cool:
[doublepost=1506366321][/doublepost]Что ж. Вижу никому не интересно...
 
Последнее редактирование:
Кто желает затестить свежесозданный мной сервер пишите в ЛС или жабу
Пару дней назад перечитывал статью и подумывал запилить наш чат )) Твое предложение "затестить" увидел только что. Надо было создать короткую тему-анонс... Твоя приписка в конце темы как бы не видна.

Еще тема находится в серой ветке, которую от силы видят человек 20.
 
Вот мой jabber-сервер "Подземка" в сети Tor

Еще там есть функция конференции.
Предоставляю в ваше распоряжение как резервный канал общения.
Ддосеры достали. Приходится ждать пока codeby поднимется. Неприятно.
Но это только для Grey Team и Премиум! Пока что.
P.S. Могу irc-канал запилить если удобнее будет.
Если глядите в сторону чата на php с бд mysql, то посмотрите в эту сторону.
На русский язык я помогал переводить. А вот этого чата.
Кстати у Даниэля хостинг в тор появился.
 
Последнее редактирование:
Сейчас веб интерфейс для него делаю как раз
 
@ghost , ты всё издеваешься над своей малинкой ? :))))
 
  • Нравится
Реакции: ghost
@ghost , ты всё издеваешься над своей малинкой ? :))))
z3RoTooL/kuklofon ты ли это? Усы и бородку отрастил! Где то я это уже видел...
Мы отказались от чата в телеграм ...
Чат в тор нужен или именно в жабе конференция?
а почему ? не верите в дурова ?
меня так ваще забанили в телеге :) по непонятной мне причине
Как можно верить агенту кэгэбэ под прикрытием доброго айтишника?
 
Куда пропал? Сто лет не видел...
Рад что ты снова с нами
[doublepost=1507065991,1507065794][/doublepost]Чат да, могу сделать общий. Но джаббер - только для нас!
 
в Tor
status: active 24/7 :)
Jabber пока будет работать со сбоями!
Главная страница пока в разработке
Зарегистрировал там администратора codeby а пароль передам в ЛС

29456


так же должно работать через onion.link
Милости просим. У нас весело

29457


Теперь чат работает по прямой ссылке
 
а смысл вводить пасс? если при любый обстоятельствах попадаешь в чат?
Там есть функция отправки сообщения определенному пользователю, не видимое другим. Это не меня а разработчика движка чата нужно спросить.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!