.TH IPSEC.CONF 5 "2012-06-26" "6.1.0" "strongSwan" .SH "نام (NAME)" ipsec.conf \- پیکربندی و اتصالات IPsec .SH "توضیحات (DESCRIPTION)" پرونده اختیاری .I ipsec.conf بیشتر اطلاعات پیکربندی و کنترلی را برای زیرسیستم IPsec نرم‌افزار strongSwan مشخص می‌کند. استثنای اصلی، رازها (secrets) برای احراز هویت هستند؛ به .IR ipsec.secrets (5) مراجعه کنید. محتویات این پرونده از نظر امنیتی حساس نیستند. .PP این پرونده یک پرونده متنی است که از یک یا چند .IR بخش (section) تشکیل شده است. فاصله سفید که به دنبال آن .B # و هر متنی تا پایان خط بیاید، یک کامنت (توضیح) محسوب شده و نادیده گرفته می‌شود؛ همچنین خطوط خالی که درون یک بخش قرار ندارند نیز نادیده گرفته می‌شوند. .PP خطی که شامل .B include و یک نام پرونده باشد که با فاصله سفید از هم جدا شده‌اند، با محتویات آن پرونده جایگزین می‌شود. اگر نام پرونده یک مسیر کامل نباشد، به عنوان مسیری نسبی نسبت به شاخهٔ حاوی پروندهٔ دربرگیرنده در نظر گرفته می‌شود. این پرونده‌های گنجانده‌شده می‌توانند به صورت تو در تو باشند. تنها یک نام پرونده مجاز است و نباید شامل فاصله سفید باشد، اما می‌تواند شامل نویسه‌های عام پوسته (wildcards) باشد (به .IR sh (1) مراجعه کنید)؛ برای نمونه: .PP .B include .B "ipsec.*.conf" .PP هدف از قابلیت include عمدتاً امکان جداسازی اطلاعات اتصالات یا مجموعه‌ای از اتصالات از پرونده پیکربندی اصلی است. این امر اجازه می‌دهد که توضیحات چنین اتصالاتی تغییر کند، به سایر دروازه‌های امنیتی مربوطه کپی شود و غیره، بدون نیاز به اینکه مداوم آن‌ها را از پرونده پیکربندی استخراج کرده و دوباره در آن درج کنید. همچنین به پارامتر .B also (که در ادامه توضیح داده شده است) توجه کنید که اجازه می‌دهد یک بخش منطقی واحد (مانند توضیح یک اتصال) به چندین بخش واقعی تقسیم شود. .PP یک بخش با خطی به شکل زیر آغاز می‌شود: .PP .I type .I name .PP که در آن .I type نوع بخش بعدی را نشان می‌دهد و .I name یک نام اختیاری و دلخواه است که این بخش را از سایر بخش‌های هم‌نوع متمایز می‌کند. تمام خطوط غیرخالی بعدی که با فاصله سفید آغاز می‌شوند، بخشی از این بخش به شمار می‌روند. بخش‌های هم‌نوعی که نام یکسانی دارند با یکدیگر ادغام می‌شوند. .PP خطوط درون یک بخش عموماً به شکل زیر هستند: .PP \ \ \ \ \ \fIparameter\fB=\fIvalue\fR .PP (به فاصله سفید اجباری در ابتدای خط توجه کنید). در هر دو طرف .BR = می‌تواند فاصله سفید وجود داشته باشد. نام پارامترها مختص نوع بخش است. .PP یک .I value خالی به معنای مقدار پیش‌فرض سیستم (در صورت وجود) برای آن پارامتر است؛ به این معنی که تقریباً معادل حذف کامل خط پارامتر است. این می‌تواند برای پاک کردن تنظیمی که از یک بخش .B %default یا از طریق پارامتر .B also به ارث رسیده مفید باشد (به زیر مراجعه کنید). یک .I value می‌تواند شامل تک‌فاصله‌ها باشد (فاصله‌های سفید اضافی به یک فاصله کاهش می‌یابند). برای حفظ فاصله‌های سفید دقیقاً همان‌طور که نوشته شده‌اند، کل .I value را در جفت‌گیومه (\fB"\fR) قرار دهید؛ در چنین مقادیری خود جفت‌گیومه‌ها را می‌توان با پیشوند قرار دادن نویسه‌های .B \\\\ گریز داد (escape کرد). یک رشته داخل گیومه می‌تواند با قرار دادن نویسه‌های .B \\\\ در انتهای خطوط در چند خط امتداد یابد (خطوط بعدی نیازی نیست با فاصله سفید شروع شوند، زیرا حفظ خواهد شد). علاوه بر این، نویسه‌های کنترلی زیر می‌توانند در رشته‌های داخل گیومه کدگذاری شوند: \\n, \\r, \\t, \\b, \\f. .PP مقادیر عددی یا به صورت یک «عدد صحیح» (دنباله‌ای از ارقام) یا یک «عدد اعشاری» (دنباله‌ای از ارقام که به صورت اختیاری با `.' و دنباله دیگری از ارقام همراه است) مشخص می‌شوند. .PP در حال حاضر یک پارامتر وجود دارد که در هر نوع بخشی در دسترس است: .TP .B also مقدار آن نام یک بخش است؛ پارامترهای آن بخش توسط بخش جاری به ارث برده می‌شوند. پارامترهای موجود در بخش جاری همیشه بر پارامترهای به ارث رسیده برتری دارند و آن‌ها را بازنویسی (override) می‌کنند، حتی اگر یک .B also بعد از آن‌ها بیاید. بخش مشخص‌شده باید وجود داشته باشد و باید نوع بخش یکسانی داشته باشد؛ فرقی نمی‌کند که قبل یا بعد از بخش جاری تعریف شده باشد. تودرتویی مجاز است و می‌تواند بیش از یک .B also در یک بخش واحد وجود داشته باشد (پارامترهای بخش‌های ارجاع داده شده به ترتیب همین پارامترهای .B also به ارث برده شده و بازنویسی می‌شوند). .PP بخشی با نام .B %default پیش‌فرض‌ها را برای بخش‌های هم‌نوع مشخص می‌کند. تمام پارامترهای موجود در آن توسط سایر بخش‌های آن نوع به ارث برده می‌شوند. .PP در حال حاضر سه نوع بخش وجود دارد: یک بخش .B config اطلاعات پیکربندی عمومی IPsec را مشخص می‌کند، یک بخش .B conn یک اتصال IPsec را مشخص می‌نماید، در حالی که یک بخش .B ca ویژگی‌های خاص یک مرجع صدور گواهی (CA) را مشخص می‌کند. .SH "بخش‌های CONN (CONN SECTIONS)" یک بخش .B conn شامل یک .IR "مشخصات اتصال (connection specification)" است که یک اتصال شبکه‌ای را که قرار است با استفاده از IPsec برقرار شود، تعریف می‌کند. نام داده شده دلخواه است و برای شناسایی اتصال به کار می‌رود. در اینجا یک مثال ساده آورده شده است: .PP .ne 10 .nf .ft B .ta 1c conn snt left=192.168.0.1 leftsubnet=10.1.0.0/16 right=192.168.0.2 rightsubnet=10.1.0.0/16 keyingtries=%forever auto=add .ft .fi .PP نکته‌ای درباره اصطلاحات: دو نوع ارتباط در جریان است: انتقال بسته‌های IP کاربر، و مذاکرات بین دروازه‌ای برای کلیدگذاری، کلیدگذاری مجدد و کنترل عمومی. مسیر کنترل اتصال در پروتکل IKEv1 به نام 'ISAKMP SA' و در پروتکل IKEv2 به نام 'IKE SA' شناخته می‌شود. آن چیزی که مذاکره می‌شود یعنی مسیر داده در سطح هسته، 'IPsec SA' یا 'Child SA' نامیده می‌شود. نرم‌افزار strongSwan پیش‌تر از دو دیمن کلیدگذاری مجزا به نام‌های \fIpluto\fP و \fIcharon\fP استفاده می‌کرد. این راهنما دیگر به گزینه‌های \fIpluto\fP نمی‌پردازد، بلکه تنها به \fIcharon\fP اختصاص دارد که از نسخه 5.0 strongSwan از هر دو پروتکل IKEv1 و IKEv2 پشتیبانی می‌کند. .PP برای جلوگیری از ویرایش‌های جزئی پرونده پیکربندی به منظور سازگاری با هر سامانه درگیر در اتصال، مشخصات اتصال بر اساس شرکت‌کنندگان .I left (چپ) و .I right (راست) نوشته می‌شوند، نه بر اساس محلی (local) و دوردست (remote). اینکه کدام شرکت‌کننده .I left یا .I right در نظر گرفته شود اختیاری است؛ برای هر توصیف اتصال تلاشی صورت می‌گیرد تا مشخص شود نقطه پایانی محلی باید به عنوان .I left عمل کند یا .IR right . این کار با تطبیق نشانی‌های IP تعریف‌شده برای هر دو نقطه پایانی با نشانی‌های IP اختصاص‌یافته به رابط‌های شبکه محلی انجام می‌شود. اگر تطابقی یافت شود، نقشی (چپ یا راست) که مطابقت دارد، محلی در نظر گرفته خواهد شد. اگر در هنگام راه‌اندازی تطابقی یافت نشود، .I left محلی در نظر گرفته می‌شود. این امر اجازه می‌دهد از مشخصات اتصال یکسان در هر دو انتها استفاده شود. مواردی وجود دارد که در آن‌ها تقارن وجود ندارد؛ یک قرارداد خوب این است که از .I left برای سمت محلی و از .I right برای سمت دوردست استفاده شود (حروف اول در انگلیسی یک یادافزای مناسب هستند). .PP بسیاری از پارامترها به یکی از شرکت‌کنندگان مربوط می‌شوند؛ تنها پارامترهای مربوط به .I left در اینجا فهرست شده‌اند، اما هر پارامتری که نامش با .B left آغاز می‌شود، یک معادل با .B right دارد که توضیحات آن یکسان است اما جای .B left و .B right معکوس شده است. .PP پارامترها اختیاری هستند مگر اینکه به صورت '(required)' (اجباری) مشخص شده باشند. .SS "پارامترهای CONN (CONN PARAMETERS)" مگر در مواردی که خلاف آن ذکر شده باشد، برای کارکرد یک اتصال، به طور کلی لازم است که هر دو طرف روی مقادیر این پارامترها توافق کامل داشته باشند. .TP .BR aaa_identity " = " هویت زیرسیستم پشتیبان AAA را که در طول احراز هویت IKEv2 EAP استفاده می‌شود، تعریف می‌کند. این گزینه در صورتی لازم است که کلاینت EAP از روشی استفاده کند که هویت سرور را اعتبارسنجی می‌کند (مانند EAP-TLS)، اما این هویت با هویت درگاه IKEv2 مطابقت نداشته باشد. .TP .BR aggressive " = yes | " no مشخص می‌کند که از حالت تهاجمی (Aggressive Mode) در IKEv1 استفاده شود یا حالت اصلی (Main Mode، پیش‌فرض). .TP .BR ah " = " فهرست جداشده با کاما از الگوریتم‌های AH که برای اتصال استفاده می‌شوند، به عنوان مثال .BR sha1-sha256-modp1024 . شیوه نگارش به صورت .BR integrity[-dhgroup] است. برای IKEv2، چندین الگوریتم (جداشده با -) از یک نوع را می‌توان در یک پیشنهاد واحد گنجاند. IKEv1 تنها اولین الگوریتم را در یک پیشنهاد می‌گنجاند. تنها یکی از کلیدواژه‌های .B ah یا .B esp می‌تواند استفاده شود؛ بسته‌های ترکیبی AH+ESP پشتیبانی نمی‌شوند. هیچ مجموعه رمزنگاری پیش‌فرضی برای AH وجود ندارد زیرا به صورت پیش‌فرض از ESP استفاده می‌شود. دیمن پیشنهاد پیش‌فرض گسترده خود را به مقدار پیکربندی‌شده اضافه می‌کند. برای محدود کردن آن به پیشنهاد پیکربندی‌شده، می‌توان یک علامت تعجب .RB ( ! ) در انتها اضافه کرد. اگر .B dh-group مشخص شده باشد، راه‌اندازی و کلیدگذاری مجدد CHILD_SA/Quick Mode شامل یک تبادل Diffie-Hellman جداگانه خواهد بود (برای جزئیات به کلیدواژه .B esp مراجعه کنید). .TP .BR also " = " بخش conn با نام .BR را می‌گنجاند. .TP .BR auth " = " توسط دیمن IKEv1 به نام .B pluto برای استفاده از حفاظت یکپارچگی AH برای بسته‌های رمزگذاری‌شده با ESP استفاده می‌شد، اما در charon پشتیبانی نمی‌شود. کلیدواژه .B ah الگوریتم‌های مورد استفاده برای حفاظت یکپارچگی با AH (اما بدون رمزنگاری) را مشخص می‌کند. بسته‌های ترکیبی AH+ESP پشتیبانی نمی‌شوند. .TP .BR authby " = " pubkey " | rsasig | ecdsasig | psk | secret | never | xauthpsk | xauthrsasig" نحوه احراز هویت متقابل دو درگاه امنیتی؛ مقادیر قابل قبول عبارتند از .B psk یا .B secret برای کلیدهای از پیش به اشتراک گذاشته شده (pre-shared secrets)، .B pubkey (پیش‌فرض) برای امضاهای کلید عمومی و همچنین معادل‌های آن یعنی .B rsasig برای امضاهای دیجیتال RSA و .B ecdsasig برای امضاهای منحنی بیضوی DSA. مقدار .B never می‌تواند در صورتی استفاده شود که هرگز قرار نباشد مذاکره‌ای انجام یا پذیرفته شود (مفید برای اتصالات فقط شنت / shunt-only). امضاهای دیجیتال از هر نظر نسبت به رازهای به اشتراک گذاشته شده برتر هستند. IKEv1 علاوه بر این از مقادیر .B xauthpsk و .B xauthrsasig پشتیبانی می‌کند که احراز هویت گسترده (XAUTH) را علاوه بر حالت اصلی IKEv1 بر اساس رازهای مشترک یا امضاهای دیجیتال RSA فعال می‌کنند. این پارامتر منسوخ شده است، زیرا در IKEv2 دو همتا نیازی به توافق بر سر یک روش احراز هویت یکسان ندارند. در عوض از پارامتر .B leftauth برای تعریف روش‌های احراز هویت استفاده کنید. .TP .BR auto " = " ignore " | add | route | start" چه عملیاتی، در صورت وجود، باید به طور خودکار در زمان راه‌اندازی IPsec انجام شود؛ مقادیر پذیرفته‌شده در حال حاضر عبارتند از .BR add ، .BR route ، .B start و .B ignore (پیش‌فرض). .B add یک اتصال را بدون شروع آن بارگذاری می‌کند. .B route یک اتصال را بارگذاری کرده و تله‌های هسته (kernel traps) را نصب می‌کند. اگر ترافیکی بین .B leftsubnet و .B rightsubnet تشخیص داده شود، اتصال برقرار می‌شود. .B start یک اتصال را بارگذاری کرده و بلافاصله آن را بالا می‌آورد. .B ignore اتصال را نادیده می‌گیرد. این معادل حذف اتصال از پرونده پیکربندی است. تنها به صورت محلی مرتبط است و طرف دیگر نیازی به توافق بر سر آن ندارد. .TP .BR closeaction " = " none " | clear | hold | restart" عملی را تعریف می‌کند که در صورت بسته شدن غیرمنتظره یک CHILD_SA توسط همتای دوردست باید انجام شود (برای معنای مقادیر به .B dpdaction مراجعه کنید). گزینه .B closeaction نباید در صورتی که همتا از احراز هویت مجدد (reauthentication) یا بررسی شناسه‌های یکتا (uniqueids) استفاده می‌کند استفاده شود، زیرا این رویدادها ممکن است عمل تعریف‌شده را در زمانی که مطلوب نیست تحریک کنند. .TP .BR compress " = yes | " no آیا فشرده‌سازی محتوا با IPComp در اتصال پیشنهاد شود یا خیر (فشرده‌سازی در سطح پیوند روی داده‌های رمزگذاری‌شده کار نمی‌کند، بنابراین برای مؤثر بودن، فشرده‌سازی باید \fIپیش از\fR رمزنگاری انجام شود)؛ مقادیر قابل قبول عبارتند از .B yes و .B no (پیش‌فرض). مقدار .B yes باعث می‌شود دیمن هر دو حالت فشرده و غیرفشرده را پیشنهاد دهد و فشرده را ترجیح دهد. مقدار .B no مانع از پیشنهاد یا پذیرش فشرده‌سازی توسط دیمن می‌شود. .TP .BR dpdaction " = " none " | clear | hold | restart" استفاده از پروتکل تشخیص همتای مرده (DPD، بر اساس RFC 3706) را کنترل می‌کند که در آن پیام‌های اعلان R_U_THERE (در IKEv1) یا پیام‌های خالی INFORMATIONAL (در IKEv2) به صورت دوره‌ای برای بررسی زنده بودن همتای IPsec ارسال می‌شوند. مقادیر .BR clear ، .BR hold و .B restart همگی DPD را فعال می‌کنند و عمل انجام‌شونده هنگام اتمام مهلت (timeout) را مشخص می‌سازند. با .B clear اتصال بدون اقدام دیگری بسته می‌شود. .B hold یک سیاست تله نصب می‌کند که ترافیک منطبق را گرفته و در صورت نیاز تلاش می‌کند اتصال را مجدداً مذاکره کند. .B restart بلافاصله تلاشی را برای مذاکره مجدد اتصال تحریک می‌کند. مقدار پیش‌فرض .B none است که ارسال فعال پیام‌های DPD را غیرفعال می‌کند. .TP .BR dpddelay " = " 30s " |