Authelia: как я разобрался с хешами паролей и первым входом в админку

Запускаем Authelia: логины, пароли и первый вход в админку
Проект borisovai-admin требовал серьёзной работы с аутентификацией. Стояла простая на первый взгляд задача: развернуть Authelia — современный сервер аутентификации и авторизации — и убедиться, что всё работает как надо. Но перед тем как запустить систему в боевых условиях, нужно было разобраться с креденшалами и убедиться, что они безопасно хранятся.
Первым делом я заглянул в скрипт установки install-authelia.sh. Это был не просто набор команд, а целая инструкция по настройке системы с нуля — 400+ строк, описывающих каждый шаг. И там я нашёл ответ на главный вопрос: логин для Authelia — это просто admin, а пароль… вот тут начиналось интересное.
Оказалось, что пароль хранится в двух местах одновременно. В конфиге Authelia (/etc/authelia/users_database.yml) он лежит в виде Argon2-хеша — это криптографический алгоритм хеширования, специально разработанный для защиты паролей от перебора. Но на сервере управления (/etc/management-ui/auth.json) пароль хранится в открытом виде. Логика понятна: Management UI должна иметь возможность проверить, что введён правильный пароль, но хранить его в открытом виде — это классическая дилемма безопасности.
Неожиданно выяснилось, что это не баг, а фича. Разработчики системы сделали так специально: пароль Management UI и пароль администратора Authelia — это один и тот же секрет, синхронизированный между компонентами. Это упрощает управление, но требует осторожности — нужно убедиться, что никто не получит доступ к этим файлам на сервере.
Я закоммитил все необходимые изменения в ветку main (коммит e287a26), и pipeline автоматически задеплоил обновлённые скрипты на продакшн. Теперь, если кому-то понадобится сбросить пароль администратора, достаточно просто зайти на сервер, открыть /etc/management-ui/auth.json и посмотреть текущее значение. Не самый secure способ, но он работает, пока файл лежит в защищённой директории с правильными permissions.
Главный вывод: при работе с аутентификацией нет мелочей. Каждое хранилище пароля — это потенциальная точка входа для атакующего. Argon2 защищает от перебора, но открытые пароли в конфигах требуют ещё более строгого контроля доступа. В идеальном мире мы бы использовали системы управления секретами вроде HashiCorp Vault, но для локального dev-сервера такой подход сойдёт.
Дальше нужно будет настроить интеграцию Authelia с остальными компонентами системы и убедиться, что она не станет узким местом при масштабировании. Но это история для следующего поста.
😄 Что общего у Scala и подростка? Оба непредсказуемы и требуют постоянного внимания.
Метаданные
- Session ID:
- grouped_borisovai-admin_20260208_2247
- Branch:
- main
- Dev Joke
- Что общего у Scala и подростка? Оба непредсказуемы и требуют постоянного внимания
Часть потока:
Разработка: borisovai-admin