first commit
This commit is contained in:
commit
2eb8aac027
91 files changed
+20139
No files matched your search
+50
@@ -0,0 +1,50 @@
|
||||
# Security model
|
||||
|
||||
## Domyslne zasady
|
||||
|
||||
- Panel nasluchuje domyslnie tylko na `127.0.0.1`.
|
||||
- Produkcyjny cookie sesji: `Secure`, `HttpOnly`, `SameSite=Strict`.
|
||||
- Kazda mutacja po zalogowaniu wymaga CSRF.
|
||||
- Sesje/challenge MFA maja losowe tokeny kryptograficzne.
|
||||
- Logowanie i recovery sa limitowane per IP + konto.
|
||||
- CSP nie zawiera `unsafe-inline` ani `unsafe-eval`; dodatkowo nosniff, frame deny, no-referrer i ograniczony Permissions-Policy.
|
||||
- Request body i timeout sa limitowane.
|
||||
|
||||
## Development mock DB
|
||||
|
||||
`database.dev_mock=true` jest akceptowane tylko z `environment="development"` i SQLite. `dev.sh` tworzy `.dev/postfixadmin-rs.sqlite` z publicznymi testowymi credentialami. Tego pliku ani tych kont nie wolno przenosic do produkcji; `.dev/` jest ignorowane przez Git i nie trafia do paczki release.
|
||||
|
||||
## Legacy hasla
|
||||
|
||||
Formaty MD5, SHA1, DES, cleartext i podobne sa wspierane tylko dla zgodnosci. Nie nalezy automatycznie migrowac mailbox hashy do Argon2, jesli Dovecot/Postfix SASL nie obsluguje tego samego schematu.
|
||||
|
||||
Weryfikator rozpoznaje samopisujace hashe i moze obslugiwac mieszana baze podczas migracji. Nowe hashe sa generowane przez `password.scheme`. Recovery tokeny sa zawsze Argon2id i nie dziedzicza legacy schematu.
|
||||
|
||||
Fallback `doveadm pw` nie uzywa shella. Haslo jest przekazywane przez stdin, nie przez argv procesu.
|
||||
|
||||
## Hooki
|
||||
|
||||
Hook to lista `[program, arg1, arg2, ...]`. Program jest wykonywany bez `sh -c`; placeholdery sa podstawiane jawnie. `allow_legacy_shell_hooks` nie wlacza arbitralnej powloki.
|
||||
|
||||
## Alias i fetchmail
|
||||
|
||||
Niebezpieczne cele aliasow (pipe/command) sa domyslnie blokowane. `fetchmail_extra_options=false` blokuje arbitrary MDA/extra options.
|
||||
|
||||
## Sekrety
|
||||
|
||||
Hasla DB/SMTP trzymaj poza TOML, np.:
|
||||
|
||||
```bash
|
||||
POSTFIXADMIN_RS__DATABASE__PASSWORD='...'
|
||||
POSTFIXADMIN_RS__SMTP__PASSWORD='...'
|
||||
```
|
||||
|
||||
Nie commituj `.env`.
|
||||
|
||||
## Reverse proxy i IP
|
||||
|
||||
Obecna wersja uzywa bezposredniego TCP peer do rate limit i TOTP exception. Za reverse proxy nie wlaczaj TOTP IP exceptions, dopoki nie ma jawnie skonfigurowanego trusted-proxy header handling.
|
||||
|
||||
## Deployment
|
||||
|
||||
Uruchamiaj jako dedykowany, nieuprzywilejowany user. Przyznaj tylko potrzebny dostep do `doveadm`, `openssl`, `mysqldump`/`pg_dump` i wymaganych socketow/uslug. Nie uruchamiaj jako root.
|
||||
Reference in new issue
Block a user