Безопасный чат туннель
Я хочу создать безопасный чат и туннель через терминал Ubuntu или что-то вроде netcat
(nc -l 1234
) но netcat не зашифрован.
2 ответа
Вы можете туннелировать трафик через SSH:
На хосте 1
$ nc -l 127.0.0.1 1234
На host2
$ ssh host1 -L 1234:localhost:1234 $ nc localhost 1234
ssh
Команда перенаправляет все TCP-соединения с порта host2 1234 на один порт host1.
Обратите внимание, что ниже вы должны будете применить какой-то особый соус, но если вы посмотрите журналы сборки проекта, над которым я работаю, для шифрования GnuPG и, в частности, сценария для sshfs, вы можете найти нужные вам функции.
Ответ Eero Aaltonen по-прежнему полностью действителен и, вероятно, лучше для простых одноразовых подключений. Но если вы хотите что-то с GnuPG, то вышеупомянутый проект предоставляет интерфейсы шифрования, необходимые для этого, в основном.
Чтобы лучше ориентироваться, если вы хотите использовать вышеуказанный проект, вот несколько советов по изменению связанного сценария для поведения чата с несколькими получателями.
Var_gpg_recipient_options
переменная должна быть добавлена с дополнительными получателями, как показано ниже
Paranoid_Pipes.sh Var_gpg_recipient_options="${Var_gpg_recipient_options} --recipient second-user@host.domain" --help
Настройте другие параметры и удалите --help
и это касается зашифрования, передача выходного файла нескольким клиентам не может быть выполнена с помощью netcat, но у php есть способ его обслуживания.
php -S <Local_IP>:8080 -t /var/enc/chat
И хотя существует множество способов подачи обновленных сообщений в файл, исходный код PHP- кода, размещенный на Google Code, выглядит как многообещающее место для начала доставки последних нескольких сообщений клиентам, которые они могут извлекать и дешифровать локально.
Последнее - это настройка клиентских подключений, которые расшифровываются, есть вспомогательный скрипт, который был написан для массовой расшифровки, уже предоставленный. Клиенты должны установить соединение, как показано ниже, чтобы выгрузить обслуживаемые зашифрованные данные в доступное местоположение (на данный момент, но работа над расшифровкой по именованным каналам уже ведется;-)) Подсказка, о которой вы хотите знать /dev/tcp/host/port
(/dev/tcp/<serving_IP>/8080
) пути, которые можно использовать как файловые дескрипторы... как я уже говорил, требуется немного особого соуса. Но это очень близко к тому, чтобы быть полным решением с вышеупомянутым и некоторой изобретательностью, у вас могли бы быть частные чаты, которые защищены гибридным шифрованием GnuPG и доступны только для тех, кому требуются закрытые ключи.
Обратите внимание, что приведенное выше является экспериментальным и не должно использоваться с первичными ключами, поэтому ищите вспомогательный скрипт для быстрой генерации новых ключей тестирования.
Изменения / Обновления
Хотя вышеприведенное все еще может работать, второй версии, вероятно, потребуется значительно меньше специального соуса, потому что труба к трубе и другие функции были решены, проверьте журналы сборки, упомянутые ранее, чтобы увидеть его в действии.