Authelia
Authelia 是一个开源的身份验证和授权服务器,通过 Web 门户为应用程序提供双因素身份验证和单点登录 (SSO) 功能。它作为 nginx、Caddy、Traefik 或 HAProxy 等反向代理的伴侣,用于强制执行访问控制策略。
安装
安装以下软件包之一
- autheliaAUR - 从源码构建
- authelia-binAUR - 预编译二进制文件
这两个软件包都会创建 authelia 系统用户和组。
配置
软件包提供的结构
软件包会创建 /etc/authelia/ 用于存放配置文件,并安装 tmpfiles.d 配置来管理权限。
/usr/lib/tmpfiles.d/authelia.tmpfiles.conf
#Type Path Mode User Group Age Argument Z /etc/authelia/* 0640 authelia authelia - - e /etc/authelia 0755 authelia authelia - -
/usr/lib/tmpfiles.d/authelia.tmpfiles.config.conf
#Type Path Mode User Group Age Argument f /etc/authelia/configuration.yml 0440 authelia authelia - - Z /etc/authelia/configuration.*.yml 0440 authelia authelia - - Z /etc/authelia/configuration.yml.* 0440 authelia authelia - -
将您的主要 Authelia 配置放在 /etc/authelia/configuration.yml。有关配置选项,请参阅 Authelia 文档。
基于文件的存储推荐目录结构
Authelia 支持多种存储提供商和身份验证后端选项。简单的开发设置可以使用 sqlite3 作为存储,并使用 yaml 文件作为用户数据库。这种基于文件的设置不支持高可用性场景。生产场景应使用 RDBMS(如 Postgresql)和 LDAP 服务器来支持高可用性。
遵循 文件系统层次标准,如果打算使用 Authelia 的基于文件的存储选项,建议将配置与运行时应用程序数据分开。
- 配置 (静态):
/etc/authelia/ - 应用程序数据 (运行时状态):
/var/lib/authelia/
设置数据目录
创建数据目录
# mkdir -p /var/lib/authelia # chown authelia:authelia /var/lib/authelia # chmod 0750 /var/lib/authelia
要使用 SQLite 作为存储,请在 /etc/authelia/configuration.yml 中配置数据库路径。
/etc/authelia/configuration.yml
storage:
local:
path: /var/lib/authelia/db.sqlite3
要使用基于文件的用户数据库,您也可以将其放在 /var/lib/authelia/。
/etc/authelia/configuration.yml
authentication_backend:
file:
path: /var/lib/authelia/users_database.yml
使用 tmpfiles.d 进行安全加固
为确保跨重启和系统更新期间正确维护权限,请为 /var/lib/authelia/ 创建一个 tmpfiles.d 配置。
/etc/tmpfiles.d/authelia.conf
#Type Path Mode User Group Age Argument # Application data directory d /var/lib/authelia 0750 authelia authelia - - z /var/lib/authelia/db.sqlite3 0640 authelia authelia - - z /var/lib/authelia/users_database.yml 0640 authelia authelia - -
z 可以在不递归的情况下设置特定文件的权限,避免目录遍历问题。立即应用配置
# systemd-tmpfiles --create /etc/tmpfiles.d/authelia.conf
用法
启动/启用 authelia.service。
检查服务状态
# systemctl status authelia
查看日志
# journalctl -u authelia -f
故障排除
权限被拒绝错误
如果 Authelia 在启动时因权限错误而失败,请确保
authelia用户对配置文件具有读取权限。authelia用户对数据目录具有读取/写入权限。- 目录权限包括目录的执行位 (
+x)。
手动修复权限
# chown -R authelia:authelia /etc/authelia /var/lib/authelia # chmod 0750 /etc/authelia /var/lib/authelia # chmod 0640 /etc/authelia/configuration.yml # chmod 0640 /var/lib/authelia/*
然后重新应用 tmpfiles 配置。
# systemd-tmpfiles --create
配置验证
在启动服务之前验证您的配置。
# authelia validate-config --config /etc/authelia/configuration.yml