آموزش نصب زیمبرا (Zimbra) روی اوبونتو 20.04 مرحله به مرحله

زیمبرا (Zimbra Collaboration) یک سرور ایمیل و همکاری متن‌باز است که میل‌سرور، وب‌میل، تقویم، دفترچه‌ی مخاطبین، فهرست‌های توزیع و اشتراک فایل را یک‌جا در اختیار شما می‌گذارد. در این آموزش، نصب زیمبرا روی اوبونتو 20.04 را قدم به قدم انجام می‌دهیم: از تنظیم hostname و DNS محلی تا اجرای نصب‌کننده، تعیین رمز مدیر و ورود به پنل مدیریت.

نسخه‌ای که نصب می‌کنیم Zimbra 8.8.15 (نسخه‌ی متن‌باز) است. پیش از شروع این را بدانید: پشتیبانی رسمی و وصله‌های امنیتی این نسخه از ۳۱ دسامبر ۲۰۲۳ متوقف شده و پشتیبانی استاندارد Ubuntu 20.04 هم در مه ۲۰۲۵ به پایان رسیده است. این ترکیب برای محیط آزمایشی، یادگیری یا نگهداری سرورهای موجود مناسب است. برای یک میل‌سرور جدید در محیط عملیاتی، نسخه‌ای را انتخاب کنید که هنوز به‌روزرسانی امنیتی می‌گیرد؛ برای مثال Carbonio که بر پایه‌ی Zimbra ساخته شده است.

نصب زیمبرا روی اوبونتو 20.04 برای راه‌اندازی میل‌سرور، تقویم و مخاطبین
Zimbra ایمیل، تقویم و مخاطبین را روی یک سرور جمع می‌کند.

پیش‌نیازهای نصب زیمبرا

پیش از نصب، این موارد را آماده کنید:

  • یک سرور مجازی لینوکس یا سرور اختصاصی با Ubuntu 20.04 تازه نصب‌شده که سرویس دیگری مثل وب‌سرور یا میل‌سرور روی آن اجرا نمی‌شود.
  • دست‌کم ۸ گیگابایت رم. مستندات Zimbra همین مقدار را حداقل نصب تک‌سروری اعلام کرده است.
  • پردازنده‌ی ۶۴ بیتی و حداقل ۱۰ گیگابایت فضای خالی برای نرم‌افزار و لاگ‌ها. فضای صندوق‌های ایمیل را جداگانه حساب کنید.
  • یک آدرس IP ثابت و دسترسی root.
  • یک دامنه و یک نام کامل (FQDN) برای سرور، مثل mail.your_domain_name.
  • اگر سرور قرار است با اینترنت ایمیل رد و بدل کند: رکورد A برای نام سرور و رکورد MX برای دامنه که در سرویس DNS دامنه ثبت شده باشند، رکورد PTR که ارائه‌دهنده‌ی سرور برای IP تنظیم می‌کند، و پورت 25 خروجی باز.

در ادامه از این مقادیر نمونه استفاده می‌کنیم و شما باید مقادیر خودتان را جایگزین کنید: IP سرور 192.168.72.167، دامنه your_domain_name و نام کامل سرور mail.your_domain_name. همه‌ی دستورها با کاربر root اجرا می‌شوند. اگر با کاربر عادی وارد شده‌اید، اول دستور sudo -i را بزنید.

مرحله ۱: به‌روزرسانی پکیج‌های سیستم

فهرست پکیج‌ها را به‌روز کنید و پکیج‌های نصب‌شده را ارتقا دهید:

apt update
apt upgrade

اگر در این مرحله کرنل هم به‌روز شد، یک بار سرور را reboot کنید.

مرحله ۲: تنظیم hostname و فایل hosts

Zimbra به یک hostname کامل نیاز دارد که به IP واقعی سرور اشاره کند. نام سرور را روی FQDN تنظیم کنید:

hostnamectl set-hostname mail.your_domain_name

سپس فایل hosts را باز کنید:

vi /etc/hosts

محتوای فایل را به این شکل تغییر دهید:

127.0.0.1       localhost
192.168.72.167  mail.your_domain_name mail

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

خط 127.0.1.1 ubuntu را که اوبونتو به‌طور پیش‌فرض می‌سازد حذف کنید. Zimbra انتظار دارد FQDN سرور به IP واقعی آن resolve شود و اگر این نام روی آدرس loopback بماند، سرویس‌ها روی آدرس اشتباه تنظیم می‌شوند.

برای ذخیره و خروج از vi، کلید Esc را بزنید، :wq را تایپ کنید و Enter بزنید. بعد نتیجه را بررسی کنید:

hostname -f

خروجی باید mail.your_domain_name باشد.

روی بعضی سرورهای مجازی، cloud-init فایل hosts را بعد از هر reboot از نو می‌سازد. اگر بالای فایل پیامی درباره‌ی manage_etc_hosts می‌بینید، همین تغییرات را در فایل الگوی /etc/cloud/templates/hosts.debian.tmpl هم اعمال کنید تا بعد از راه‌اندازی مجدد پاک نشوند.

مرحله ۳: راه‌اندازی DNS محلی با dnsmasq

نصب‌کننده‌ی Zimbra بررسی می‌کند که دامنه رکورد MX داشته باشد و نام سرور به IP آن برسد. در محیط آزمایشی یا شبکه‌ی داخلی که DNS عمومی ندارید، dnsmasq این رکوردها را روی خود سرور جواب می‌دهد.

اگر دامنه‌ی شما از قبل رکوردهای A و MX عمومی دارد که به همین سرور اشاره می‌کنند، می‌توانید این مرحله را رد کنید. در آن صورت در مرحله‌ی نصب، بسته‌ی zimbra-dnscache را هم نصب کنید.

مسیر جستجوی رکورد MX در DNS و رسیدن ایمیل به سرور زیمبرا
نصب‌کننده از روی رکورد MX دامنه، میل‌سرور را پیدا می‌کند و آن را با IP سرور مقایسه می‌کند.

غیرفعال کردن systemd-resolved

سرویس systemd-resolved روی پورت 53 گوش می‌دهد و dnsmasq هم به همین پورت نیاز دارد. پس اول آن را غیرفعال و متوقف کنید:

systemctl disable systemd-resolved
systemctl stop systemd-resolved

فایل /etc/resolv.conf در اوبونتو یک symlink به systemd-resolved است. آن را پاک کنید و یک فایل موقت با DNS عمومی بسازید تا apt بتواند پکیج‌ها را دانلود کند:

rm /etc/resolv.conf
sh -c 'echo nameserver 8.8.8.8 >> /etc/resolv.conf'

نصب و پیکربندی dnsmasq

apt install dnsmasq

بعد از نصب، فایل تنظیمات را باز کنید:

vi /etc/dnsmasq.conf

این خطوط را به انتهای فایل اضافه کنید و فایل را ذخیره کنید:

no-resolv
server=8.8.8.8
server=1.1.1.1
domain=your_domain_name
mx-host=your_domain_name,mail.your_domain_name,5
listen-address=127.0.0.1

کار هر خط:

  • no-resolv: dnsmasq سرورهای بالادستی را از resolv.conf نمی‌خواند و فقط خطوط server را در نظر می‌گیرد.
  • server: DNS بالادستی برای بقیه‌ی دامنه‌ها. اگر 8.8.8.8 از سرورتان در دسترس نیست، DNS دیتاسنتر خودتان را بنویسید. این مقدار نباید IP خود سرور باشد، چون dnsmasq درخواست‌ها را به خودش برمی‌گرداند.
  • domain: دامنه‌ی محلی سرور را مشخص می‌کند.
  • mx-host: برای دامنه یک رکورد MX با اولویت 5 می‌سازد که به mail.your_domain_name اشاره می‌کند.
  • listen-address: dnsmasq فقط به درخواست‌های خود سرور جواب می‌دهد.

لازم نیست رکورد A را برای mail.your_domain_name جداگانه تعریف کنید. dnsmasq به‌طور پیش‌فرض فایل /etc/hosts را می‌خواند و همان خطی را که در مرحله‌ی ۲ نوشتید برمی‌گرداند.

حالا dnsmasq را ری‌استارت کنید و resolv.conf را طوری تغییر دهید که خود سرور از dnsmasq استفاده کند:

systemctl restart dnsmasq
echo "nameserver 127.0.0.1" > /etc/resolv.conf

رکوردها را تست کنید. اگر دستور dig روی سرور نیست، اول apt install dnsutils را اجرا کنید.

dig MX your_domain_name +short
dig A mail.your_domain_name +short

خروجی باید این شکلی باشد:

5 mail.your_domain_name.
192.168.72.167

تا وقتی این دو جواب درست برنگشته‌اند سراغ نصب نروید، چون نصب‌کننده در همین نقطه خطا می‌دهد.

مرحله ۴: دانلود و اجرای نصب‌کننده‌ی Zimbra

فایل نصب Zimbra 8.8.15 مخصوص Ubuntu 20.04 را دانلود کنید. حجم آن حدود ۲۴۷ مگابایت است و گزینه‌ی -c اگر دانلود قطع شد، آن را از همان‌جا ادامه می‌دهد:

wget -c https://files.zimbra.com/downloads/8.8.15_GA/zcs-8.8.15_GA_4179.UBUNTU20_64.20211118033954.tgz

فایل را از حالت فشرده خارج کنید، وارد پوشه‌ی آن شوید و نصب‌کننده را اجرا کنید:

tar -xvzf zcs-8.8.15_GA_4179.UBUNTU20_64.20211118033954.tgz
cd zcs-8.8.15_GA_4179.UBUNTU20_64.20211118033954
./install.sh

انتخاب بسته‌ها

نصب‌کننده چند سوال می‌پرسد. به این شکل جواب دهید:

  1. برای پذیرفتن توافق‌نامه‌ی لایسنس، y را بزنید.
  2. برای سوال Use Zimbra's package repository هم y را بزنید تا بسته‌ها از مخزن رسمی Zimbra نصب شوند.
  3. در فهرست بسته‌ها برای همه y را بزنید، غیر از zimbra-dnscache که جوابش n است. این بسته هم روی پورت 53 کار می‌کند و با dnsmasq تداخل دارد. بسته‌ی zimbra-imapd نسخه‌ی آزمایشی است و پیش‌فرضش N است؛ همان را نگه دارید.
  4. وقتی نصب‌کننده اعلام کرد سیستم تغییر خواهد کرد، با y ادامه دهید.

اصلاح نام دامنه در خطای MX

نصب‌کننده به‌طور پیش‌فرض hostname سرور را نام دامنه فرض می‌کند و برای mail.your_domain_name دنبال رکورد MX می‌گردد. چون MX را برای خود دامنه ساخته‌ایم، این پیام را می‌بینید:

DNS ERROR resolving MX for mail.your_domain_name
It is suggested that the domain name have an MX record configured in DNS
Change domain name? [Yes] Yes
Create domain: [mail.your_domain_name] your_domain_name

به سوال تغییر نام دامنه Yes بدهید و جلوی Create domain نام دامنه‌ی اصلی را بدون mail وارد کنید. حساب مدیر هم با همین دامنه ساخته می‌شود: admin@your_domain_name.

تعیین رمز مدیر و اعمال تنظیمات

بعد از نصب بسته‌ها، منوی اصلی پیکربندی باز می‌شود. مواردی که هنوز تنظیم نشده‌اند با ستاره مشخص شده‌اند و معمولاً فقط رمز مدیر در بخش zimbra-store باقی مانده است.

  1. عددی را که کنار zimbra-store نوشته شده وارد کنید. در مقاله‌ی اصلی این عدد 7 است، اما چون zimbra-dnscache را نصب نکرده‌ایم ممکن است یکی کمتر باشد؛ عدد را از روی منو بخوانید.
  2. عدد 4 را برای Admin Password بزنید و رمز را وارد کنید. حداقل طول رمز ۶ کاراکتر است، ولی یک رمز طولانی و قوی انتخاب کنید.
  3. با r به منوی اصلی برگردید.
  4. کلید a را بزنید تا تنظیمات اعمال شود. سوال ذخیره‌ی تنظیمات در فایل را با Enter تایید کنید و وقتی پرسید سیستم تغییر می‌کند، yes را بزنید.
  5. پیکربندی چند دقیقه طول می‌کشد. در پایان پیام Configuration complete را می‌بینید؛ Enter بزنید تا از نصب‌کننده خارج شوید.

مرحله ۵: بررسی وضعیت سرویس‌های Zimbra

سرویس‌های Zimbra را با ابزار zmcontrol و از طریق کاربر zimbra مدیریت کنید. وضعیت همه‌ی سرویس‌ها را این‌طور ببینید:

su - zimbra -c "zmcontrol status"

همه‌ی سرویس‌ها باید در وضعیت Running باشند. برای روشن کردن یا ری‌استارت همه‌ی سرویس‌ها از این دستورها استفاده کنید:

su - zimbra -c "zmcontrol start"
su - zimbra -c "zmcontrol restart"

مرحله ۶: باز کردن پورت‌ها در فایروال

اگر فایروال UFW روی سرور فعال است، پورت‌های ایمیل و وب‌میل را باز کنید. پورت 7071 مربوط به پنل مدیریت است و بهتر است فقط برای IP خودتان باز باشد:

ufw allow OpenSSH
ufw allow 25,80,110,143,443,465,587,993,995/tcp
ufw allow from YOUR_ADMIN_IP to any port 7071 proto tcp

پورت 25 برای تبادل ایمیل بین سرورهاست، 465 و 587 برای ارسال از برنامه‌های ایمیل، 143 و 993 برای IMAP، 110 و 995 برای POP3 و 80 و 443 برای وب‌میل.

ورود به پنل مدیریت و وب‌میل Zimbra

پنل مدیریت را در مرورگر باز کنید:

https://mail.your_domain_name:7071

با نام کاربری admin@your_domain_name و رمزی که در مرحله‌ی ۴ تعیین کردید وارد شوید. اگر نام سرور هنوز از کامپیوتر شما resolve نمی‌شود، می‌توانید آدرس را با IP سرور باز کنید.

صفحه ورود به پنل مدیریت زیمبرا روی پورت 7071
صفحه‌ی ورود به Zimbra Admin Console

وب‌میل کاربران روی https://mail.your_domain_name در دسترس است. Zimbra در نصب اولیه یک گواهی self-signed می‌سازد و به همین دلیل مرورگر هشدار امنیتی نشان می‌دهد. برای استفاده‌ی واقعی، یک گواهی SSL معتبر روی سرور نصب کنید.

رفع خطاهای رایج نصب زیمبرا

خطای Port conflict detected: 53

متن کامل پیام Port conflict detected: 53 (zimbra-dnscache) است و یعنی zimbra-dnscache را انتخاب کرده‌اید در حالی که dnsmasq پورت 53 را گرفته است. این پیام بعد از انتخاب بسته‌ها و پیش از شروع نصب ظاهر می‌شود. همان‌جا با Ctrl+C خارج شوید، install.sh را دوباره اجرا کنید و به zimbra-dnscache جواب n بدهید.

تکرار خطای DNS ERROR resolving MX

اگر بعد از تغییر نام دامنه هم این خطا تکرار شد، خروجی دو دستور dig در مرحله‌ی ۳ را دوباره بررسی کنید و مطمئن شوید /etc/resolv.conf فقط خط nameserver 127.0.0.1 را دارد.

گزارش MISSING برای پیش‌نیازها

نصب‌کننده قبل از هر کاری پکیج‌های لازم سیستم را بررسی می‌کند. اگر کنار یکی از آن‌ها MISSING نوشته شد، همان پکیج را با apt نصب کنید و install.sh را دوباره اجرا کنید:

apt install <package-name>

ایمیل‌ها به Gmail و سرویس‌های دیگر نمی‌رسند

اول ببینید پورت 25 خروجی سرور باز است یا نه؛ بعضی ارائه‌دهنده‌ها آن را به‌طور پیش‌فرض می‌بندند:

nc -vz -w 5 gmail-smtp-in.l.google.com 25

اگر اتصال برقرار شد، رکورد PTR آی‌پی سرور را بررسی کنید که باید به mail.your_domain_name اشاره کند. بعد برای دامنه رکوردهای SPF و DKIM و DMARC بسازید. کلید DKIM را خود Zimbra تولید می‌کند و مقدار رکورد TXT را در خروجی همین دستور نشان می‌دهد:

su - zimbra -c "/opt/zimbra/libexec/zmdkimkeyutil -a -d your_domain_name"

بدون این رکوردها، بیشتر ایمیل‌های سرور در پوشه‌ی اسپم می‌نشینند یا کلا رد می‌شوند.

جمع‌بندی

با این مراحل یک سرور Zimbra تک‌سروری روی Ubuntu 20.04 دارید که DNS محلی‌اش را dnsmasq تامین می‌کند. قدم بعدی ساختن حساب‌های کاربری از پنل مدیریت، نصب گواهی SSL معتبر و تنظیم رکوردهای SPF و DKIM و DMARC است.

اگر فقط ایمیل سازمانی روی دامنه‌ی خودتان می‌خواهید و نمی‌خواهید به‌روزرسانی، امنیت و تحویل‌پذیری یک میل‌سرور را خودتان مدیریت کنید، هاست ایمیل گزینه‌ی کم‌دردسرتری است.

سوالات متداول

حداقل رم لازم برای نصب زیمبرا چقدر است؟

مستندات Zimbra برای نصب تک‌سروری حداقل ۸ گیگابایت رم اعلام کرده است. فضای دیسک هم باید دست‌کم ۱۰ گیگابایت برای نرم‌افزار و لاگ‌ها باشد و فضای صندوق‌های ایمیل جداگانه حساب شود.

چرا نصب‌کننده‌ی Zimbra خطای Port conflict روی پورت 53 می‌دهد؟

چون بسته‌ی zimbra-dnscache و dnsmasq هر دو به پورت 53 نیاز دارند. اگر DNS محلی را با dnsmasq راه انداخته‌اید، هنگام انتخاب بسته‌ها به zimbra-dnscache جواب n بدهید.

پنل مدیریت زیمبرا روی چه آدرسی باز می‌شود؟

روی پورت 7071، یعنی آدرس https://mail.your_domain_name:7071. نام کاربری admin@your_domain_name است و رمز همان است که در منوی نصب برای Admin Password تعیین کرده‌اید.

آیا Zimbra 8.8.15 هنوز پشتیبانی می‌شود؟

پشتیبانی و وصله‌های امنیتی نسخه‌ی متن‌باز Zimbra 8.8.15 از ۳۱ دسامبر ۲۰۲۳ متوقف شده است. این نسخه برای آزمایش و یادگیری مناسب است. برای سرور عملیاتی جدید، نسخه‌ای را انتخاب کنید که هنوز به‌روزرسانی امنیتی می‌گیرد.

چطور سرویس‌های زیمبرا را ری‌استارت کنم؟

با کاربر zimbra و ابزار zmcontrol. دستور su – zimbra -c “zmcontrol restart” همه‌ی سرویس‌ها را ری‌استارت می‌کند و zmcontrol status وضعیت آن‌ها را نشان می‌دهد.

اصلاحات فنی نسبت به مقاله اصلی

  • hostname روی FQDN یعنی mail.your_domain_name تنظیم شد؛ مقاله‌ی اصلی نام دامنه‌ی خالی را گذاشته بود.
  • علامت # از ابتدای دستورها حذف شد. در مقاله‌ی اصلی خط فایل hosts با # شروع می‌شد و در عمل کامنت و بی‌اثر بود.
  • فایل hosts مرتب شد: خط 127.0.1.1 و نگاشت‌های اضافه‌ی IP به دامنه و webmail حذف شد و خطوط استاندارد IPv6 برگشت.
  • در dnsmasq، مقدار server که IP خود سرور بود و DNS را در حلقه می‌انداخت، به DNS بالادستی تغییر کرد و no-resolv اضافه شد.
  • mx-host اضافه برای mail.your_domain_name حذف شد. آن خط باعث می‌شد نصب‌کننده دامنه‌ی mail.your_domain_name را بسازد و آدرس مدیر admin@mail.your_domain_name شود.
  • resolv.conf بعد از راه‌اندازی dnsmasq روی 127.0.0.1 تنظیم شد؛ در مقاله‌ی اصلی روی 8.8.8.8 می‌ماند و سرور اصلا از dnsmasq استفاده نمی‌کرد.
  • zimbra-dnscache از فهرست نصب کنار گذاشته شد تا با dnsmasq روی پورت 53 تداخل نکند.
  • مرحله‌ی تغییر نام دامنه در خطای MX و برگشت با r پیش از a اضافه شد.
  • دستور systemctl start imap.service که در Zimbra وجود ندارد، با zmcontrol جایگزین شد.
  • فهرست سیستم‌عامل‌های قدیمی مقدمه (مثل Ubuntu 12.04 و 14.04) حذف شد و وضعیت پایان پشتیبانی Zimbra 8.8.15 و Ubuntu 20.04 اضافه شد.
  • بخش‌های پیش‌نیازها، فایروال، تست رکوردها با dig و رفع خطاهای رایج اضافه شد.

مطالعه این مطالب را هم توصیه میکنیم

خدمات مورد نیاز شما را با کیفیتی که انتظار دارید و قیمتی که انتظار ندارید.

آیا این مطلب برای شما مفید بود؟

ثبت دیدگاه

آدرس ایمیل شما منتشر نخواهد شد. فیلدهای الزامی با * مشخص شده‌اند.

برای جلوگیری از اسپم، حاصل جمع زیر را وارد کنید:

پنج به‌علاوه نه چند می‌شود؟