Skip to content
This repository has been archived by the owner on Dec 13, 2024. It is now read-only.

pashokitsme/sberlinux-final

Repository files navigation

Оказывается, что бы реализовать что-то дельное с сетью, надо уметь работать с сетями 🤔

Изначально пошёл по вообще неверному пути, так как вообще не было представления о конечной реализации. Поэтому тут есть tun, а значит для запуска клиента нужно sudo, как и тестов. Потому что программа создаст сетевой интерфейс на время своей жизни. Зато сервер работает от обычного пользователя.

Реализовано:

  • Сервер прослушивает заданный в конфиге порт и парсит пакеты от клиента
  • Клиент подключается к серверу и отправляет пакеты
    • Каждые N секунд клиент отправляет пинг серверу, а тот отвечает
  • Перед авторизацией клиент и сервер обмениваются ключами; Используется chacha20poly1305
  • После авторизации пакеты шифруются при помощи сессионного ключа
  • Тесты коннекта клиента и сервера

Формально реализовано, но не протестировано:

  • Когда интерфейс получает данные, они отправляются определённым пакетом на сервер

Тесты на своей машине:

  • cargo test

Запустить:

  • sudo cargo run -- --config example-config.yml. На макоси интерфейсы должны начинаться с utun, на линуксе не тестировалось.
  • cargo run -- --config example-config.yml - запуск сервера

Запуск в докере:

  • docker compose up (Но увы, чё-то с ним не то :()

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published