Exim

برای تأمین محرمانگی و جامعیت داده‌های مبادله شده می‌توان از پروتکل‌های استانداردی که بدین منظور طراحی‌ شده استفاده کرد. در حال حاضر مهم‌ترین پروتکل رمزنگاری که در سطح اینترنت برای رمزنگاری داده‌های لایه کاربرد و تأمین امنیت ارتباطات استفاده می‌شود، پروتکل SSL/TLS است. در این گزارش مراحل نصب گواهی‌نامه SSL و امن‌سازی پروتکل SSL/TLS را بر روی سرویس‌دهنده Exim بیان شده است.

۱ فعال‌سازی ارتباطات SSL/TLS

برای پیکربندی SSL/TLS و استفاده از این پروتکل ابتدا باید گواهی‌نامه دیجیتال مربوطه را از مراکز صدور گواهی (CA)(1) معتبر دریافت کرد (یا گواهی خود-امضا را تولید کرد). گرفتن گواهی دارای مراحلی است که برای اطلاعات بیشتر در این زمینه می‌توانید به گزارش ارائه شده توسط پژوهشکده آپای دانشگاه صنعتی امیرکبیر که در آدرس زیر قرار دارد مراجعه کنید:

http://apa.aut.ac.ir/?p=971

در ادامه این بخش، قصد داریم تا مراحل نصب گواهی و استفاده از ارتباطات امن را در Exim بیان کنیم:

فایل پیکربندی Exim در مسیر زیر قرار دارد که تغییرات مربوطه باید در آن داده شود. توصیه می‌شود قبل از تغییر این فایل، یک نسخه پشتیبان از آن تهیه کنید.

etc/exim.conf

توجه: به منظور اعمال تغییرات انجام شده در این فایل، باید با دستور زیر Exim را راه‌اندازی مجدد کرد.

tls_certificate = /etc/exim.cert
tls_privatekey = /etc/exim.key

فایل گواهی (exim.cert)، یک موجودیت عمومی (غیر محرمانه) است ولی فایل کلید (exim.key) به صورت محرمانه باید نگهداری ‌شود. توجه کنید که امکان دارد گواهی و کلید خصوصی هر دو در یک فایل باشند که به صورت زیر بیان می‌شود و با این وجود باز هم فقط گواهی به سرویس‌گیرنده ارسال خواهد شد.

زمانی که از یک مراکز صدور گواهی میانی، گواهی دریافت کنید، آن CA‌، زنجیره گواهی‌های میانی خود را در قالب یک بسته(۲) در اختیار شما قرار می‌دهد که باید به صورت زیر در فایل پیکربندی Exim قرار گیرد:

tls_verify_certificates = /etc/exim.cacert

۲ پیکربندی امن پروتکل SSL/TLS

در این بخش چگونگی پیکربندی امن SSL/TLS را در سرویس‌دهنده Exim بیان می‌کنیم. مواردی همچون به‌روزرسانی OpenSSL به آخرین نسخه به منظور کاهش حملاتی شبیه به خونریزی قلبی(۳)، استثنا کردن برخی الگوریتم‌های رمز به منظور کاهش حملاتی شبیه به FREAK ،CRIME و LogJAM، غیرفعال ‌سازی نسخه‌های ناامن SSL، برقرار کردن رمزنگاری‌های قوی که از Forward Secrecy پشتیبانی می‌کنند و فعال سازی HSTS را بیان می‌کنیم.

برای بررسی وضعیت امنیتی پروتکل SSL/TLS سرویس‌دهنده خود، می‌توانید به ابزاری که بدین منظور توسط پژوهشکده آپای دانشگاه صنعتی امیرکبیر طراحی شده و در آدرس زیر قرار دارد، مراجعه کنید.

https://sslcheck.certcc.ir

۱-۲ امن سازی پارامتر‌های دیفی هلمن

ما نیاز داریم تا یک پارامتر دیفی هلمن قوی را تولید کنیم، که می‌توانیم با دستور زیر این کار را انجام دهیم:

cd /etc/ssl/certs
openssl dhparam -out dhparam.pem 4096

و سپس باید بهExim بگوییم که از این پارامترها برای تغییر کلید دیفی هلمن(۴) استفاده کند:

tls_dhparam = /etc/ssl/certs/dhparam.pem

۲-۲ غیرفعال سازی الگوریتم‌های رمزنگاری ضعیف

Forward Secrecy اطمینان می‌دهد که صحت(۵) یک کلید جلسه(۶) حتی وقتی که کلیدهای زیادی مورد مخاطره قرار گرفتند، حفظ می‌شود. FS کامل(۷) این مورد را با استخراج یک کلید جدید برای هر جلسه، به انجام می‌رساند. این بدان معناست که زمانی که کلید خصوصی به مخاطره افتاد، نمی‌تواند برای رمزگشایی ترافیک SSL مورد استفاده قرار گیرد.

پیشنهاد می‌شود دستور زیر را برای استفاده از الگوریتم‌های رمزنگاری قوی و غیرفعال سازی رمزنگاری‌های ضعیف در فایل پیکربندی وارد کنید.

tls_require_ciphers = ALL:-SSLv3:RC4:-SSLv2:!ADH:+HIGH:+MEDIUM:-LOW:-EXP

۳-۲ غیرفعال سازی SSLv2 و SSLv3

SSLv2 و SSLv3 (به خاطر حمله POODLE) ناامن هستند و باید غیرفعال شوند. برای غیرفعال سازی آنها، فایل مخصوص پیکربندی را به صورت زیر ویرایش می‌کنیم:

openssl_options = +no_sslv2 +no_sslv3

۳ منابع

[۱] http://help.directadmin.com/item.php?id=598

[۲] https://www.ndchost.com/wiki/cpanel/poodle-fix

[۳] http://m.org/exim-html-current/doc/html/spec_html/index.html

[۴] http://exim.org/exim-html-current/doc/html/spec_html/index.html

[۵] https://help.directadmin.com/item.php?id=598

[۶] http://www.exim.org/exim-html-current/doc/html/spec_html/ch-encrypted_smtp_connections_using_tlsssl.html


(۱) Certificate Authority
(۲) Bundle
(۳) Heartbleed
(۴) DHE key-exchange
(۵) Integrity
(۶) Session Key
(۷) Perfect Forward Secrecy


دریافت نسخه PDF