TLSPROXY(8) System Manager's Manual TLSPROXY(8)

tlsproxy - پروکسی TLS برای Postfix

?Btlsproxy?R [گزینه‌های عمومی دیمن Postfix]


سرور ?Btlsproxy?R(8) یک پروکسی دوطرفه TLS را پیاده‌سازی می‌کند. این سرور توسط سرور ?Bpostscreen?R(8) برای برقراری ارتباط SMTP-over-TLS با کلاینت‌های SMTP راه دور که در لیست مجاز نیستند (شامل کلاینت‌هایی که وضعیت لیست مجاز آن‌ها منقضی شده است) استفاده می‌شود، و همچنین توسط کلاینت ?Bsmtp?R(8) برای پشتیبانی از استفاده مجدد از اتصالات TLS به کار می‌رود، اما باید برای پروتکل‌های غیر SMTP نیز عمل کند.

اگرچه یک پردازش ?Btlsproxy?R(8) می‌تواند چندین نشست را به طور همزمان پاسخ دهد، اما بهتر است اجازه داده شود تعداد پردازش‌ها همگام با بار کاری افزایش یابد تا سرویس پاسخگو باقی بماند.

مثال زیر مربوط به ?Bpostscreen?R(8) است. با این حال، سرور ?Btlsproxy?R(8) نسبت به پروتکل برنامه کاربردی مستقل است و این مثال به سادگی برای سایر برنامه‌ها نیز قابل تطبیق است.

پس از دریافت یک دستور STARTTLS معتبر از کلاینت SMTP راه دور، سرور ?Bpostscreen?R(8) رشته نقطه پایانی کلاینت SMTP راه دور، نقش درخواستی (server) و مهلت زمانی درخواستی را به ?Btlsproxy?R(8) ارسال می‌کند. سپس ?Bpostscreen?R(8) نشانه‌ای مبنی بر "در دسترس بودن TLS" از ?Btlsproxy?R(8) دریافت می‌کند. اگر سرویس TLS در دسترس باشد، ?Bpostscreen?R(8) توصیف‌گر فایل (file descriptor) کلاینت SMTP راه دور را به ?Btlsproxy?R(8) ارسال کرده و پیام خوشامدگویی متنی 220 را به کلاینت SMTP راه دور می‌فرستد. این کار مذاکرات TLS را میان کلاینت SMTP راه دور و ?Btlsproxy?R(8) آغاز می‌کند. پس از تکمیل دست‌تکانی سطح TLS، سرور ?Btlsproxy?R(8) تبدیل میان متن ساده از/به ?Bpostscreen?R(8) و متن رمزنگاری‌شده به/از کلاینت SMTP راه دور را بر عهده می‌گیرد.

سرور ?Btlsproxy?R(8) دارای حساسیت امنیتی متوسط است. این سرور با کلاینت‌های غیرقابل اعتماد در شبکه ارتباط برقرار می‌کند. پردازش می‌تواند به صورت chroot در سطح دسترسی پایین ثابت اجرا شود.


مشکلات و تراکنش‌ها در ?Bsyslogd?R(8) یا ?Bpostlogd?R(8) ثبت می‌شوند.

تغییرات در ?Bmain.cf?R به طور خودکار اعمال نمی‌شوند، زیرا پردازش‌های ?Btlsproxy?R(8) ممکن است بسته به بار کاری سرور ایمیل برای مدت طولانی در حال اجرا بمانند. از دستور «?Bpostfix reload?R» برای اعمال سریع‌تر تغییرات استفاده کنید.

متن زیر تنها خلاصه پارامترها را ارائه می‌دهد. برای جزئیات بیشتر به همراه مثال‌ها به ?Bpostconf?R(5) مراجعه فرمایید.

تنظیمات زیر سراسری هستند و بنابراین نمی‌توان آن‌ها را با اطلاعات مشخص‌شده در درخواست کلاینت ?Btlsproxy?R(8) بازنویسی کرد.

?Btls_append_default_CA (no)?R
الحاق گواهی‌های مرجع صدور گواهی (CA) پیش‌فرض ارائه‌شده توسط سیستم به گواهی‌های مشخص‌شده با *_tls_CApath یا *_tls_CAfile.
?Btls_daemon_random_bytes (32)?R
تعداد بایت‌های شبه‌تصادفی که یک پردازش ?Bsmtp?R(8) یا ?Bsmtpd?R(8) از سرور ?Btlsmgr?R(8) برای مقداردهی اولیه تولیدکننده اعداد شبه‌تصادفی داخلی (PRNG) خود درخواست می‌کند.
?Btls_high_cipherlist (خروجی 'postconf -d' را ببینید)?R
فهرست رمزهای OpenSSL برای رمزهای سطح "بالا" (high).
?Btls_medium_cipherlist (خروجی 'postconf -d' را ببینید)?R
فهرست رمزهای OpenSSL برای رمزهای سطح "متوسط" (medium) یا بالاتر.
?Btls_null_cipherlist (eNULL:!aNULL)?R
فهرست رمزهای OpenSSL برای رمزهای سطح "NULL" که احراز هویت را بدون رمزنگاری فراهم می‌کنند.
?Btls_eecdh_strong_curve (prime256v1)?R
منحنی بیضوی مورد استفاده توسط سرور SMTP پست‌فیکس برای تبادل کلید ECDH زودگذر به اندازه کافی قوی.
?Btls_eecdh_ultra_curve (secp384r1)?R
منحنی بیضوی مورد استفاده توسط سرور SMTP پست‌فیکس برای تبادل کلید ECDH زودگذر با حداکثر قدرت.
?Btls_disable_workarounds (خروجی 'postconf -d' را ببینید)?R
فهرست یا ماسک بیتی از راهکارهای دور زدن اشکالات OpenSSL جهت غیرفعال‌سازی.
?Btls_preempt_cipherlist (no)?R
با SSLv3 و بالاتر، استفاده از ترتیب اولویت رمزهای سرور SMTP پست‌فیکس به جای ترتیب اولویت رمزهای کلاینت راه دور.

موجود در نسخه‌های 2.8 تا 3.7 پست‌فیکس:

?Btls_low_cipherlist (خروجی 'postconf -d' را ببینید)?R
فهرست رمزهای OpenSSL برای رمزهای سطح "پایین" (low) یا بالاتر.
?Btls_export_cipherlist (خروجی 'postconf -d' را ببینید)?R
فهرست رمزهای OpenSSL برای رمزهای سطح صادراتی ("export") یا بالاتر.

موجود در نسخه 2.9 و بالاتر پست‌فیکس:

?Btls_legacy_public_key_fingerprints (no)?R
ابزار کمکی مهاجرت موقت برای سایت‌هایی که از اثر انگشت کلید عمومی گواهی در پست‌فیکس 2.9.0 تا 2.9.5 استفاده می‌کنند و از الگوریتم نادرستی بهره می‌برند.

موجود در نسخه 2.11 تا 3.1 پست‌فیکس:

?Btls_dane_digest_agility (on)?R
پیکربندی چابکی الگوریتم خلاصه RFC7671 DANE TLSA.
?Btls_dane_trust_anchor_digest_enable (yes)?R
فعال‌سازی پشتیبانی از رکوردهای DNS در RFC 6698 (DANE TLSA) که حاوی خلاصه‌های نقاط اتکای اعتماد (trust-anchors) با کاربرد گواهی "2" هستند.

موجود در نسخه 2.11 و بالاتر پست‌فیکس:

?Btlsmgr_service_name (tlsmgr)?R
نام مدخل سرویس ?Btlsmgr?R(8) در master.cf.

موجود در نسخه 3.0 و بالاتر پست‌فیکس:

?Btls_session_ticket_cipher (Postfix >= 3.0: aes-256-cbc, Postfix < 3.0: aes-128-cbc)?R
الگوریتم مورد استفاده برای رمزنگاری بلیت‌های نشست TLS طبق RFC5077.
?Bopenssl_path (openssl)?R
مکان برنامه خط فرمان OpenSSL به نام ?Bopenssl?R(1).

موجود در نسخه 3.2 و بالاتر پست‌فیکس:

?Btls_eecdh_auto_curves (خروجی 'postconf -d' را ببینید)?R
فهرست دارای اولویت منحنی‌های بیضوی که باید در کلاینت و سرور SMTP پست‌فیکس فعال شوند.

موجود در نسخه 3.4 و بالاتر پست‌فیکس:

?Btls_server_sni_maps (empty)?R
جدول‌های جستجوی اختیاری که نام‌های دریافت شده از کلاینت‌های SMTP راه دور از طریق پسوند SNI را به کلیدها و زنجیره‌های گواهی مناسب نگاشت می‌کنند.

موجود در نسخه 3.5، 3.4.6، 3.3.5، 3.2.10، 3.1.13 و بالاتر پست‌فیکس:

?Btls_fast_shutdown_enable (yes)?R
راهکار دور زدن برای پیاده‌سازی‌هایی که هنگام قطع نشست TLS پست‌فیکس را تا زمان اتمام مهلت معلق نگه می‌دارند.

موجود در نسخه 3.8 و بالاتر پست‌فیکس:

?Btls_ffdhe_auto_groups (خروجی 'postconf -d' را ببینید)?R
فهرست دارای اولویت گروه‌های تبادل کلید FFDHE پشتیبانی‌شده توسط کلاینت و سرور SMTP پست‌فیکس.

موجود در نسخه 3.9، 3.8.1، 3.7.6، 3.6.10، 3.5.20 و بالاتر:

?Btls_config_file (default)?R
فایل پیکربندی اختیاری با تنظیمات پایه OpenSSL.
?Btls_config_name (empty)?R
نام برنامه‌ای که توسط پست‌فیکس به توابع مقداردهی اولیه کتابخانه OpenSSL ارسال می‌شود.

این تنظیمات همتای تنظیمات سرور SMTP پست‌فیکس هستند. آن‌ها به ?Btlsproxy?R(8) اجازه می‌دهند پیش از کاهش سطح دسترسی، همان اطلاعات گواهی و کلید خصوصی سرور SMTP را بارگیری کند، تا فایل‌های کلید برای root به صورت فقط‌خواندنی باقی بمانند. این تنظیمات در حال حاضر نمی‌توانند توسط اطلاعات موجود در درخواست کلاینت ?Btlsproxy?R(8) بازنویسی شوند.

?Btlsproxy_tls_CAfile ()?R
فایلی شامل گواهی‌های CA ریشه مورد اعتماد (در قالب PEM) جهت امضای گواهی‌های کلاینت SMTP یا گواهی‌های CA میانی.
?Btlsproxy_tls_CApath ()?R
دایرکتوری حاوی گواهی‌های CA ریشه مورد اعتماد (در قالب PEM).
?Btlsproxy_tls_always_issue_session_ids ()?R
اجبار سرور ?Btlsproxy?R(8) به صدور شناسه نشست TLS، حتی هنگامی که کش کردن نشست TLS خاموش است.
?Btlsproxy_tls_ask_ccert ()?R
درخواست گواهی کلاینت از کلاینت SMTP راه دور.
?Btlsproxy_tls_ccert_verifydepth ()?R
عمق اعتبارسنجی برای گواهی‌های کلاینت SMTP راه دور.
?Btlsproxy_tls_cert_file ()?R
فایل حاوی گواهی RSA سرور ?Btlsproxy?R(8) در قالب PEM.
?Btlsproxy_tls_ciphers ()?R
حداقل سطح رمز TLS که سرور ?Btlsproxy?R(8) با رمزنگاری TLS فرصت‌طلبانه (opportunistic) استفاده خواهد کرد.
?Btlsproxy_tls_dcert_file ()?R
فایل حاوی گواهی DSA سرور ?Btlsproxy?R(8) در قالب PEM.
?Btlsproxy_tls_dh1024_param_file ()?R
فایل پارامترهای DH که سرور ?Btlsproxy?R(8) باید با رمزهای غیرصادراتی EDH استفاده کند.
?Btlsproxy_tls_dh512_param_file ()?R
فایل پارامترهای DH که سرور ?Btlsproxy?R(8) باید با رمزهای سطح صادراتی EDH استفاده کند.
?Btlsproxy_tls_dkey_file ()?R
فایل حاوی کلید خصوصی DSA سرور ?Btlsproxy?R(8) در قالب PEM.
?Btlsproxy_tls_eccert_file ()?R
فایل حاوی گواهی ECDSA سرور ?Btlsproxy?R(8) در قالب PEM.
?Btlsproxy_tls_eckey_file ()?R
فایل حاوی کلید خصوصی ECDSA سرور ?Btlsproxy?R(8) در قالب PEM.
?Btlsproxy_tls_eecdh_grade ()?R
سطح امنیتی سرور ?Btlsproxy?R(8) برای تبادل کلید EECDH.
?Btlsproxy_tls_exclude_ciphers ()?R
فهرست رمزها یا انواع رمزهایی که باید از لیست رمزهای سرور ?Btlsproxy?R(8) در تمامی سطوح امنیتی حذف شوند.
?Btlsproxy_tls_fingerprint_digest ()?R
الگوریتم خلاصه پیام برای ساخت اثر انگشت گواهی کلاینت SMTP راه دور.
?Btlsproxy_tls_key_file ()?R
فایل حاوی کلید خصوصی RSA سرور ?Btlsproxy?R(8) در قالب PEM.
?Btlsproxy_tls_loglevel ()?R
فعال‌سازی لاگ‌گیری اضافی سرور ?Btlsproxy?R(8) برای فعالیت‌های TLS.
?Btlsproxy_tls_mandatory_ciphers ()?R
حداقل سطح رمز TLS که سرور ?Btlsproxy?R(8) با رمزنگاری اجباری TLS استفاده خواهد کرد.
?Btlsproxy_tls_mandatory_exclude_ciphers ()?R
فهرست اضافی از رمزها برای حذف در سطوح امنیتی اجباری TLS.
?Btlsproxy_tls_mandatory_protocols ()?R
پروتکل‌های SSL/TLS پذیرفته‌شده توسط سرور ?Btlsproxy?R(8) با رمزنگاری اجباری TLS.
?Btlsproxy_tls_protocols ()?R
فهرست پروتکل‌های TLS که سرور ?Btlsproxy?R(8) در رمزنگاری فرصت‌طلبانه شامل یا مستثنی می‌کند.
?Btlsproxy_tls_req_ccert ()?R
با رمزنگاری اجباری TLS، الزام به ارائه گواهی کلاینت SMTP راه دور مورد اعتماد جهت ادامه اتصال.
?Btlsproxy_tls_security_level ()?R
سطح امنیتی SMTP TLS برای سرور ?Btlsproxy?R(8)؛ این گزینه پارامترهای منسوخ smtpd_use_tls و smtpd_enforce_tls را بازنویسی می‌کند.
?Btlsproxy_tls_chain_files ()?R
فایل‌های کلیدها و زنجیره‌های گواهی سرور ?Btlsproxy?R(8) در قالب PEM.

موجود در نسخه 3.9 و بالاتر پست‌فیکس:

?Btlsproxy_tls_enable_rpk ()?R
درخواست از کلاینت‌های SMTP راه دور برای ارسال کلید عمومی خام RFC7250 به جای گواهی X.509 هنگام احراز هویت کلاینت.

این تنظیمات همتای تنظیمات کلاینت SMTP پست‌فیکس هستند. آن‌ها به ?Btlsproxy?R(8) اجازه می‌دهند اطلاعات گواهی و کلید خصوصی کلاینت SMTP را پیش از کاهش سطح دسترسی بارگیری کند تا کلیدها برای root فقط‌خواندنی بمانند.

موجود در نسخه 3.4 و بالاتر پست‌فیکس:

?Btlsproxy_client_CAfile ()?R
فایلی شامل گواهی‌های CA ریشه مورد اعتماد برای امضای گواهی‌های سرور TLS راه دور یا CA میانی.
?Btlsproxy_client_CApath ()?R
دایرکتوری با گواهی‌های مرجع صدور گواهی در قالب PEM که برای اعتبارسنجی سرور TLS راه دور استفاده می‌شود.
?Btlsproxy_client_chain_files ()?R
فایل‌های کلیدها و زنجیره‌های گواهی کلاینت ?Btlsproxy?R(8) در قالب PEM.
?Btlsproxy_client_cert_file ()?R
فایل با گواهی RSA کلاینت ?Btlsproxy?R(8) در قالب PEM.
?Btlsproxy_client_key_file ()?R
فایل با کلید خصوصی RSA کلاینت ?Btlsproxy?R(8) در قالب PEM.
?Btlsproxy_client_dcert_file ()?R
فایل با گواهی DSA کلاینت ?Btlsproxy?R(8) در قالب PEM.
?Btlsproxy_client_dkey_file ()?R
فایل با کلید خصوصی DSA کلاینت ?Btlsproxy?R(8) در قالب PEM.
?Btlsproxy_client_eccert_file ()?R
فایل با گواهی ECDSA کلاینت ?Btlsproxy?R(8) در قالب PEM.
?Btlsproxy_client_eckey_file ()?R
فایل با کلید خصوصی ECDSA کلاینت ?Btlsproxy?R(8) در قالب PEM.
?Btlsproxy_client_fingerprint_digest ()?R
الگوریتم خلاصه پیام برای ساخت اثر انگشت گواهی سرور TLS راه دور.
?Btlsproxy_client_loglevel ()?R
فعال‌سازی لاگ‌گیری اضافی فعالیت‌های TLS کلاینت ?Btlsproxy?R(8).
?Btlsproxy_client_loglevel_parameter (smtp_tls_loglevel)?R
نام پارامتری که مقدار tlsproxy_client_loglevel را ارائه می‌دهد.
?Btlsproxy_client_scert_verifydepth ()?R
عمق اعتبارسنجی برای گواهی‌های سرور TLS راه دور.
?Btlsproxy_client_use_tls ()?R
حالت فرصت‌طلبانه: استفاده از TLS هنگامی که سرور راه دور پشتیبانی از TLS را اعلان می‌کند.
?Btlsproxy_client_enforce_tls ()?R
حالت اجباری: الزام به اینکه سرورهای SMTP از رمزنگاری TLS استفاده کنند.
?Btlsproxy_client_per_site ()?R
جدول‌های جستجوی اختیاری با خط‌مشی استفاده از TLS کلاینت بر اساس مقصد گام بعدی و نام میزبان سرور TLS راه دور.

موجود در نسخه 3.4 تا 3.6 پست‌فیکس:

?Btlsproxy_client_level ()?R
سطح امنیتی پیش‌فرض TLS برای کلاینت ?Btlsproxy?R(8).
?Btlsproxy_client_policy ()?R
جدول‌های جستجوی اختیاری با خط‌مشی امنیتی TLS کلاینت بر اساس مقصد گام بعدی.

موجود در نسخه 3.7 و بالاتر پست‌فیکس:

?Btlsproxy_client_security_level ()?R
سطح امنیتی پیش‌فرض TLS برای کلاینت ?Btlsproxy?R(8).
?Btlsproxy_client_policy_maps ()?R
جدول‌های جستجوی اختیاری با خط‌مشی امنیتی TLS کلاینت بر اساس مقصد گام بعدی.

این پارامترها برای سازگاری با پارامترهای قدیمی ?Bsmtpd?R(8) پشتیبانی می‌شوند.

?Btlsproxy_use_tls ()?R
رمزنگاری TLS فرصت‌طلبانه: اعلان پشتیبانی از STARTTLS به کلاینت‌های راه دور، بدون اجبار به استفاده از آن.
?Btlsproxy_enforce_tls ()?R
رمزنگاری TLS اجباری: اعلان پشتیبانی از STARTTLS به کلاینت‌ها و الزام آن‌ها به استفاده از TLS.
?Btlsproxy_client_use_tls ()?R
حالت فرصت‌طلبانه: استفاده از TLS هنگامی که سرور راه دور پشتیبانی از TLS را اعلان کند.
?Btlsproxy_client_enforce_tls ()?R
حالت اجباری: الزام به اینکه سرورهای SMTP از رمزنگاری TLS استفاده کنند.

?Btlsproxy_watchdog_timeout (10s)?R
مدت زمانی که یک پردازش ?Btlsproxy?R(8) می‌تواند برای ورودی/خروجی محلی یا راه دور صرف کند پیش از آنکه توسط تایمر نگهبان (watchdog) متوقف شود.

?Bconfig_directory (خروجی 'postconf -d' را ببینید)?R
مکان پیش‌فرض فایل‌های پیکربندی main.cf و master.cf در پست‌فیکس.
?Bprocess_id (فقط‌خواندنی)?R
شناسه پردازش (PID) یک دستور یا پردازش دیمن پست‌فیکس.
?Bprocess_name (فقط‌خواندنی)?R
نام پردازش یک دستور یا دیمن پست‌فیکس.
?Bsyslog_facility (mail)?R
تسهیلات syslog برای لاگ‌گیری پست‌فیکس.
?Bsyslog_name (خروجی 'postconf -d' را ببینید)?R
پیشوندی که به نام پردازش در رکوردهای syslog اضافه می‌شود.

موجود در نسخه 3.3 و بالاتر پست‌فیکس:

?Bservice_name (فقط‌خواندنی)?R
نام سرویس master.cf برای پردازش دیمن پست‌فیکس.

postscreen(8), مسدودکننده زامبی‌های پست‌فیکس
smtpd(8), سرور SMTP پست‌فیکس
postconf(5), پارامترهای پیکربندی
postlogd(8), لاگ‌گیری پست‌فیکس
syslogd(8), لاگ‌گیری سیستم

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


این سرویس با نسخه ۲.۸ پست‌فیکس معرفی شد.

Wietse Venema
IBM T.J. Watson Research
P.O. Box 704
Yorktown Heights, NY 10598, USA
Wietse Venema
Google, Inc.
111 8th Avenue
New York, NY 10011, USA