ÅÚÏÇÏ ÇáÓíÑÝÑ áÅÑÓÇá æÅÓÊÞÈÇá ÇáÈÑíÏ ÇáÅáßÊÑæäí
Ýí ÇáÈÏÇíÉ íÌÈ Ãä äÞæã ÈÊËÈíÊ Postfix æ Dovecot æÇáÐí È쾄 íÞæã ÈãÞÇã POP3/IMAP æÇáÐí åæ ãÓÆæá Úä ÅÑÓÇá æÅÓÊÞÈÇá ÇáÈÑíÏ ÇáÅáßÊÑæäí ÈÇáÓíÑÝÑ .
ÓäÞæã ÈÇáÊËÈíÊ ãä ÎáÇá yum
ÑãÒ PHP:
yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain postfix dovecot
äÞæã ÈÚãá ÇáÅÚÏÇÏÇÊ áÜ SMTP-AUTH æ TLS ßí äÓÊØíÚ ÇáÅÊÕÇá ÈÇáãÒæÏÇÊ ÇáÃÎÑì ÇáÎÇÑÌíÉ ÅÓÊÞÈÇá æÅÑÓÇá .
ÑãÒ PHP:
postconf -e 'smtpd_sasl_local_domain ='
postconf -e 'smtpd_sasl_auth_enable = yes'
postconf -e 'smtpd_sasl_security_options = noanonymous'
postconf -e 'broken_sasl_auth_clients = yes'
postconf -e 'smtpd_sasl_authenticated_header = yes'
postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject _unauth_destination'
postconf -e 'inet_interfaces = all'
postconf -e 'mynetworks = 127.0.0.0/8'
íÌÈ ÚáíäÇ ÊÕÍíÍ ÞæÇäíä ÇáÏÎæá Çáì ÇáÈÑíÏ ÇáÅáßÊÑæäí ãä ÎáÇá
smtpd.conf æÐáß ÍÊì äÌÚá postfix íÓãÍ ááÈÇÑãÊÑÒ (PLAIN æ LOGIN) ÈÇáÚãá ãä ÎáÇá ÇáÃãÑ ÇáÊÇáí :
ÓäÞæã ÈÊÍÑíÑ ÇáãÓÇÑ ÇáÊÇáí :
/usr/lib/sasl2/smtpd.conf
ãáÇÍÙÉ : åÐÇ ÇáãÓÇÑ Ýí ÃäÙãÉ 32 ÈÊ ÝÞØ , æÓíßæä ßÇáÊÇáí : /usr/lib64/sasl2/smtpd.conf Ýí ÃäÙãÉ 64 ÈÊ .
ÑãÒ PHP:
nano /usr/lib/sasl2/smtpd.conf
Ãæ
ÑãÒ PHP:
vi /usr/lib/sasl2/smtpd.conf
ÊÃßÏ ãä ÇáÞíã ÇáÊÇáíÉ :
ÑãÒ Code:
pwcheck_method: saslauthdmech_list: plain login
íÌÈ ÇáÊÃßÏ ãä æÌæÏ åÐÇ ÇáÓØÑ :
mech_list: plain login
ÇáÂä .. ÓæÝ äÞæã ÈÕäÚ Ãæ ÅäÔÇÁ ãÇíÓãì ÈÔåÇÏÇÊ ÇáÍãÇíÉ SSL Certificate ãä ÎáÇá ÅäÔÇÁ ãÌáÏ SSL ÏÇÎá postfix ãä ÎáÇá ÇáÃãÑ ÇáÊÇáí :
ÑãÒ PHP:
mkdir /etc/postfix/ssl
ÓäÞæã ÇáÂä ÈÇáÏÎæá Çáì ÇáãÌáÏ ÇáÌÏíÏ ÇáÐí ÕäÚäÇå SSL ãä ÎáÇá :
ÑãÒ PHP:
cd /etc/postfix/ssl/
Ëã Þã ÈÊäÝíÐ ÇáÊÇáí áÊÔÛíá SSL :
ÑãÒ PHP:
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
ÑãÒ PHP:
chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr
ÑãÒ PHP:
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
ÑãÒ PHP:
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
ÑãÒ PHP:
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
äÞæã ÇáÂä ÈÚãá ÇáÅÚÏÇÏÇÊ ÇááÇÒãÉ áÜ postfix ãä ÃÌá ÊÕÍíÍ ÊÔÛíá TLS
ÑãÒ PHP:
postconf -e 'smtpd_tls_auth_only = no'
postconf -e 'smtp_use_tls = yes'
postconf -e 'smtpd_use_tls = yes'
postconf -e 'smtp_tls_note_starttls_offer = yes'
postconf -e 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key'
postconf -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt'
postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem'
postconf -e 'smtpd_tls_loglevel = 1'
postconf -e 'smtpd_tls_received_header = yes'
postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
postconf -e 'tls_random_source = dev:/dev/urandom'
ÇáÂä ÓäÞæã ÈæÖÚ ÇáåæÓÊ äíã ßãÇ Ýí ÇáãÚØíÇÊ ÇáÓÇÈÞÉ ( Ýí ÈÏÇíÉ ÇáÏÑÓ ) Çááí åæ : server1.example.com
ÑãÒ PHP:
postconf -e 'myhostname = server1.example.com'
ÓäÞæã ÈÊÍÑíÑ ãáÝ ÇáÅÚÏÇÏÇÊ ÇáÎÇÕ ÈÜ postfix ãä ÃÌá ÇáÊÃßÏ ãä ÚÏã æÖÚ ÚáÇãÇÊ # ÇáÊí ÊÞæã ÈÊÚØíá Ãí ÓØÑ :
ÑãÒ PHP:
nano /etc/postfix/main.cf
Ãæ
ÑãÒ PHP:
vi /etc/postfix/main.cf
ÊÃßÏ ãä ÇáÊÇáí :
ÑãÒ Code:
queue_directory = /var/spool/postfixcommand_directory = /usr/sbindaemon_directory = /usr/libexec/postfixdata_directory = /var/lib/postfixmail_owner = postfixinet_interfaces = allmydestination = $myhostname, localhost.$mydomain, localhostunknown_local_recipient_reject_code = 550alias_maps = hash:/etc/aliasesalias_database = hash:/etc/aliasesdebug_peer_level = 2debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfixnewaliases_path = /usr/bin/newaliases.postfixmailq_path = /usr/bin/mailq.postfixsetgid_group = postdrophtml_directory = nomanpage_directory = /usr/share/mansample_directory = /usr/share/doc/postfix-2.5.1/samplesreadme_directory = /usr/share/doc/postfix-2.5.1/README_FILESinet_protocols = allsmtpd_sasl_local_domain =smtpd_sasl_auth_enable = yessmtpd_sasl_security_options = noanonymousbroken_sasl_auth_clients = yessmtpd_sasl_authenticated_header = yessmtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject _unauth_destinationmynetworks = 127.0.0.0/8smtpd_tls_auth_only = nosmtp_use_tls = yessmtpd_use_tls = yessmtp_tls_note_starttls_offer = yessmtpd_tls_key_file = /etc/postfix/ssl/smtpd.keysmtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crtsmtpd_tls_CAfile = /etc/postfix/ssl/cacert.pemsmtpd_tls_loglevel = 1smtpd_tls_received_header = yessmtpd_tls_session_cache_timeout = 3600stls_random_source = dev:/dev/urandommyhostname = server1.example.com
äÞæã ÇáÂä ÈÊÔÛíá postfix æ saslauthd æ Dovecot ãä ÎáÇá :
ÑãÒ PHP:
chkconfig --levels 235 sendmail off
chkconfig --levels 235 postfix on
chkconfig --levels 235 saslauthd on
chkconfig --levels 235 dovecot on
/etc/init.d/sendmail stop
/etc/init.d/postfix start
/etc/init.d/saslauthd start
/etc/init.d/dovecot start
ááÊÃßÏ ãä Ãä SMTP-AUTH æ TLS íÚãáÇä ÈäÌÇÍ äÝÐ ÇáÊÇáí :
ÑãÒ Code:
telnet localhost 25
áÇÍÙ Ãä ÇáÅÑÓÇá ÓíÚãá Úáì ÇáãäÝÐ ÑÞã : 25
íãßä ÊÛííÑå ÝíãÇ ÈÚÏ ãä ÎáÇá WHM .
äÝÐ ÇáÂÊí ááÊÃßÏ ãä ÇáÅÊÕÇá :
ÑãÒ PHP:
ehlo localhost
ÅÐÇ ÙåÑÊ åÐå ÇáäÊíÌÉ :
ÑãÒ Code:
250-STARTTLS
æ
ÑãÒ PHP:
250-AUTH PLAIN LOGIN
ÊÃßÏ Ãä ßá ÔÆ Úáì ãÇíÑÇã
ÑãÒ PHP:
[root@server1 ssl]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 server1.example.com ESMTP Postfix
ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
[root@server1 ssl]#
ÇáÂä ÇÎÑÌ ãä ÇáÓßÑÈÊ
ÑãÒ PHP:
quit
æÐáß ááÚæÏÉ ááÔíá ãä ÌÏíÏ
Ëã Þã ÈÊäÝíÐ ÇáÊÇáí áíÕÈÍ ÇáÜ Dovecot íÓÊÎÏã åíÆÉ Ãæ ØÑíÞÉ ÇáÜ not mbox ãä ÎáÇá maildir
ÑãÒ PHP:
postconf -e 'home_mailbox = Maildir/'
postconf -e 'mailbox_command ='
/etc/init.d/postfix restart
>>> ÊÇÈÚ
ãæÇÞÚ ÇáäÔÑ (ÇáãÝÖáÉ)