موضوع : نصب و راه اندازی کامل یک Mail Server با استفاده از qmail به همراه آموزش کامل تنظیمات DNS و ست کردن Domainkey و DKIM.


قسمت اول شامل : تعاریف،پیش نیازها،نصب Qmail،نصب DNS Server


تعاریف :

qmail : نرم افزاری open source برای ایجاد یک Mail Server بر روی بستر لینوکس که قابلیت پشتیبانی از SMTP,POP3,IMAP و ... را دارد و همچنین به همراه پکیج های مدیریتی بسیاری ارائه شده است که میتوان به web mail,mrtg و webadmin اشاره کرد

تنظیمات DNS : جزء جدا نشدنی یک میل سرور کامل و سالم که میبایست بدون کوچکترین عیب و ایرادی تنظیم شود، به این علت که میل سرور های دیگر از جمله yahoo,google,live و ... به طور جدی نسبت به تنظیمات DNS حساسیت نشون میدن و مانع ورود ایمیل هایی بدون تنظیمات DNS صحیح خواهند شد.

Domainkey : یک کلید برای اهراز هویت نام Domain که ابداعی از yahoo هست و به منظور جلوگیری هرچه بیشتر از Spam ایجاد شده.
میتوانید مطالب بیشتر را در آدرس :http://antispam.yahoo.com/domainkeys که یک پروژه opensource از یاهو در http://domainkeys.sourceforge.net میباشد پیگیری کنید.

DKIM : ابداعی دیگر که کارائی همانند Domainkey دارد. مطالب بیشتر در این خصوص را در DKIM.org پیگیری نمایید.


پیش نیاز ها :
مرحله 1 : یکی از توزیع های لینوکس. این مقاله بر اساس توزیع Centos 5 تهیه شده است.


مرحله 2 : حذف پکیجهای نا سازگار

کد:
کد PHP:
yum -y remove sendmail 
yum 
-y remove openssl
yum 
-y remove cyrus-imapd 


مرحله 3: نصب پکیجهای مورد نیاز


کد:
کد PHP:
yum -y install autoconf automake automake17 bzip2 bzip2-devel bzip2-libs compat-gcc-34 compat-gcc-34-C++‎ compat-glibc compat-glibc-headers compat-libf2c compat-libgcc compat-libstdC++-296 compat-libsdC++-33 curl curl-devel expect expect-devel gcc gcc-C++‎ gdbm gdbm-devel gmp gmp-devel httpd httpd-devel httpd-manual krb5-auth-dialog krb5-devel krb5-libs krb5-workstation libgcc libidn libidn-devel libtool libtool-ltdl libtool-ltdl-devel mysql mysql-bench mysql-devel mysql-server mrtg ncurses-devel ntp openssh openssh-clients openssh-askpass openssh-server openssl openssl-devel pcre pcre-devel perl-Digest-HMAC perl-Digest-SHA1 perl-HTML-Parser perl-libwww-perl perl-Net-DNS php php-ldap php-mysql php-pear redhat-rpm-config rpm rpm-build rpm-devel rpm-libs rpm-python sed setup setuptool stunnel system-config-date wget which xinetd zlib zlib-devel 
مرحله 4: نصب پکیجهای Perl برای Spamassassin

کد:
کد PHP:
perl -'use CPAN; install MIME::Base64;'
perl -'use CPAN; install DB_File;'
perl -'use CPAN; install Net::DNS;'
perl -'use CPAN; install Net::SMTP;'
perl -'use CPAN; install Mail::SPF::Query;'
perl -'use CPAN; install Time::HiRes;'
perl -'use CPAN; install Mail::DomainKeys;'
perl -'use CPAN; install IO::Zlib;'
perl -'use CPAN; install Archive::Tar;' 

مرحله 5: Stop سرویس های غیر ضروری و استارت سرویس های ضروری.


کد:
کد PHP:
chkconfig httpd on
service httpd start

chkconfig mysqld on
service mysqld start

chkconfig ntpd on
service ntpd start 
مرحله 6: تنظیمات mysql

کد:
کد PHP:
mysqladmin -uroot -prootpassword
mysqladmin 
-uroot -prootpassword reload
mysqladmin 
-uroot -prootpassword refresh 

ایجاد دیتابیس برای vpopmail


کد:
کد PHP:
mysqladmin create vpopmail -uroot -prootpassword
mysqladmin 
-uroot -prootpassword reload
mysqladmin 
-uroot -prootpassword refresh

echo "GRANT ALL PRIVILEGES ON vpopmail.* TO vpopmail@localhost IDENTIFIED BY 'vpopmailpassword'" mysql -uroot -prootpassword
mysqladmin 
-uroot -prootpassword reload
mysqladmin 
-uroot -prootpassword refresh 
مرحله 7: runlevel 3

کد:
کد PHP:
cp -/etc/inittab /etc/inittab.bak
cat 
/etc/inittab sed -'s/^id:5:initdefault:/id:3:initdefault:/' > /etc/inittab.new
mv -/etc/inittab.new /etc/inittab 
مرحله 8: ایجاد symbol link برای krb5 com_err.h

کد:
کد PHP:
ln -/usr/include/et/com_err./usr/include/com_err.
مرحله 9 : به روز رسانی مخزن yum
کد:
کد PHP:
yum -y update 
مرحله 10: ریبوت سیستم
کد:
کد PHP:
reboot 
نصب Qmail :

مرحله 1: دریافت پکیجهای مربوط
کد:
کد PHP:
mkdir -/usr/src/qtms-install
cd 
/usr/src/qtms-install

wget http
://www.qmailtoaster.com/download/zlib-1.2.3-1.0.3.src.rpm
wget http://www.qmailtoaster.com/download/daemontools-toaster-0.76-1.3.4.src.rpm
wget http://www.qmailtoaster.com/download/ucspi-tcp-toaster-0.88-1.3.6.src.rpm
wget http://www.qmailtoaster.com/download/vpopmail-toaster-5.4.17-1.3.5.src.rpm
wget http://www.qmailtoaster.com/download/libdomainkeys-toaster-0.68-1.3.4.src.rpm
wget http://www.qmailtoaster.com/download/libsrs2-toaster-1.0.18-1.3.4.src.rpm
wget http://www.qmailtoaster.com/download/qmail-toaster-1.03-1.3.16.src.rpm
wget http://www.qmailtoaster.com/download/courier-authlib-toaster-0.59.2-1.3.7.src.rpm
wget http://www.qmailtoaster.com/download/courier-imap-toaster-4.1.2-1.3.8.src.rpm
wget http://www.qmailtoaster.com/download/autorespond-toaster-2.0.4-1.3.4.src.rpm
wget http://www.qmailtoaster.com/download/control-panel-toaster-0.5-1.3.5.src.rpm
wget http://www.qmailtoaster.com/download/ezmlm-toaster-0.53.324-1.3.4.src.rpm
wget http://www.qmailtoaster.com/download/qmailadmin-toaster-1.2.11-1.3.5.src.rpm
wget http://www.qmailtoaster.com/download/qmailmrtg-toaster-4.2-1.3.4.src.rpm
wget http://www.qmailtoaster.com/download/maildrop-toaster-2.0.3-1.3.6.src.rpm
wget http://www.qmailtoaster.com/download/isoqlog-toaster-2.1-1.3.5.src.rpm
wget http://www.qmailtoaster.com/download/squirrelmail-toaster-1.4.17-1.3.12.src.rpm
wget http://www.qmailtoaster.com/download/spamassassin-toaster-3.2.5-1.3.15.src.rpm
wget http://www.qmailtoaster.com/download/clamav-toaster-0.95.1-1.3.27.src.rpm
wget http://www.qmailtoaster.com/download/ripmime-toaster-1.4.0.6-1.3.4.src.rpm
wget http://www.qmailtoaster.com/download/simscan-toaster-1.3.1-1.3.7.src.rpm
wget http://www.qmailtoaster.com/download/vqadmin-toaster-2.3.4-1.3.4.src.rpm
wget http://www.qmailtoaster.com/download/djbdns-1.05-1.0.6.src.rpm 

مرحله 2: نصب پکیجها


کد:
کد PHP:
wget http://www.qmailtoaster.com/centos/cnt50/cnt50-install-script.sh
sh cnt50-install-script.sh 
در این مرحله میتوانید تمام مراحل را با استفاده از Enter نصب نمایید.
توجه : نصب همه پکیجها الزامیست در صورتی که از DNS Server bind استفاده میکنید در این صورت از نصب پکیج djbdns-1.05-1.0.6.src.rpm جلوگیری کنید تا دچار تداخل نشوید.
توجه : در هنگام نصب پکیجها در صورت وجود هرگونه تداخل از نصب پکبج جلوگیری میشود.


مرحله 3: تنظیم سرویس های startup
کد:
کد PHP:
chkconfig acpid on
chkconfig anacron on
chkconfig atd on
chkconfig autofs on
chkconfig cpuspeed on
chkconfig crond on
chkconfig freshclam on
chkconfig haldaemon on
chkconfig httpd on
chkconfig iptables on
chkconfig kudzu on
chkconfig messagebus on
chkconfig mysqld on
chkconfig network on
chkconfig ntpd on
chkconfig qmail on
chkconfig smartd on
chkconfig sshd on
chkconfig syslog on
chkconfig xinet on
chkconfig irqbalance on 
نصب DNS Server:
در این مقاله از bind استفاده شده است.

مرحله 1: نصب پکیجهای مورد نیاز

کد:
کد PHP:
yum -y install bind bind-chroot bind-devel bind-libbind-devel bind-libs bind-utils ypbind caching-nameserver 
مرحله 2: تنظیم DNS Server داخلی

کد:
کد PHP:
echo "search your-domain.com" > /etc/resolv.conf

echo "nameserver 127.0.0.1" >> /etc/resolv.conf 
مرحله 3: Start Up Dns Server
کد:
کد PHP:
chkconfig named on 
مرحله 4: ریبوت سیستم

کد:
کد PHP:
reboot 

آزمایش صحت نصب برنامه :


کد:
کد PHP:
qmailctl stat 
و در جواب داریم :
کد:
کد PHP:
authlibup (pid 242565 seconds
clamd
up (pid 242565 seconds
imap4
up (pid 242165 seconds
imap4
-sslup (pid 242365 seconds
pop3
up (pid 241465 seconds
pop3
-sslup (pid 240965 seconds
send
up (pid 241665 seconds
smtp
up (pid 241865 seconds
spamd
up (pid 240765 seconds
authlib
/logup (pid 241765 seconds
clamd
/logup (pid 241765 seconds
imap4
/logup (pid 242265 seconds
imap4
-ssl/logup (pid 242465 seconds
pop3
/logup (pid 241565 seconds
pop3
-ssl/logup (pid 241365 seconds
send
/logup (pid 242065 seconds
smtp
/logup (pid 241965 seconds
spamd
/logup (pid 240865 seconds 
پایان فسمت اول