74 lines
5.2 KiB
Markdown
74 lines
5.2 KiB
Markdown
# Zgodnosc z PostfixAdmin
|
|
|
|
Stan: **0.0.2**. Celem jest replacement runtime PHP z zachowaniem istniejacej bazy PostfixAdmin i SQL map uzywanych przez Postfix/Dovecot.
|
|
|
|
| Obszar | Stan | Uwagi |
|
|
|---|---|---|
|
|
| Admin / global-admin / domain-admin | gotowe | Uprawnienia wymuszane w backendzie |
|
|
| Mailbox user login | gotowe | Tabela `mailbox` |
|
|
| Domeny CRUD | gotowe | Limity, quota, transport, backup MX |
|
|
| Mailbox CRUD | gotowe | Maildir, quota, self-alias, welcome mail, hooki |
|
|
| Aliasy CRUD | gotowe | Store-and-forward, special aliases, limity |
|
|
| Bulk delete inactive forwards | gotowe | Z ochrona mailbox self-alias i special aliases |
|
|
| Alias domains | gotowe | Kontrola lancuchow/cykli |
|
|
| Admin preferences | gotowe | W tym domyslny cel aliasu |
|
|
| Status aliasow | gotowe | undeliverable/external/POP-IMAP/vacation/disabled/expired/custom |
|
|
| Fetchmail | gotowe | Stary i nowszy wariant tabeli; MDA/extra options tylko gdy wlaczone |
|
|
| Vacation | gotowe | User/admin control |
|
|
| Logging | gotowe | Tabela `log` |
|
|
| Send mail / broadcast | gotowe | Mailbox-only lub aktywne cele aliasow |
|
|
| Backup | gotowe | `mysqldump` / `pg_dump` / SQLite; sekret MySQL poza argv |
|
|
| Quota / domain quota | gotowe | Zgodne z multiplierem |
|
|
| Used quota | gotowe warunkowo | `quota` / `quota2`, jesli istnieje |
|
|
| Password hashes | gotowe | Natywne formaty PA + Courier/Authlib/php_crypt + kontrolowany Dovecot fallback |
|
|
| Mixed legacy hashes | gotowe | Format rekordu ma pierwszenstwo przy weryfikacji |
|
|
| Password recovery e-mail | gotowe warunkowo | Wymaga kolumn token/email |
|
|
| SMS recovery | brak | Do dodania jako jawny provider, bez callbackow PHP |
|
|
| TOTP | gotowe warunkowo | Wymaga `totp_secret` |
|
|
| TOTP exceptions | gotowe warunkowo | Wymaga tabeli `totp_exception_address` |
|
|
| Application passwords | gotowe warunkowo | Wymaga `mailbox_app_password` |
|
|
| DKIM keys/signing | gotowe warunkowo | Wymaga tabel `dkim`, `dkim_signing`; OpenSSL bez shella |
|
|
| Password expiration | gotowe warunkowo | Wymaga odpowiednich kolumn |
|
|
| `smtp_active` | gotowe warunkowo | Wymaga kolumny |
|
|
| DNS status domeny | gotowe warunkowo | Wymaga `dns_active` i `dns_checked` |
|
|
| DNS validation adresow/domen | gotowe | A/AAAA/MX/NS zgodnie z logika PA |
|
|
| MySQL/MariaDB | gotowe | Podstawowy wariant produkcyjny |
|
|
| PostgreSQL | gotowe | Placeholdery transliterowane przez DB layer |
|
|
| SQLite | gotowe | Takze izolowany mock developerski |
|
|
| Dev mock DB | gotowe | Superset tabel PA + seedy; tylko `environment=development` |
|
|
| Dev SSH tunnel do produkcyjnej DB | gotowe | Domyslnie read-only; zapis wymaga `POSTFIXADMIN_RS_DEV_DB_WRITES=1` |
|
|
| UI i18n | gotowe | EN/PL, domyslnie English, przelaczanie z loginu/topbara; API pozostaje angielskie |
|
|
| Post-create/edit/delete hooks | gotowe inaczej | Program + argumenty, bez powloki |
|
|
| `maildir_name_hook` | zastapione natywnie | `maildir_template` z `{domain}`, `{local_part}`, `{username}` |
|
|
| Auto-create subfolders | gotowe dla Dovecot | `doveadm mailbox create`; generic IMAP/Courier jeszcze brak |
|
|
| PHP `*_struct_hook` | brak celowo | Nie uruchamiamy PHP; docelowo natywne rozszerzenia/config |
|
|
| `language_hook` PHP | brak celowo | Zastapione natywnymi katalogami i18n EN/PL; bez wykonywania callbackow PHP |
|
|
| XML-RPC | brak | W przekazanym configu jest wylaczone |
|
|
| Setup wizard / DB upgrade | brak | Runtime wykrywa schema capability, nie migruje jeszcze produkcyjnej DB |
|
|
| Update checker | brak | Nie jest potrzebny do runtime poczty |
|
|
| Stary theme PostfixAdmin | brak celowo | Zastapiony UI RustBox-like |
|
|
|
|
## Funkcje publicznego PA sprawdzone przy porownaniu
|
|
|
|
Odwzorowane odpowiedniki istnieja dla: login/MFA, list/edit/delete/editactive, list-virtual, vacation, viewlog, sendmail, broadcast, backup, refresh-domain-dns, delete-inactive i delete-preference.
|
|
|
|
Nieodwzorowane jeszcze publiczne wejscia: `setup.php`, `upgrade.php`, `update-check.php`, `xmlrpc.php`.
|
|
|
|
## Hasla
|
|
|
|
Lista kompatybilnosci jest oparta na dostarczonych `DOCUMENTS/HASHING.md`, `functions.inc.php` i `tests/PacryptTest.php`. W kodzie sa referencyjne wektory PA dla SHA, crypt, bcrypt, SSHA, Argon2, Courier oraz wariantow B64.
|
|
|
|
Weryfikacja nie wymusza aktualnego `password.scheme`, jesli hash sam identyfikuje algorytm (`{SCHEME}`, `$1$`, `$2...`, `$5$`, `$6$`). To pozwala na stopniowa migracje. Generowanie nowego hasla nadal uzywa jawnie skonfigurowanego schematu, aby nie zerwac zgodnosci z Dovecot/SASL.
|
|
|
|
## Przekazany config
|
|
|
|
Aktywne elementy istotne dla tego wdrozenia (MySQL/MariaDB, `php_crypt:MD5`, alias-domain, sendmail, logging, fetchmail, user recovery) maja odpowiednik. XML-RPC jest w nim wylaczone, SMS callback pusty, `maildir_name_hook=NO`, a lista automatycznych subfolderow pusta, wiec pozostale luki nie blokuja obecnego profilu.
|
|
|
|
## Audit PostfixAdmin 4.0.1
|
|
|
|
Pelniejszy audyt funkcji z dostarczonego PHP 4.0.1 jest w [PORT-PARITY.md](PORT-PARITY.md). 0.0.2 nadal **nie jest 100% parity**; dokument rozdziela funkcje runtime juz przeportowane od pozostalych narzedzi instalacyjnych, API, CLI i legacy hookow/UI.
|
|
|
|
## Rspamd DKIM
|
|
|
|
Dodano osobna integracje hostowa Rspamd: generowanie przez `rspamadm dkim_keygen`, `selector_map`, `path_map`, atomowe zapisy, `rspamadm configtest`, opcjonalny reload i podpinanie istniejacych kluczy. Szczegoly: [docs/RSPAMD_DKIM.md](docs/RSPAMD_DKIM.md).
|