| TINC.CONF(5) | File Formats Manual | TINC.CONF(5) |
نام (NAME)
tinc.conf —
پیکربندی
دیمن tinc
توضیحات (DESCRIPTION)
پروندههای موجود در دایرکتوری /etc/tinc/ حاوی اطلاعات زمان اجرا و امنیتی برای دیمن tinc هستند.
شبکهها (NETWORKS)
اجرای بیش
از یک دیمن tinc
کاملاً
مجاز و بدون
مشکل است. با
این حال، در
حالت
پیشفرض،
خیلی زود
متوجه
خواهید شد
که بدون
گزینه -c
نمیتوانید
از دو
پرونده
پیکربندی
مختلف
استفاده
کنید.
ما به روش
دیگری برای
حل این
موضوع فکر
کردهایم:
نامهای
شبکه. این به
این معناست
که شما tinc.conf
را با گزینه
-n
فراخوانی
میکنید،
که نامی را
به این دیمن
اختصاص
میدهد.
اثر این
کار این است
که دیمن
ریشه
پیکربندی
خود را روی
/etc/tinc/NETNAME/
تنظیم
میکند،
جایی که
NETNAME
آرگومان
شما به
گزینه -n
است. متوجه
خواهید شد
که پیامها
در syslog به
عنوان
پیامی از
طرف
tincd.NETNAME
ظاهر
میشوند.
با این
حال، به طور
اکید لازم
نیست که tinc را
با گزینه
-n
فراخوانی
کنید. در این
حالت، نام
شبکه صرفاً
خالی خواهد
بود و به
همین صورت
استفاده
میشود.
اکنون tinc
به دنبال
پروندهها
در /etc/tinc/
میگردد،
به جای
/etc/tinc/NETNAME/
؛ پرونده
پیکربندی
باید /etc/tinc/tinc.conf
باشد، و
پروندههای
پیکربندی
میزبان
اکنون
انتظار
میرود در
/etc/tinc/hosts/
باشند.
اما به شدت
توصیه
میشود از
این قابلیت
tinc
استفاده
کنید، زیرا
بسیار
شفافتر
خواهد بود
که دیمن شما
با چه کسی
ارتباط
برقرار
میکند.
بنابراین،
ما فرض
خواهیم کرد
که از آن
استفاده
میکنید.
نامها (NAMES)
هر دیمن tinc باید نامی داشته باشد که در شبکهای که بخشی از آن خواهد بود یکتا باشد. این نام توسط سایر دیمنهای tinc برای شناسایی استفاده خواهد شد. نام باید در پرونده /etc/tinc/NETNAME/tinc.conf اعلام شود.
برای آسانتر شدن کارها، چیزی را انتخاب کنید که نامهای یکتا و با قابلیت بهخاطرسپاری آسان به دیمن(های) tinc شما بدهد. میتوانید مواردی مانند نامهای میزبان، نام خانوادگی مالک یا نامهای مکان را امتحان کنید.
کلیدهای عمومی/خصوصی (PUBLIC/PRIVATE KEYS)
باید از
دستور tincd -K
برای تولید
جفتکلیدهای
عمومی/خصوصی
استفاده
کنید. این
دستور دو
کلید تولید
خواهد کرد.
کلید خصوصی
باید در یک
پرونده
جداگانه
ذخیره شود:
/etc/tinc/NETNAME/rsa_key.priv
-- که در آن
NETNAME
نشاندهنده
شبکه است (به
بخش
شبکهها
(NETWORKS) در بالا
مراجعه
کنید). کلید
عمومی باید
در پرونده
پیکربندی
میزبان
ذخیره شود:
/etc/tinc/NETNAME/hosts/NAME
-- که در آن
NAME
نشاندهنده
نام دیمن
محلی tinc است
(به بخش
نامها
(NAMES) مراجعه
کنید).
پیکربندی سرور (SERVER CONFIGURATION)
پیکربندی
سرور دیمن
در پرونده
/etc/tinc/NETNAME/tinc.conf
انجام
میشود. این
پرونده
شامل
توضیحات
(خطوطی که با
# شروع
میشوند) یا
انتسابها
به صورت زیر
است:
Variable =
Value .
نام
متغیرها به
بزرگی و
کوچکی حروف
حساس
نیستند، و
هرگونه
فاصله، تب،
خط جدید و
بازگشت به
ابتدای خط
نادیده
گرفته
میشوند.
نکته:
الزامی
نیست که
علامت =
را قرار
دهید، اما
انجام این
کار
خوانایی را
بهبود
میبخشد.
اگر آن را
حذف
میکنید،
به یاد
داشته
باشید که
حداقل یک
نویسه
فاصله به
جای آن قرار
دهید.
پیکربندی سرور با پیکربندی ویژه میزبان تکمیل میشود (بخش بعدی را ببینید). اگرچه تمام گزینههای پیکربندی برای میزبان محلی فهرستشده در این سند را میتوان در /etc/tinc/NETNAME/tinc.conf نیز قرار داد، اما توصیه میشود گزینههای پیکربندی ویژه میزبان در پرونده پیکربندی میزبان قرار گیرند، زیرا این کار تبادل آن با سایر گرهها را آسان میکند.
در اینجا تمام متغیرهای معتبر به ترتیب حروف الفبا فهرست شدهاند. مقدار پیشفرض در داخل پرانتز آورده شده است.
- AddressFamily
= ipv4|ipv6|any(any) - این گزینه بر خانواده نشانی سوکتهای شنونده و خروجی تأثیر میگذارد. اگر "any" انتخاب شود، بسته به سیستمعامل هر دو سوکت شنونده IPv4 و IPv6 یا فقط سوکتهای IPv6 ایجاد خواهند شد.
- BindToAddress
=address [port] [experimental] - اگر رایانه
شما بیش از
یک نشانی IPv4
یا IPv6 دارد،
tincبه طور پیشفرض روی تمام آنها برای اتصالات ورودی گوش فرا میدهد. میتوان چندین متغیر BindToAddress را مشخص کرد، که در این صورت سوکتهای شنونده برای هر نشانی مشخصشده ساخته میشوند.اگر هیچ port مشخص نشود، سوکت به درگاه مشخصشده توسط گزینه Port یا در صورتی که هیچکدام داده نشود به درگاه 655 متصل خواهد شد. برای اتصال فقط به یک درگاه خاص اما نه به یک نشانی خاص، از
*برای address استفاده کنید.این گزینه ممکن است در همه پلتفرمها کار نکند.
- BindToInterface
=interface [experimental] - اگر رایانه
شما بیش از
یک رابط
شبکه دارد،
tincبه طور پیشفرض روی تمام آنها برای اتصالات ورودی گوش میدهد. با این متغیر امکان اتصال تنها به یک رابط منفرد وجود دارد.این گزینه ممکن است در همه پلتفرمها کار نکند. همچنین، در برخی پلتفرمها در واقع به یک رابط متصل نمیشود، بلکه به نشانی که رابط در لحظه ایجاد سوکت دارد متصل میشود.
- Broadcast
= no|mst|direct(mst) [experimental] - این گزینه
روش ارسال
بستههای
برودکست به
سایر
دیمنها را
انتخاب
میکند.
نکته: تمام
گرههای یک
VPN باید از یک
حالت Broadcast
مشابه
استفاده
کنند، در
غیر این
صورت
حلقههای
مسیریابی
میتوانند
شکل بگیرند.
- no
- بستههای برودکست هرگز به گرههای دیگر ارسال نمیشوند.
- mst
- بستههای برودکست از طریق درخت پوشای کمینه (Minimum Spanning Tree) مربوط به VPN ارسال و فوروارد میشوند. این تضمین میکند که بستههای برودکست به تمام گرهها میرسند.
- direct
- بستههای برودکست مستقیماً به تمام گرههایی که میتوان مستقیماً به آنها رسید ارسال میشوند. بستههای برودکست دریافتی از گرههای دیگر هرگز فوروارد نمیشوند. اگر گزینه IndirectData نیز تنظیم شده باشد، بستههای برودکست تنها به گرههایی ارسال میشوند که با آنها اتصال متا داریم.
- ConnectTo
=name - مشخص
میکند در
زمان
راهاندازی
به کدام
دیمن دیگر tinc
متصل شود.
میتوان
چندین
متغیر ConnectTo
را مشخص
کرد، که در
این صورت
اتصالات
خروجی به هر
دیمن
مشخصشده tinc
برقرار
میشود.
نامها
باید برای
این دیمن tinc
شناختهشده
باشند (یعنی
باید یک
پرونده
پیکربندی
میزبان
برای نام
موجود در خط
ConnectTo وجود
داشته
باشد).
اگر میزبانی را با ConnectTo مشخص نکنید،
tincاصلاً تلاشی برای اتصال به سایر دیمنها نخواهد کرد و در عوض صرفاً برای اتصالات ورودی گوش فرا میدهد. - DecrementTTL
= yes|no(no) [experimental] - در صورت
فعال بودن،
tincفیلد زمان حیات (Time To Live) را در بستههای IPv4، یا فیلد محدودیت جهش (Hop Limit) را در بستههای IPv6، قبل از فوروارد بسته دریافتی به دستگاه شبکه مجازی یا به گره دیگر کاهش میدهد، و بستههایی که مقدار TTL آنها صفر است را دور میاندازد، که در این صورت یک بسته ICMP Time Exceeded به عقب ارسال میکند.اگر از حالت switch استفاده میکنید و میخواهید از IPv6 استفاده نمایید، از این گزینه استفاده نکنید.
- Device
=device (/dev/tap0 ، /dev/net/tun یا موارد دیگر بسته به پلتفرم) - دستگاه
شبکه مجازی
برای
استفاده.
tincبه طور خودکار نوع دستگاه را تشخیص خواهد داد. توجه داشته باشید که به ازای هر دیمن فقط میتوانید از یک دستگاه استفاده کنید. در ویندوز، به جای Device از Interface استفاده کنید. صفحات info بسته tinc حاوی اطلاعات بیشتری درباره پیکربندی دستگاه شبکه مجازی است. - DeviceType
=type (وابسته به پلتفرم) - نوع دستگاه
شبکه مجازی.
برنامه Tinc
معمولاً
نوع رابط tun/tap
مناسب را به
طور خودکار
انتخاب
میکند، و
این گزینه
نباید
استفاده
شود. با این
حال، این
گزینه
میتواند
برای
انتخاب یکی
از انواع
رابطهای
ویژه
استفاده
شود، در
صورتی که
پشتیبانی
از آنها
کامپایل
شده باشد.
- dummy
- استفاده از رابط ساختگی (dummy). هیچ بستهای از یک دستگاه شبکه مجازی خوانده یا روی آن نوشته نمیشود. برای آزمایش یا هنگام راهاندازی گرهای که فقط بستهها را برای سایر گرهها فوروارد میکند مفید است.
- raw_socket
- باز کردن یک سوکت خام، و اتصال آن به یک Interface از قبل موجود (پیشفرض eth0). تمام بستهها از این رابط خوانده میشوند. بستههای دریافتی برای گره محلی در سوکت خام نوشته میشوند. با این حال، حداقل در لینوکس، سیستمعامل بستههای IP مقصد میزبان محلی را پردازش نمیکند.
- multicast
- باز کردن
یک سوکت
چندپخشی (multicast)
UDP و اتصال آن
به نشانی و
درگاه
(جداشده با
فاصله) و به
صورت
اختیاری
مقدار TTL
مشخصشده
با
استفاده
از Device .
بستهها
از این
سوکت
چندپخشی
خوانده و
در آن
نوشته
میشوند.
میتوان
از این
گزینه
برای
اتصال به
نمونههای
UML، QEMU یا KVM که
روی همان
نشانی
چندپخشی
گوش
میدهند
استفاده
کرد. چندین
دیمن
tincرا به یک نشانی چندپخشی یکسان متصل نکنید، این کار به احتمال زیاد باعث ایجاد حلقههای مسیریابی خواهد شد. همچنین توجه داشته باشید که در صورت پیکربندی نادرست، این میتواند باعث ارسال بستههای رمزگشاییشده VPN در یک شبکه واقعی شود. - uml (به طور پیشفرض کامپایل نشده است)
- ایجاد یک
سوکت
یونیکس با
نام
پرونده
مشخصشده
توسط Device ،
یا
/var/run/NETNAME.umlsocket
در صورت
عدم تعیین.
tincمنتظر اتصال یک نمونه User Mode Linux به این سوکت خواهد ماند. - vde (به طور پیشفرض کامپایل نشده است)
- استفاده از کتابخانه libvdeplug برای اتصال به یک سوییچ Virtual Distributed Ethernet، با استفاده از سوکت یونیکس مشخصشده توسط Device ، یا /var/run/vde.ctl در صورت عدم تعیین.
- tun (در BSD و لینوکس)
- تنظیم نوع روی tun. بسته به پلتفرم، این میتواند با یا بدون سرآیند خانواده نشانی باشد (به زیر مراجعه کنید).
- tunnohead (در BSD)
- تنظیم نوع روی tun بدون سرآیند خانواده نشانی. برنامه Tinc انتظار خواهد داشت بستههای خواندهشده از دستگاه شبکه مجازی با یک سرآیند IP شروع شوند. در برخی پلتفرمها در این حالت نمیتوان بستههای IPv6 را از دستگاه خواند یا روی آن نوشت.
- tunifhead (در BSD)
- تنظیم نوع روی tun با سرآیند خانواده نشانی. برنامه Tinc انتظار خواهد داشت بستههای خواندهشده از دستگاه شبکه مجازی با یک سرآیند چهار بایتی حاوی خانواده نشانی شروع شوند، و به دنبال آن یک سرآیند IP بیاید. این حالت باید از هر دو بستههای IPv4 و IPv6 پشتیبانی کند.
- utun (در OS X)
- تنظیم نوع روی utun. این فقط در نسخه 10.6.8 و بالاتر OS X پشتیبانی میشود، اما نیازی به ماژول tuntaposx ندارد. این حالت باید از هر دو بستههای IPv4 و IPv6 پشتیبانی کند.
- tap (در BSD و لینوکس)
- تنظیم نوع روی tap. برنامه Tinc انتظار خواهد داشت بستههای خواندهشده از دستگاه شبکه مجازی با یک سرآیند اترنت شروع شوند.
- DirectOnly
= yes|no(no) [experimental] - هنگامی که این گزینه فعال است، بستههایی که نمیتوانند مستقیماً به گره مقصد ارسال شوند، بلکه باید توسط یک گره میانی فوروارد شوند، دور ریخته میشوند. هنگامی که با گزینه IndirectData ترکیب شود، بستهها برای گرههایی که با آنها اتصال متا نداریم نیز دور ریخته میشوند.
- Forwarding
= off|internal|kernel(internal) [experimental] - این گزینه
روش
فوروارد
بستههای
غیرمستقیم
را انتخاب
میکند.
- off
- بستههای ورودی که برای گره محلی در نظر گرفته نشدهاند، اما باید به گره دیگری فوروارد شوند، دور ریخته میشوند.
- internal
- بستههای
ورودی که
برای گره
دیگری در
نظر گرفته
شدهاند
به طور
داخلی
توسط tinc
فوروارد
میشوند.
این حالت پیشفرض است، و مگر اینکه واقعاً بدانید که به حالت فوروارد دیگری نیاز دارید، آن را تغییر ندهید.
- kernel
- بستههای ورودی همیشه به دستگاه TUN/TAP ارسال میشوند، حتی اگر بستهها برای گره محلی نباشند. این کار کارایی کمتری دارد، اما به هسته اجازه میدهد قوانین مسیریابی و فایروال خود را روی آنها اعمال کند، و همچنین میتواند به اشکالزدایی کمک نماید.
- GraphDumpFile
=filename [experimental] - اگر این
گزینه وجود
داشته
باشد،
tincگراف شبکه جاری را هر دقیقه در پرونده filename تخلیه میکند، مگر اینکه تغییری در گراف رخ نداده باشد. این پرونده قالبی دارد که توسط ابزارهای graphviz قابل خواندن است. اگر filename با نماد پایپ | شروع شود، بقیه نام پرونده به عنوان یک دستور شل تفسیر میشود که اجرا شده و سپس گراف به ورودی استاندارد ارسال میگردد. - Hostnames
= yes|no(no) - این گزینه
انتخاب
میکند که
آیا
نشانیهای
IP (چه واقعی و
چه روی VPN)
باید تفکیک
(resolve) شوند یا
خیر. از
آنجا که
جستجوهای DNS
مسدودکننده
هستند،
ممکن است بر
کارایی tinc
تأثیر
بگذارد،
حتی در
صورتی که
سرور DNS شما
پاسخ ندهد،
هر بار که
جستجویی
انجام
میدهد
دیمن را
برای چند
ثانیه
متوقف
میکند.
این بر تفکیک نامهای میزبان به نشانیهای IP از پروندههای پیکربندی میزبان تأثیری ندارد، بلکه بر این موضوع تأثیر میگذارد که آیا نامهای میزبان در حین ثبت وقایع باید تفکیک شوند یا خیر.
- IffOneQueue
= yes|no(no) [experimental] - (فقط لینوکس) پرچم IFF_ONE_QUEUE را روی دستگاههای TUN/TAP تنظیم میکند.
- Interface
=interface - نام رابط مربوط به دستگاه شبکه مجازی را تعریف میکند. بسته به سیستمعامل و نوع دستگاه، این گزینه ممکن است نام رابط را تنظیم کند یا نکند. در ویندوز، این متغیر برای انتخاب اینکه کدام رابط شبکه استفاده خواهد شد به کار میرود. اگر یک Device مشخص کرده باشید، این متغیر تقریباً همیشه از قبل به درستی تنظیم شده است.
- KeyExpire
=seconds (3600) - این گزینه دورهای را کنترل میکند که کلیدهای رمزنگاری مورد استفاده برای رمزنگاری دادهها معتبر هستند. این یک عمل مرسوم است که کلیدها را در فواصل منظم تغییر دهند تا کار برای نفوذگران حتی سختتر شود، هرچند که شکستن یک کلید منفرد تقریباً غیرممکن پنداشته میشود.
- LocalDiscovery
= yes|no(no) [experimental] - در صورت
فعال بودن،
tincتلاش خواهد کرد همتایانی را که در همان شبکه محلی هستند شناسایی کند. این امر اجازه ارتباط مستقیم با استفاده از نشانیهای LAN را میدهد، حتی اگر هر دو همتا پشت یک NAT باشند و آنها تنها به یک گره سوم در خارج از NAT متصل (ConnectTo) شوند، که معمولاً مانع از اطلاع همتایان از نشانی LAN یکدیگر میشود.در حال حاضر، کشف محلی با ارسال بستههای برودکست به LAN در طول کشف MTU مسیر پیادهسازی شده است. این ویژگی ممکن است در تمام شرایط ممکن کار نکند.
- MACExpire
=seconds (600) - این گزینه مدت زمانی را کنترل میکند که نشانیهای MAC قبل از حذف شدن نگهداری میشوند. این گزینه تنها زمانی اثر دارد که Mode روی "switch" تنظیم شده باشد.
- MaxTimeout
=seconds (900) - این حداکثر تأخیر قبل از تلاش برای اتصال مجدد به سایر دیمنهای tinc است.
- Mode
= router|switch|hub(router) - این گزینه
روش
مسیریابی
بستهها به
سایر
دیمنها را
انتخاب
میکند.
- router
- در این
حالت،
متغیرهای
Subnet در
پروندههای
پیکربندی
میزبان
برای
تشکیل
جدول
مسیریابی
استفاده
خواهند شد.
در این
حالت تنها
بستههای
یونیکست
پروتکلهای
قابل
مسیریابی (IPv4
و IPv6)
پشتیبانی
میشوند.
این حالت پیشفرض است، و مگر اینکه واقعاً بدانید به حالت دیگری نیاز دارید، آن را تغییر ندهید.
- switch
- در این
حالت
نشانیهای
MAC بستهها
روی VPN برای
ایجاد
پویای
جدول
مسیریابی
درست
مانند
عملکرد یک
سوییچ
اترنت
استفاده
خواهند شد.
بستههای
یونیکست،
چندپخشی و
برودکست
از هر
پروتکلی
که روی
اترنت
اجرا
میشود در
این حالت
پشتیبانی
میشوند
به بهای
درخواستهای
مکرر
برودکست ARP و
بهروزرسانیهای
جدول
مسیریابی.
این حالت عمدتاً زمانی مفید است که بخواهید بخشهای اترنت را پلبندی (bridge) کنید.
- hub
- این حالت تقریباً همانند حالت switch است، اما در عوض هر بستهای به سایر دیمنها برودکست میشود در حالی که هیچ جدول مسیریابی مدیریت نمیشود.
- Name
=name [required] - این نامی
است که این
دیمن tinc را
مشخص
میکند. این
نام باید
برای شبکه
خصوصی
مجازی که
این دیمن به
آن متصل
میشود
یکتا باشد.
نام تنها
ممکن است
شامل
نویسههای
الفبایی-عددی
و زیرخط (underscore)
باشد. اگر
Name با یک
$شروع شود، محتوای متغیر محیطی که به دنبال آن میآید استفاده خواهد شد. در این حالت، نویسههای نامعتبر به زیرخط تبدیل خواهند شد. اگر Name برابر با$HOSTباشد، اما چنین متغیر محیطی وجود نداشته باشد، نام میزبان با استفاده از فراخوانی سیستمی gethostname() خوانده خواهد شد. - PingInterval
=seconds (60) - تعداد
ثانیههای
عدم
فعالیتی که
tincقبل از ارسال یک کاوشگر (probe) به طرف دیگر منتظر خواهد ماند. - PingTimeout
=seconds (5) - تعداد ثانیههای انتظار برای پاسخ به پینگها یا اجازه به مسدود شدن اتصالات متا. اگر طرف مقابل در این مدت پاسخ ندهد، اتصال خاتمه مییابد و به دیگران در این مورد اطلاع داده خواهد شد.
- PriorityInheritance
= yes|no(no) [experimental] - هنگامی که این گزینه فعال است، مقدار فیلد TOS بستههای تونلشده IPv4 توسط بستههای UDP که به بیرون ارسال میشوند به ارث برده خواهد شد.
- PrivateKey
=key [obsolete] - کلید خصوصی RSA این دیمن tinc. این کلید به این دیمن tinc اجازه میدهد هویت خود را برای سایر دیمنها احراز کند.
- PrivateKeyFile
=filename (/etc/tinc/NETNAME/rsa_key.priv) - پروندهای که کلید خصوصی RSA این دیمن tinc در آن قرار دارد.
- ProcessPriority
= low|normal|high - هنگامی که این گزینه استفاده میشود، اولویت فرآیند tincd تنظیم خواهد شد. افزایش اولویت ممکن است به کاهش تأخیر و افت بسته در VPN کمک کند.
- Proxy
= socks4|socks5|http|exec... [experimental] - استفاده از
یک پروکسی
هنگام
برقراری
اتصالات
خروجی.
انواع
پروکسی زیر
در حال حاضر
پشتیبانی
میشوند:
- socks4 address port [username]
- اتصال به پروکسی با استفاده از پروتکل SOCKS نسخه 4. به صورت اختیاری، میتوان یک username ارائه داد که به سرور پروکسی منتقل میشود. تنها اتصالات IPv4 را میتوان با استفاده از SOCKS 4 پروکسی کرد.
- socks5 address port [username password]
- اتصال به پروکسی با استفاده از پروتکل SOCKS نسخه 5. اگر username و password داده شوند، احراز هویت اولیه نام کاربری/گذرواژه استفاده خواهد شد، در غیر این صورت هیچ احراز هویتی استفاده نخواهد شد.
- http address port
- اتصال به پروکسی و ارسال درخواست HTTP CONNECT.
- exec command
- دستور
دادهشده
command را
اجرا
میکند که
باید
اتصال
خروجی را
برقرار
سازد.
متغیرهای
محیطی
NAME ،NODE ،REMOTEADDRESوREMOTEPORTدر دسترس هستند.
- ReplayWindow
=bytes (16) - این اندازه پنجره ردیابی بازپخش (replay) برای هر گره راه دور، بر حسب بایت است. پنجره یک میدان بیتی است که 1 بسته در هر بیت را ردیابی میکند، بنابراین برای مثال تنظیم پیشفرض 16 تا 128 بسته را در پنجره ردیابی میکند. در سناریوهای پهنای باند بالا، تنظیم این مقدار روی عدد بالاتر میتواند افت بسته ناشی از تعامل ردیابی بازپخش با افت واقعی بستهها و/یا تغییر ترتیب آنها را کاهش دهد. تنظیم این مقدار روی صفر، ردیابی بازپخش را به طور کامل غیرفعال کرده و تمام ترافیک را عبور میدهد، اما tinc را در برابر حملات مبتنی بر بازپخش روی ترافیک شما آسیبپذیر میکند.
- StrictSubnets
= yes|no(no) [experimental] - هنگامی که این گزینه فعال است، tinc تنها از عبارات Subnet استفاده خواهد کرد که در پروندههای پیکربندی میزبان در دایرکتوری محلی /etc/tinc/NETNAME/hosts/ حضور دارند. زیرشبکههای آموختهشده از طریق اتصالات به سایر گرهها که در پروندههای پیکربندی میزبان محلی حضور ندارند نادیده گرفته میشوند.
- TunnelServer
= yes|no(no) [experimental] - هنگامی که این گزینه فعال است، tinc دیگر اطلاعات را بین سایر دیمنهای tinc فوروارد نخواهد کرد، و تنها اتصالات با گرههایی را مجاز میداند که پروندههای پیکربندی میزبان آنها در دایرکتوری محلی /etc/tinc/NETNAME/hosts/ موجود باشد. تنظیم این گزینه همچنین به طور ضمنی StrictSubnets را تنظیم میکند.
- UDPRcvBuf
=bytes (پیشفرض سیستمعامل) - اندازه بافر دریافت سوکت را برای سوکت UDP بر حسب بایت تنظیم میکند. در صورت عدم تنظیم، اندازه بافر پیشفرض توسط سیستمعامل استفاده خواهد شد.
- UDPSndBuf
=bytes (پیشفرض سیستمعامل) - اندازه بافر ارسال سوکت را برای سوکت UDP بر حسب بایت تنظیم میکند. در صورت عدم تنظیم، اندازه بافر پیشفرض توسط سیستمعامل استفاده خواهد شد.
پروندههای پیکربندی میزبان (HOST CONFIGURATION FILES)
پروندههای پیکربندی میزبان حاوی تمام اطلاعات مورد نیاز برای برقراری اتصال به آن میزبانها هستند. یک پرونده پیکربندی میزبان برای دیمن محلی tinc نیز لازم است، که از آن برای خواندن درگاه شنونده، کلید عمومی و زیرشبکههای خود استفاده خواهد کرد.
ایده این است که این پروندهها قابل حمل هستند. شما میتوانید با اطمینان پرونده پیکربندی میزبان خود را برای شخص دیگری ایمیل کنید. آن شخص دیگر میتواند آن را در دایرکتوری hosts خود کپی کند، و اکنون دیمن tinc او قادر خواهد بود به دیمن tinc شما متصل شود. از آنجا که پروندههای پیکربندی میزبان تنها حاوی کلیدهای عمومی هستند، هیچ رازی با ارسال این اطلاعات فاش نمیشود.
- Address
=address [port] [recommended] - نشانی IP یا نام میزبان این دیمن tinc در شبکه واقعی. این مورد تنها زمانی استفاده خواهد شد که تلاش برای برقراری یک اتصال خروجی به این دیمن tinc صورت گیرد. به صورت اختیاری، میتوان درگاهی را برای استفاده در این نشانی مشخص کرد. میتوان چندین متغیر Address را مشخص کرد، که در این صورت هر نشانی تا زمان برقراری یک اتصال فعال امتحان خواهد شد.
- Cipher
=cipher (aes-256-cbc) - الگوریتم رمز متقارن مورد استفاده برای رمزنگاری بستههای UDP. هر رمزی که توسط LibreSSL یا OpenSSL پشتیبانی شود شناسایی میگردد. علاوه بر این، مشخص کردن "none" رمزنگاری بستهها را خاموش خواهد کرد. بهتر است تنها از رمزهایی استفاده شود که از حالت CBC پشتیبانی میکنند.
- ClampMSS
= yes|no(yes) - این گزینه مشخص میکند که آیا tinc باید حداکثر اندازه قطعه (MSS) بستههای TCP را به اندازه MTU مسیر مهار (clamp) کند یا خیر. این گزینه در شرایطی کمک میکند که پیامهای ICMP Fragmentation Needed یا Packet too Big توسط فایروالها دور ریخته میشوند.
- Compression
=level (0) - این گزینه سطح فشردهسازی مورد استفاده برای بستههای UDP را تنظیم میکند. مقادیر ممکن عبارتند از 0 (خاموش)، 1 (zlib سریع) و هر عدد صحیحی تا 9 (بهترین zlib)، 10 (lzo سریع) و 11 (بهترین lzo).
- Digest
=digest (sha256) - الگوریتم چکیده (digest) مورد استفاده برای احراز اصالت بستههای UDP. هر چکیدهای که توسط LibreSSL یا OpenSSL پشتیبانی شود شناسایی میگردد. علاوه بر این، مشخص کردن "none" احراز اصالت بستهها را خاموش خواهد کرد.
- IndirectData
= yes|no(no) - هنگامی که روی yes تنظیم شود، تنها گرههایی که از قبل یک اتصال متا با شما دارند تلاش خواهند کرد ارتباط مستقیم با شما برقرار سازند. بهتر است این گزینه حذف شود یا روی no تنظیم گردد.
- MACLength
=length (4) - طول کد احراز اصالت پیام (MAC) مورد استفاده برای احراز اصالت بستههای UDP. میتواند هر مقداری از "0" تا طول چکیده تولیدشده توسط الگوریتم چکیده باشد.
- PMTU
=mtu (1514) - این گزینه مقدار اولیه MTU مسیر به این گره را کنترل میکند.
- PMTUDiscovery
= yes|no(yes) - هنگامی که این گزینه فعال است، tinc تلاش خواهد کرد MTU مسیر به این گره را کشف کند. پس از کشف MTU مسیر، روی VPN اعمال خواهد شد.
- Port
=port (655) - شماره درگاهی که این دیمن tinc روی آن برای اتصالات ورودی گوش فرا میدهد، که در صورت عدم تعیین شماره درگاه در یک عبارت Address استفاده میشود.
- PublicKey
=key [obsolete] - کلید عمومی RSA این دیمن tinc. برای بررسی رمزنوشتی هویت آن و برقراری یک اتصال امن استفاده خواهد شد.
- PublicKeyFile
=filename [obsolete] - پروندهای
که کلید
عمومی RSA این
دیمن tinc در آن
قرار دارد.
از نسخه 1.0pre4 به بعد،
tincکلید عمومی را مستقیماً در پرونده پیکربندی میزبان در قالب PEM ذخیره میکند، و دو گزینه بالا در این صورت ضروری نیستند. یا باید از قالب PEM استفاده شود، یا دقیقاً یکی از دو گزینه بالا در هر پرونده پیکربندی میزبان مشخص گردد، در صورتی که میخواهید بتوانید با آن میزبان اتصال برقرار کنید. - Subnet
=address[/prefixlength[#weight]] - زیرشبکهای
که این دیمن
tinc به آن
سرویس
خواهد داد.
برنامه
tincبا جستجوی زیرشبکه مناسب تلاش میکند بیابد که بسته را به کدام دیمن دیگر باید ارسال کند. اگر بسته با یک زیرشبکه مطابقت داشته باشد، به دیمنی ارسال میشود که این زیرشبکه را در پرونده پیکربندی میزبان خود دارد. میتوان چندین متغیر Subnet را مشخص کرد.زیرشبکهها میتوانند نشانیهای منفرد MAC، IPv4 یا IPv6 باشند، که در این صورت زیرشبکهای شامل تنها همان نشانی منفرد فرض میشود، یا میتوانند یک نشانی شبکه IPv4 یا IPv6 با طول پیشوند باشند. برای مثال، زیرشبکههای IPv4 باید به شکلی مانند 192.168.1.0/24 باشند، که در آن 192.168.1.0 نشانی شبکه و 24 تعداد بیتهای تنظیمشده در ماسک شبکه است. توجه داشته باشید که زیرشبکههایی مانند 192.168.1.1/24 نامعتبر هستند! اگر این موضوع را متوجه نمیشوید یک راهنمای شبکه را مطالعه فرمایید. زیرشبکههای IPv6 به صورت fec0:0:0:1::/64 نشان داده میشوند. نشانیهای MAC به صورت 0:1a:2b:3c:4d:5e نشان داده میشوند.
میتوان به یک زیرشبکه وزنی اختصاص داد تا اولویت آن نسبت به زیرشبکههای یکسان متعلق به گرههای مختلف مشخص شود. وزن پیشفرض 10 است. مقادیر کمتر اولویت بالاتری را نشان میدهند. بستهها به گره با بالاترین اولویت ارسال خواهند شد، مگر اینکه آن گره در دسترس نباشد، که در این صورت گره با اولویت بالاتر بعدی امتحان خواهد شد، و الی آخر.
- TCPOnly
= yes|no(no [obsolete]) - اگر این
متغیر روی yes
تنظیم شود،
بستهها به
جای اتصال UDP
روی اتصال TCP
تونل
میشوند.
این گزینه
به ویژه
برای کسانی
مفید است که
میخواهند
دیمن tinc را از
پشت یک
فایروال با
ترجمه
نشانی (masquerading)
اجرا کنند،
یا اگر
مسیریابی
بستههای UDP
به نوعی
غیرفعال
شده باشد.
تنظیم این
گزینه
همچنین به
طور ضمنی IndirectData
را تنظیم
میکند.
از نسخه 1.0.10 به بعد، tinc به طور خودکار تشخیص میدهد که آیا ارتباط از طریق UDP امکانپذیر است یا خیر.
اسکریپتها (SCRIPTS)
علاوه بر خواندن پروندههای پیکربندی سرور و میزبان، tinc همچنین میتواند اسکریپتهایی را در لحظات خاصی اجرا کند. در زیر فهرستی از نام پروندههای اسکریپتها و شرح زمان اجرای آنها آمده است. یک اسکریپت تنها در صورتی اجرا میشود که وجود داشته باشد و قابل اجرا باشد.
اسکریپتها به صورت همگام اجرا میشوند؛ این بدان معناست که tinc موقتاً پردازش بستهها را متوقف میکند تا زمانی که اجرای اسکریپت فراخوانیشده به پایان برسد. این امر تضمین میکند که اسکریپتها دقیقاً به همان ترتیبی اجرا میشوند که رویدادهای محرک آنها رخ میدهند. اگر نیاز به اجرای ناهمگام دستورات دارید، خودتان باید مطمئن شوید که آنها در پسزمینه اجرا میشوند.
در ویندوز (به غیر از Cygwin)، اسکریپتها باید پسوند .bat داشته باشند.
- /etc/tinc/NETNAME/tinc-up
- این
مهمترین
اسکریپت
است. اگر
وجود داشته
باشد،
بلافاصله
پس از شروع
به کار دیمن
tinc و اتصال به
دستگاه
شبکه مجازی
اجرا خواهد
شد. باید
برای
راهاندازی
رابط شبکه
مربوطه
استفاده
شود، اما
میتواند
برای شروع
موارد دیگر
نیز به کار
رود.
در ویندوز میتوانید به جای ایجاد این اسکریپت از کنترل پنل Network Connections استفاده کنید.
- /etc/tinc/NETNAME/tinc-down
- این اسکریپت درست قبل از خروج دیمن tinc شروع میشود.
- /etc/tinc/NETNAME/hosts/HOST-up
- این اسکریپت زمانی شروع میشود که دیمن tinc با نام HOST در دسترس قرار میگیرد.
- /etc/tinc/NETNAME/hosts/HOST-down
- این اسکریپت زمانی شروع میشود که دیمن tinc با نام HOST از دسترس خارج میشود.
- /etc/tinc/NETNAME/host-up
- این اسکریپت زمانی شروع میشود که هر میزبانی در دسترس قرار میگیرد.
- /etc/tinc/NETNAME/host-down
- این اسکریپت زمانی شروع میشود که هر میزبانی از دسترس خارج میشود.
- /etc/tinc/NETNAME/subnet-up
- این اسکریپت زمانی شروع میشود که یک زیرشبکه در دسترس قرار میگیرد. زیرشبکه و گرهای که به آن تعلق دارد در متغیرهای محیطی منتقل میشوند.
- /etc/tinc/NETNAME/subnet-down
- این اسکریپت زمانی شروع میشود که یک زیرشبکه از دسترس خارج میشود.
اسکریپتها
بدون
آرگومانهای
خط فرمان
شروع
میشوند،
اما
میتوانند
از
متغیرهای
محیطی خاصی
استفاده
کنند. در
سیستمعاملهای
شبهیونیکس،
نام
متغیرهای
محیطی در
اسکریپتها
باید با یک
$ همراه
باشد. در
ویندوز، در
پروندههای
.bat ،
آنها باید
بین
علامتهای
% قرار
گیرند.
NETNAME- اگر نام شبکهای مشخص شده باشد، این متغیر محیطی حاوی آن است.
NAME- حاوی نام این دیمن tinc است.
DEVICE- حاوی نام دستگاه شبکه مجازی است که tinc استفاده میکند.
INTERFACE- حاوی نام رابط شبکه مجازی است که tinc استفاده میکند. باید برای دستوراتی مانند ifconfig استفاده شود.
NODE- هنگامی که یک میزبان در دسترس یا از دسترس خارج میشود، روی نام آن تنظیم میشود. اگر یک زیرشبکه در دسترس یا از دسترس خارج شود، روی مالک آن زیرشبکه تنظیم میگردد.
REMOTEADDRESS- هنگامی که یک میزبان در دسترس یا از دسترس خارج میشود، روی نشانی واقعی آن تنظیم میگردد.
REMOTEPORT- هنگامی که یک میزبان در دسترس یا از دسترس خارج میشود، روی شماره درگاهی تنظیم میشود که برای ارتباط با سایر دیمنهای tinc استفاده میکند.
SUBNET- هنگامی که یک زیرشبکه در دسترس یا از دسترس خارج میشود، روی آن زیرشبکه تنظیم میگردد.
WEIGHT- هنگامی که یک زیرشبکه در دسترس یا از دسترس خارج میشود، روی وزن زیرشبکه تنظیم میگردد.
فراموش
نکنید که در
سیستمعاملهای
یونیکس،
باید
اسکریپتها
را با
استفاده از
دستور chmod
a+x script
قابل اجرا
کنید.
فایلها (FILES)
مهمترین پروندهها عبارتند از:
- /etc/tinc/
- دایرکتوری اصلی برای پروندههای پیکربندی.
- /etc/tinc/NETNAME/tinc.conf
- نام پیشفرض پرونده پیکربندی سرور برای شبکه NETNAME .
- /etc/tinc/NETNAME/conf.d/
- دایرکتوری اختیاری که هر پرونده *.conf از آن بارگذاری خواهد شد.
- /etc/tinc/NETNAME/hosts/
- پروندههای پیکربندی میزبان در این دایرکتوری نگهداری میشوند.
- /etc/tinc/NETNAME/tinc-up
- اگر پروندهای قابل اجرا با این نام وجود داشته باشد، بلافاصله پس از اتصال دیمن tinc به دستگاه شبکه مجازی اجرا خواهد شد. میتوان از آن برای راهاندازی رابط شبکه مربوطه استفاده کرد.
- /etc/tinc/NETNAME/tinc-down
- اگر پروندهای قابل اجرا با این نام وجود داشته باشد، درست قبل از اینکه دیمن tinc اتصال خود را به دستگاه شبکه مجازی ببندد اجرا خواهد شد.
همچنین ببینید (SEE ALSO)
tincd(8), https://www.tinc-vpn.org, http://www.tldp.org/LDP/nag2 .
مستندات
کامل tinc
به صورت یک
راهنمای Texinfo
نگهداری
میشود. اگر
برنامههای
info و tinc به درستی
در سیستم
شما نصب شده
باشند،
دستور info tinc
باید
دسترسی به
راهنمای
کامل را
برای شما
فراهم کند.
نرمافزار
tinc
کاملاً
بدون
هیچگونه
ضمانتی
ارائه
میشود. این
یک
نرمافزار
آزاد است و
شما مجاز به
توزیع مجدد
آن تحت
شرایط خاصی
هستید؛
برای
جزئیات به
پرونده COPYING
مراجعه
فرمایید.
| 2016-10-29 |