Установка TeamPass на Debian 10 и защита через Let's Encrypt
Краткое описание
TeamPass — веб‑приложение для совместного управления паролями с разграничением ролей. Хранит данные в MariaDB/MySQL и использует библиотеку Defuse PHP Encryption для шифрования. Руководство покрывает типовую установку и основные этапы повышения безопасности.
Кому это нужно
- Системным администраторам, которые хотят выделенный менеджер паролей для команды.
- Командам, которым нужен self‑hosted вариант для контроля данных.
Требования
- Сервер с Debian 10 (buster).
- Домен, указывающий на IP сервера (в примерах используется teampass.example.com).
- Доступ root или пользователь с sudo.
Терминология (одна строка)
- TeamPass: веб‑менеджер паролей; Certbot: клиент для Let’s Encrypt; MariaDB: форк MySQL; LAMP: стек Apache+MariaDB+PHP.
1. Подготовка системы
Обновите пакеты и перезапустите систему при необходимости.
apt-get update -y
apt-get upgrade -yВажно: перед установкой убедитесь, что у вас есть резервные копии важных данных и доступ по SSH.
2. Установка LAMP и зависимостей
Установим Apache, MariaDB, PHP и необходимые расширения:
apt-get install apache2 mariadb-server php php-cli libapache2-mod-php php-mysql php-curl php-mbstring php-bcmath php-common php-gd php-xml git wget -yПосле установки откройте конфигурационный файл PHP для Apache и измените параметры под большую нагрузку/размеры файлов (пример для PHP 7.3):
nano /etc/php/7.3/apache2/php.iniИзмените (или добавьте) значения:
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = Asia/KolkataПримечание: date.timezone — установите ваш часовой пояс, например Europe/Moscow.
После изменений перезапустите Apache:
systemctl restart apache23. Настройка MariaDB
Для безопасности рекомендуем выполнить интерактивный помощник, затем задать пароль root и создать базу данных.
Запустите безопасную настройку:
mysql_secure_installationВойдите в консоль MariaDB:
mysqlВыполните команды для задания пароля root (замените yournewpassword) и создания БД/пользователя для TeamPass:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD("yournewpassword");
create database teampassdb;
grant all privileges on teampassdb.* to 'tpuser'@'localhost' identified by "password";
flush privileges;
exit;Совет: используйте надёжный пароль и храните его в менеджере секретов.
4. Загрузка TeamPass
Клонируем репозиторий в корень веб‑сервера и задаём права:
cd /var/www/html
git clone https://github.com/nilsteampassnet/TeamPass.git
chown -R www-data.www-data /var/www/html/TeamPass/
chmod -R 775 /var/www/html/TeamPass/Проверка: в браузере по адресу http://ваш-домен должно быть видно содержимое каталога (или 403, если нет индекса). После настройки виртуального хоста доступ будет корректен.
5. Конфигурация Apache для TeamPass
Создайте виртуальный хост:
nano /etc/apache2/sites-available/teampass.confДобавьте конфигурацию (замените ServerAdmin и ServerName на ваши значения):
ServerAdmin [email protected]
DocumentRoot /var/www/html/TeamPass
ServerName teampass.example.com
Options FollowSymlinks
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/teampass_error.log
CustomLog ${APACHE_LOG_DIR}/teampass_access.log combined
Активируйте сайт и перезапустите Apache:
a2ensite teampass
systemctl restart apache2Если у вас включён firewall (ufw), разрешите HTTP/HTTPS:
ufw allow 80/tcp
ufw allow 443/tcp6. Защита сертификатом Let’s Encrypt (Certbot)
Установим Certbot из backports и получим SSL‑сертификат:
echo "deb http://ftp.debian.org/debian buster-backports main" >> /etc/apt/sources.list
apt-get update -y
apt-get install python-certbot-apache -t buster-backportsЗапуск certbot для автоматической конфигурации Apache:
certbot --apache -d teampass.example.comВ интерактивном режиме примите условия и укажите email. Certbot предложит перенаправлять трафик с HTTP на HTTPS — для публичных сайтов выбирайте Redirect (2).
Автоматическое обновление сертификатов выполняется командой:
certbot renew --dry-runЧтобы обновление было автоматическим, systemd unit и таймер обычно создаются автоматически при установке пакета Certbot. Дополнительно можно добавить cron/task:
0 3 * * * /usr/bin/certbot renew --quietВажно: убедитесь, что бэкапите /etc/letsencrypt — там хранятся ключи и учётные записи.
7. Запуск веб‑установщика TeamPass
Откройте в браузере https://teampass.example.com. Вы увидите установочный интерфейс TeamPass.

Следуйте шагам в веб‑мастере: проверка сервера, подключение к БД, создание таблиц, создание администратора.




После успешного создания таблиц и финализации установщика вы попадёте на главную страницу TeamPass и сможете войти под админом.



8. Базовые меры безопасности и жёсткая конфигурация
- Ограничьте доступ к управлению сервером через SSH (ключи, отключите root login по паролю).
- Храните резервные копии каталога /var/www/html/TeamPass и дампа БД (mysqldump).
Пример резервного копирования БД:
mysqldump -u tpuser -p teampassdb > /root/teampassdb-$(date +%F).sqlПример восстановления:
mysql -u tpuser -p teampassdb < /root/teampassdb-YYYY-MM-DD.sql- Ограничьте права файлов: каталогу конфигураций — 640/750 по необходимости.
- Регулярно обновляйте систему и PHP‑модули.
- Храните /etc/letsencrypt в зашифрованном резерве.
9. Резервное копирование и план восстановления (мини‑SOP)
- Остановите Apache: systemctl stop apache2
- Сделайте дамп БД: mysqldump …
- Архивируйте каталог TeamPass: tar -czf /root/teampass-www-$(date +%F).tgz /var/www/html/TeamPass
- Скопируйте на внешний носитель или в облако.
- Проверьте целостность архива и дампа.
10. Обновление и миграция
- При обновлении TeamPass проверяйте совместимость версии PHP и расширений.
- Тестируйте обновление на копии базы и веб‑каталога перед переносом на прод.
11. Отладка распространённых проблем
- Ошибка 500: проверьте логи Apache (/var/log/apache2/teampass_error.log) и права файлов.
- Проблемы с подключением к БД: проверьте host, user, пароль, привилегии и SELinux/AppArmor (на Debian обычно отключены).
- SSL: если certbot не может верифицировать домен — проверьте A-запись DNS и доступность порта 80.
Контрольный чеклист перед вводом в эксплуатацию
- Домен указывает на сервер
- Сертификат Let’s Encrypt выдан и работает
- Настроен пользователь и пароль MariaDB
- Сделана резервная копия веб‑каталога и БД
- Ограничен доступ к SSH
- Развернут мониторинг/резервные звонки на случай просрочки сертификата
Роли и обязанности (кто что делает)
- Системный администратор: установка OS/пакетов, бэкапы, безопасность сервера.
- DBA/оператор БД: управление MariaDB, бэкапы, производительность.
- Администратор TeamPass: управление ролями пользователей, аудит доступа в приложении.
Критерии приёмки
- Приложение доступно по HTTPS без предупреждений браузера.
- Пользователь с ролью admin может войти и создать запись пароля.
- Успешный дамп/восстановление БД на тестовой машине.
- Наличие плана резервного копирования и теста восстановления.
Короткая памятка по безопасности
- Регулярно проверяйте обновления TeamPass и PHP.
- Ограничьте доступ к панели администратора по IP (если возможно).
- Включите двухфакторную аутентификацию в TeamPass, если есть поддержка.
Глоссарий (1 строка)
- Certbot: клиент для автоматического получения сертификатов Let’s Encrypt.
Заключение
Вы успешно установили TeamPass и настроили базовую защиту через Let’s Encrypt. Следуйте чеклисту, регулярно делайте бэкапы и обновляйте систему. Для корпоративной эксплуатации рассмотрите выделение отдельного хоста базы, аудит доступа и периодический аудит конфигураций.
Важно: всегда тестируйте изменения на копии окружения перед применением в продакшене.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента