| opendkim.conf(5) | File Formats Manual | opendkim.conf(5) |
نام (NAME)
opendkim.conf - فایل پیکربندی برای opendkim
مکان (LOCATION)
/etc/opendkim/opendkim.conf
توضیحات (DESCRIPTION)
opendkim(8) مشخصات DKIM را برای امضا و اعتبارسنجی پیامهای ایمیل بر اساس هر دامنه پیادهسازی میکند. این فایل، فایل پیکربندی آن است.
خطوط خالی نادیده گرفته میشوند. خطوط حاوی نویسه هش ("#") برای امکانپذیر ساختن درج توضیحات در فایل، از محل نویسه هش کوتاه میشوند.
سایر محتوا باید نام یک پارامتر، به دنبال آن نویسه فاصله (white space)، و به دنبال آن مقدار آن پارامتر باشد که هر کدام در یک خط جداگانه قرار میگیرند. نام پارامترها به حروف کوچک و بزرگ حساس نیستند.
برای پارامترهایی که ماهیت بولی (Boolean) دارند، تنها بایت اول مقدار پردازش میشود. برای مقادیر مثبت، موارد زیر پذیرفته میشوند: "T"، "t"، "Y"، "y"، "1". برای مقادیر منفی، موارد زیر پذیرفته میشوند: "F"، "f"، "N"، "n"، "0".
بسیاری از این پارامترها (اما نه همه آنها) به عنوان گزینههای خط فرمان نیز در opendkim(8) در دسترس هستند. با این حال، پارامترهای جدید معمولاً به عنوان گزینههای خط فرمان اضافه نمیشوند؛ بنابراین مجموعه کامل گزینهها در اینجا در دسترس است و استفاده از فایل پیکربندی توصیه میشود. در نسخههای آینده، احتمالاً مجموعه گزینههای خط فرمان کاهش خواهد یافت.
برای جزئیات مربوط به نحوه و زمان بارگذاری مجدد محتویات فایل پیکربندی، صفحه راهنمای opendkim(8) را ببینید.
برخی از این پارامترها دارای نوع "dataset" هستند. برای توضیح چنین پارامترهایی، صفحه راهنمای opendkim(8) را ببینید.
مگر اینکه خلاف آن ذکر شده باشد، مقدار پیشفرض مقادیر بولی "false"، مقادیر عددی صحیح 0، و مقادیر رشتهای و dataset تعریفنشده (undefined) است.
پارامترها (PARAMETERS)
- AllowSHA1Only (Boolean)
- حالت اعتبارسنجی را زمانی که فقط پشتیبانی از SHA1 در دسترس است مجاز میکند. استاندارد RFC6376 ایجاب میکند که اعتبارسنجها از هر دو الگوریتم SHA1 و SHA256 پشتیبانی کنند. تنظیم این ویژگی، نبود پشتیبانی از SHA256 را از یک خطا به یک هشدار تغییر میدهد.
- AlwaysAddARHeader (Boolean)
- یک فیلد سرایند "Authentication-Results:" را حتی به پیامهای بدون امضا از دامنههای بدون خطمشی "signs all" اضافه میکند. نتیجه گزارششده DKIM در چنین مواردی "none" خواهد بود. بهطور معمول ایمیلهای بدون امضا از دامنههای غیرسختگیر باعث افزودن فیلد سرایند نتایج نمیشوند.
- AuthservID (string)
- شناسه "authserv-id" را برای استفاده در هنگام تولید فیلد سرایند Authentication-Results: پس از اعتبارسنجی پیام تنظیم میکند. مقدار پیشفرض استفاده از نام MTA پردازشکننده پیام است. اگر رشته "HOSTNAME" ارائه شود، نام میزبان اجراکننده پالایه (که توسط تابع gethostname(3) برگردانده میشود) استفاده خواهد شد.
- AuthservIDWithJobID (Boolean)
- اگر "true" باشد، درخواست میکند که بخش authserv-id در فیلدهای سرایند اضافه شده Authentication-Results: حاوی شناسه کار (job ID) پیامی باشد که ارزیابی میشود.
- AutoRestart (Boolean)
- راهاندازی مجدد خودکار در صورت بروز خرابی. با احتیاط استفاده شود؛ اگر پالایه بلافاصله پس از شروع دچار خرابی شود، این میتواند باعث یک حلقه فشرده fork(2) شود.
- AutoRestartCount (integer)
- حداکثر تعداد راهاندازی مجدد خودکار را تعیین میکند. پس از این تعداد راهاندازی مجدد خودکار، پالایه متوقف شده و پایان مییابد. مقدار 0 به معنای نامحدود است؛ این مقدار پیشفرض است.
- AutoRestartRate (string)
- حداکثر نرخ راهاندازی مجدد خودکار را تنظیم میکند. اگر پالایه سریعتر از نرخ تعریفشده در اینجا شروع به راهاندازی مجدد کند، متوقف شده و پایان مییابد. این یک رشته به صورت n/t[u] است که در آن n یک عدد صحیح برای محدود کردن تعداد راهاندازیهای مجدد در بازه زمانی دادهشده است و t[u] بازه زمانی محاسبه نرخ را مشخص میکند؛ t یک عدد صحیح است و u واحدهای نشاندادهشده را مشخص میکند ("s" یا "S" برای ثانیه، که پیشفرض است؛ "m" یا "M" برای دقیقه؛ "h" یا "H" برای ساعت؛ "d" یا "D" برای روز). به عنوان مثال، مقدار "10/1h" راهاندازیهای مجدد را به ۱۰ بار در یک ساعت محدود میکند. مقداری به عنوان پیشفرض وجود ندارد، به این معنی که نرخ راهاندازی مجدد محدود نیست.
- Background (Boolean)
- باعث میشود opendkim فرایند fork انجام دهد و بلافاصله خارج شود و سرویس در پسزمینه در حال اجرا بماند. مقدار پیشفرض "true" است.
- BaseDirectory (string)
- در صورت تنظیم، به پالایه دستور میدهد قبل از انجام هر کار دیگری، با استفاده از chdir(2) به دایرکتوری مشخصشده تغییر مسیر دهد. این بدان معناست که هر فایلی که در جای دیگری از فایل پیکربندی ارجاع داده شده باشد، میتواند نسبت به این دایرکتوری مشخص شود. همچنین برای مدیریت ذخیره رونوشتهای خرابی (crash dumps) در یک مکان خاص کاربرد دارد.
- BodyLengthDB (dataset)
- درخواست میکند که opendkim زمانی که مجموعه شامل هر یک از آدرسهای گیرنده پاکت باشد، یک برچسب طول بدنه "l=" را درج کند. آدرسهای ارائهشده بر اساس اشکال مختلفی که در بخش تنظیمات SigningTable (در ادامه) توضیح داده شده است، در پایگاه داده بررسی میشوند. این ویژگی پروتکل برای افزایش احتمال باقی ماندن امضا در هنگام عبور از یک سرور لیست پستی (mailing list) وجود دارد، زیرا آنها معمولاً پانویسهایی به پیامها اضافه میکنند. با این حال، توجه داشته باشید که این یک مشکل امنیتی بالقوه ایجاد میکند زیرا فردی میتواند متن دلخواهی را به پیام امضاشده اضافه کند و امضا همچنان معتبر باقی بماند. برای جزئیات به مشخصات DKIM مراجعه کنید.
- BogusKey (string)
- به پالایه دستور میدهد با امضای معتبری که با یک کلید جعلی (forged) مرتبط است به روشی خاص رفتار کند. مقادیر ممکن عبارتند از neutral (برگرداندن نتیجه "neutral")، none (عدم انجام اقدام خاص) و fail (برگرداندن نتیجه "fail"؛ این مقدار پیشفرض است). (برای این نصب فعال نشده است.)
- CaptureUnknownErrors (Boolean)
- در صورت تنظیم و در سیستمهایی که قرنطینه MTA در دسترس است، پالایه درخواست قرنطینه پیامی را میکند که منجر به خطای داخلی یا اتمام منابع شود.
- Canonicalization (string)
- روش(های) استانداردسازی (canonicalization) را برای استفاده هنگام امضای پیامها انتخاب میکند. هنگام اعتبارسنجی، فیلد سرایند DKIM-Signature: پیام روش استانداردسازی را مشخص میکند. مقادیر شناختهشده relaxed و simple هستند، همانطور که در مشخصات DKIM تعریف شده است. پیشفرض simple است. مقدار میتواند شامل دو استانداردسازی مختلف باشد که با یک نویسه اسلش ("/") از هم جدا شدهاند، که در این صورت اولی برای سرایند و دومی برای بدنه اعمال خواهد شد.
- ChangeRootDirectory (string)
- درخواست میکند که سیستمعامل قبل از شروع اجرا، دایرکتوری ریشه مؤثر فرایند را به دایرکتوری مشخصشده در اینجا تغییر دهد. chroot(2) نیازمند دسترسی کاربر ارشد (superuser) است. اگر UserID نیز تنظیم نشده باشد، یک هشدار تولید خواهد شد.
- CheckSigningTable (Boolean)
- اگر روی yes تنظیم شود، هنگام بارگذاری فایل پیکربندی، SigningTable را پیمایش میکند تا کلیدهای ناموجود در KeyTable را بررسی کند. پیشفرض yes است.
- ClockDrift (integer)
- میزان تلورانس بر حسب ثانیه را برای تعیین اینکه آیا امضا منقضی شده یا در آینده تولید شده است، تنظیم میکند. پیشفرض 300 است.
- Diagnostics (Boolean)
- درخواست درج برچسبهای "z=" در امضاها را میکند، که مجموعه فیلدهای سرایند اصلی را برای استفاده توسط اعتبارسنجها هنگام عیبیابی خرابیهای اعتبارسنجی کدگذاری میکند. برای استفاده معمول توصیه نمیشود.
- DiagnosticDirectory (string)
- دایرکتوری برای نوشتن گزارشهای تشخیصی هنگامی که اعتبارسنجی پیامی حاوی برچسب "z=" با شکست مواجه میشود. در صورت عدم تنظیم (پیشفرض)، این فایلها تولید نمیشوند.
- DisableCryptoInit (Boolean)
- در صورت تنظیم، مراحل مقداردهی اولیه کتابخانه SSL را که معمولاً در محیطهای چندنخی (multi-threaded) مورد نیاز است، نادیده میگیرد. این فرض میکند که کتابخانه دیگری که opendkim از آن استفاده میکند، مقداردهی اولیه و خاموشسازی مورد نیاز را انجام خواهد داد.
- DNSConnect (Boolean)
- درخواست میکند که تحلیلگر ناهمگام (asynchronous resolver) بلافاصله استفاده از TCP را به جای استفاده از UDP تا زمانی که واقعاً به TCP نیاز باشد، آغاز کند. با همه تحلیلگرها کار نمیکند.
- DNSTimeout (integer)
- مهلت زمانی پروتکل DNS را بر حسب ثانیه تنظیم میکند. مقدار 0 باعث انتظار نامحدود میشود. پیشفرض 5 است. در صورت عدم استفاده از بسته تحلیلگر ناهمگام نادیده گرفته میشود. بخش نکات (NOTES) را در زیر نیز ببینید.
- Domain (dataset)
- مجموعهای
از
دامنهها
که
ایمیلهای
آنها باید
توسط این
پالایه
امضا شوند.
ایمیلهای
سایر
دامنهها
به جای امضا
شدن،
اعتبارسنجی
خواهند شد.
در صورتی که SigningTable در حال استفاده باشد، این پارامتر لازم نیست؛ در این حالت، فهرست دامنههای امضاشده توسط خطوط موجود در آن فایل مشخص میشود.
در صورت تعریف KeyTable این پارامتر نادیده گرفته میشود.
- DomainKeysCompat (boolean)
- در صورت تنظیم، سازگاری عقبرو با رکوردهای کلید DomainKeys (RFC4870) فعال میشود. در صورت عدم تنظیم، چنین کلیدهایی از نظر نحو نامعتبر تلقی میشوند.
- DontSignMailTo (dataset)
- مجموعهای از آدرسهای ایمیل که نامههای ارسالشده به آنها هرگز نباید توسط پالایه امضا شوند. توجه داشته باشید که این یک ویژگی "any" است؛ اگر هر یک از گیرندگان پیام با یکی از اعضای این فهرست مطابقت داشته باشد، پیام امضا نخواهد شد.
- EnableCoredumps (boolean)
- در سیستمهایی که چنین پشتیبانی دارند، یک درخواست صریح به هسته ارسال میکند تا در صورت خرابی پالایه به هر دلیلی، رونوشتهای حافظه (core dumps) را ذخیره کند. برخی از سیستمهای یونیکس مدرن در صورت تغییر شناسه کاربری در طول عمر فرایند، به دلایل امنیتی از ایجاد رونوشت حافظه هنگام خرابی جلوگیری میکنند. در حال حاضر فقط در لینوکس پشتیبانی میشود.
- ExemptDomains (dataset)
- مجموعهای از دامنهها را مشخص میکند که ایمیلهای دریافتی از آنها باید کاملاً توسط پالایه نادیده گرفته شوند. این شبیه به تنظیم PeerList است، با این تفاوت که تصمیمگیری خود را بر اساس فرستنده پیام مشخصشده از فیلدهای سرایند یا سایر دادههای پیام پایهگذاری میکند، نه هویت کلاینت SMTP ارسالکننده پیام.
- ExternalIgnoreList (dataset)
- مجموعهای از میزبانهای "خارجی" را مشخص میکند که ممکن است به عنوان یکی از دامنههای امضاکننده بدون داشتن اعتبارنامه مربوطه، ایمیل ارسال کنند. این کار باعث حذف پیامهای ثبت گزارش "external host (hostname) tried to send mail as (domain)" میشود. مدخلهای موجود در مجموعه داده باید به همان شکلی باشند که در گزینه PeerList در زیر آمده است. این مجموعه بهطور پیشفرض خالی است.
- FinalPolicyScript (string)
- نام یک اسکریپت Lua را مشخص میکند که باید پس از دریافت کل پیام اجرا شود. این میتواند برای اعمال تصمیمات خطمشی محلی مانند رد پیام، قرنطینه، مسیریابی مجدد و غیره بر اساس امضاهای یافتشده روی پیام، نتایج تلاشها برای اعتبارسنجی آنها و سایر ویژگیهای پیام یا امضاها استفاده شود. برای جزئیات به opendkim-lua(3) مراجعه کنید. (برای این نصب فعال نشده است.)
- FixCRLF (Boolean)
- درخواست میکند که کتابخانه DKIM در طول استانداردسازی بدنه، نویسههای CR و LF تنها را به CRLF تبدیل کند، با این پیشبینی که یک MTA در جایی قبل از تحویل در هر صورت این تبدیل را انجام خواهد داد. پیشفرض این است که آنها همانطور که هستند رها شوند.
- IdentityHeader (string)
- فیلد سرایندی را مشخص میکند که هویت در آن ذخیره شده است. (ویژگی آزمایشی برای این نصب فعال نشده است.)
- IdentityHeaderRemove (Boolean)
- حذف IdentityHeader پس از امضا کردن. (ویژگی آزمایشی برای این نصب فعال نشده است.)
- IgnoreMalformedMail (boolean)
- پیامهای دارای ساختار ناقص (malformed) را بدون تغییر و در سکوت عبور میدهد. این شامل پیامهایی میشود که در بررسی RequiredHeaders (در صورت فعال بودن) ناموفق هستند. پیشفرض این است که این پیامها عبور داده شوند اما یک فیلد Authentication-Results اضافه شود که نشان دهد ساختار آنها ناقص بوده است.
- Include (string)
- نام فایلی را مشخص میکند که باید باز شده و به عنوان یک فایل پیکربندی اضافی خوانده شود. تودرتوسازی تا حداکثر پنج سطح مجاز است.
- InternalHosts (dataset)
- مجموعهای از میزبانهای داخلی را مشخص میکند که ایمیلهای آنها باید به جای اعتبارسنجی، امضا شوند. مدخلهای این مجموعه داده از همان قالب گزینه PeerList در زیر پیروی میکنند. در صورت عدم تعیین، پیشفرض "127.0.0.1" اعمال میشود. طبیعتاً، ارائه یک مقدار در اینجا پیشفرض را بازنویسی میکند، بنابراین اگر ایمیل از 127.0.0.1 باید امضا شود، فهرستی که در اینجا ارائه میشود باید شامل آن آدرس بهطور صریح باشد.
- KeepAuthResults (boolean)
- از حذف فیلدهای سرایند Authentication-Results حاوی نتایج DKIM که ظاهراً توسط این پالایه اضافه شدهاند (معمولاً نتیجه یک پیکربندی نادرست یا جعل) جلوگیری میکند.
- KeepTemporaryFiles (boolean)
- به پالایه دستور میدهد فایلهای موقتی حاوی استانداردسازیهای سرایند و بدنه پیامهایی که امضا یا اعتبارسنجی شدهاند را ایجاد کند. مکان این فایلها را میتوان با استفاده از پارامتر TemporaryDirectory تنظیم کرد. فقط برای رفع اشکال مشکلات اعتبارسنجی در نظر گرفته شده است.
- KeyFile (string)
- مکان یک کلید خصوصی با قالب PEM را که برای امضای تمام پیامها استفاده میشود، مشخص میکند. در صورت تعریف KeyTable نادیده گرفته میشود. اگر کلید از نوع Ed25519 باشد، SignatureAlgorithm بهطور خودکار روی ed25519-sha256 تنظیم میشود. تنظیم صریح SignatureAlgorithm لازم نیست.
- KeyTable (dataset)
- مکان فایلی
را مشخص
میکند که
نامهای
کلید را به
کلیدهای
امضا نگاشت
میکند. در
صورت وجود،
هرگونه
تنظیم KeyFile در
فایل
پیکربندی
را
بازنویسی
میکند.
مجموعه
داده
نامگذاریشده
در اینجا هر
نام کلید را
به سه مقدار
نگاشت
میکند:
(الف) نام
دامنهای
که باید در
مقدار "d="
امضا
استفاده
شود؛ (ب) نام
گزینشگر
(selector) برای
استفاده در
مقدار "s="
امضا؛ و (ج)
یک کلید
خصوصی یا
مسیری به یک
فایل حاوی
یک کلید
خصوصی؛ (د)
(اختیاری)
الگوریتم
امضا برای
استفاده با
این کلید.
اگر مقدار
اول فقط
شامل یک
نویسه درصد
("%") باشد،
هنگام
ایجاد
امضا، با
دامنه
ظاهری
فرستنده
جایگزین
میشود. اگر
مقدار سوم
با نویسه
اسلش ("/") یا
"./" یا "../"
شروع شود،
فرض میشود
به فایلی
ارجاع دارد
که کلید
خصوصی باید
از آن
خوانده
شود، در غیر
این صورت
خود یک کلید
خصوصی با
کدگذاری PEM
یا یک کلید
خصوصی DER با
کدگذاری base64
است؛ نویسه
"%" در مقدار
سوم در این
حالت با نام
دامنه
ظاهری
فرستنده
جایگزین
خواهد شد.
فیلد چهارم
باید یکی از
الگوریتمهای
امضای
پشتیبانیشده
باشد (به
SignatureAlgorithm در زیر
مراجعه
کنید). اگر
حذف شود، از
الگوریتم
مشخصشده
در SignatureAlgorithm
برای کلید
استفاده
میشود. از
SigningTable (به زیر
مراجعه
کنید) برای
انتخاب
رکوردهایی
از این جدول
برای
استفاده در
افزودن
امضاها بر
اساس
فرستنده
پیام
استفاده
میشود.
برای امضای هر پیام با هر دو الگوریتم RSA و Ed25519، دو مدخل در KeyTable (یک مورد برای هر الگوریتم) و دو قانون SigningTable که هر دو با دامنه فرستنده مطابقت دارند ایجاد کنید، سپس MultipleSignatures را فعال کنید. برای مثال:
# KeyTable (file or inline dataset) rsa-key %:rsa2024:/etc/opendkim/keys/%.rsa.private:rsa-sha256 ed-key %:ed2024:/etc/opendkim/keys/%.ed25519.private:ed25519-sha256 # SigningTable *@example.com rsa-key *@example.com ed-key # opendkim.conf MultipleSignatures yes
توجه داشته باشید که انگیزه امضای دو الگوریتمی به عنوان یک اقدام احتیاطی در برابر ضعف رمزنگاری آینده در یک الگوریتم است؛ در زمان نوشتن این متن هیچ ضعفی در RSA کشف نشده است. در حالی که Ed25519 رکوردهای DNS کوچکتر و کلیدهای کوتاهتری نسبت به RSA تولید میکند، صرفهجویی در زمینه سرایندهای ایمیل مدرن ناچیز است. امضا با چند الگوریتم نیازمند این است که هر سرور اعتبارسنجی تمام امضاها را بررسی کند، که باعث افزایش بار در هر دو طرف میشود و هیچ مزیت امنیتی فوری در عملکرد عادی ارائه نمیدهد. مدیران باید دلیل روشنی قبل از فعال کردن این ویژگی داشته باشند؛ این ویژگی بیشتر برای آزمایش سازگاری بینسیستمی مفید است.
هنگامی که پیامی توسط سروری که این نرمافزار را اجرا میکند اعتبارسنجی میشود، یک سرایند Authentication-Results منفرد شامل یک مدخل dkim= به ازای هر امضا تولید میکند، به عنوان مثال:
Authentication-Results: example.com; dkim=pass header.d=example.com header.s=rsa2024 header.a=rsa-sha256; dkim=fail header.d=example.com header.s=ed2024 header.a=ed25519-sha256
استاندارد RFC 6376 ایجاب میکند که هر امضا بهطور مستقل ارزیابی شود اما تعریف نمیکند که یک اعتبارسنج یا ابزار پاییندستی در صورت مختلط بودن نتایج چه نتیجهگیری باید بکند. این موضوع به خطمشی محلی واگذار شده است. نرمافزار OpenDKIM در صورتی که هر یک از امضاها تأیید شود، پیام را تأییدشده در نظر میگیرد؛ یک پیادهسازی سختگیرانهتر ممکن است هر مدخل dkim=fail را بدون توجه به سایر نتایج به عنوان شکست تلقی کند. ابزارهای پاییندستی که سرایندهای Authentication-Results را بررسی میکنند، از جمله و نه محدود به SpamAssassin، ممکن است رفتار متفاوتی داشته باشند و به روشهایی عمل کنند که به راحتی قابل پیشبینی نیست. مدیران باید قبل از بهکارگیری امضای چند الگوریتمی در محیط عملیاتی، کل مسیر ایمیل را آزمایش کنند.
- LDAPAuthMechanism (string)
- مکانیسم احراز هویت مورد استفاده هنگام اتصال به سرور LDAP را مشخص میکند. پیشفرض رشته خالی است، به این معنی که احراز هویت "simple" باید انجام شود.
- LDAPAuthName (string)
- نام احراز هویت مورد استفاده هنگام استفاده از SASL برای احراز هویت در سرور LDAP را مشخص میکند. نیازمند نصب بودن پشتیبانی SASL در سیستم محلی است. پیشفرضی ندارد.
- LDAPAuthRealm (string)
- قلمرو (realm) احراز هویت مورد استفاده هنگام استفاده از SASL برای احراز هویت در سرور LDAP را مشخص میکند. نیازمند نصب بودن پشتیبانی SASL در سیستم محلی است. پیشفرضی ندارد.
- LDAPAuthUser (string)
- کاربر احراز هویت مورد استفاده هنگام استفاده از SASL برای احراز هویت در سرور LDAP را مشخص میکند. نیازمند نصب بودن پشتیبانی SASL در سیستم محلی است. پیشفرضی ندارد.
- LDAPBindPassword (string)
- گذرواژه مورد استفاده هنگام انجام عملیات "bind" در LDAP را مشخص میکند. پیشفرضی ندارد.
- LDAPBindUser (string)
- شناسه کاربری مورد استفاده هنگام انجام عملیات "bind" در LDAP را مشخص میکند. پیشفرضی ندارد.
- LDAPDisableCache (Boolean)
- از ایجاد حافظه نهان محلی در برابر پرسوجوهای LDAP جلوگیری میکند.
- LDAPKeepaliveIdle (integer)
- تعداد ثانیههایی را که یک اتصال به سرور LDAP باید غیرفعال بماند تا TCP ارسال کاوشهای زنده نگهداشتن (keepalive) را آغاز کند، تنظیم میکند. در صورت عدم تعیین، از مقدار پیشفرض کتابخانه LDAP استفاده میشود.
- LDAPKeepaliveInterval (integer)
- فاصله زمانی بر حسب ثانیه بین کاوشهای keepalive پروتکل TCP را تنظیم میکند. در صورت عدم تعیین، از مقدار پیشفرض کتابخانه LDAP استفاده میشود.
- LDAPKeepaliveProbes (integer)
- حداکثر تعداد کاوشهای keepalive را که TCP باید قبل از رها کردن اتصال ارسال کند، تنظیم میکند. در صورت عدم تعیین، از مقدار پیشفرض کتابخانه LDAP استفاده میشود.
- LDAPTimeout (integer)
- زمان بر حسب ثانیه را که پس از آن عملیات LDAP باید رها شود، تنظیم میکند. پیشفرض 5 است.
- LDAPUseTLS (Boolean)
- مشخص میکند که آیا هنگام ارتباط با سرور LDAP باید اتصال TLS برقرار شود یا خیر. پیشفرض "False" است.
- LogResults (boolean)
- اگر ثبت وقایع فعال باشد (به Syslog و StdoutLog در زیر مراجعه کنید)، درخواست میکند که نتایج ارزیابی تمام امضاهایی که حداقل تا حدی سالم بودهاند (یعنی برچسبهای "d="، "s=" و "b=" قابل استخراج بودند) ثبت شوند.
- LogWhy (boolean)
- اگر ثبت وقایع فعال باشد (به Syslog و StdoutLog در زیر مراجعه کنید)، گزارشهای بسیار دقیقی درباره منطق پشت تصمیم پالایه برای امضا کردن یا اعتبارسنجی پیام صادر میکند. منطق پشت این تصمیم غیربدیهی است و میتواند برای مدیرانی که با عملکرد آن آشنا نیستند گیجکننده باشد. شرح چگونگی اتخاذ تصمیم را میتوان در بخش OPERATIONS صفحه راهنمای opendkim(8) یافت. این امر باعث افزایش چشمگیر حجم دادههای گزارش تولیدشده برای هر پیام میشود، بنابراین باید به استفاده برای عیبیابی محدود شود و برای عملکرد عمومی فعال نشود.
- MacroList (dataset)
- مجموعهای
از
ماکروهای
ارائهشده
توسط MTA را
تعریف
میکند که
باید بررسی
شوند تا
مشخص شود
آیا
فرستنده یک
کاربر محلی
تشخیص داده
شده است یا
خیر و در
نتیجه آیا
پیام باید
امضا شود یا
خیر. اگر یک
value مشخص شده
باشد که با
نام ماکرو
در مجموعه
داده
مطابقت
داشته
باشد،
مقدار
ماکرو باید
با مقدار
مشخصشده
مطابقت
داشته باشد
(تطبیق حساس
به حروف
کوچک و بزرگ
است)، در
غیر این
صورت ماکرو
باید تعریف
شده باشد
اما
میتواند
حاوی هر
مقداری
باشد. این
مجموعه
بهطور
پیشفرض
خالی است،
به این معنی
که ماکروها
هنگام
تصمیمگیری
برای
امضا/اعتبارسنجی
در نظر
گرفته
نمیشوند.
قالب کلی
مقدار به
صورت value1[|value2[|...]]
است؛ اگر یک
یا چند
مقدار
تعریف شده
باشد،
ماکرو باید
روی یکی از
مقادیر
فهرستشده
تنظیم شود،
در غیر این
صورت ماکرو
باید تنظیم
شده باشد
اما
میتواند
حاوی هر
مقداری
باشد.
برای اینکه ماکرو و مقدار آن برای بررسی در دسترس پالایه باشد، MTA باید آن را در طول تبادل پروتکل ارسال کند. این کار یا از طریق پیکربندی دستی MTA برای ارسال ماکروهای مورد نظر انجام میشود، یا برای ترکیبهای MTA/filter که از این ویژگی پشتیبانی میکنند، پالایه میتواند ماکروهای مورد نظر را درخواست کند. مورد دوم ویژگیای است که در زمان دریافت اتصال توسط پالایه از MTA مذاکره میشود و در دسترس بودن آن بستگی به نسخه milter استفادهشده برای کامپایل پالایه و نسخه MTA متصلشونده دارد.
این مجموعه داده باید از نوع "file" یا "csl" باشد.
- MaximumHeaders (integer)
- حداکثر تعداد بایتهایی را که بلوک سرایند یک پیام میتواند مصرف کند، قبل از اینکه پالایه پیام را رد کند، تعریف میکند. این امر حمله انکار سرویس (DoS) را کاهش میدهد که در آن یک کلاینت به MTA متصل میشود و شروع به تزریق تعداد نامحدودی از فیلدهای سرایند با اندازه دلخواه میکند؛ از آنجا که پالایه حافظه نهانی از اینها نگه میدارد، مهاجم میتواند باعث شود پالایه مقدار نامشخصی از حافظه را تخصیص دهد. پیشفرض 65536 است؛ مقدار 0 محدودیت را برمیدارد.
- MaximumSignaturesToVerify (integer)
- حداکثر تعداد امضاها روی یک پیام را که اعتبارسنجی باید برای آنها انجام شود، تعریف میکند. پیشفرض ۳ است. امضاها از بالای پیام به سمت پایین انتخاب میشوند. اگر TrustSignaturesFrom تنظیم شده باشد، امضاهای دامنههای موجود در آن مجموعه داده همیشه اعتبارسنجی میشوند، که ممکن است بخشی یا تمام این محدودیت را مصرف کند یا حتی از آن فراتر رود.
- MaximumSignedBytes (integer)
- حداکثر تعداد بایتهای بدنه پیام را که باید امضا شوند مشخص میکند. پیامهای کوتاهتر از این حد بهطور کامل امضا خواهند شد. تنظیم این مقدار مستلزم استفاده از BodyLengthDB برای همه آدرسها است.
- MilterDebug (integer)
- سطح رفع اشکال درخواستی از کتابخانه milter را تنظیم میکند. در حال حاضر، بالاترین مقدار معنادار ۶ است.
- Minimum (string)
- به کد اعتبارسنجی دستور میدهد پیامهایی را که برای آنها امضای جزئی دریافت شده است، رد کند (fail). سه قالب ممکن وجود دارد: min نشاندهنده این است که حداقل min بایت از پیام باید امضا شود (یا اگر پیام کوچکتر از min باشد، تمام آن باید امضا شود)؛ min% که مستلزم این است که حداقل min درصد از پیام دریافتی باید امضا شود؛ و min+ به این معنی که برای معتبر شناخته شدن پیام، نباید بیش از min بایت داده امضانشده به پیام پیوست شده باشد.
- MinimumKeyBits (integer)
- حداقل اندازه کلید را برای امضاهای قابل قبول تعیین میکند. امضاهایی با اندازههای کلید کوچکتر، حتی اگر در غیر این صورت اعتبارسنجی DKIM را پشت سر بگذارند، به عنوان نامعتبر علامتگذاری میشوند. پیشفرض 1024 است. مقدار 0 همه کلیدها را میپذیرد.
- Mode (string)
- حالتهای عملیاتی را انتخاب میکند. رشته الحاقی از نویسهها است که نشان میدهد کدام حالت(های) عملیاتی مورد نظر است. حالتهای معتبر عبارتند از s (امضاکننده) و v (اعتبارسنج). مقدار پیشفرض sv است مگر در حالت آزمایشی (صفحه راهنمای opendkim(8) را ببینید) که در این صورت پیشفرض v است. هنگامی که حالت امضا فعال است، یکی از ترکیبهای زیر نیز باید تنظیم شود: (الف) Domain, KeyFile, Selector, بدون KeyTable, بدون SigningTable؛ (ب) KeyTable, SigningTable, بدون Domain, بدون KeyFile, بدون Selector؛ (ج) KeyTable, SetupPolicyScript, بدون Domain, بدون KeyFile, بدون Selector.
- MTA (dataset)
- مجموعهای از نامهای MTA (به سبک پارامتر DaemonPortOptions Name در sendmail(8) ) که ایمیلهای آنها باید توسط این پالایه امضا شوند. هیچ پیشفرضی وجود ندارد، به این معنی که نام MTA هنگام تصمیمگیری برای امضا/اعتبارسنجی در نظر گرفته نمیشود.
- MTACommand (string)
- مسیری را به یک فایل اجرایی مشخص میکند که برای ارسال ایمیلهایی مانند آنچه توسط SendReports تولید میشود، استفاده خواهد شد. پیشفرض /usr/sbin/sendmail است. فایل اجرایی باید گزینههای معمولی خط فرمان sendmail(8) یعنی "-t" (گرفتن آدرسها از بدنه پیام) و "-f" (تنظیم فرستنده پاکت) را بپذیرد، پیام جدید را روی ورودی استاندارد خود دریافت کند و در صورت بروز هرگونه خطا وضعیت خروج غیرصفر را برگرداند.
- MultipleSignatures (Boolean)
- اجازه افزودن چند امضا را هنگام استفاده از جدول امضا میدهد. برای اطلاعات بیشتر به SigningTable مراجعه کنید.
- MustBeSigned (dataset)
- مجموعهای از فیلدهای سرایند را مشخص میکند که در صورت وجود، هنگام اعتبارسنجی پیام باید توسط امضای DKIM پوشش داده شوند. اگر یک فیلد سرایند در این مجموعه در پیام وجود داشته باشد و امضا نشده باشد، پالایه حتی امضایی را که در غیر این صورت معتبر است، نامعتبر تلقی میکند. پیشفرض یک فهرست خالی است.
- Nameservers (string)
- فهرستی از آدرسهای IP جداشده با ویرگول را ارائه میدهد که باید هنگام انجام پرسوجوهای DNS برای بازیابی کلیدهای DKIM، رکوردهای VBR و غیره استفاده شوند. این موارد هرگونه پیشفرض محلی تعبیهشده در تحلیلگر مورد استفاده را که ممکن است در /etc/resolv.conf تعریف شده باشد یا در نرمافزار بهطور ثابت کدگذاری شده باشد، بازنویسی میکنند.
- NoHeaderB (Boolean)
- در صورت تنظیم، این ویژگی از استفاده از برچسبهای "header.b" در فیلدهای سرایند اضافه شده Authentication-Results جلوگیری میکند. پیشفرض "false" است، به این معنی که آن برچسبها اعمال خواهند شد.
- OmitHeaders (dataset)
- مجموعهای از فیلدهای سرایند را مشخص میکند که باید هنگام تولید امضاها حذف شوند. اگر مدخلی در فهرست، نام هر فیلد سرایندی را ببرد که توسط مشخصات DKIM اجباری شده است، آن مدخل نادیده گرفته میشود. مجموعهای از فیلدهای سرایند در مشخصات DKIM (سند RFC6376، بخش 5.4) به عنوان مواردی که "نباید" (SHOULD NOT) امضا شوند ذکر شده است؛ فهرست پیشفرض برای این پارامتر حاوی آن فیلدها است (Return-Path, Received, Comments, Keywords, Bcc, Resent-Bcc و DKIM-Signature). برای حذف نکردن هیچ سرایندی، کافی است از رشته "." (یا هر رشتهای که با هیچ نام فیلد سرایندی مطابقت نداشته باشد) استفاده کنید. مشخص کردن یک فهرست با این پارامتر، مقدار پیشفرض را بهطور کامل جایگزین میکند، مگر اینکه یک مدخل "*" باشد که در این صورت فهرست به عنوان یک تغییر نسبت به پیشفرض تفسیر میشود؛ به عنوان مثال، "*,+foobar" از کل فهرست پیشفرض به اضافه نام "foobar" استفاده میکند، در حالی که "*,-Bcc" از کل فهرست پیشفرض به جز مدخل "Bcc" استفاده میکند.
- On-BadSignature (string)
- اقدامی را که باید در صورت عدم اعتبارسنجی امضا انجام شود انتخاب میکند. مقادیر ممکن (با اشکال اختصاری در پرانتز): accept (a) پذیرش پیام؛ discard (d) دور انداختن پیام؛ quarantine (q) قرنطینه کردن پیام؛ reject (r) رد کردن پیام؛ tempfail (t) شکست موقت پیام (temp-fail). پیشفرض accept است. توجه داشته باشید که پرچم "t" (آزمایشی) در یک کلید DKIM این رفتار را دور میزند؛ یک امضای نامعتبر که به پرچم آزمایشی ارجاع میدهد همچنان تحویل داده میشود، اگرچه فیلد سرایند اضافه شده Authentication-Results هم نتیجه ناموفق و هم حالت آزمایشی را نشان میدهد تا دریافتکنندگان پیام بتوانند اقدام مناسب را انجام دهند.
- On-Default (string)
- اقدامی را که باید در هنگام مواجهه با هرگونه خطای اعتبارسنجی یا خطای داخلی از هر نوع انجام شود انتخاب میکند. این قبل از سایر مقادیر "On-" پردازش میشود، بنابراین میتواند به عنوان یک تنظیم کلی و به دنبال آن بازنویسیهای خاص استفاده شود.
- On-DNSError (string)
- اقدامی را که باید در هنگام مواجهه با خطای گذرای DNS انجام شود انتخاب میکند. مقادیر ممکن همان مقادیر On-BadSignature هستند. پیشفرض tempfail است.
- On-InternalError (string)
- اقدامی را که باید در هنگام مواجهه با یک خطای داخلی از هر نوع انجام شود انتخاب میکند. مقادیر ممکن همان مقادیر On-BadSignature هستند. پیشفرض tempfail است.
- On-KeyNotFound (string)
- اقدامی را که باید در زمانی که کلید ارجاعشده توسط یک امضا در DNS وجود ندارد انجام شود انتخاب میکند. مقادیر ممکن همان مقادیر On-BadSignature هستند. پیشفرض accept است.
- On-NoSignature (string)
- اقدامی را که باید در زمان رسیدن یک پیام بدون امضا انجام شود انتخاب میکند. مقادیر ممکن همان مقادیر On-BadSignature هستند. پیشفرض accept است.
- On-Security (string)
- اقدامی را که باید در زمان رسیدن پیامی حاوی ویژگیهایی که ممکن است یک نگرانی امنیتی باشد انجام شود انتخاب میکند. مقادیر ممکن همان مقادیر On-BadSignature هستند. پیشفرض tempfail است.
- On-SignatureError (string)
- اقدامی را که باید در زمانی که یک پیام به دلیل مشکلات مربوط به پیام یا کلید ارائهشده برای امضا نمیتواند امضا شود انجام شود انتخاب میکند. مقادیر ممکن همان مقادیر On-BadSignature هستند. پیشفرض reject است.
- OversignHeaders (dataset)
- مجموعهای از فیلدهای سرایند را مشخص میکند که باید در تمام فهرستهای سرایند امضا (برچسب "h=") یک بار بیشتر از تعداد دفعاتی که واقعاً در پیام امضاشده وجود داشتند، گنجانده شوند. این مجموعه بهطور پیشفرض خالی است. هدف از این کار، و بهویژه فهرست کردن یک فیلد سرایند غایب، جلوگیری از افزودن فیلدهای مهم بین امضاکننده و اعتبارسنج است. از آنجا که اعتبارسنج در صورت اضافه شدن آن فیلد سرایند توسط یک واسطه، آن را هنگام اعتبارسنجی لحاظ میکند، پیام امضاشده و پیام اعتبارسنجیشده متفاوت خواهند بود و اعتبارسنجی با شکست مواجه میشود. فهرست کردن نام یک فیلد سرایند یک بار بیشتر از تعداد دفعات ظاهر شدن آن، برای مسدود کردن هر تعداد افزودن بعدی کافی است؛ نیازی به فهرست کردن آن بیش از این تعداد نیست. توجه داشته باشید که این روش حتی برای فیلدهای سرایندی که RFC5322 فقط یک بار اجازه میدهد (مانند From) مفید است، زیرا همه نرمافزارهای مدیریت ایمیل محدودیتهای تعداد فیلد سرایند RFC5322 را اعمال نمیکنند. همچنین توجه داشته باشید که فهرست کردن نام یک فیلد در اینجا و فهرست نکردن آن در فهرست SignHeaders احتمالاً امضاهای نامعتبر تولید میکند. برای بحث بیشتر به RFC6376، بخش 5.4 مراجعه کنید.
- PeerList (dataset)
- مجموعهای
از
"همتایان"
(peers) را مشخص
میکند که
کلاینتهایی
را مشخص
میکند که
اتصالات
آنها باید
بدون
پردازش
توسط این
پالایه
پذیرفته
شود. این
مجموعه
باید در هر
خط شامل یک
نام
میزبان،
نام دامنه
(مانند
".example.com")، آدرس
IP، یک آدرس IPv6
(از جمله
آدرس
نگاشتشده
IPv4) یا یک
مشخصه IP به
سبک CIDR (مانند
"192.168.1.0/24") باشد.
مدخلی که با نویسه علامت تعجب ("!") شروع میشود به معنای "not" (نفی) است و امکان استثنا کردن میزبانهای خاصی را که در غیر این صورت عضو مجموعههای بزرگتر هستند فراهم میکند. ابتدا نامهای میزبان و دامنه مطابقت داده میشوند، سپس بسته به نوع اتصال، آدرس IP یا IPv6 بررسی میشود. مدخلهای دقیقتر بر مدخلهای با دقت کمتر ارجحیت دارند، یعنی "192.168.1.1" قبل از "!192.168.1.0/24" مطابقت داده خواهد شد.
شکل متنی آدرسهای IPv6 هنگام پرسوجو به حروف کوچک تبدیل میشود (RFC5952)، بنابراین محتویات این مجموعه داده نیز باید از حروف کوچک استفاده کند. نمادگذاری CIDR باید برای تمام بیتهای بدون ماسک از 0 استفاده کند (برای مثال "10.0.0.1/8" هرگز مطابقت نخواهد داشت). آدرسهای IPv6، چه تکی و چه در نمادگذاری CIDR، باید به شکلی ظاهر شوند که توسط inet_ntop(3) تولید میشود که صفرهای متوالی را با "::" جایگزین میکند (به عنوان مثال "0:0:0:0:0:0:0:1" هرگز مطابقت نخواهد داشت). بخش آدرس IP یک مدخل میتواند اختیاری شامل قلاب (کروشه) باشد؛ هر دو شکل (با و بدون آن) بررسی خواهند شد.
نکته: آدرسهای IPv6 را نمیتوان بهصورت درونخطی در opendkim.conf مشخص کرد زیرا دونقطهها در یک آدرس IPv6 (مانند "fd00:368::/40") از پیشوند "type:" که برای شناسایی انواع مجموعه دادهها استفاده میشود (مانند "file:", "ldap:") غیرقابل تشخیص هستند. مدخلهای IPv6 باید در یک فایل جداگانه قرار گیرند و با پیشوند file: ارجاع داده شوند، برای مثال:
PeerList file:/etc/opendkim/peerlist.txt
که در آن peerlist.txt شامل یک مدخل در هر خط است، از جمله هر آدرس IPv6 یا محدودههای CIDR.
- PidFile (string)
- مسیری را به فایلی مشخص میکند که باید در شروع فرایند ایجاد شود و حاوی شناسه فرایند (PID) باشد.
- POPDBFile (dataset)
- درخواست میکند که پالایه برای آدرسهای IP که باید برای امضا مجاز باشند، با یک مجموعه مشورت کند. این ویژگی برای ذخیرهسازهای داده POP-before-SMTP طراحی شده است. (برای این نصب فعال نشده است.)
- Quarantine (Boolean)
- درخواست میکند پیامهایی که اعتبارسنجی آنها با شکست مواجه میشود توسط MTA قرنطینه شوند. (نیازمند نسخه به اندازه کافی جدید از کتابخانه milter است.)
- QueryCache (Boolean)
- به کتابخانه DKIM دستور میدهد حافظه نهان محلی خود را از کلیدها و خطمشیهای بازیابیشده از DNS حفظ کند، به جای اینکه برای سرویس ذخیرهسازی نهان به سرور نام تکیه کند. در صورتی که سرور نام مورد استفاده توسط پالایه محلی نباشد، مفید است. (برای این نصب فعال نشده است.)
- RedirectFailuresTo (address)
- پیامهای حاوی امضاهایی که اعتبارسنجی آنها با شکست مواجه شده است به آدرس مشخصشده هدایت میشوند. مجموعه گیرندگان پاکت اصلی قبل از انجام تغییر مسیر در سرایند ثبت میشود. بهطور پیشفرض، هیچ تغییر مسیری انجام نمیشود.
- RemoveARAll (Boolean)
- تمام فیلدهای سرایند Authentication-Results: را که شرایط RemoveARFrom در زیر را نیز برآورده میکنند، حذف میکند. بهطور پیشفرض، فقط مواردی که حاوی نتیجه DKIM هستند حذف میشوند.
- RemoveARFrom (dataset)
- مجموعهای از نامهای میزبان را تعریف میکند که فیلدهای سرایند Authentication-Results: آنها باید قبل از تحویل پیام حذف شوند. بهطور پیشفرض فقط آن دسته از فیلدهای سرایند که با نام متعارف (canonical) میزبان محلی مطابقت دارند حذف خواهند شد. تطبیق فقط روی نامهای کامل میزبان (مانند "host.example.com") یا روی نامهای دامنه (مانند ".example.com") انجام میشود.
- RemoveOldSignatures (Boolean)
- هنگام کار در حالت امضا، تمام امضاهای موجود را حذف میکند.
- ReplaceHeaders (data set)
- مجموعهای از فیلدهای سرایند را تعریف میکند که باید تحت تأثیر قوانین جایگزینی متن تعریفشده توسط تنظیم ReplaceRules قرار گیرند. بهطور پیشفرض، همه فیلدهای سرایند گنجانده شدهاند. (ویژگی آزمایشی برای این نصب فعال نشده است.)
- ReplaceRules (string)
- فایلی حاوی فهرستی از قوانین جایگزینی متن را مشخص میکند که برای جایگزینی محتوای خاصی که انتظار میرود با عبور پیام از MTAهای محلی تغییر کند، روی فیلدهای سرایند پیام اعمال میشوند. این میتواند برای تطبیق تغییرات مورد انتظار مانند تغییرات ایجاد شده در فیلدهای From: توسط ویژگیهای "masquerade" سرور MTA استفاده شود. هر مدخل در فایل شامل یک عبارت منظم POSIX، به دنبال آن یک تب (ASCII 9)، و به دنبال آن متنی است که باید برای جایگزینی متن منطبق با عبارت استفاده شود. نویسه '#' نشاندهنده شروع یک توضیح است و متن از آن نقطه به بعد در یک خط نادیده گرفته میشود. خطوط خالی نیز نادیده گرفته میشوند. (ویژگی آزمایشی برای این نصب فعال نشده است.)
- ReportAddress (string)
- رشتهای را برای استفاده در فیلد سرایند From: برای گزارشهای خروجی مشخص میکند (به SendReports در زیر مراجعه کنید). در صورت عدم تعیین، از کاربر اجراکننده و نام میزبان محلی برای ساخت آدرس استفاده خواهد شد.
- ReportBccAddress (string)
- آدرس(هایی) را برای گنجاندن در فیلد سرایند Bcc: در گزارشهای خروجی مشخص میکند (به SendReports در زیر مراجعه کنید). اگر چندین آدرس مورد نیاز است، باید با ویرگول از هم جدا شوند.
- RequestReports (boolean)
- هنگام امضا، درخواستی برای خرابیهای ارزیابی امضا در امضا میگنجاند. (برای جزئیات به RFC6651 مراجعه کنید.)
- RequiredHeaders (boolean)
- تمام پیامها را برای مطابقت با الزامات تعداد فیلدهای سرایند RFC5322 بررسی میکند. پیامهای ناسازگار رد میشوند.
- RequireSafeKeys (boolean)
- هنگام خواندن یک فایل کلید، اگر بیت خواندن یا نوشتن فایل کلید برای غیر از مالک یا گروهی که فرایند اجراکننده در آن قرار دارد تنظیم شده باشد، یک پیام ثبت میشود. با تنظیم این ویژگی روی "true"، پالایه علاوه بر این، این موضوع را یک خطا تلقی کرده و از استفاده از محتویات فایل خودداری میکند. پیشفرض "true" است.
- ResignAll (boolean)
- جایی که ResignMailTo یک عمل بازامضا (re-signing) را راهاندازی میکند، این پرچم نشان میدهد که آیا همه نامهها باید امضا شوند (در صورت تنظیم) در مقابل اینکه فقط نامههای اعتبارسنجیشده امضا شوند (در صورت عدم تنظیم). (ویژگی آزمایشی برای این نصب فعال نشده است.)
- ResignMailTo (dataset)
- هر گیرنده پیام را برای یافتن رکورد منطبق در مجموعه داده مشخصشده بررسی میکند. در هر مورد آدرس کامل بررسی میشود، سپس نام میزبان، سپس هر دامنه که با "." شروع میشود. اگر تطابقی وجود داشته باشد، فرض میشود مقدار بازگردانده شده نام کلیدی در KeyTable (در صورت تعریف) است که علاوه بر اعتبارسنجی پیام، برای امضای مجدد آن نیز استفاده میشود. اگر تطابقی بدون KeyTable وجود داشته باشد، کلید پیشفرض اعمال میشود. (ویژگی آزمایشی برای این نصب فعال نشده است.)
- ResolverConfiguration (string)
- رشته دادهشده را به عنوان اطلاعات پیکربندی به تحلیلگر زیرین ارائه میدهد. برای تحلیلگر استاندارد یونیکس، این مورد استفاده نمیشود؛ برای Unbound، رشته حاوی نام فایلی است که یک فایل پیکربندی در نظر گرفته میشود. مقداری به عنوان پیشفرض وجود ندارد.
- ResolverTracing (Boolean)
- درخواست میکند ویژگیهای ردگیری تحلیلگر (resolver tracing)، در صورت وجود، فعال شوند. تأثیر این امر بستگی به چگونگی پیادهسازی ویژگیهای رفع اشکال تحلیلگر دارد. در حال حاضر فقط با کتابخانه تحلیلگر ناهمگام OpenDKIM مؤثر است.
- ScreenPolicyScript (string)
- نام یک اسکریپت Lua را مشخص میکند که باید پس از پردازش تمام فیلدهای سرایند برای یک پیام اجرا شود؛ بهویژه، این مورد پس از شناسایی تمام امضاهای DKIM و انجام ارزیابی اولیه مفید است. اسکریپت به تمام فیلدهای سرایند و اطلاعات اتصال دسترسی دارد و میتواند دستور دهد که امضاهای خاصی بر اساس آن اطلاعات نادیده گرفته شوند. برای جزئیات به opendkim-lua(3) مراجعه کنید. (برای این نصب فعال نشده است.)
- SelectCanonicalizationHeader (string)
- نام فیلد سرایندی را تعریف میکند که در صورت وجود، مشخص میکند کدام استانداردسازی برای تولید یک امضای خروجی استفاده خواهد شد. در صورت وجود فیلد سرایند، تنظیم Canonicalization را بازنویسی میکند. پیشفرض "X-Canonicalization" است.
- Selector (string)
- نام
گزینشگر
(selector) مورد
استفاده
هنگام
امضای
پیامها را
تعیین
میکند.
برای
جزئیات به
مشخصات DKIM
مراجعه
کنید. فقط
هنگام امضا
با یک کلید
واحد
استفاده
میشود؛
برای
اطلاعات
بیشتر به
پارامتر
SigningTable در زیر
مراجعه
کنید.
در صورت تعریف KeyTable این پارامتر نادیده گرفته میشود.
- SenderHeaders (dataset)
- فهرست مرتبشدهای از فیلدهای سرایند را مشخص میکند که باید برای تعیین فرستنده پیام جستجو شوند. اولین فیلد سرایند یافتشده فیلدی است که از مقدار آن استفاده میشود. این گزینه عمدتاً هنگام امضا برای تصمیمگیری در مورد اینکه کدام درخواست(های) امضا انجام شود استفاده میشود. بهطور پیشفرض، فیلد سرایند "From" تنها فیلدی است که بررسی میشود. برای شرح مقادیر ممکن به تنظیم OmitHeaders مراجعه کنید.
- SenderMacro (string)
- استفاده از رشته ماکروی milter برای تعیین فرستنده پیام. (ویژگی آزمایشی برای این نصب فعال نشده است.)
- SendReports (Boolean)
- اگر true باشد، هنگامی که اعتبارسنجی یک امضا با شکست مواجه شود و امضا شامل یک درخواست گزارش ("r=y") باشد و دامنه امضاکننده یک آدرس گزارشدهی (یعنی ra=user) را در یک رکورد گزارشدهی در DNS تبلیغ کند، پالایه یک گزارش ساختاریافته حاوی جزئیات مورد نیاز برای بازتولید مشکل به آن آدرس ارسال میکند. برای شرح کامل این سازوکار به RFC6651 مراجعه کنید.
- SetupPolicyScript (string)
- نام یک اسکریپت Lua را مشخص میکند که باید پس از رسیدن تمام فیلدهای سرایند برای یک پیام اجرا شود. اسکریپت به تمام فیلدهای سرایند و اطلاعات اتصال دسترسی دارد و میتواند بر اساس آن اطلاعات، اعتبارسنجی یا امضای DKIM را درخواست کند. برای جزئیات به opendkim-lua(3) مراجعه کنید. (برای این نصب فعال نشده است.)
- SignatureAlgorithm (string)
- الگوریتم امضا را برای استفاده هنگام تولید امضاها انتخاب میکند. برای دیدن فهرست الگوریتمهای پشتیبانیشده از 'opendkim -V' استفاده کنید. در صورت در دسترس بودن، پیشفرض rsa-sha256 است، در غیر این صورت rsa-sha1 خواهد بود. این تنظیم باید با نوع کلید مشخصشده توسط KeyFile یا مدخل کلید در KeyTable مطابقت داشته باشد. بهویژه، کلیدهای Ed25519 نیاز دارند که این گزینه بهطور صریح روی ed25519-sha256 تنظیم شود، زیرا الگوریتم بهطور خودکار از نوع کلید شناسایی نمیشود.
- SignatureTTL (integer)
- طول عمر (TTL) امضاهای تولیدشده توسط پالایه را بر حسب ثانیه تنظیم میکند. در صورت عدم تنظیم، زمان انقضا به امضاها اضافه نمیشود.
- SignHeaders (dataset)
- مجموعهای از فیلدهای سرایند جداشده با ویرگول را مشخص میکند که باید هنگام تولید امضاها گنجانده شوند. اگر در فهرست هر فیلد سرایندی که توسط مشخصات DKIM اجباری شده حذف شده باشد، آن فیلدها بهطور ضمنی اضافه میشوند. مجموعهای از فیلدهای سرایند در مشخصات DKIM به عنوان "نمونههای رایج" برای امضا ذکر شده است (RFC6376، بخش 5.4.1)؛ فهرست پیشفرض برای این پارامتر حاوی آن فیلدها است (From, Reply-To, Subject, Date, To, Cc, Resent-Date, Resent-From, Resent-Sender, Resent-To, Resent-Cc, In-Reply-To, References, List-Id, List-Help, List-Unsubscribe, List-Subscribe, List-Post, List-Owner, List-Archive). مشخص کردن یک فهرست با این پارامتر، مقدار پیشفرض را بهطور کامل جایگزین میکند، مگر اینکه یک مدخل "*" باشد که در این صورت فهرست به عنوان یک تغییر نسبت به پیشفرض تفسیر میشود؛ به عنوان مثال، "*,+foobar" از کل فهرست پیشفرض به اضافه نام "foobar" استفاده میکند، در حالی که "*,-Bcc" از کل فهرست پیشفرض به جز مدخل "Bcc" استفاده میکند.
- SigningTable (dataset)
- جدولی را
تعریف
میکند که
برای
انتخاب یک
یا چند امضا
برای اعمال
روی یک پیام
بر اساس
آدرس
یافتشده
در فیلد
سرایند From:
استفاده
میشود.
کلیدها در
این جدول
بسته به نوع
جدول مورد
استفاده
متفاوت
است؛
مقادیر
موجود در
این مجموعه
داده باید
شامل یک
فیلد باشد
که حاوی
نامی
یافتشده
در KeyTable (به
بالا
مراجعه
کنید) است
که مشخص
میکند
کدام کلید
باید در
تولید امضا
استفاده
شود، و یک
فیلد دوم
اختیاری که
امضاکننده
پیام را نام
میبرد که
در برچسب "i="
در امضای
تولیدشده
گنجانده
خواهد شد.
توجه داشته
باشید که
اگر مقدار
"i=" با دامنه
امضاکننده
(مقدار "d=") در
تعارض
باشد، در
امضا
گنجانده
نخواهد شد.
اگر فیلد اول فقط شامل یک نویسه "%" باشد، با دامنه یافتشده در فیلد سرایند From: جایگزین خواهد شد. به همین ترتیب، در فیلد دوم اختیاری، هر نویسه "%" با دامنه یافتشده در فیلد سرایند From: جایگزین خواهد شد.
اگر این جدول یک فایل عبارت منظم ("refile") را مشخص کند، کلیدها الگوهای عام هستند که با آدرس یافتشده در فیلد سرایند From: مطابقت داده میشوند. مدخلها به ترتیبی که در فایل ظاهر میشوند بررسی میشوند.
برای سایر انواع پایگاه داده، ابتدا آدرس کامل user@host بررسی میشود، سپس صرفاً host ، سپس user@.domain (با تمام ابردامنههایی که به ترتیب بررسی میشوند، بنابراین "foo.example.com" ابتدا "user@foo.example.com"، سپس "user@.example.com"، سپس "user@.com" را بررسی میکند)، سپس .domain ، سپس user@* و در نهایت *.
در هر صورت، فقط اولین تطابق اعمال میشود، مگر اینکه MultipleSignatures فعال باشد که در این صورت تمام تطابقها اعمال میشوند.
- SMTPURI (string)
- یک URI (مانند "smtp://localhost") را مشخص میکند که هنگام تولید اعلانها، ایمیل باید از طریق SMTP به آن ارسال شود. (برای این نصب فعال نشده است.)
- Socket (string)
- سوکت مورد نیازی را مشخص میکند که باید توسط پالایه ایجاد شود تا اتصالات را از sendmail(8) به منظور ارائه خدمات دریافت کند. socketspec به یکی از دو شکل زیر است: local:path که یک سوکت دامنه یونیکس را در path مشخصشده ایجاد میکند، یا inet:port[@host] یا inet6:port[@host] که یک سوکت TCP را روی port مشخصشده و در خانواده پروتکل مشخصشده ایجاد میکند. اگر host به عنوان نام میزبان یا آدرس IP داده نشود، سوکت روی تمام رابطها گوش فرا خواهد داد. یک آدرس IP واقعی باید در قلاب (کروشه) قرار گیرد. این گزینه در فایل پیکربندی یا در خط فرمان الزامی است.
- SoftStart (Boolean)
- در صورت تنظیم، عدم توانایی در اتصال و احراز هویت در یک سرور LDAP یا SQL مانع از راهاندازی پالایه نمیشود و برای هر پرسوجو تلاش برای اتصال مجدد انجام خواهد شد. پیشفرض "False" است.
- SoftwareHeader (Boolean)
- باعث میشود opendkim یک فیلد سرایند "DKIM-Filter" اضافه کند که نشاندهنده حضور این پالایه در مسیر پیام از تزریق تا تحویل است. نام محصول، نسخه و شناسه کار در محتویات فیلد سرایند گنجانده شده است. توجه داشته باشید که اگر تنظیم Mode باعث نادیده گرفته شدن پیام شود، فیلد سرایند اضافه نمیشود (برای مثال، اگر فقط حالت امضا فعال باشد و پیکربندی باعث شود پیام امضا نشود، یا فقط حالت اعتبارسنجی فعال باشد و پیکربندی در غیر این صورت باعث امضا شدن پیام میشد، این فیلد سرایند اضافه نخواهد شد).
- Statistics (filename)
- فایلی را برای ذخیره آمار تراکنشهای DKIM مشخص میکند. برای سازوکار تجزیه محتویات فایل به opendkim-stats(8) و برای سازوکار ترجمه محتویات فایل به درجهای پایگاه داده SQL به opendkim-importstats() مراجعه کنید. (ویژگی آزمایشی برای این نصب فعال نشده است.)
- StatisticsName (string)
- نامی را برای استفاده به عنوان میزبان گزارشدهنده در گزارشهای آماری تعریف میکند. بهطور پیشفرض، نام میزبان محلی برگرداندهشده توسط gethostname(3) استفاده میشود. (ویژگی آزمایشی برای این نصب فعال نشده است.)
- StatisticsPolicyScript (string)
- اسکریپت آمار پس از تکمیل تمام کارهای اعتبارسنجی و امضای DKIM اما قبل از انجام هرگونه مدیریت نهایی پیام اجرا میشود. هدف اصلی این اسکریپت این است که به کاربر این فرصت را بدهد که پیام یا امضاهای آن را بررسی کند و مشاهدات آماری اضافی دلخواهی را انجام دهد که باید توسط ماژول آمار ثبت شوند.
- StatisticsPrefix (string)
- هنگامی که AnonymousStatistics فعال است، این رشته ممکن است مشخص شود و برای گمنامسازی کاملتر، قبل از درهمسازی به تمام دادهها اضافه خواهد شد. این بدان معناست که دو رکورد از منابع مختلف که به یک منبع یکسان اشاره میکنند، همچنان هشهای متفاوتی تولید میکنند، به این معنی که چنین همبستگی اکنون فقط در دادههای یک گزارشدهنده منفرد امکانپذیر است.
- StrictHeaders (Boolean)
- در صورت تنظیم، به کتابخانه DKIM دستور میدهد در صورتی که تعداد فیلدهای سرایند با RFC5322 بخش 3.6 مطابقت نداشته باشد، از پردازش پیام خودداری کند.
- StrictTestMode (Boolean)
- حالت سختگیرانه CRLF را در حین آزمایش انتخاب میکند (پرچم خط فرمان -t را در صفحه راهنمای opendkim(8) ببینید)؛ پیامهایی که تمام فیلدهای سرایند و خطوط بدنه آنها با CRLF خاتمه نیافته باشند، ناقص تلقی میشوند و خطایی ایجاد میکنند.
- SubDomains (Boolean)
- زیردامنههای دامنههای فهرستشده توسط پارامتر Domain و همچنین خود دامنهها را امضا میکند.
- Syslog (Boolean)
- از طریق فراخوانیهای syslog(3) هرگونه فعالیت قابل توجه را ثبت میکند.
- SyslogFacility (string)
- از طریق فراخوانیهای syslog(3) با استفاده از تسهیلات نامگذاریشده، وقایع را ثبت میکند. نامهای تسهیلات همان مواردی است که در syslog.conf(5) مجاز است. پیشفرض "mail" است.
- SyslogName (string)
- از طریق فراخوانیهای syslog(3) با استفاده از آن نام وقایع را ثبت میکند. به این ترتیب میتوان نمونههای متعدد را متمایز کرد. پیشفرض نام فایل اجرایی است، معمولاً "opendkim".
- SyslogSuccess (Boolean)
- از طریق فراخوانیهای syslog(3) مدخلهای اضافی را ثبت میکند که نشاندهنده امضا یا اعتبارسنجی موفقیتآمیز پیامها است.
- StdoutLog (Boolean)
- هرگونه فعالیت قابل توجه را در خروجی استاندارد ثبت میکند. پارامتر SyslogSuccess همان تأثیری را با این پارامتر دارد که با پارامتر Syslog دارد.
- TemporaryDirectory (string)
- دایرکتوری را که در آن فایلهای موقت استانداردسازی باید نوشته شوند مشخص میکند. پیشفرض استفاده از مکان پیشفرض libopendkim است که در حال حاضر /tmp میباشد.
- TestDNSData (data set)
- مجموعه دادهای را ارائه میدهد که کلیدهای آن به عنوان نامهای رکورد DNS و مقادیر به عنوان محتویات رکورد TXT تلقی میشوند. برای استفاده در حین آزمایش خودکار در نظر گرفته شده است.
- TestPublicKeys (string)
- نام فایلی را مشخص میکند که کلیدهای عمومی باید از آن خوانده شوند. فقط برای استفاده در حین آزمایش خودکار در نظر گرفته شده است.
- TrustAnchorFile (string)
- فایلی را مشخص میکند که دادههای لنگر اعتماد (trust anchor) باید هنگام انجام پرسوجوهای DNS و اعمال پروتکل DNSSEC از آن خوانده شوند. در حال حاضر این مورد نادیده گرفته میشود مگر اینکه کتابخانه زیرین برای استفاده از Unbound کامپایل شده باشد؛ برای قالب مورد انتظار این فایل به مستندات در http://unbound.net مراجعه کنید.
- TrustSignaturesFrom (dataset)
- این مقدار شامل مجموعهای از دامنهها است که از نظر امضاهای شخص ثالث قابل اعتماد تلقی میشوند. یعنی اگر پیامی با امضایی از دامنهای برسد که با دامنه موجود در سرایند From: مطابقت ندارد، این تنظیم تعیین میکند که آیا به آن امضا اعتماد شود یا خیر. اگر این مقدار تعریف نشده باشد، به تمام امضاها اعتماد میشود.
- UMask (integer)
- یک ماسک مجوزهای خاص را برای استفاده در ایجاد فایل درخواست میکند. این فقط برای ایجاد سوکت در زمانی که Socket یک سوکت دامنه یونیکس را مشخص میکند و برای PidFile (در صورت وجود) واقعاً اعمال میشود؛ فایلهای موقت توسط تابع mkstemp(3) ایجاد میشوند که بدون توجه به umask فرایند، حالت فایل خاصی را هنگام ایجاد اعمال میکند. برای اطلاعات بیشتر به umask(2) مراجعه کنید.
- UnprotectedKey (string)
- به پالایه دستور میدهد با یک امضای معتبر مرتبط با کلیدی که در یک رکورد DNS ناامن (یعنی بدون محافظت توسط DNSSEC) یافت شده است، به روشی خاص رفتار کند. مقادیر ممکن عبارتند از neutral (برگرداندن نتیجه "neutral")، none (عدم انجام اقدام خاص؛ این مقدار پیشفرض است) و fail (برگرداندن نتیجه "fail"). (برای این نصب فعال نشده است.)
- UserID (string)
- تلاش میکند قبل از شروع عملیات به userid مشخصشده تبدیل شود. مقدار به صورت userid[:group] است. به فرایند تمام گروهها و شناسه گروه اصلی userid نامگذاریشده اختصاص مییابد مگر اینکه یک group جایگزین مشخص شود.
- VBR-Certifiers (string)
- گواهیدهندگان پیشفرض در صورتی که در فیلد سرایند X-VBR-Certifiers مشخص نشده باشند. (ویژگی آزمایشی برای این نصب فعال نشده است.)
- VBR-PurgeFields (string)
- در صورت تنظیم، ترتیبی میدهد که فیلدهای X-VBR-Certifiers و X-VBR-Type روی پیامها قبل از ارسال آنها حذف شوند. (ویژگی آزمایشی برای این نصب فعال نشده است.)
- VBR-TrustedCertifiers (string)
- فهرستی از گواهیدهندگان مورد اعتماد جداشده با دونقطه یا ویرگول برای پذیرش هنگام اعتبارسنجی فیلد سرایند VBR-Info. (ویژگی آزمایشی برای این نصب فعال نشده است.)
- VBR-TrustedCertifiersOnly (Boolean)
- بهطور پیشفرض، گواهیدهندگانی که هم در فهرست گواهیدهندگان مورد اعتماد (در بالا) و هم در فیلد سرایند VBR-Info پیام هستند برای ضمانت (vouching) بررسی میشوند. با تنظیم این گزینه، گواهیدهندگان مورد اعتماد بررسی میشوند و مواردی که توسط پیام ادعا شدهاند نادیده گرفته میشوند. (ویژگی آزمایشی برای این نصب فعال نشده است.)
- VBR-Type (string)
- نوع VBR پیشفرض در صورتی که در فیلد سرایند X-VBR-Type مشخص نشده باشد. (ویژگی آزمایشی برای این نصب فعال نشده است.)
- WeakSyntaxChecks (Boolean)
- درخواست میکند که کتابخانه حتی در صورت کشف خطاهای نحوی در مراحل اولیه تجزیه و تحلیل پیام، به پردازش پیامها ادامه دهد. این بدان معناست که به عنوان مثال، یک پیام امضاشده با فیلد From: ناقص یا دستکاریشده، حتی اگر دامنه فرستنده قابل تشخیص نباشد، همچنان برای اعتبارسنجی پیش خواهد رفت.
نکات (NOTES)
هنگام استفاده از مهلتهای زمانی DNS (گزینه DNSTimeout در بالا را ببینید)، اطمینان حاصل کنید که از مهلت زمانی بزرگتر از مهلت زمانی استفادهشده برای تعامل بین sendmail و پالایه استفاده نکنید. در غیر این صورت، MTA ممکن است در حین انتظار برای پاسخ از پالایه، که به نوبه خود هنوز منتظر پاسخ DNS است، یک پیام را لغو کند.
ویژگیهایی که شامل تعیین آدرسهای IPv4 یا بلوکهای CIDR هستند از تابع inet_addr(3) برای تجزیه آن اطلاعات استفاده خواهند کرد. کاربران باید با روشی که آن تابع موارد غیربدیهی را مدیریت میکند آشنا باشند (به عنوان مثال، "192.0.2/24" و "192.0.2.0/24" یکسان نیستند).
فایلها (FILES)
- /etc/opendkim/opendkim.conf
- مکان پیشفرض این فایل.
نسخه (VERSION)
این صفحه راهنما نسخه 2.11.0 از opendkim را پوشش میدهد.
حق نشر (COPYRIGHT)
Copyright (c) 2007, 2008, Sendmail, Inc. and its suppliers. All rights reserved.
Copyright (c) 2009-2015, The Trusted Domain Project. All rights reserved.
همچنین ببینید (SEE ALSO)
opendkim(8), opendkim-lua(3), sendmail(8)
RFC5451 - Message Header Field for Indicating Message Authentication Status
RFC5617 - DKIM Author Domain Signing Practises
RFC5965 - An Extensible Format for Email Feedback Reports
RFC6008 - Authentication-Results Registration for Differentiating among Cryptographic Results
RFC6376 - DomainKeys Identified Mail
RFC6651 - Extensions to DomainKeys Identified Mail (DKIM) for Failure Reporting
| The Trusted Domain Project |