/EnigmaIRC

Primary LanguagePythonOtherNOASSERTION

EnigmaIRC

Содержание:

  1. О проекте
  2. Как установить на сервер
  3. Как настроить клиент

О проекте

Что это такое?

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

Как это устроено

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

Пользователи сами настраивают сервер, что даёт им полный контроль над процессом работы, а так же возможность настроить мессенджер под себя (для продвинутых пользователей)

Как установить на сервер

Debian 11

На данный момент для серверной части EnigmaIRC есть готовая сборка под Debian 11.

Установите утилиту wget (она может быть установлена по-умолчанию):

apt install wget

На сайте мессенджера найдите актуальную команду установки архива для Debian и распакуйте его:

команда wget с сайта enigma-irc.dfhub.ru
tar -xf EnigmaIRC_server.tar.gz

Перейдите в папку с распакованной программой в терминале и выполните следующую команду:

cd EnigmaIRC_Server (название папки может меняться)
chmod u+rwx server

Без этой команды программа не запустится.

Настройка

Далее отредактируйте конфиг, используя графический интерфейс или nano:

nano config.json

Первым делом измените публичный IP-адрес сервера и порт, который будете использовать:

"server_public_ip" : "127.0.0.1",
"port" : 80,

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

"session_count" : 2

Запуск сервера

Теперь сервер можно запустить!

sudo ./server &

или

./server &

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

Установка на сервер из исходников

Пример установки серверной части EnigmaIRC показан на примере Debian 11.

Обновите список доступных пакетов:

sudo apt update && sudo apt upgrade --yes

Установите Python, pip и git:

sudo apt install python3
sudo apt install python3-pip
sudo apt install git

Скопируйте к себе репозиторий EnigmaIRC:

git clone https://github.com/Dertfin3051/EnigmaIRC.git

Перейдите в папку с сервером EnigmaIRC и установите все нужные дополнения:

cd EnigmaIRC/server
pip install -r requirements.txt

Настройка конфига

Далее отредактируйте конфиг, используя графический интерфейс или nano:

nano config.json

Первым делом измените публичный IP-адрес сервера и порт, который будете использовать:

"server_public_ip" : "127.0.0.1",
"port" : 80,

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

"session_count" : 2

Запуск сервера

Теперь сервер можно запустить!

python3 server.py &

Если вы получили ошибку, связанную с неподдерживаемой кирилицей, то запустите файл server_nc.py

python3 server_nc.py &

Знак & в конце нужен, чтобы процесс работал в фоне и не закрывался, когда вы отключаетесь от сервера

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

Как установить на клиент

Windows 10 *(x64)*

Для клиента EnigmaIRC есть сборка под Windows 10.

По ссылке с сайта скачайте архив с клиентом и распакуйте его.

Настройка

Откройте keygen.exe, чтобы создать ключ шифрования. Скопируйте его. Далее настройте config.json :

В server_ip укажите ip и порт вашего сервера через двоеточие:

"server_ip": "ip:порт",

В MESSAGE_ENCRYPTION_KEY вставьте ваш ключ, полученный из keygen.exe:

"MESSAGE_ENCRYPTION_KEY": "ключ_из_keygen",

Сохраните файл.

Настройка завершена! Теперь передайте настройки вашему другу в ОФФЛАЙН режиме (на бумажке или на usb-накопителе). Не рекомендуется делать это через интернет.

Запуск

Теперь мессенджером можно пользоваться.

EnigmaIRC разбит на два окна. В одном вы отправляете сообщения, а в другом — читаете.

Запустите файлы sender.exe и listener.exe.

Далее вас с другом попросит ввести имя пользователя, каждый выбирает своё.

Далее вас попросит номер сессии. Это некое число, по которому мессенджер определяет, кто есть кто. Договоритесь с другом выбирать разные номера. К примеру, вы в оба ваших окна вводите номер сессии 0, а ваш друг — 1.

Готово! Теперь можно спокойно переписываться, не переживая о том, что за вами кто-то следит.

Установка из исходного кода

Установка из исходников имеет схожий принцип, но для удобства инструкция разделена на разные платфоры:

Windows

Установите последнюю версию Python с официального сайта

С сайта мессенджера установите исходный код для клиента. Не обращайте внимания на Linux в надписи на кнопке.

Распакуйте архив в любое удобное место и откройте полученную папку. Теперь можно перейти к настройке.

Откройте config.json в любой удобной программе, можно в обычном блокноте.

Теперь откройте keygen.py, чтобы создать ключ шифрования. Скопируйте его

В server_ip укажите ip и порт вашего сервера:

"server_ip": "ip:порт",

В MESSAGE_ENCRYPTION_KEY вставьте ваш ключ, полученный из keygen.py:

"MESSAGE_ENCRYPTION_KEY": "ключ_из_keygen",

Cохраните файл.

Настройка завершена! Теперь передайте настройки вашему другу в ОФФЛАЙН режиме (на бумажке или на usb-накопителе). Не рекомендуется делать это через интернет.

Запуск

Теперь мессенджером можно пользоваться.

EnigmaIRC разбит на два окна. В одном вы отправляете сообщения, а в другом — читаете.

Запустите файлы sender.py и listener.py.

Далее вас с другом попросит ввести имя пользователя, каждый выбирает своё.

Далее вас попросит номер сессии. Это некое число, по которому мессенджер определяет, кто есть кто. Договоритесь с другом выбирать разные номера. К примеру, вы в оба ваших окна вводите номер сессии 0, а ваш друг — 1.

Готово! Теперь можно спокойно переписываться, не переживая о том, что за вами кто-то следит.

Linux

Чтобы установить клиент EnigmaIRC на Linux, вам необходимо установить Python версии 3.9+, а так же пакетный менеджер pip

Сначала обновите список пакетов:

sudo apt update 
sudo apt upgrade --yes

Далее установите Python 3, pip и git:

sudo apt install python3
sudo apt install python3-pip
sudo apt install git

Скопируйте к себе репозиторий EnigmaIRC:

git clone https://github.com/Dertfin3051/EnigmaIRC.git

Перейдите в папку с клиентом EnigmaIRC:

cd EnigmaIRC/client

Все необходимые дополнения программа установит сама при первом запуске

Настройка

Далее сгенерируйте ключ при помощи keygen.py:

python3 keygen.py

Откройте и настройте congig.json:

nano config.json

В server_ip укажите ip и порт вашего сервера:

"server_ip": "ip:порт",

В MESSAGE_ENCRYPTION_KEY вставьте ваш ключ, полученный из keygen.py:

"MESSAGE_ENCRYPTION_KEY": "ключ_из_keygen",

Далее в оффлайн форме передайте все эти параметры вашему будущему собеседнику, чтобы у вас были одинаковые конфиги.

Запуск

Программа разделена на 2 окна: окно для отправки сообщений и окно для их получения

В первом терминале запустите sender:

python3 sender.py

А во втором - listener:

python3 listener.py

Укажите в каждом окне никнейм и номер сессии. Номер сессии - это ваш временный id в этом чате. По разному id мессенджер отличает одного пользователя от другого.

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

Приятного использования!