Dovecot + SQL + ispcp

Fórumok

Sziasztok

Adva van egy Debian 6 + Ispcp 1.0.7 + Dovecot + sieve + spamassassin + roundcube (+ sieve, spamassassin plugin) rendszer.

Alapjaiban ezen leírás alapján http://isp-control.net/documentation/howto/mail/replace_courier_with_do…

A problémám az, hogy az ispcp bluefish kódolással tárolja a mail account jelszavakat SQL-ben.
A linkelt howtoban a dovecothoz való átjárhatóságot egy ispcp-dovecot-mngr perl scipttel oldották meg ami sql-ből lekérdezi és visszafejti a kódolt jelszót, majd átadja a dovecotnak.

Szeretném, ha 1:1-ben sqlből mehetne a dovecot auth default {passwd sql} szekcióban, mert:
- Brute force szintű loginok esetén a sok visszafejtés jelentős terhelést okoz.
- Feleslegesnek érzem a közbenső scriptet, hogyha ő is sql-hez fordul. Mehetne natívan a dovecot is.

Utánaolvasva a dovecot nem ismeri ezt a kódolást.
Aki tudja, a ispcp forkolt változata, az I-MSCP default támogatja a dovecotot. A balgák könnyen megoldották a dolgot: kódolatlanul tárolják a mail_users táblában a jelszavakat, így nem okoz gondot a dovecotnak közvetlen sql-ből lekérdezni. Érthető okok miatt ez nekem nem opció.

Mit lehetne kezdeni a helyzettel?
Ötleteléseim:
- Áttúrni az ispcp php fájljait és n+1 helyen átírni a decrypt/encrypt függvényeket -> ha nem muszáj, nem ezzel kezdeném.
- SQL-ben lévő userekből dovecot által emészthető formában file vagy másik táblában sql alapú passwd -t hoznék létre.

Szerintetek miként lehetne még áthidalni a problémát az ispcp lecserélése nélkül?

Hozzászólások

Nos úgy néz ki, hogy a belső függvény hívásokat átírva rábeszélhető, hogy a courier userdb helyett dovecot passwdb-be pakoljon egy általam meghatározott szintakt és jelszó kódolás szerint.
Tehát új mail hozzáféréseknél már real time menedzseli a passwdb-t, nem terheli az sql-t.
Már csak arra kell scriptet írni, hogy az sql-ben meglévő bluefish jelszavakból legenerálja 1x a teljes CRAM-MD5-ös passwdb-t.

A teszt sikeres volt. 60 párhuzamos pop3 kapcsolódás 5 másodperc timeouttal brutus brute-force programmal tesztelve.
ispcp-dovecot-mng: 100% cpu (bluefish encode/decode miatt)
Dovecot natív passdb használatával 1-7% egy xeon 5620-as processzor 1 magján VPS-ben.

tarolj tobb hash-t az SQL-edben. vagy irj egy storprocot, ami megoldja. egyebkent az nem blowfish (mert az nem visszafejtheto).
egyebkent, meg ha visszafejtheto a kodolas az SQL-ben, akkor meg irsz egy storprocot ra, es minden el van intezve.

en ezt megoldottam fapadosan, csinaltam patchet szinte mindenhez es az sql gyari hash fvg.-t hasznalom. Jo megoldas, viszont a frissites nyugosebb