1、安装Bunkerweb
docker run -d \
--name bunkerweb-aio \
--restart unless-stopped \
--network lite_net \
-v bw-storage:/data \
-p 7000:7000 \
-p 8088:8088/tcp \
-p 9443:9443/tcp \
-p 9443:9443/udp \
--log-opt max-size=50m \
--log-opt max-file=3 \
-e WORKER_PROCESSES=auto \
-e WORKER_CONNECTIONS=4096 \
-e WORKER_RLIMIT_NOFILE=65535 \
-e DNS_RESOLVERS=127.0.0.11 \
bunkerity/bunkerweb-all-in-one:1.6.14
2、安装Authelia
获取安装文件:
git clone https://github.com/authelia/authelia.git
切换目录:
cd authelia
校验信息:
git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
切换安装目录
cd examples/compose/lite
默认帐号和密码:
The default password is .users_database.yml authelia authelia
生成key:
openssl rand -hex 16
compose.yml文件只留Authelia和redis,其他的Traefik相关的不用安装。如果计算机有安装redis,安装这个的时侯就需要改名,包括configuration.yml(在这个路径/opt/authelia/examples/compose/lite/authelia),如下图,改为auth-redis.
redis:
host: 'auth-redis'
port: 6379
# This secret can also be set using the env variables AUTHELIA_SESSION_REDIS_PASSWORD_FILE
# password: authelia
3、配置Bunkerweb
进入Bunkerweb-service,找到需要配置认证的站点,点击编辑,如下图,选高级

第一步,找到Limit,把Activate limit requests关掉,Limit request Rate改为40r,这样可以加下访问量。
第二步,找到Reverse proxy,找到Multiple Settings,如下图,写入以下值

Reverse proxy
Reverse proxy host:http://192.168.2.119:33333 (备注:需要认证的内网地址)
Reverse proxy url:/
Reverse proxy auth request:/authelia
Auth request signin URL:https://auth.198388.xyz:9443/?rd=$scheme://$http_host$request_uri (Authelia外网访问地址)
Reverse proxy auth request set:$user $upstream_http_remote_user;$groups $upstream_http_remote_groups;$name $upstream_http_remote_name;$email $upstream_http_remote_email
Reverse proxy pass request body:开启
新增Reverse proxy1:
Reverse proxy host:http://authelia:9091/api/authz/auth-request (Authelia内部docker地址)
Reverse proxy url:/authelia
Reverse proxy headers:X-Original-Method $request_method;X-Original-URL $scheme://$host$request_uri;X-Forwarded-For $remote_addr;Content-Length "";Connection ""
Reverse proxy auth request:留空
Auth request signin URL:留空
Reverse proxy pass request body:开启
以下是正确的RAW:
IS_DRAFT=no
SERVER_NAME=1p.198388.xyz
USE_TEMPLATE=low
BAD_BEHAVIOR_THRESHOLD=30
BAD_BEHAVIOR_BAN_TIME=3600
USE_CORS=yes
CORS_ALLOW_ORIGIN=*
CUSTOM_SSL_CERT_PRIORITY=data
CUSTOM_SSL_CERT=/data/cache/letsencrypt/etc/live/198388.xyz/fullchain.pem
CUSTOM_SSL_KEY=/data/cache/letsencrypt/etc/live/198388.xyz/privkey.pem
USE_DNSBL=no
GZIP_PROXIED=expired no-cache no-store private auth
KEEP_UPSTREAM_HEADERS=*
CONTENT_SECURITY_POLICY=
REFERRER_POLICY=no-referrer-when-downgrade
PERMISSIONS_POLICY=
COOKIE_FLAGS=* SameSite=Lax
AUTO_LETS_ENCRYPT=yes
[email protected]
LETS_ENCRYPT_CHALLENGE=dns
LETS_ENCRYPT_DNS_PROVIDER=cloudflare
USE_LETS_ENCRYPT_WILDCARD=yes
LETS_ENCRYPT_DNS_CREDENTIAL_ITEM=api_token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
USE_LIMIT_REQ=no
LIMIT_CONN_MAX_HTTP1=25
LIMIT_CONN_MAX_HTTP2=200
LIMIT_CONN_MAX_HTTP3=200
LIMIT_REQ_RATE=40r/s
ALLOWED_METHODS=GET|POST|HEAD|OPTIONS|PUT|DELETE|PATCH|QUERY
MAX_CLIENT_SIZE=100m
USE_REVERSE_PROXY=yes
REVERSE_PROXY_HOST=http://192.168.2.119:31220
REVERSE_PROXY_AUTH_REQUEST=/authelia
REVERSE_PROXY_AUTH_REQUEST_SIGNIN_URL=https://auth.198388.xyz:9443/?rd=$scheme://$http_host$request_uri
REVERSE_PROXY_AUTH_REQUEST_SET=$user $upstream_http_remote_user;$groups $upstream_http_remote_groups;$name $upstream_http_remote_name;$email $upstream_http_remote_email
REVERSE_PROXY_HOST_1=http://authelia:9091/api/authz/auth-request
REVERSE_PROXY_URL_1=/authelia
REVERSE_PROXY_HTTP_VERSION_1=1.0
REVERSE_PROXY_HEADERS_1=X-Original-Method $request_method;X-Original-URL $scheme://$host$request_uri;X-Forwarded-For $remote_addr;Content-Length "";Connection ""
REDIRECT_HTTP_TO_HTTPS=yes
USE_UI=yes
4、解决Bunkerweb服务站点跳转https
找到如图的配置,新建全局配置,配置类型选择server_http,配置文件取名任意,内容如下:error_page 497 301 =307 https://$host:9443$request_uri;
因为Bunkerweb容器端口是8443,如没有锁定9443,它会自动跳到8443,好了,解决了

技术杂货铺博客
搜索
Bunkerweb结合Authelia认证
本文著作权归作者 [ timsom ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
