Для совместной работы с паролями есть относительно небольшой список программ. Я решил собрать в ТОП все более-менее известные и функциональные бесплатные программы такого типа для совместного хранения и использования паролей. Список будет состоять из публикаций по теме статьи в моём Telegram канале с обзором разных проектов.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Реклама ИП Скоромнов Д.А. ИНН 331403723315
Bitwarden
Один из самых известных продуктов, который можно установить на своём сервере. Ставится относительно быстро и просто, так как всё в Docker и запускается через Docker Compose. Подробная инструкция на сайте. Можно даже на винду поставить и должно нормально работать. В качестве базы данных там MSSQL. Из трудностей только то, что нельзя проверить без настройки подключения к SMTP серверу. Чтобы зарегистрироваться даже в своей локальной веб панели, необходимо отправить себе на почту email с подтверждением регистрации.
После этого можно ставить расширение в браузер, приложение на смартфон и везде использовать свои пароли, подключившись к своему серверу. Продукт open source, исходники на github. Там всё - сам сервер, приложения на десктопы и смартфоны, расширения для браузера. Если сильно переживаете за сохранность паролей, можете сами всё проверить и собрать.
Бесплатных аналогов подобной штуки не так много. Если кто-то пользовался, поделитесь тем, как оно. На вид всё круто и удобно. Только сервер нужен, смотрящий в интернет, если хочется отовсюду иметь доступ к паролям. А это уже как-то не очень безопасно. Либо только через VPN открывать. Больше всего интересно, насколько это удобно в одновременном использовании разными людьми для совместного доступа к паролям.
Забыл добавить, что помимо self-hosted версии, есть и облачная. Но советовать не могу. Сам не доверяю такому формату хранения паролей. Даже в браузерах их не сохраняю.
⇨ 🌐 Сайт / Обсуждение
Vaultwarden
По моим представлениям, самым популярным решением в этой области является Bitwarden. Многие ругают Bitwarden за то, что он тяжёлый и медленный, поэтому появился более легковесный форк, написанный на Rust - Vaultwarden. Раньше он назывался Bitwarden_RS, но авторы переименовались, чтобы не было путаницы, так как Vaultwarden напрямую с Bitwarden никак не связан.
Vaultwarden полностью копирует серверное API Bitwarden, так что все стандартные клиенты без проблем могут с ним работать. То есть это полная копия исходного сервера, которая требует меньше ресурсов для работы, и даёт более низкий отклик серверной части.
Поставить и попробовать проще всего через Docker:
# docker run -d --name vaultwarden -v /vw-data/:/data/ -p 80:80 vaultwarden/server:latest
Сервис без проблем прячется за обратный proxy, что может быть полезно с точки зрения безопасности и удобства управления доступом. В репозитории есть примеры настройки работы в таком режиме под все популярные веб серверы.
Если есть желание, можно собрать и поставить без Docker, но придётся немного повозиться. Нужно будет поставить Mysql или Postgresql, Rust, и собрать всё это в Cargo. Потом подготовить конфиг, написать unit для systemd. Так себе затея. В данном случае с докером гораздо проще и быстрее.
⇨ 🌐 Исходники / Обсуждение
Bearpass
Среди решений по совместному хранению паролей есть ещё один open source продукт, который заслуживает внимание. Речь пойдёт про российский Bearpass. Это собственная разработка российской компании, которая имеет бесплатную self-hosted версию с открытым исходным кодом, что не характерно для российских продуктов. Нечасто с этим сталкиваешься, поэтому я решил подсветить продукт и обратить на него внимание. Он присутствует в реестре отечественного ПО.
Основные возможности программы плюс-минус как у всех подобных продуктов.
🟢 Возможности бесплатной версии:
- роли и группы пользователей
- журналирование и контроль действий пользователей
- двухфакторная 2FA-авторизация
- проверка паролей на компрометацию через публичные базы данных
- администратор системы не видит пароли пользователей
🟡 Платная версия:
- расширения для браузеров
- предоставление паролей через временные или постоянные ссылки
- поддержка SSO и LDAP
- API
На сайте указано ограничение бесплатной версии - 5 пользователей. Не очень понимаю, как оно реализуется, так как эта версия поставляется в виде исходников, которые ты разворачиваешь у себя. По идее, ты можешь сам поменять код и убрать его.
Посмотреть на продукт можно в публичном ⇨ demo. Учётка: admin@demo.bearpass.ru / password.
Можно установить на своём сервере. Как обычно, проще всего это сделать через Docker, но есть возможность сделать это и вручную, так как продукт на писан на PHP и работает на стандартном стеке nginx + php-fpm + postgresql. Показываю, как быстро запустить через Docker:
# adduser bearpass # passwd bearpass # usermod -aG docker bearpass # mkdir /opt/bearpass # chmod -R 700 /opt/bearpass # chown -R bearpass:bearpass /opt/bearpass # su - bearpass $ git clone https://git.bearpass.ru/bear-pass /opt/bearpass/app $ git clone https://github.com/BearPass/Docker-core.git /opt/bearpass/docker $ cd /opt/bearpass/docker $ cp .env.example .env
Заполняем инвентарь в файле .env. У меня он получился вот такой для тестового сервера:
DATABASE_PASSWORD=password BEARPASS_URL=localhost BEARPASS_PORT=80 BEARPASS_SSL_PORT=443 BEARPASS_FULL_URL=http://10.20.1.36 USER_ID=1001 GROUP_ID=1001
1001 - id пользователя bearpass в системе. Посмотреть так:
# su - bearpass $ id uid=1001(bearpass) gid=1001(bearpass) groups=1001(bearpass),996(docker)
Запускаем проект:
# docker compose up -d
Дожидаемся запуска и создаём первого пользователя-администратора:
# docker compose exec -u www-data app sh -c "cd /var/www/bearpass && php artisan make:user"
Заполняете данные пользователя и логинитесь под ним в систему, зайдя по ip адресу сервера, где развернули bearpass.
☝️ У программы есть облачная версия BearPass Cloud. Для личного использования одним человеком она полностью бесплатна, так что можно без проблем попробовать, если не хочется разворачивать на своём сервере. Данные пользователя шифруются мастер-паролем. Техническая реализация описана на отдельный странице.
В общем и целом продукт оставляет положительное впечатление. Развитие и продвижение выполнено в привычном современном стиле, когда для персонального использования предлагают полную функциональность, а для команд ограниченную бесплатную версию или уже полную платную.
⇨ 🌐 Сайт / Обсуждение
Psono
Psono – полностью open source проект. Доступны исходники мобильных и обычных клиентов, а также сервера. Есть 2 редакции: Community Edition (CE) и Enterprise Edition (EE). Первая без ограничений, но функциональность низкая. Нет ни интеграции LDAP, ни логов аудита. Редакция EE всё это имеет, но бесплатна только для 10-ти пользователей. Дальше уже нужно лицензии на каждого пользователя приобретать.
Из особенностей Psono я заметил возможность встроенной интеграции с файловым хранилищем на базе различных технологий (s3, ftp, sftp и т.д.) для хранения зашифрованных файлов. Причём можно не только подключать что-то стороннее, но и поднимать свой psonofileserver с функционалом HA и Failover. Было удивительно всё это видеть в данном продукте. Если кто-то все это настраивал и использовал, то скажите, что это за решение. В чём его смысл и стоит ли пользоваться. Я не стал тратить время на его настройку и проверку.
Второй полезной особенностью является встроенная интеграция с сервисом haveibeenpwned.com, который позволяет автоматически проверять ваши пароли на нахождение в публичных базах. Также есть поддержка 2FA аутентификации с использованием в том числе ключей YubiKey.
Сам Psono достаточно просто поднимается в Docker. Но перед этим ему нужна будет база данных Postgresql. Я сначала начал всё это настраивать у себя, но когда поднял сервер, понял, что он выполняет роль только бэкенда. Далее нужно ставить отдельно клиент для администрирования (веб панель) и для пользователей (веб панель или приложение). Понял, что муторно всё это делать, и пошел регистрироваться в Demo. Там и посмотрел, как всё выглядит на практике.
Сначала прохладно отнёсся к Psono, но потом, когда вник в его структуру и особенности, он мне показался весьма интересным. Распределённая структура приложения будет скорее плюсом, чем минусом, особенно для больших распределённых команд. Удобнее настроить и ограничить доступ. Да и в целом разделение бэкенда и фронта для подобного продукта выглядит разумным подходом.
⇨ 🌐 Сайт / Обсуждение
Passbolt
Продолжаю тему хранения паролей для командной работы. На этот раз речь пойдет про известный сервис Passbolt. У него современный веб интерфейс и стандартный набор возможностей для подобных программ:
- Возможность установки на своем сервере
- Доступ к сервису на основе пользователей и групп
- Импорт, экспорт в csv, xls, kdbx (формат keepass)
- Расширение для браузера, встроенный CLI
- Работа с сервисом через Open API
Passbolt есть в бесплатной редакции и платной с дополнительным набором возможностей, таких как интеграция с LDAP, тэгирование записей, лог событий, поддержка и некоторые другие возможности.
Установка. Клонируем репозиторий с Docker Compose:
# git clone https://github.com/passbolt/passbolt_docker # cd passbolt_docker
Открываем файл env/passbolt.env и обязательно указываем ваш url. Без этого ничего не заработает. Я указал просто ip адрес тестовой машины:
APP_FULL_BASE_URL=https://192.168.13.171
После этого запускаем контейнеры:
# docker compose -d docker-compose.yml up
Дожидаемся запуска и создаем администратора, не выходя из директории репозитория, откуда запущен docker-compose.
# docker-compose exec passbolt su -m -c "/usr/share/php/passbolt/bin/cake passbolt register_user -u <your@email.com> -f <yourname> -l <surname> -r admin" -s /bin/sh www-data
Не забудьте указать свои данные. В консоль вам будет выдана некоторая информация, в том числе ссылка, вида:
https://192.168.13.171/setup/install/27942498-8aa3-4587-b105-1092d4c0c864/e3f1dc15-1b4e-4264-84c4-e480b96bf4c1
По ней нужно пройти и активировать учётную запись. Для этого нужно будет установить официальное расширение для браузера. После этого окажитесь в системе и можете начинать ей пользоваться.
Из всех систем, что я тестировал ранее, passbolt понравился больше всего. Тут и интерфейс современный, удобный. Живой проект с большим сообществом, хорошей документацией. Есть платная версия, которая теоретически должна обеспечивать поддержку и развитие проекта.
⇨ 🌐 Сайт / Обсуждение
KeePassXC
Рассказываю про ещё один инструмент для совместного хранения и использования паролей – KeePassXC. Это бесплатный мультиплатформенный форк известного KeePass, который я использую для своих паролей. Но при этом в KeePassXC есть уникальная функциональность под названием KeeShare.
С помощью KeeShare вы можете один и тот же файл с паролями, к которому есть общий доступ, открыть в разных клиентах KeePassXC. При этом есть возможность ограничивать доступ, настраивать параметры синхронизации этого файла. Он может быть доступен для остальных в режиме только чтения или обоюдной синхронизации.
Я попробовал всё это. Настраивается просто. Положил файл с паролями на сетевой диск, подключил его к разным клиентам как отдельную папку в существующем локальном хранилище. Одному в режиме записи, второму – чтения.
Внешний вид KeePassXC лично мне не понравился по сравнению с классическим KeePass. Но тут уж выбирать не приходится. Подобных возможностей лично я ни в одной другой программе (не сервисе) для хранения паролей не видел. Приходилось просто на общий диск класть файл и кричать на весь кабинет, чтобы отпустили файл, когда в него что-то записать нужно было.
⇨ 🌐 Сайт / Обсуждение
Padloc
Простой веб сервис на базе NodeJS для запуска своего сервера хранения и совместного использования паролей и других учётных данных. Отличительной особенностью является то, что есть приложение под все популярные системы. Проект представлен как виде облачного сервиса в том числе с бесплатным тарифным планом, так и в виде сервера, который можно установить у себя.
Установка Padloc выглядит примерно так:
# git clone git@github.com:padloc/padloc.git # cd padloc # npm ci # npm start
Можно идти на порт сервера 8080 и начинать работать. Какой-то отличительной функциональности у Padloc нет. Интерфейс выглядит аккуратно и современно.
⇨ 🌐 Сайт / Обсуждение
Syspass
Syspass – бесплатная система управлением паролями, написанная на PHP. Код открыт и доступен на github. Основная функциональность, которая требуется от подобной системы есть: шифрование, двухфакторная аутентификация, управление пользователями и группами, интеграция с AD и LDAP, API, аудит событий. На вид система вполне зрелая, большое сообщество. Доступен импорт паролей из KeePass! Есть русский язык.
Для знакомства проще всего запустить всё в докере. Есть готовый docker-compose (также есть deb и rpm пакеты):
# wget https://raw.githubusercontent.com/nuxsmin/docker-syspass/master/docker-compose.yml # docker compose -p syspass up -d
После запуска переходим на порт 49154 по https и создаём админскую учётку. В качестве пароля бд используется syspass, адрес сервера бд - syspass-db, по имени запущенного контейнера с базой данных.
Можно логиниться в систему и настраивать ее. Русский интерфейс неинтуитивен, лучше английскую версию использовать. Есть поддержка плагинов, но я не понял, где их можно взять.
⇨ 🌐 Сайт / Обсуждение
TeamPass
TeamPass - веб-портал для совместного хранения паролей. По своей сути это обычное web приложение на php. Исходники открыты, что важно для программ такого рода. Уточняю, что это именно для командной работы и совместного доступа. Одиночному пользователю нет никого смыла в этом приложении.
Есть поддержка русского языка. Чтобы быстро посмотреть и попробовать, можно запустить в докере:
# docker run --name teampass -d --restart always -v /var/teampass-data/www:/var/www/html -v /var/teampass-data/php_session:/var/php/session -p 9501:80 teampass/teampass
Выглядит неказисто, но программ подобного рода не так много, особенно бесплатных и с открытыми исходниками. В комментариях к заметкам о хранении паролей неоднократно упоминали этот инструмент. Сам я его не пробовал. Для небольших команд мне всегда хватало файла keepass на каком-то сетевом хранилище с совместным доступом. Но понятно, что у этого способа много минусов, а плюс только один - простота.
Для тех, кто будет пользоваться, напоминаю, что подобные приложения обязательно закрывать от внешнего доступа, желательно по спискам IP или хотя бы Basic Auth. Доверять только внутренней аутентификации пользователей нельзя.
⇨ 🌐 Сайт / Обсуждение
Заключение
Если считаете, что я упустил какую-то интересную и полезную программу, поделитесь информацией. Отдельно отмечу, что это подборка программ, для которых есть бесплатная версия, которую можно развернуть у себя и попробовать. Обзора коммерческих решений я не делал. Это отдельная тема для разговора, так как там и стоимости разные, в лоб не сравнить, и версия для самостоятельной установки не всегда можно свободно получить.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Реклама ИП Скоромнов Д.А. ИНН 331403723315