POSTFIX-TLS(1) General Commands Manual POSTFIX-TLS(1)

postfix-tls - مدیریت TLS در Postfix

postfix tls subcommand


ویژگی «postfix tls subcommand» امکان TLS فرصت‌طلبانه (opportunistic TLS) را در کارخواه یا سرور SMTP در Postfix فعال می‌کند و کلیدهای خصوصی و گواهی‌های سرور Postfix SMTP را مدیریت می‌نماید.

زیرفرمان‌های زیر در دسترس هستند:

فعال‌سازی TLS فرصت‌طلبانه در کارخواه Postfix SMTP، در صورتی که تمام تنظیمات TLS کارخواه SMTP روی مقادیر پیش‌فرض خود باشند. در غیر این صورت، بدون اعمال هیچ تغییری، تنظیمات پارامترها را پیشنهاد می‌دهد.

برای به‌روزرسانی مقدار پارامتر پیکربندی tls_random_source (معمولاً /dev/urandom)، مقدار randsource را مشخص کنید. برای مسیرهای دستگاه عبارت dev: یا برای مسیرهای سوکت EGD عبارت egd: را در ابتدای مسیر قرار دهید.

همچنین زیرفرمان all-default-client را ببینید.

ایجاد یک کلید خصوصی جدید و گواهی سرور خودامضاشده (self-signed)، و فعال‌سازی TLS فرصت‌طلبانه در سرور Postfix SMTP، در صورتی که تمام تنظیمات TLS سرور SMTP روی مقادیر پیش‌فرض خود باشند. در غیر این صورت، بدون اعمال هیچ تغییری، تنظیمات پارامترها را پیشنهاد می‌دهد.

پارامتر randsource همانند enable-client در بالا است، و سایر گزینه‌ها مشابه new-server-key در ادامه هستند.

همچنین زیرفرمان all-default-server را ببینید.

ایجاد یک کلید خصوصی جدید و گواهی سرور خودامضاشده، بدون مستقر ساختن (deploy) آن‌ها. دستورات لازم برای استقرار کلید جدید و گواهی متناظر را ثبت (log) و نمایش می‌دهد. همچنین دستورات خروجی دادن CSR متناظر یا رکوردهای TLSA را که ممکن است برای دریافت گواهی CA یا به‌روزرسانی DNS پیش از استقرار کلید جدید نیاز باشند، ثبت و نمایش می‌دهد.

مقدار پیش‌فرض algorithm برابر با rsa، و مقدار پیش‌فرض bits برابر با 2048 است. اگر الگوریتم ecdsa را انتخاب کنید، مقدار bits نام منحنی EC خواهد بود (به طور پیش‌فرض secp256r1، که با نام prime256v1 نیز شناخته می‌شود). بعید است منحنی‌هایی غیر از secp256r1، secp384r1 یا secp521r1 سازگاری گسترده‌ای داشته باشند. هنگام تولید کلیدهای EC، از یکی از این سه استفاده کنید. کلیدهای DSA منسوخ شده‌اند و پشتیبانی نمی‌شوند.

نکته: پشتیبانی از ECDSA نیازمند OpenSSL 1.0.0 یا بالاتر است و ممکن است در سیستم شما در دسترس نباشد. همه سامانه‌های کارخواه از ECDSA پشتیبانی نمی‌کنند، بنابراین معمولاً بهتر است هر دو گواهی RSA و ECDSA را مستقر کنید تا برای کارخواه‌های سازگار از ECDSA و برای بقیه از RSA استفاده شود. اگر می‌خواهید زنجیره‌های گواهی (certificate chains) را با CAهای میانی (intermediate CAs) هم برای RSA و هم ECDSA مستقر کنید، حداقل به OpenSSL 1.0.2 نیاز خواهید داشت، زیرا نسخه‌های قدیمی‌تر ممکن است چندین فایل زنجیره را به درستی مدیریت نکنند.

نخستین آرگومان hostname به عنوان CommonName هر دو موضوع (subject) و صادرکننده (issuer) گواهی خودامضاشده قرار خواهد گرفت. این نام و هر آرگومان اضافی hostname نیز به عنوان نام‌های جایگزین DNS در گواهی فهرست می‌شوند. اگر هیچ hostname مشخص نشود، مقدار پارامتر myhostname در main.cf استفاده خواهد شد.

برای RSA، فایل‌های کلید خصوصی و گواهی تولیدشده با نام‌های key-yyyymmdd-hhmmss.pem و cert-yyyymmdd-hhmmss.pem نام‌گذاری می‌شوند، که در آن‌ها yyyymmdd تاریخ تقویمی و hhmmss زمان روز بر حسب UTC است. برای ECDSA، نام فایل‌ها به ترتیب به جای key- و cert- با eckey- و eccert- آغاز می‌شود.

پیش از استقرار کلید و گواهی جدید با DANE، رکوردهای جدید DANE TLSA را در DNS به‌روزرسانی کنید، سپس منتظر بمانید تا کارگزارهای نام ثانویه به‌روزرسانی شوند و رکوردهای کهنه در حافظه‌های موقت دوردستِ DNS منقضی گردند.

پیش از استقرار گواهی جدید CA، اطمینان حاصل کنید که تمام گواهی‌های CA صادرکننده میانی در فایل زنجیره گواهی گنجانده شده‌اند. گواهی سرور باید نخستین گواهی در فایل زنجیره باشد. فایلی را که همراه با کلید به عنوان گواهی خودامضاشده اصلی تولید شده بود، بازنویسی کرده و مستقر نمایید.

این دستور دقیقاً مانند new-server-key است، به جز اینکه به جای تولید کلید خصوصی جدید، هر کلید خصوصی که هم‌اکنون مستقر است در فایل کلید جدید کپی می‌شود. بنابراین اگر رکوردهای DANE TLSA "3 1 1" یا "3 1 2" را منتشر می‌کنید، نیازی به به‌روزرسانی رکوردهای DNS نیست. آرگومان‌های algorithm و bits تنها در صورتی استفاده می‌شوند که هیچ کلیدی از همان الگوریتم از پیش پیکربندی نشده باشد.

این دستور به ندرت مورد نیاز است، زیرا گواهی‌های خودامضاشده تولیدی، تاریخ انقضای اسمی ۱۰۰ ساله دارند. الگوریتم‌های کلید عمومی زیربنایی ممکن است مدت‌ها پیش از آن توسط رایانه‌های کوانتومی منسوخ شوند.

محتمل‌ترین دلیل برای استفاده از این دستور زمانی است که نام میزبان سیستم (hostname) تغییر کند و بخواهید نام موجود در گواهی با نام میزبان جدید مطابقت داشته باشد (برای DANE "3 1 1" نیازی نیست، اما برخی کارخواه‌های غیر-DANE دارای TLS فرصت‌طلبانه ممکن است هشدارهایی ثبت کنند یا حتی از برقراری ارتباط خودداری ورزند).

این زیرفرمان گواهی‌های موجود در certfile و کلید خصوصی در keyfile را مستقر می‌کند (که معمولاً توسط دستورهای بالا تولید می‌شوند؛ دستورهایی که دستور کامل مورد نیاز برای استقرار کلید و گواهی تولیدشده را نیز ثبت و نمایش می‌دهند). پس از استقرار گواهی و کلید جدید، هرگونه کلید و گواهی منسوخ را می‌توان به صورت دستی حذف کرد. نام فایل‌های keyfile و certfile می‌توانند نسبت به دایرکتوری پیکربندی Postfix نسبی باشند.
نوشتن یک درخواست امضای گواهی (CSR) در خروجی استاندارد (stdout) برای keyfile مشخص‌شده.

به جای یک مسیر مطلق یا مسیری نسبت به config_directory$، مقدار keyfile می‌تواند نام یکی از الگوریتم‌های کلید پشتیبانی‌شده باشد (به «postconf -T public-key-algorithms» رجوع کنید). در این حالت، از تنظیم متناظر در main.cf برای یافتن keyfile استفاده می‌شود. مقدار پیش‌فرض keyfile برابر rsa است.

صفر یا چند مقدار hostname را می‌توان مشخص کرد. مقدار پیش‌فرض hostname همان مقدار پارامتر myhostname در main.cf است.

نوشتن یک مجموعه رکورد منبع (RRset) از نوع DANE TLSA در خروجی استاندارد، مناسب برای یک سرور SMTP در درگاه ۲۵ روی میزبان hostname، همراه با کلیدهایی از هر یک از مقادیر مشخص‌شده keyfile. مقدار پیش‌فرض hostname همان مقدار پارامتر myhostname در main.cf است.

به جای مسیرهای مطلق یا مسیرهای نسبی به config_directory$، فهرست keyfile می‌تواند نام الگوریتم‌های کلید عمومی پشتیبانی‌شده باشد (به «postconf -T public-key-algorithms» رجوع کنید). در این حالت، فهرست واقعی keyfile از مقادیر پارامترهای فایل کلید TLS سرور Postfix متناظر استفاده می‌کند. اگر مقدار یک پارامتر خالی یا برابر با none باشد، هیچ رکورد TLSA برای آن الگوریتم خروجی داده نمی‌شود.

فهرست پیش‌فرض keyfile شامل دو الگوریتم پشتیبانی‌شده rsa و ecdsa است.

خروج با وضعیت ۰ (موفقیت‌آمیز) در صورتی که تمام تنظیمات TLS کارخواه SMTP روی مقادیر پیش‌فرض خود باشند. در غیر این صورت، با وضعیت غیر صفر خارج می‌شود. این دستور معمولاً به صورت زیر استفاده می‌شود:

postfix tls all-default-client &&
        postfix tls enable-client
خروج با وضعیت ۰ (موفقیت‌آمیز) در صورتی که تمام تنظیمات TLS سرور SMTP روی مقادیر پیش‌فرض خود باشند. در غیر این صورت، با وضعیت غیر صفر خارج می‌شود. این دستور معمولاً به صورت زیر استفاده می‌شود:

postfix tls all-default-server &&
        postfix tls enable-server

ویژگی «postfix tls subcommand» پارامترهای پیکربندی زیر را می‌خواند یا به‌روزرسانی می‌کند.

مکان تمام دستورهای مدیریتی postfix.
مکان پیش‌فرض فایل‌های پیکربندی main.cf و master.cf در Postfix.
مکان برنامه خط فرمان OpenSSL به نام openssl(1).
فعال‌سازی ثبت وقایع (logging) اضافی برای فعالیت‌های TLS در کارخواه Postfix SMTP.
سطح امنیت پیش‌فرض SMTP TLS برای کارخواه Postfix SMTP.
نام فایل حاوی حافظه موقت اختیاری نشست (session cache) مربوط به TLS کارخواه Postfix SMTP.
فایل حاوی گواهی RSA سرور Postfix SMTP در قالب PEM.
فایل حاوی گواهی ECDSA سرور Postfix SMTP در قالب PEM.
فایل حاوی کلید خصوصی ECDSA سرور Postfix SMTP در قالب PEM.
فایل حاوی کلید خصوصی RSA سرور Postfix SMTP در قالب PEM.
فعال‌سازی ثبت وقایع اضافی فعالیت‌های TLS در سرور Postfix SMTP.
درخواست از سرور Postfix SMTP برای تولید سرآیندهای پیام Received: که شامل اطلاعاتی درباره پروتکل و رمز (cipher) استفاده‌شده، و همچنین CommonName کارخواه دوردست SMTP و CommonName صادرکننده گواهی کارخواه باشد.
سطح امنیت SMTP TLS برای سرور Postfix SMTP؛ وقتی یک مقدار غیر خالی مشخص شود، جایگزین پارامترهای منسوخ smtpd_use_tls و smtpd_enforce_tls می‌شود.
منبع آنتروپی خارجی برای مخزن تولیدکننده اعداد شبه‌تصادفی (PRNG) درون حافظه در tlsmgr(8).

master(8) برنامه اصلی Postfix
postfix(1) رابط مدیریتی Postfix

برای یافتن این اطلاعات از «postconf readme_directory» یا «postconf html_directory» استفاده کنید.

TLS_README، پیکربندی و عملکرد TLS در Postfix

مجوز Secure Mailer باید همراه با این نرم‌افزار توزیع شود.


فرمان «postfix tls» در نسخه 3.1 از Postfix معرفی شد.

Viktor Dukhovni