میزبانی مجازی با استفاده از 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.