caddyproxy: HSTS для всех сайтов и мелкий хардненинг
- сниппет access_log переименован в common, туда добавлен заголовок Strict-Transport-Security на год; без includeSubDomains — под vakhrushev.me есть имена не с этого сервера - у edge-контейнера убрана capability NET_ADMIN, reverse-proxy её не требует - убран leftover-листенер :29999 у status.vakhrushev.me - задача caddy-hardening-nits удалена из беклога
This commit is contained in:
@@ -31,10 +31,12 @@ http://:2020 {
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
# Общие настройки всех сайтов: access-лог и HSTS.
|
||||
# Mode 644 lets read-only consumers (goaccess and ad-hoc host-side tail)
|
||||
# read the file; lumberjack would otherwise default to 0600.
|
||||
(access_log) {
|
||||
log {
|
||||
#
|
||||
# Лог общий для всех сайтов, его разбирает GoAccess. Mode 644 нужен, чтобы
|
||||
# файл читали потребители на хосте (goaccess и ad-hoc tail): lumberjack иначе
|
||||
# ставит 0600.
|
||||
(common) {
|
||||
log {
|
||||
output file /var/log/caddy/access.log {
|
||||
mode 644
|
||||
roll_size 100mib
|
||||
@@ -44,6 +46,12 @@ http://:2020 {
|
||||
format json
|
||||
}
|
||||
|
||||
# HSTS: браузер, однажды увидевший заголовок, целый год ходит на это имя только
|
||||
# по https, минуя редирект с http, — закрывает downgrade и SSL-strip.
|
||||
# Без includeSubDomains: политика по каждому имени своя, а под vakhrushev.me
|
||||
# есть поддомены не с этого сервера (например photo.vakhrushev.me).
|
||||
header Strict-Transport-Security "max-age=31536000"
|
||||
}
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# Applications
|
||||
@@ -52,7 +60,7 @@ http://:2020 {
|
||||
vakhrushev.me {
|
||||
tls anwinged@ya.ru
|
||||
import common
|
||||
|
||||
|
||||
# Matrix federation delegation: tells other servers/clients that the
|
||||
# homeserver for vakhrushev.me lives at matrix.vakhrushev.me.
|
||||
# https://spec.matrix.org/latest/server-server-api/#server-discovery
|
||||
@@ -80,7 +88,7 @@ vakhrushev.me {
|
||||
start.vakhrushev.me {
|
||||
tls anwinged@ya.ru
|
||||
import common
|
||||
|
||||
|
||||
forward_auth authelia_app:9091 {
|
||||
uri /api/authz/forward-auth
|
||||
copy_headers Remote-User Remote-Groups Remote-Email Remote-Name
|
||||
@@ -94,7 +102,7 @@ start.vakhrushev.me {
|
||||
matrix.vakhrushev.me {
|
||||
tls anwinged@ya.ru
|
||||
import common
|
||||
|
||||
|
||||
reverse_proxy {
|
||||
to tuwunel_app:6167
|
||||
}
|
||||
@@ -103,14 +111,14 @@ matrix.vakhrushev.me {
|
||||
auth.vakhrushev.me {
|
||||
tls anwinged@ya.ru
|
||||
import common
|
||||
|
||||
reverse_proxy authelia_app:9091
|
||||
|
||||
reverse_proxy authelia_app:9091
|
||||
}
|
||||
|
||||
status.vakhrushev.me {
|
||||
tls anwinged@ya.ru
|
||||
tls anwinged@ya.ru
|
||||
import common
|
||||
|
||||
|
||||
forward_auth authelia_app:9091 {
|
||||
uri /api/authz/forward-auth
|
||||
copy_headers Remote-User Remote-Groups Remote-Email Remote-Name
|
||||
@@ -122,7 +130,7 @@ status.vakhrushev.me, :29999 {
|
||||
git.vakhrushev.me {
|
||||
tls anwinged@ya.ru
|
||||
import common
|
||||
|
||||
|
||||
reverse_proxy {
|
||||
to gitea_app:3000
|
||||
}
|
||||
@@ -131,7 +139,7 @@ git.vakhrushev.me {
|
||||
outline.vakhrushev.me {
|
||||
tls anwinged@ya.ru
|
||||
import common
|
||||
|
||||
|
||||
reverse_proxy {
|
||||
to outline_app:3000
|
||||
}
|
||||
@@ -140,7 +148,7 @@ outline.vakhrushev.me {
|
||||
gramps.vakhrushev.me {
|
||||
tls anwinged@ya.ru
|
||||
import common
|
||||
|
||||
|
||||
reverse_proxy {
|
||||
to gramps_app:5000
|
||||
}
|
||||
@@ -149,7 +157,7 @@ gramps.vakhrushev.me {
|
||||
miniflux.vakhrushev.me {
|
||||
tls anwinged@ya.ru
|
||||
import common
|
||||
|
||||
|
||||
# /metrics наружу не отдаём. METRICS_ALLOWED_NETWORKS тут не помогает: за
|
||||
# прокси Miniflux видит приватный IP контейнера Caddy, а не адрес клиента.
|
||||
# Netdata скрейпит miniflux_app:8080/metrics напрямую по докер-сети, мимо Caddy.
|
||||
@@ -167,7 +175,7 @@ miniflux.vakhrushev.me {
|
||||
wakapi.vakhrushev.me {
|
||||
tls anwinged@ya.ru
|
||||
import common
|
||||
|
||||
|
||||
reverse_proxy {
|
||||
to wakapi_app:3000
|
||||
}
|
||||
@@ -176,7 +184,7 @@ wakapi.vakhrushev.me {
|
||||
wanderer.vakhrushev.me {
|
||||
tls anwinged@ya.ru
|
||||
import common
|
||||
|
||||
|
||||
reverse_proxy {
|
||||
to wanderer_web:3000
|
||||
}
|
||||
@@ -185,7 +193,7 @@ wanderer.vakhrushev.me {
|
||||
memos.vakhrushev.me {
|
||||
tls anwinged@ya.ru
|
||||
import common
|
||||
|
||||
|
||||
reverse_proxy {
|
||||
to memos_app:5230
|
||||
}
|
||||
@@ -196,7 +204,7 @@ memos.vakhrushev.me {
|
||||
tududi.vakhrushev.me {
|
||||
tls anwinged@ya.ru
|
||||
import common
|
||||
|
||||
|
||||
reverse_proxy {
|
||||
to tududi_app:3002
|
||||
}
|
||||
@@ -205,7 +213,7 @@ tududi.vakhrushev.me {
|
||||
remembos.vakhrushev.me {
|
||||
tls anwinged@ya.ru
|
||||
import common
|
||||
|
||||
|
||||
forward_auth authelia_app:9091 {
|
||||
uri /api/authz/forward-auth
|
||||
copy_headers Remote-User Remote-Groups Remote-Email Remote-Name
|
||||
@@ -219,7 +227,7 @@ remembos.vakhrushev.me {
|
||||
calibre.vakhrushev.me {
|
||||
tls anwinged@ya.ru
|
||||
import common
|
||||
|
||||
|
||||
reverse_proxy {
|
||||
to calibre_web_app:8083
|
||||
}
|
||||
@@ -228,7 +236,7 @@ calibre.vakhrushev.me {
|
||||
wanderbase.vakhrushev.me {
|
||||
tls anwinged@ya.ru
|
||||
import common
|
||||
|
||||
|
||||
forward_auth authelia_app:9091 {
|
||||
uri /api/authz/forward-auth
|
||||
copy_headers Remote-User Remote-Groups Remote-Email Remote-Name
|
||||
@@ -242,7 +250,7 @@ wanderbase.vakhrushev.me {
|
||||
rssbridge.vakhrushev.me {
|
||||
tls anwinged@ya.ru
|
||||
import common
|
||||
|
||||
|
||||
forward_auth authelia_app:9091 {
|
||||
uri /api/authz/forward-auth
|
||||
copy_headers Remote-User Remote-Groups Remote-Email Remote-Name
|
||||
@@ -256,7 +264,7 @@ rssbridge.vakhrushev.me {
|
||||
dozzle.vakhrushev.me {
|
||||
tls anwinged@ya.ru
|
||||
import common
|
||||
|
||||
|
||||
forward_auth authelia_app:9091 {
|
||||
uri /api/authz/forward-auth
|
||||
copy_headers Remote-User Remote-Groups Remote-Email Remote-Name Remote-Filter
|
||||
@@ -276,7 +284,7 @@ dozzle.vakhrushev.me {
|
||||
{{ goatcounter_sites | join(', ') }} {
|
||||
tls anwinged@ya.ru
|
||||
import common
|
||||
|
||||
|
||||
reverse_proxy {
|
||||
to goatcounter_app:8080
|
||||
}
|
||||
@@ -285,7 +293,7 @@ dozzle.vakhrushev.me {
|
||||
goaccess.vakhrushev.me {
|
||||
tls anwinged@ya.ru
|
||||
import common
|
||||
|
||||
|
||||
forward_auth authelia_app:9091 {
|
||||
uri /api/authz/forward-auth
|
||||
copy_headers Remote-User Remote-Groups Remote-Email Remote-Name
|
||||
@@ -305,7 +313,7 @@ goaccess.vakhrushev.me {
|
||||
bifrost.vakhrushev.me {
|
||||
tls anwinged@ya.ru
|
||||
import common
|
||||
|
||||
|
||||
forward_auth authelia_app:9091 {
|
||||
uri /api/authz/forward-auth
|
||||
copy_headers Remote-User Remote-Groups Remote-Email Remote-Name
|
||||
|
||||
@@ -7,8 +7,6 @@ services:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
- "443:443/udp"
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
volumes:
|
||||
- "{{ caddy_file_dir }}:/etc/caddy"
|
||||
- "{{ data_dir }}:/data"
|
||||
|
||||
Reference in New Issue
Block a user