Lees eerst het vorige deel
Dit artikel is de zesde uit de serie "Een mailserver opzetten op Linux".
In het vorige deel hebben we Het ontwerp van de virtuele gebruikersaccounttabel met PostgreSQL afgerond.
Als je dit nog niet hebt bekeken, raden we aan het eerst te lezen.
👉 Vorige deel: Het concept van virtuele gebruikers in Dovecot en het ontwerp van de PostgreSQL-tabel
Wat is de instelling van Dovecot's auth-sql.conf.ext
?
Om Dovecot virtuele gebruikers via de database in plaats van systeemaccounts te authentificeren, moet je het bestand auth-sql.conf.ext
instellen.
Met deze instelling kan Dovecot gebruikersinformatie uit PostgreSQL ophalen voor authenticatie.
De SQL-authenticatie instellingen voor Dovecot (auth-sql.conf.ext
)
De belangrijkste items die je moet instellen om Dovecot met PostgreSQL te verbinden zijn als volgt:
1. Pad naar het configuratiebestand
Het configuratiebestand bevindt zich op de volgende locatie:
/etc/dovecot/conf.d/auth-sql.conf.ext
Als het bestand niet bestaat, kun je het maken met de volgende opdracht:
sudo touch /etc/dovecot/conf.d/auth-sql.conf.ext
2. Belangrijke configuratie-items
driver = sql
connect = host=localhost dbname=mail user=mailadmin password=yourpassword
default_pass_scheme = SHA256-CRYPT
password_query = SELECT email AS user, password FROM mail_users WHERE email='%u';
user_query = SELECT home_directory AS home FROM mail_users WHERE email='%u';
Uitleg van de instellingen
driver = sql
→ SQL-gebaseerde authenticatie gebruikenconnect = host=localhost dbname=mail user=mailadmin password=yourpassword
→ PostgreSQL connectie-informatiedefault_pass_scheme = SHA256-CRYPT
→ Standaard wachtwoord hashing-algoritme instellen. Als bcrypt wordt gebruikt, stel in op 'BLF-CRYPT'password_query
→ Vergelijk het ingevoerde wachtwoord van de gebruiker met de hashwaarde uit de databaseuser_query
→ Retourneer het opslagpad van de gebruiker mail
3. Dovecot-service opnieuw opstarten
Herstart Dovecot na het toepassen van de instellingen.
sudo systemctl restart dovecot
Testen van de integratie van Dovecot met PostgreSQL
Gebruik de volgende opdracht om te controleren of de instellingen correct zijn toegepast.
1. Authenticatietest
doveadm auth test user@example.com password123
Als alles goed is ingesteld, moet de passdb
authenticatie succesvol zijn.
2. Controleer de foutlogboeken
Als de instellingen niet correct zijn toegepast, kun je de logs controleren om de oorzaak te analyseren.
journalctl -xe | grep dovecot
Wachtwoord hashing methoden (Vergelijking en toepassing van MD5, SHA-256, BCRYPT)
Wanneer Dovecot en PostgreSQL zijn geïntegreerd, moeten wachtwoorden altijd in gehashte staat worden opgeslagen.
De beveiliging en prestaties verschillen afhankelijk van de hashingmethode.
1. Vergelijking van hashingmethoden
Hashing methode | Beveiligingsniveau | Snelheid | Voorbeeld gebruik |
---|---|---|---|
MD5 | Kwetsbaar (kan botsingen hebben) | Snel | Afgeraden |
SHA-256 | Gemiddeld (relatief veilig) | Gemiddeld | Algemene beveiliging nodig |
BCRYPT | Zeer sterke beveiliging | Langzaam | Bij hoge beveiligingseisen |
Aangezien MD5 bekend staat om zijn kwetsbaarheden, is het beter om het niet te gebruiken.
SHA-256 wordt algemeen gebruikt en biedt een goede balans tussen snelheid en beveiliging.
BCRYPT biedt de hoogste beveiliging, maar is trager, dus in omgevingen waar prestaties belangrijk zijn, moet je geschikte alternatieven overwegen.
Hashing van wachtwoorden met de Dovecot-opdracht (doveadm pw
)
Je kunt ook direct wachtwoorden hashen met Dovecot.
1. SHA-256 hashing
doveadm pw -s SHA256-CRYPT
Voer het wachtwoord in om de volgende hashwaarde te genereren.
{SHA256-CRYPT}$5$rounds=5000$abc123def456$ABCDEF1234567890ABCDEF1234567890
2. BCRYPT hashing
doveadm pw -s BLF-CRYPT
Voorbeeld van output:
{BLF-CRYPT}$2a$05$abcdefghij1234567890ABCDEFGHIJKL$CDEFGHIJKLMNOPQRSTUVWXYZ123456
Sla deze hashwaarde op in de mail_users
tabel van PostgreSQL.
Directe hashing in PostgreSQL (pgcrypto
extensie gebruiken)
Met de pgcrypto
extensie in PostgreSQL kun je wachtwoorden hashen zonder doveadm
.
1. Activeer de pgcrypto
extensie
CREATE EXTENSION IF NOT EXISTS pgcrypto;
2. Wachtwoord opslaan na SHA-256 hashing
INSERT INTO mail_users (domain_id, email, password, home_directory)
VALUES (1, 'user@example.com', crypt('mypassword', gen_salt('bf')), '/var/mail/vmail/user@example.com');
3. Wachtwoord opslaan na BCRYPT hashing
INSERT INTO mail_users (domain_id, email, password, home_directory)
VALUES (1, 'user@example.com', crypt('mypassword', gen_salt('bf', 12)), '/var/mail/vmail/user@example.com');
Samenvatting en volgende stappen
Wat er in dit artikel is behandeld
- Instellingen van Dovecot's auth-sql.conf.ext
- Testmethoden voor de integratie van Dovecot en PostgreSQL
- Toepassing van SHA-256 en BCRYPT hashingmethoden
- Directe hashing in PostgreSQL
Aankomende deel: Integratie van SMTP-authenticatie tussen Postfix en Dovecot
Nu Dovecot is ingesteld, is de volgende stap Postfix in te stellen om gebruik te maken van de authenticatie van Dovecot.
👉 Volgende deel: Integratie van SMTP-authenticatie tussen Postfix en Dovecot (Binnenkort!)
댓글이 없습니다.