میزبانی مجازی با استفاده از Postfix، قسمت دوم

مترجم: امين ايزدپناه

این مقاله از جایی که قسمت قبل پایان یافت آغاز می‌شود: چگونگی بازیابی واقعی ایمیلی که ما در اکانت‌های مجازی‌مان ذخیره می‌کنیم. در مقاله اول، من توضیح دادم که چگونه ما از نوع سوم میزبانی مجازی Postfix که استفاده از دامین‌های مجزا و اکانت‌های غیر یونیکس است استفاده می‌کنیم. قسمت دامین‌های مجزا به خوبی تشریح شد. حالا زمان کار بر روی اکانت‌های غیر یونیکس است.

برای انجام این کار تکنیک‌های متداول متعددی وجود دارد که از سرویس‌هایی مانند OpenLDAP یا MySQL و ترکیب آن با Courier IMAP استفاده می‌کنند. ما هیچ یک از آنها را به کار نخواهیم برد. در عوض، ما از چیزی بسیار ساده‌تر استفاده خواهیم نمود: فایل‌های متنی ساده. اگر شما چند صد آدرس ایمیل را میزبانی می‌کردید، من به وجود یک سرویس دایرکتوری یا پایگاه داده برای کمک به حفظ سازمان یافتگی اکانتینگ شما احساس نیاز می‌کردم. از سوی دیگر، اگر شما یک سرور ایمیل با اندازه کوچک تا متوسط را در اختیار داشته باشید، واقعا نیازی به وارد نمودن سرویس‌های حافظه ویژه به مجموعه نیست. 

برای انجام این کار، ما از Dovecot استفاده خواهیم کرد. اگر شما هرگز چیزی در مورد آن نشنیده‌اید، حالا خواهید شنید. Dovecot بسیار سبک، انعطاف‌پذیر، و ایمن است. متاسفانه، مستندات آن ضعیف هستند، اما اگر صفحه وب، manpageها و فایل‌های config آن را بخوانید، باید قادر به انجام کار مورد نظر خود باشید. اگر شما Debian Sarge یا Sid را اجرا می‌کنید، می‌توانید Dovecot را با استفاده از این دستور نصب نمایید:

apt-get install dovecot-common dovecot-imapd dovecot-pop3d

 فایل dovecot.conf من یک فایل بزرگ 28 خطی است، به این صورت:

 

01 base_dir = /var/run/dovecot/

02 protocols = imap pop3 imaps pop3s

03 ssl_disable = no

04 ssl_cert_file = /etc/ssl/server.crt

05 ssl_key_file = /etc/ssl/server.key

06 ssl_parameters_file = /var/run/dovecot/ssl-parameters.dat

07 ssl_parameters_regenerate = 24

08 log_path = /var/log/dovecot

09 info_log_path = /var/log/dovecot.info

10 login_dir = /var/run/dovecot/login

11 login_chroot = yes

12 login = imap

13 login_executable = /usr/lib/dovecot/imap-login

14 login_user = dovecot

15 login = pop3

16 login_executable = /usr/lib/dovecot/pop3-login

17 verbose_ssl = yes

18 valid_chroot_dirs = /var/spool/vmail

19 default_mail_env = maildir:/var/spool/vmail/%d/%n

20 imap_executable = /usr/lib/dovecot/imap

21 pop3_executable = /usr/lib/dovecot/pop3

22 auth = default

23 auth_mechanisms = plain digest-md5

24 auth_userdb = passwd-file /etc/dovecot/users

25 auth_passdb = passwd-file /etc/dovecot/passwd

26 auth_executable = /usr/lib/dovecot/dovecot-auth

27 auth_user = root

28 auth_verbose = yes

 

اغلب این خطوط به خوبی خود-توضیح هستند و فایل پیکربندی نیز راهنمایی‌های بسیاری را در این مورد فراهم می‌کند. اساسا، ما خواهان استفاده از Dovecot برای اجرای imap، pop3، imaps، و pop3ها و افزودن یک سری پشتیبانی‌ها برای میزبانی مجازی هستیم. بیایید به سراغ بررسی خطوطی برویم که ما را در زمینه میزبانی مجازی یاری خواهند کرد.

خط 19 به خصوص مفید است. از آنجایی که ما یک set up میزبانی مجازی را اجرا می‌کنیم، ساده‌ترین روش برای تمایز یک کاربر از دیگری وادار ساختن آنها به ورود با آدرس ایمیل کامل‌شان است. برای مثال، هنگامی که من کلاینت نامه خود را راه‌اندازی می‌کنم، فقط "joe" را برای نام کاربری وارد نمی‌کنم، بلکه "joe@domain1.com" را می‌نویسم. Dovecot در مورد نام کاربری شما یک سری حدس خواهد زد. اگر آن فقط چیزی شبیه "joe" ببیند، یک متغیر به نام %n به "joe" می‌افزاید. اگر آن " joe@domain1.com " را ببیند، آن را تفکیک خواهد کرد و %d را به " domain1.com" و %n را به "joe" خواهد افزود. اگر ما متغیرهای موجود در خط 19 را جایگزین کنیم، چیزی شبیه این خواهیم داشت:

 

maildir:/var/spool/vmail/domain1.com/joe

 

این دقیقا چیزی است که ما در قسمت اول مقاله راه‌اندازی کردیم. خب، حالا ما dovecot را برای هدایت کاربر به سمت دایرکتوری mail صحیح تنظیم نمودیم، در این مرحله ما هنوز نیازمند اعتبارسنجی آنها هستیم. خط 23 می‌گوید که ما خواهان پشتیبانی دو نوع از متدهای اعتبارسنجی هستیم: ساده و digest-md5. متد ساده چیزی است که هر کلاینت تحت sun پشتیبانی می‌نماید، پس ما به سراغ آن می‌رویم. قسمت digest به چیزی آسیب وارد نمی‌کند و اگر کلاینت شما آن را پشتیبانی می‌نماید، حتما از آن استفاده کنید.

در نهایت، در خطوط 24 و 25 ما یک فایل userdb و فایل passdb می‌بینیم. این‌ها را به عنوان یک فایل /etc/passwd و /etc/shadow دوم در نظر بگیرید:

 

userdb

joe@domain1.com::1000:1000::/var/spool/vmail/domain1.com/:/bin/false::

 

 

passdb

joe@domain1.com:$1$G/FqlOG5$Vj0xmc9fKY.UVr8OWr/7C1

 

این نام عبور رمزنگاری شده یک hash از لغت 'test' است. mkpasswd یک ابزار کمکی عالی برای تولید نام های عبور می‌باشد. 1000:1000 متناظر با uid و gid کاربر "virtual" است که ما آن را در قسمت اول مقاله ایجاد کردیم. دایرکتوری home حاوی همه چیز به جز لغت قرار گرفته قبل از @ در آدرس ایمیل است.

اطمینان یابید که کاربر "virtual" دارای حق مالکیت دایرکتوری /var/spool/vmail است و Dovecot را آغاز نمایید. شما می‌توانید اعتبارسنجی را توسط چیزی شبیه این تست کنید:

 

$ telnet domain1.com 110

Trying 192.168.1.2

Connected to domain1.com

Escape character is '^]'.

+OK dovecot ready.

user joe@domain1.com

+OK

pass test

+OK Logged in.

 

اگر شما آن +OK نهایی را دریافت کنید، همه چیر تنظیم شده و مهیا است.

از آنجایی که افزودن پشتیبانی لايه سوكت ايمن (IMAPها و POP3ها) در Dovecot بسیار ساده است، من انجام آن را اکیدا توصیه می‌کنم. اگر شما از قبل دارای یک گواهینامه خود-امضاءشده (self-signed) برای سرور HTTP خود هستید، شما می‌توانید دقیقا از همان برای Dovecot استفاده نمایید..

این مطلب فقط میزبانی مجازی و Postfix را پوشش می‌دهد. من قبول دارم که استفاده از Dovecot و فایل‌های متنی ساده اندکی متفاوت از چیزی است که شما احتمالا پیش از این در مورد آن خوانده‌اید، اما یک فرصت به آن بدهید و سادگی آن مورد توجه شما قرار خواهد گرفت. همچنین ممکن است شکا نگاهی به این بیاندازید و تعجب کنید که چرا باید خواهان تایپ این همه دستور فقط برای ایجاد یک اکانت کاربری (ایجاد دایرکتوری٬ افزودن کاربر به فایل vmaps٬ افزودن کاربر به فایل userdb و passdb٬ غیره و غیره و غیره) باشید. به خاطر داشته باشید، اسکریپت‌نویسی راهکار نهایی برای کارهای تکراری است. Perl، Python، و پوسته ساده محض برای این set up به شکل شگفت‌آوری کار می‌کنند.

 

Copyright 1998-2006 PC World Iran All rights reserved.
Copyright 1977-2006 Electronics and Computer Magazine (GSRP). All rights reserved.

Copyright 2000-2006. International Data Corp. Inc.. All right Reserved.