~2 دقیقه مطالعه • بروزرسانی ۷ بهمن ۱۴۰۴
1. Backend احراز هویت چیست؟
در iRedMail، Backend احراز هویت جایی است که:
- کاربران ایمیل تعریف میشوند
- پسوردها ذخیره میشوند
- دامنهها و aliasها مدیریت میشوند
- Policyها و محدودیتها نگهداری میشوند
Postfix و Dovecot هیچ دیتایی ذخیره نمیکنند؛ فقط از Backend سؤال میپرسند.
2. جایگاه Backend در معماری iRedMail
User Login (SMTP / IMAP)
↓
Postfix / Dovecot
↓ (Auth Query)
Backend Auth (DB / LDAP)
اگر Backend down شود:
- SMTP AUTH fail میشود
- IMAP login fail میشود
- ایمیل عملاً از کار میافتد
3. انواع Backend در iRedMail
1️⃣ Backend دیتابیس (پیشنهادی)
معمولاً:
- MariaDB / MySQL
- PostgreSQL
مناسب برای:
- بیشتر سرورها
- مدیریت ساده
- Performance بالا
2️⃣ Backend LDAP (سازمانی)
معمولاً:
- OpenLDAP
- اتصال به Active Directory
مناسب برای:
- سازمانهای بزرگ
- SSO
- ساختارهای سلسلهمراتبی
4. مقایسه Database vs LDAP
| ویژگی | Database | LDAP |
|---|---|---|
| سادگی | ⭐⭐⭐⭐ | ⭐⭐ |
| Performance | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| مقیاسپذیری | ⭐⭐⭐ | ⭐⭐⭐⭐ |
| نگهداری | آسان | پیچیده |
| پیشنهاد iRedMail | ✅ | فقط سازمانی |
5. Backend دیتابیس (MariaDB / MySQL)
دیتابیسهای مهم
| DB | کاربرد |
|---|---|
| vmail | کاربران و دامنهها |
| iredadmin | پنل مدیریت |
| amavisd | policy و spam |
جدولهای حیاتی در vmail
| Table | توضیح |
|---|---|
| mailbox | کاربران ایمیل |
| domain | دامنهها |
| alias | aliasها |
| sender_bcc | policyها |
نحوه احراز هویت (DB)
- Postfix → SQL map
- Dovecot → SQL auth
مسیرهای تنظیمات:
/etc/postfix/mysql/*.cf /etc/dovecot/dovecot-sql.conf
6. Backend LDAP (OpenLDAP)
ساختار نمونه LDAP
dc=example,dc=com ├── ou=Users ├── ou=Groups └── ou=Domains
نحوه احراز هویت LDAP
- bind user
- search DN
- verify password
مسیرهای تنظیمات:
/etc/postfix/ldap/*.cf /etc/dovecot/dovecot-ldap.conf
7. امنیت پسوردها
الگوریتمهای امن:
- SSHA512 (LDAP)
- BCRYPT / SHA512 (DB)
پسوردها هرگز plaintext ذخیره نمیشوند.
8. بکاپ حیاتی Backend
Backup دیتابیس
mysqldump vmail > vmail.sql
Backup LDAP
slapcat > ldap.ldif
بدون بکاپ = ریسک مرگبار.
9. Debug و عیبیابی
تست DB Auth
mysql vmail
تست LDAP
ldapsearch -x
بررسی لاگها
/var/log/maillog
10. خطاهای رایج
❌ Auth fail برای همه کاربران
- DB down
- permission اشتباه
❌ Login کند
- query بد
- index نداشتن
11. Best Practice حرفهای
- DB backend برای ۹۰٪ سناریوها
- Replication برای دیتابیسهای بزرگ
- Backup روزانه
- مانیتور latency
نوشته و پژوهش شده توسط دکتر شاهین صیامی