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

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

پشتیبانی دامین مجازی در Postfix در عمل کاملا قدرتمند است. سه روش متفاوت وجود دارد که شما از طریق آنها می‌توانید دامین‌های مجازی را با استفاده از Postfix میزبانی نمایید. ما به بررسی سومین روش خواهیم پرداخت: دامین‌های مجزا و اکانت‌های غیر یونیکس.

چرا این روش؟ چون نهایتا، این گزینه بیشترین انعطاف‌پذیری را در اختیار ما قرار می‌دهد. این روش برای برپایی و درک شدن اندکی پیچیده‌تر است اما وقتی دامین‌های متعدد را توسط آن میزبانی کردید ارزشش را خواهید فهمید.

هدف نهایی ما داشتن یک سرور ایمیل است که ارسال نامه به چندین دامین را پشتیبانی نماید. هر آدرس ایمیل فقط برای آن دامین معتبر خواهد بود. برای مثال، joe@domain1.com و joe@domain2.com دو اکانت متفاوت هستند که هر کدام نامه متفاوتی دریافت می‌نمایند.

برای شروع کار، ما مبادرت به انتقال تمامی دامین‌ها به میزبان‌های مجازی می‌کنیم. حتی اگر شما Postfix را تنها با یک دامین بر پا شده دارید، ما قصد داریم آن دامین را مجازی نماییم. شما نیازی به انجام این کار ندارید، اما من انجام می‌دهم چون فکر می‌کنم این حالت سازمان یافته‌تر است. اگر Postfix را به گونه‌ای تنظیم نمایید که یک دامین را حقیقی و بقیه را مجازی میزبانی کند، این بدان معنی است که شما همواره بایستی Postfix را دو بار پیکربندی کنید: یک بار برای هر نوع دامین. برای انجام این کار، ما سطر myhostname خود را درون main.cf تغییر می‌دهیم:

 

myhostname = localhost

 

سپس این اطلاعات دامین مجازی (که همه آنها بعدا توضیح داده خواهند شد) را به main.cf می‌افزاییم:

 

virtual_mailbox_domains = /etc/postfix/vhosts.txt

virtual_mailbox_base = /var/spool/vmail

virtual_mailbox_maps = hash:/etc/postfix/vmaps.txt

virtual_uid_maps = static:1000

virtual_gid_maps = static:1000

virtual_alias_maps = hash:/etc/postfix/valias.txt

 

در سطر اول، ما از یک فایل متنی به نام vhosts.txt استفاده می‌کنیم. شما در واقع می‌توانید این را هر چیزی که می‌خواهید بنامید. درون این فایل متنی یک لیست تک ستونی ساده از تمامی دامین‌هایی خواهد بود که شما میزبانی می‌کنید. برای مثال:

 

domain1.com

domain2.com

virtual.org

 

سطر بعدی مشخص کننده دایرکتوری اصلی است که ما باید تمامی نامه‌های خود را در آنجا ذخیره کنیم. باز هم، شما می‌توانید هر چیزی را که می‌خواهید برگزینید.

سطر سوم به یک فایل متنی اشاره می‌کند که من آن را vmaps.txt نامیدم. این یک فایل متنی دو ستونی است. ستون اول یک آدرس ایمیل مجازی را مشخص می‌سازد. ستون دوم تعیین کننده مکان mailbox آن شخص است. درست همانند میزبانی دامین واقعی، اگر شما یک / در انتهای مکان قرار دهید، به فرمت Maildir تبدیل می‌شود. اگر نه، آن mbox است. من hash را تعیین کردم چرا که من با اجرای دستور زیر vmaps.txt را به یک فایل hash تبدیل کردم:

 

postmap vmaps.txt

 

این کار منجر به ایجاد یک فایل به نام vmaps.txt.db می‌گردد. Postfix قادر است اطلاعات موجود در hashها را سریع‌تر از یک فایل متنی معمولی جستجو کند.

محتویات vmaps.txt چیزی شبیه این است:

 

joe@domain1.com domain1.com/joe/

joe@domain2.com domain2.com/joe/

john@virtual.org virtual.org/john/

 

حالا نگاهی به ستون دوم بیاندازیم. مقدار به virtual_mailbox_base ما افزوده شده است. پس مسیر قطعی و کامل mailbox مجازی، برای مثال، به /var/spool/vmail/domain1.com/joe/ تبدیل می‌شود. فراموش نکنید که دایرکتوری‌های domain1.com و joe را واقعا بسازید. از آنجایی که این mailbox دارای فرمت maildir است، ما به سه زیردایرکتوری تحت این mailbox نیاز خواهیم داشت: new، cur، tmp. چندین اسکریپت برای انجام این کار وجود دارد، اما اساسا این به خوبی عمل می‌کند:

 

mkdir new cur tmp

chmod 700 new cur tmp

 

دو سطر بعدی یک اکانت تعریف می‌کنند که ما آن را تنظیم خواهیم نمود و حق دسترسی به mailboxها را خواهد داشت. بله، یک اکانت توانایی خواندن تمامی ایمیل‌های مجازی را خواهد داشت. بله، این می‌تواند یک مشکل امنیتی به حساب آید. لطفا تمام سعی خود را به کار بندید تا اطمینان حاصل نمایید که هیچ کس نمی‌تواند این کاربر باشد. ما این اکانت را "virtual" می‌نامیم. آن را هر گونه که می‌خواهید به سیستم بیافزایید (مثلا useradd) و uid و gid آن را یادداشت نمایید.

آخرین سطر یک فایل متنی را مشخص می‌سازد که ما می‌توانیم اسامی مستعار (aliasها) را برای اکانت‌های مجازی در آن قرار دهیم. محتویات چیزی شبیه این خواهد بود:

 

joe@domain1.com joe@yahoo.com

 

در نهایت، شما باید مالکیت mailbox ها را به کاربر مجازی اعطا کنید. اجرای این دستور نتیجه‌ی دلخواه شما را در پی خواهد داشت:

 

chown -R virtual:virtual /var/spool/vmail

 

حالا کار انجام شد. فقط یک "postfix reload" اجرا کنید و همه چیز تمام است. البته اکنون ما نیاز به یک روش برای بازیابی واقعی ایمیل داریم. من این کار را در قسمت دوم انجام خواهم داد.

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.