این بخش
متغیرهای
پیکربندی
برجستهتر
مورد
استفاده
توسط fwknopd را
فهرست
میکند.
باید مطمئن
شوید که
مقادیر
مناسبی
دارند، اما
برای اکثر
سیستمها
مقادیر
پیشفرض
معقولی در
نظر گرفته
شده است.
برای
جزئیات
بیشتر به
فایل /etc/fwknop/fwknopd.conf
مراجعه
کنید.
PCAP_INTF
<رابط>
مشخص
کردن رابط
اترنت که fwknopd
بستهها را
روی آن شنود
میکند.
ENABLE_PCAP_PROMISC <Y/N>
به طور
پیشفرض fwknopd
رابط pcap را در
حالت
بیقاعده (promiscuous)
قرار
میدهد.
برای
غیرفعال
کردن این
رفتار (حالت
غیر
بیقاعده)
آن را روی “N”
تنظیم
کنید.
PCAP_FILTER
<مشخصات
فیلتر pcap>
تعریف
فیلتر مورد
استفاده
برای
حالتهای
PCAP؛ fwknopd به طور
پیشفرض از
پورت UDP شماره
۶۲۲۰۱
استفاده
میکند. با
این حال،
اگر یک
کلاینت fwknop
از گزینه --rand-port
برای ارسال
بسته SPA روی یک
پورت
تصادفی
استفاده
کند، این
متغیر باید
به مقداری
مانند “udp dst portrange
10000-65535”
بهروزرسانی
شود.
ENABLE_SPA_PACKET_AGING <Y/N>
این
گزینه به fwknopd
دستور
میدهد
بستههای SPA
با برچسب
زمانی
قدیمی را
نپذیرد.
مقدار در
نظر گرفته
شده برای
“قدیمی”
توسط متغیر
“MAX_SPA_PACKET_AGE” تعریف
میشود. اگر
“ENABLE_SPA_PACKET_AGING” روی
“N” تنظیم
شود، fwknopd
اصلاً از
برچسب
زمانی
کلاینت
استفاده
نخواهد
کرد.
MAX_SPA_PACKET_AGE
<ثانیه>
حداکثر
عمر مجاز (به
ثانیه) برای
پذیرش یک
بسته SPA را
تعریف
میکند. این
ویژگی
مستلزم آن
است که
سیستم
کلاینت از
نظر زمانی
همگامسازی
نسبتاً
دقیقی با
سرور fwknopd
داشته باشد (NTP
گزینهی
خوبی است). سن
پیشفرض
۱۲۰ ثانیه
(دو دقیقه)
است.
ENABLE_DIGEST_PERSISTENCE <Y/N>
ردیابی
مقادیر
خلاصه (digest)
مرتبط با
بستههای
پیشین SPA که
توسط fwknopd
پردازش
شدهاند.
این امکان
اجازه
میدهد
مقادیر
خلاصه در
بین
اجراهای
متوالی fwknopd
پایدار
بمانند.
مقدار
پیشفرض “Y”
است. در صورت
تنظیم روی
“N”، fwknopd
دادههای
بسته SPA ورودی
را با
هیچیک از
خلاصههای
ذخیرهشده
قبلی
مقایسه
نخواهد کرد.
توصیه
میشود این
قابلیت را
فعال
بگذارید تا
احتمال
آسیبپذیری
در برابر
حملات
تکرار (replay attack)
کاهش یابد.
RULES_CHECK_THRESHOLD
<تعداد>
تعداد
دفعاتی را
تعریف
میکند که
زمانهای
انقضای
قوانین
فایروال
باید بررسی
شوند تا یک
بررسی عمیق
(deep check) اجرا
گردد. این
ویژگی به fwknopd
امکان
میدهد
قوانینی را
که حاوی
عبارت صحیح
exp<زمان>
هستند، حتی
اگر
برنامهای
ثالث به جای
fwknopd آنها را
اضافه کرده
باشد، حذف
کند. مقدار
پیشفرض
این متغیر
۲۰ است و
معمولاً
باعث
میشود این
بررسی
تقریباً هر
دو ثانیه
یکبار
اجرا شود.
برای
غیرفعال
کردن کامل
این نوع
بررسی، این
متغیر را
روی صفر
تنظیم
کنید.
ENABLE_IPT_FORWARDING <Y/N>
اجازه به
کلاینتهای
SPA برای
درخواست
دسترسی به
سرویسها
از طریق
فایروال iptables
به جای
دسترسی صرف
به خود سرور
(یعنی
دسترسی از
طریق
زنجیره FWKNOP_FORWARD
به جای
زنجیره INPUT).
ENABLE_IPT_LOCAL_NAT <Y/N>
اجازه به
کلاینتهای
SPA برای
درخواست
دسترسی به
یک سوکت
محلی از
طریق NAT. این
حالت
همچنان یک
قانون ACCEPT در
زنجیره FWKNOP_INPUT
قرار
میدهد،
اما پورتی
متفاوت از
طریق
قوانین DNAT به
پورت واقعی
ترجمه
میشود.
بنابراین،
کاربر برای
دسترسی به
سرویس محلی
دستور “ssh -p <port>”
را اجرا
میکند
(گزینههای
--NAT-local و --NAT-rand-port در
خط فرمان
کلاینت fwknop
را ببینید).
ENABLE_IPT_SNAT <Y/N>
تنظیم
این گزینه
روی “Y” برای
فعالسازی
قانون
متناظر SNAT. به
طور
پیشفرض،
اگر دسترسی
فورواردینگ
فعال باشد
(متغیر
“ENABLE_IPT_FORWARDING” در
بالا را
ببینید)، fwknopd
قوانین DNAT را
برای
اتصالات
ورودی
ایجاد
میکند،
اما همزمان
این قوانین
را با
قوانین SNAT
تکمیل
نمینماید.
در برخی
شرایط،
سیستمهای
داخلی ممکن
است مسیری
برای
بازگشت به
آدرس مبدأ
اتصال
ورودی
نداشته
باشند،
بنابراین
لازم است
قوانین SNAT نیز
اعمال شوند
تا
سیستمهای
داخلی IP رابط
داخلی که fwknopd
روی آن اجرا
میشود را
ببینند.
SNAT_TRANSLATE_IP
<آدرس_IP>
مشخص
کردن آدرس IP
برای SNAT. این
قابلیت
تنها زمانی
فعال
میشود که
“ENABLE_IPT_SNAT” روی “Y”
تنظیم شده
باشد و به
طور
پیشفرض
قوانین SNAT با
هدف MASQUERADE ساخته
میشوند
(چرا که در
این صورت
نیازی به
تعریف IP
داخلی در
فایل /etc/fwknop/fwknopd.conf
نیست)، اما
اگر
میخواهید
fwknopd از هدف SNAT
استفاده
کند، باید
یک آدرس IP با
متغیر “SNAT_TRANSLATE_IP”
تعریف کنید.
توجه داشته
باشید که
این متغیر
عموماً
منسوخ شده و
متغیر “FORCE_SNAT”
در فایل
/etc/fwknop/access.conf
جایگزین آن
شده است که
امکان
کنترل IP سورس
را برای هر
بند فراهم
میکند.
ENABLE_IPT_OUTPUT <Y/N>
افزودن
قوانین ACCEPT به
زنجیره FWKNOP_OUTPUT.
این گزینه
معمولاً
تنها زمانی
مفید است که
هیچ قانون
ردیابی
وضعیتی (state tracking)
برای اجازه
خروج
پاسخهای
اتصال وجود
نداشته
باشد و
زنجیره OUTPUT
دارای
سیاست
پیشفرض drop
باشد.
MAX_SNIFF_BYTES
<بایت>
مشخص
کردن
حداکثر
تعداد
بایتها
برای شنود
در هر فریم.
مقدار
پیشفرض
۱۵۰۰ است.
FLUSH_IPT_AT_INIT <Y/N>
پاکسازی
(flush) تمام
قوانین
موجود در
زنجیرههای
fwknop در زمان
آغاز به کار
fwknopd. مقدار
پیشفرض “Y”
است.
FLUSH_IPT_AT_EXIT <Y/N>
پاکسازی
تمام
قوانین
موجود در
زنجیرههای
fwknop هنگامی که
fwknopd متوقف
شده یا به
صورت عادی
خارج
میشود.
مقدار
پیشفرض “Y”
است.
EXIT_AT_INTF_DOWN <Y/N>
هنگامی
که fwknopd در حال
شنود یک
رابط است،
اگر رابط به
صورت
مدیریتی
خاموش (down) شود
یا کابل آن
جدا گردد، fwknopd
به صورت
تمیز خارج
میشود و
فرض بر این
است که
زیرساخت
نظارت بر
فرایندها
مانند systemd یا upstart
آن را
مجدداً
راهاندازی
خواهد کرد.
با این حال،
اگر fwknopd توسط
systemd، upstart یا
ابزار
دیگری
نظارت
نمیشود،
این رفتار
را میتوان
با متغیر
“EXIT_AT_INTF_DOWN”
غیرفعال
کرد. در صورت
غیرفعال
بودن، fwknopd
تلاش
میکند با
بالا آمدن
مجدد رابط،
ارتباط را
بازیابی
کند.
ENABLE_RULE_PREPEND <Y/N>
برای
سیستمهایی
که iptables یا firewalld را
اجرا
میکنند،
باعث
میشود fwknopd
قوانین
جدید SPA را به
جای الحاق
به انتهای
زنجیره، در
ابتدای
زنجیره
مربوطه
(مانند “FWKNOP_INPUT”)
درج کند. این
کار موجب
میشود
قوانین
تازه
ایجادشده
نسبت به
قوانین
قدیمیتر
تقدم داشته
باشند.
ENABLE_NAT_DNS <Y/N>
اجازه به
fwknopd برای حل
نامهای
میزبان (hostnames) در
پیامهای
دسترسی NAT.
GPG_HOME_DIR
<مسیر>
اگر به
جای کلید
متقارن Rijndael از
کلیدهای GPG
استفاده
شود، این
متغیر
دایرکتوری
پیشفرض
کلیدهای GPG
است. توجه
داشته
باشید که هر
بند دسترسی
در /etc/fwknop/access.conf
میتواند
دایرکتوری GPG
مختص به خود
را برای لغو
این مقدار
پیشفرض
مشخص کند.
اگر در
اینجا یا در
بندی از access.conf
تنظیم نشده
باشد، از
دایرکتوری
$HOME/.gnupg کاربر
اجراکننده
fwknopd (به
احتمال
زیاد root)
استفاده
میشود.
GPG_EXE <مسیر>
مسیر
فایل
اجرایی GPG را
مشخص
میکند و در
صورت عدم
تنظیم، به
طور
پیشفرض /usr/bin/gpg
است.
LOCALE
<لوکال>
تنظیم
لوکال (از
طریق متغیر
LC_ALL). این متغیر
را میتوان
برای لغو
لوکال
پیشفرض
سیستم
تنظیم کرد.
ENABLE_SPA_OVER_HTTP <Y/N>
اجازه به
fwknopd برای
دریافت
دادههای SPA
از
درخواستهای
HTTP (تولیدشده
توسط
کلاینت fwknop در
حالت --HTTP).
توجه داشته
باشید که با
فعال شدن
این
قابلیت،
متغیر “PCAP_FILTER”
باید برای
شنود
ترافیک روی
اتصالات TCP/80
بهروزرسانی
شود و یک
وبسرور
باید روی
همان سرور
fwknopd در حال
اجرا باشد.
ENABLE_X_FORWARDED_FOR <Y/N>
به fwknopd
اجازه
میدهد از
هدر X-Forwarded-for در یک
بسته
ضبطشدهی SPA
روی HTTP به
عنوان IP مبدأ
استفاده
کند. این
وضعیت
میتواند
هنگام
استفاده از SPA
از طریق یک
پراکسی HTTP رخ
دهد.
ENABLE_TCP_SERVER <Y/N>
فعالسازی
سرور TCP در fwknopd.
این یک سرور TCP
«ساختگی»
است که
درخواستهای
اتصال TCP را
روی پورت
مشخصشده TCPSERV_PORT
میپذیرد.
در صورت
تنظیم روی
"Y"، برنامه fwknopd
یک فرایند
فرزند
ایجاد
میکند تا
به
درخواستهای
ورودی TCP گوش
فرا داده و
آنها را
بپذیرد. این
سرور تنها
درخواست را
میپذیرد و
هیچ ارتباط
دیگری
برقرار
نمیکند.
این کار
صرفاً برای
اجازه دادن
به ورود
بسته SPA بر روی
TCP که از طریق PCAP
شناسایی
میشود
انجام
میگیرد.
اتصال در هر
صورت پس از ۱
ثانیه بسته
میشود.
توجه داشته
باشید که fwknopd
همچنان
دادههای
خود را
صرفاً از
طریق pcap
دریافت
میکند،
بنابراین
فیلتر
تعریفشده
توسط PCAP_FILTER باید
برای در بر
گرفتن این
پورت TCP
بهروزرسانی
شود.
TCPSERV_PORT
<پورت>
تنظیم
شماره
پورتی که
سرور TCP
«ساختگی»
روی آن گوش
میدهد. این
سرور تنها
زمانی
ایجاد
میشود که
“ENABLE_TCP_SERVER” روی “Y”
تنظیم شده
باشد.
ENABLE_UDP_SERVER <Y/N>
فعالسازی
سرور UDP در fwknopd.
این گزینه
به fwknopd دستور
میدهد
بستههای SPA
را
مستقیماً
از طریق یک
سوکت UDP و بدون
نیاز به libpcap
دریافت کند.
در صورت
فعال بودن
این حالت،
fwknop باید با
آرگومان
--enable-udp-server
(دادهشده
به اسکریپت
configure) کامپایل
شود تا
وابستگی به
libpcap حذف گردد.
همانطور
که انتظار
میرود،
هنگام
استفاده از
سرور UDP، هیچ
بسته ورودی
هرگز توسط
fwknopd تایید
دریافت (ACK)
نمیشود و
بنابراین
جمعآوری
بستههای SPA
در این حالت
جایگزین
مناسبی
برای شنود
مستقیم سیم
شبکه است.
UDPSERV_PORT
<پورت>
تنظیم
شماره
پورتی که
سرور UDP روی آن
گوش میدهد.
این سرور
تنها زمانی
ایجاد
میشود که
“ENABLE_UDP_SERVER” روی “Y”
تنظیم شده
باشد.
PCAP_DISPATCH_COUNT
<تعداد>
تعداد
بستههایی
را که هنگام
فراخوانی
تابع
pcap_dispatch()
پردازش
میشوند
تنظیم
میکند.
مقدار
پیشفرض
صفر است،
زیرا این
امکان را به
fwknopd میدهد
تا جای ممکن
بیشترین
تعداد بسته
را در تابع
کالبک
مربوطه
پردازش
کند؛ جایی
که روتین
مدیریت SPA
برای
بستههایی
فراخوانی
میشود که
مجموعهای
از
بررسیهای
اولیه را با
موفقیت پشت
سر بگذارند.
با این حال،
اگر
fwknopd روی
پلتفرمی با
نسخه قدیمی
libpcap اجرا شود،
ممکن است
لازم باشد
این مقدار
به یک عدد
صحیح مثبت
غیرصفر
تغییر یابد.
اطلاعات
بیشتر در
صفحه
راهنمای
pcap_dispatch(3) یافت
میشود.
PCAP_LOOP_SLEEP
<میکروثانیه>
تعداد
میکروثانیههایی
را که به
عنوان
آرگومان به
تابع usleep() در
حلقه pcap ارسال
میشود
تنظیم
میکند.
مقدار
پیشفرض
۱۰۰۰۰۰ یا
یکدهم
ثانیه است.
ENABLE_PCAP_ANY_DIRECTION <Y/N>
کنترل
میکند که
آیا fwknopd مجاز
به شنود
بستههای SPA
هست،
صرفنظر از
اینکه روی
رابط شنود
دریافت شده
باشند یا از
آن ارسال
گردند. در
حالت دوم،
این ویژگی
میتواند
برای شنود
بستههای SPA
که از طریق
یک سیستم
هدایت شده و
مقصدشان
شبکه دیگری
است مفید
باشد. اگر
رابط شنود
همان رابط
خروجی برای
چنین
بستههایی
باشد، برای
اینکه fwknopd
بتواند
آنها را
ببیند این
متغیر باید
روی "Y"
تنظیم شود.
مقدار
پیشفرض "N"
است تا fwknopd فقط
به دنبال
بستههای SPA
دریافتشده
روی رابط
شنود باشد
(توجه داشته
باشید که
این تنظیم
مستقل از
حالت
بیقاعده
است).
SYSLOG_IDENTITY
<شناسه>
لغو
شناسه syslog در
پیامهای
ثبتشده
توسط fwknopd.
مقادیر
پیشفرض
معمولاً
مناسب
هستند.
SYSLOG_FACILITY <بخش>
لغو بخش
(facility) مورد
استفاده در
syslog. متغیر
“SYSLOG_FACILITY”
میتواند
تنظیم شود.
ENABLE_DESTINATION_RULE <Y/N>
کنترل
میکند که
آیا fwknopd فیلد
مقصد (destination) در
قانون
دیوار آتش
را روی آدرس
مقصد
مشخصشده
در بسته SPA
ورودی
تنظیم کند
یا خیر. این
ویژگی برای
رابطهایی
با چند آدرس IP
که
سرویسهای
مجزایی را
میزبانی
میکنند
مفید است.
اگر “ENABLE_IPT_OUTPUT”
روی “Y”
تنظیم شده
باشد، فیلد
مبدأ قانون
دیوار آتش
تنظیم
میشود.
قوانین FORWARD و SNAT
تحت تاثیر
قرار
نمیگیرند،
اما فیلد
مقصد
قوانین DNAT نیز
تنظیم
خواهد شد.
مقدار
پیشفرض “N”
است که فیلد
مقصد را روی
0.0.0.0/0 (هر مقصدی)
تنظیم
میکند.
FWKNOP_RUN_DIR
<مسیر>
مشخص
کردن
دایرکتوریای
که fwknopd
فایلهای
وضعیت زمان
اجرا را در
آن
مینویسد.
مقدار
پیشفرض /var
است.
این بخش
دستورالعملهای
کنترل
دسترسی در
فایل /etc/fwknop/access.conf
را شرح
میدهد. این
دستورالعملها
کلیدهای
رمزنگاری و
احراز هویت
و سطح
دسترسی
اعطا شده به
کلاینتهای
fwknop را که یک
بسته
رمزگذاریشده
و احراز
هویتشدهی
مناسب SPA
تولید
کردهاند،
تعریف
میکنند.
متغیرهای
access.conf که در
ادامه شرح
داده
شدهاند،
دستورالعملهای
دسترسی را
برای
بستههای SPA
با IP مبدأ (یا
درخواست
تعبیهشده)
متناسب با
آدرس یا
محدوده
شبکه
تعریفشده
توسط متغیر
“SOURCE” فراهم
میآورند.
تمامی
متغیرهای
پس از “SOURCE” بر
بند (stanza) مبدأ
اعمال
میشوند. هر
دستورالعمل
“SOURCE” یک بند
جدید را
آغاز
میکند.
SOURCE <IP,..,IP/NET,..,NET/ANY>
این
متغیر آدرس
مبدأیی را
که بسته SPA از
آن پذیرفته
میشود
تعریف
میکند.
رشته “ANY” نیز
پذیرفته
میشود اگر
قرار باشد
یک بسته
معتبر SPA از هر
IP مبدأیی
مورد قبول
واقع شود. هر
تعریف بند
مجوز در
فایل /etc/fwknop/access.conf
باید با
کلیدواژه
“SOURCE” آغاز
شود.
شبکهها
باید در
نمادگذاری CIDR
مشخص شوند
(مثلاً “192.168.10.0/24”)
و آدرسهای IP
مجزا نیز
میتوانند
مشخص گردند.
همچنین
میتوان
چندین IP و/یا
شبکه را به
عنوان یک
فهرست
جداشده با
کاما تعریف
کرد (مثلاً
“192.168.10.0/24,10.1.1.123”).
DESTINATION <IP,..,IP/NET,..,NET/ANY>
این
متغیر آدرس
مقصدی را که
بسته SPA برای
آن پذیرفته
میشود
تعریف
میکند.
رشته “ANY” نیز
در صورتی
پذیرفته
میشود که
یک بسته
معتبر SPA به
مقصد هر IP
مورد قبول
باشد.
شبکهها
باید در
نمادگذاری CIDR
مشخص شوند
(مثلاً “192.168.10.0/24”)
و آدرسهای IP
مجزا نیز
میتوانند
مشخص شوند.
همچنین
میتوان
چندین IP و/یا
شبکه را به
صورت
فهرستی
جداشده با
کاما تعریف
کرد (مثلاً
“192.168.10.0/24,10.1.1.123”).
OPEN_PORTS
<proto/port>,...,<proto/port>
تعریف
مجموعهای
از پورتها
و
پروتکلها (tcp
یا udp) که در
صورت
مشاهده یک
توالی
معتبر کوبش
(knock sequence) باز
خواهند شد.
اگر این
مدخل تنظیم
نشود، fwknopd
تلاش
میکند هر
درخواست
پروتکل/پورت
مشخصشده
در
دادههای SPA
را بپذیرد
(مگر اینکه
با هر یک از
ورودیهای
“RESTRICT_PORTS”
مطابقت
داشته باشد).
چندین مدخل
با کاما از
هم جدا
میشوند.
RESTRICT_PORTS
<proto/port>,...,<proto/port>
تعریف
مجموعهای
از پورتها
و
پروتکلها (tcp
یا udp) که
صرفنظر از
معتبر بودن
بسته ورودی
SPA، به طور
صریح مجاز
نیستند.
چندین مدخل
با کاما از
هم جدا
میشوند.
KEY
<گذرواژه>
تعریف
کلید
متقارن
مورد
استفاده
برای
رمزگشایی
یک بسته SPA
ورودی که
توسط
کلاینت fwknop
با
الگوریتم Rijndael
رمزنگاری
شده است.
کلید
رمزنگاری
واقعی که
استفاده
میشود، از
الگوریتم
استاندارد
PBKDF1 به دست
میآید. این
متغیر برای
تمام
بستههای SPA
الزامی است
مگر اینکه
به جای آن از
GnuPG استفاده
شود
(متغیرهای GPG
در زیر را
ببینید).
KEY_BASE64
<گذرواژه
انکودشده
با base64>
مشابه
گزینه KEY در
بالا، با
این تفاوت
که کلید
متقارن را
به صورت یک
رشته
انکودشده
با base64 مشخص
میکند. این
ویژگی
اجازه
میدهد
کاراکترهای
غیر اسکی (non-ascii)
در کلید
دیکودشده base64
گنجانده
شوند.
HMAC_KEY
<کلید>
مشخص
کردن کلید HMAC
برای
رمزنگاری
احراز
هویتشدهی
بستههای SPA.
این متغیر
از هر دو
حالت
رمزنگاری Rijndael
و GPG پشتیبانی
میکند و بر
اساس مدل
«اول
رمزنگاری،
سپس احراز
هویت»
اعمال
میشود.
HMAC_KEY_BASE64 <کلید
انکودشده
با base64>
مشخص
کردن کلید HMAC
به عنوان یک
رشته
انکودشده
با base64. این
ویژگی
اجازه
میدهد
کاراکترهای
غیر اسکی در
کلید
دیکودشده
با base64
گنجانده
شوند.
FW_ACCESS_TIMEOUT
<ثانیه>
تعریف
مدت زمانی
که پس از یک
توالی
معتبر کوبش
از یک آدرس IP
مبدأ،
دسترسی از
طریق
فایروال
توسط fwknopd
اعطا
میشود. اگر
“FW_ACCESS_TIMEOUT” تنظیم
نشود، مهلت
زمانی
پیشفرض ۳۰
ثانیه به
صورت
خودکار
اعمال
خواهد شد.
%include
<فایل>
دستور به
fwknopd برای
وارد کردن (import)
یک فایل access.conf
دیگر. این
ویژگی
اجازه
میدهد
بندهای
دسترسی
بیشتری در
مکانهای
دیگر
فایلسیستم
تعریف
شوند، و این
میتواند
در برخی
سناریوها
با اجازه
دادن به
کاربران
غیر ارشد
برای تعریف
کلیدهای
رمزنگاری و
احراز هویت
خود برای
عملیات SPA
مفید باشد.
به این
ترتیب،
کاربران
برای
جابجایی
کلیدها یا
تعریف
موارد جدید
نیازی به
دسترسی
نوشتن در
فایل اصلی
/etc/fwknop/access.conf
نخواهند
داشت.
%include_folder
<دایرکتوری>
مشابه
گزینه %include در
بالا،
دستورالعمل
%include_folder باعث
میشود fwknopd
تمام
فایلهای .conf
را از
دایرکتوری
مشخصشده
وارد کند.
همچنین
پشتیبانی
از خط فرمان
برای این
ویژگی از
طریق گزینه
access-folder فراهم
است.
ENCRYPTION_MODE
<حالت>
مشخص
کردن حالت
رمزنگاری
هنگام
استفاده از AES.
حالت
پیشفرض CBC
است، اما
حالتهای
دیگری
مانند OFB و CFB را
نیز
میتوان
انتخاب کرد.
در کل توصیه
میشود از
این متغیر
استفاده
نکرده و آن
را روی حالت
پیشفرض
رها کنید.
توجه داشته
باشید که
میتوان
رشته “legacy” را
مشخص کرد تا
بستههای SPA
با راهبرد
بردار
مقداردهی
اولیه
قدیمی (IV) مورد
استفاده در
نسخههای fwknop
پیش از 2.5
تولید شوند.
با انتشار
نسخه 2.5،
برنامه fwknop
از PBKDF1 برای
مشتقسازی
کلید
استفاده
میکند.
HMAC_DIGEST_TYPE
<الگوریتم
خلاصه>
مشخص
کردن
الگوریتم
خلاصه (digest)
برای احراز
هویت بسته SPA
ورودی. باید
یکی از
موارد MD5،
SHA1، SHA256، SHA384،
SHA512، SHA3_256 یا SHA3_512
باشد. این یک
فیلد
اختیاری
است و در
صورت عدم
تعیین، fwknopd
در صورتی که
بند دسترسی
نیازمند HMAC
باشد به طور
پیشفرض از
SHA256 استفاده
میکند.
ACCESS_EXPIRE <MM/DD/YYYY>
تاریخ
انقضا برای
بند دسترسی
را در قالب MM/DD/YYYY
تعریف
میکند.
تمام
بستههای SPA
که با یک بند
منقضیشده
مطابقت
داشته
باشند
نادیده
گرفته
خواهند شد.
این
پارامتر
اختیاری
است.
ACCESS_EXPIRE_EPOCH
<ثانیه>
تاریخ
انقضا را
برای بند
دسترسی به
صورت زمان
مبدا (epoch time) مشخص
میکند و
زمانی
کاربرد
دارد که
نیاز به
تعیین زمان
انقضای
دقیقتری
نسبت به دقت
روزانه
ارائهشده
توسط متغیر
ACCESS_EXPIRE در بالا
باشد. تمام
بستههای SPA
که با یک بند
منقضیشده
مطابقت
داشته
باشند
نادیده
گرفته
خواهند شد.
این
پارامتر
اختیاری
است.
ENABLE_CMD_EXEC <Y/N>
این
گزینه به fwknopd
دستور
میدهد
دستورات
کاملی را که
درون یک
بسته مجوز
گنجانده
شدهاند
بپذیرد. هر
دستور از
این دست روی
سرور fwknopd
توسط
کاربری که
با “CMD_EXEC_USER”
مشخص شده
است یا توسط
کاربری که
fwknopd را
راهاندازی
کرده اجرا
خواهد شد (در
صورتی که
متغیر اول
تنظیم نشده
باشد).
ENABLE_CMD_SUDO_EXEC <Y/N>
دستور sudo
ابزاری
قدرتمند
برای محدود
کردن
مجموعه
دستوراتی
که کاربران
میتوانند
از طریق
فایل “sudoers”
اجرا کنند
فراهم
میسازد. با
فعالسازی
این قابلیت
(و در حالت
“ENABLE_CMD_EXEC”)، به
ابتدای
تمام
دستورات
ورودی از
بستههای
معتبر SPA
عبارت “/path/to/sudo -u <user>
-g <group>” اضافه
میشود که
در آن مسیر sudo
توسط متغیر
“SUDO_EXE” تنظیم
میگردد،
“<user>” توسط
متغیر “CMD_SUDO_EXEC_USER”
مشخص
میشود (در
صورت عدم
تنظیم،
پیشفرض “root”
است)، و “<group>”
توسط “CMD_SUDO_EXEC_GROUP”
تعیین
میشود
(پیشفرض آن
نیز در صورت
عدم تنظیم
“root” است).
CMD_EXEC_USER
<نامکاربری>
مشخص
کردن
کاربری (از
طریق setuid) که
دستور
موجود در
بسته SPA را
اجرا خواهد
کرد. اگر این
متغیر داده
نشود، fwknopd
دستور را با
همان
کاربری که
با آن در حال
اجراست (به
احتمال
زیاد root) اجرا
میکند. در
صورتی که
دسترسیهای
ارشد مورد
نیاز
نباشد،
تنظیم این
متغیر روی
کاربری غیر
ریشه مانند
“nobody” به شدت
توصیه
میشود.
CMD_SUDO_EXEC_USER
<نامکاربری>
مشخص
کردن
کاربری (از
طریق “sudo -u <user>”)
که دستوری
را که درون
یک بسته SPA
قرار دارد
اجرا خواهد
کرد. اگر این
متغیر مشخص
نشود، fwknopd فرض
میکند که
دستور باید
به عنوان root
اجرا شود.
CMD_EXEC_GROUP
<نامگروه>
مشخص
کردن گروهی
(از طریق setgid) که
دستوری را
که درون
بسته SPA قرار
دارد اجرا
خواهد کرد.
اگر این
متغیر داده
نشود، fwknopd
دستور را با
همان
کاربری که
با آن در حال
اجراست (به
احتمال
زیاد root) اجرا
میکند. در
صورتی که
دسترسیهای
ارشد مورد
نیاز
نباشد،
تنظیم این
متغیر روی
گروهی غیر
ریشه مانند
“nobody” به شدت
توصیه
میشود.
CMD_SUDO_EXEC_GROUP
<نامگروه>
مشخص
کردن گروهی
(از طریق “sudo -g
<group>”) که
دستوری را
که درون یک
بسته SPA قرار
دارد اجرا
خواهد کرد.
اگر این
متغیر مشخص
نشود، fwknopd فرض
میکند که
دستور باید
به عنوان root
اجرا شود.
CMD_CYCLE_OPEN
<دستور>
مشخص
کردن یک
چرخه
باز/بستن
دستور جهت
اجرا پس از
دریافت یک
بسته معتبر SPA.
این
دستورالعمل
دستور
اولیه را
تنظیم
میکند و
برای
استفاده به
همراه
متغیر “CMD_CYCLE_CLOSE”
در زیر
طراحی شده
است. کاربرد
اصلی این
قابلیت این
است که به fwknopd
اجازه
میدهد با
دیوار آتش
یا ACLهایی که
به صورت
بومی
پشتیبانی
نمیشوند
تعامل
داشته باشد
و همان مدل
دسترسی
فایروالهای
اصلی
پشتیبانیشده
مانند iptables را
پیادهسازی
کند. یعنی
دستوری
برای باز
کردن
فایروال یا ACL
اجرا
میشود و
سپس یک
دستور
متناظر
برای بستن
پس از
انقضای یک
زمانسنج
اجرا
میگردد. هر
دو متغیر
“CMD_CYCLE_OPEN” و “CMD_CYCLE_CLOSE”
از
رشتههای
جایگزینی
ویژه
پشتیبانی
میکنند تا
مقادیر از
بار دادهی
(payload) بسته SPA
استخراج
شده و در خط
فرمانِ
دستور
اجراشده
قرار گیرند.
این
رشتهها با
یک کاراکتر
“$” شروع
میشوند و
شامل “$IP”
(آدرس IP مجاز
رمزگشاییشده
از پیلود SPA)،
“$SRC” (مترادف
“$IP”)، “$PKT_SRC”
(آدرس IP مبدأ
در هدر لایه
شبکه بسته SPA)،
“$DST” (آدرس IP
مقصد)، “$PORT”
(پورت مجاز)،
“$PROTO” (پروتکل
مجاز) و “$TIMEOUT”
(تنظیم مهلت
زمانی
کلاینت در
صورت مشخص
بودن)
هستند.
CMD_CYCLE_CLOSE
<دستور>
مشخص
کردن دستور
بستن
متناظر با
دستور باز
کردن که
توسط متغیر
“CMD_CYCLE_OPEN” در
بالا تنظیم
شده است.
همان
جایگزینیهای
رشتهای
مانند “$IP”،
“$PORT” و “$PROTO”
پشتیبانی
میشوند.
علاوه بر
این، مقدار
ویژه “NONE” را
میتوان
تنظیم کرد
تا پس از
دستور باز
کردن، هیچ
دستور
بستنی اجرا
نشود. این
مورد ممکن
است در
موقعیتهای
خاصی که
دسترسی
نامحدود
زمانی
مطلوب و
مجاز است
کاربرد
داشته
باشد.
CMD_CYCLE_TIMER
<ثانیه>
تعداد
ثانیههایی
را تنظیم
میکند که
پس از آن
دستور بستن
مشخصشده
در “CMD_CYCLE_CLOSE”
اجرا خواهد
شد. این
متغیر بازه
زمانی
زمانسنج
باز/بستن را
تعریف
میکند.
SUDO_EXE
<مسیر>
مسیر
باینری sudo را
تعریف
میکند.
مقدار
پیشفرض
“/usr/bin/sudo” است.
REQUIRE_USERNAME
<نامکاربری>
الزام یک
نامکاربری
خاص از
سیستم
کلاینت
همانطور
که در
دادههای SPA
انکود شده
است. این
متغیر
اختیاری
است و در
صورت عدم
تعیین،
دادههای
مربوط به
نامکاربری
در
دادههای SPA
نادیده
گرفته
میشوند.
REQUIRE_SOURCE_ADDRESS <Y/N>
تمام
بستههای SPA
را وادار
میکند تا
یک آدرس IP
واقعی درون
دادههای
رمزنگاریشده
داشته
باشند. این
کار
استفاده از
آرگومان خط
فرمان -s را
در خط فرمان
کلاینت fwknop
غیرممکن
میسازد،
بنابراین
یا باید از -R
برای تفکیک
خودکار
آدرس خارجی
(اگر کلاینت
پشت NAT باشد)
استفاده
شود یا
کلاینت
باید IP خارجی
را بداند و
آن را از
طریق
آرگومان -a
تنظیم کند.
REQUIRE_SOURCE_ADDRESS <Y/N>
مترادف
برای “REQUIRE_SOURCE_ADDRESS”.
FORCE_NAT <IP> <PORT>
برای هر
بسته معتبر
SPA، اتصال
درخواستی
را وادار
میکند تا
از طریق NAT به
مقدار IP و
پورت
مشخصشده
(معمولاً
داخلی)
فوروارد
شود. این
ویژگی
زمانی مفید
است که
چندین
سیستم
داخلی یک
سرویس
مانند SSHD را
اجرا
میکنند و
میخواهید
برای هر بند
در فایل access.conf به
طور شفاف
تنها به یک
سیستم
داخلی
دسترسی
بدهید. به
این ترتیب،
چندین
کاربر
خارجی
میتوانند
به ازای هر
کلید SPA
مستقیماً
تنها به یک
سیستم
داخلی
دسترسی
پیدا کنند.
FORCE_SNAT <IP>
برای هر
بسته معتبر
SPA، یک قانون SNAT
را علاوه بر
هر قانون DNAT
ایجادشده
با یک متغیر
متناظر (و
الزامی) FORCE_NAT
اضافه
میکند. این
مشابه “SNAT_TRANSLATE_IP”
از فایل
/etc/fwknop/fwknopd.conf است با
این تفاوت
که به ازای
هر بند
دسترسی
تعریف
میشود و هر
مقداری را
که با “SNAT_TRANSLATE_IP”
تنظیم شده
باشد
بازنویسی
میکند. این
ویژگی برای
شرایطی
مفید است که
یک اتصال
ورودی NAT ممکن
است به دلیل
محدودیتهای
مسیریابی
بیپاسخ
بماند (یعنی
سیستمی که
اتصال
احراز
هویتشدهی
SPA را دریافت
میکند، یک
مسیر
پیشفرض به
دستگاهی
متفاوت از
خود سیستم SPA
داشته
باشد).
FORCE_MASQUERADE <Y/N>
این
متغیر
مشابه
متغیر “FORCE_SNAT”
است، با این
تفاوت که
نیازی به
مشخص کردن
آدرس IP برای
قوانین SNAT
نیست زیرا
در عوض از
هدف MASQUERADE
استفاده
میشود.
FORWARD_ALL <Y/N>
در
سناریوهای
NAT، کنترل
میکند که
آیا تمام
ترافیک از
طریق سیستم
fwknopd هدایت
شود یا
اینکه تنها
اتصالات به
سرویسهای
خاصی که
توسط
کلاینت fwknop
درخواست
شدهاند
فوروارد
گردند.
DISABLE_DNAT <Y/N>
کنترل
اینکه آیا
در
سناریوهای
FORCE_NAT قوانین DNAT
ایجاد شوند
یا خیر. این
گزینه
عمدتاً
همراه با
متغیر FORWARD_ALL
استفاده
میشود تا
به fwknopd اجازه
دهد اساساً
به عنوان یک
درگاه (gateway)
احراز هویت SPA
عمل کند؛ به
این معنی که
کلاینت fwknop
برای
دسترسی به
اینترنت
گستردهتر
از طریق SPA پس
از دریافت IP
از طریق DHCP
استفاده
میشود،
اما قبل از
ارسال بسته
SPA، تمام
ترافیک به
سمت
اینترنت به
طور
پیشفرض
مسدود است.
GPG_DECRYPT_ID
<شناسه_کلید>
تعریف یک
شناسه کلید
GnuPG برای
رمزگشایی
پیامهای SPA
که توسط
کلاینت
fwknop
رمزنگاری
شدهاند.
این
کلیدواژه
برای احراز
هویت مبتنی
بر کلیدهای GPG
الزامی است.
جاکلیدی GPG در
سمت کلاینت
باید کلید
سرور
fwknopd را
وارد کرده و
امضا نموده
باشد، و
بالعکس.
استفاده از
یک کلید
شخصی حساس GPG
روی کلاینت
ایرادی
ندارد، اما
هر سرور
fwknopd
باید کلید GPG
اختصاصی
خود را
داشته باشد
که به طور
خاص برای
ارتباطات fwknop
تولید شده
است. دلیل
این امر این
است که رمز
عبور
رمزگشایی
برای کلید
سرور باید
درون فایل
/etc/fwknop/access.conf قرار
گیرد تا
fwknopd
بتواند کار
کند (باید
بتواند
پیامهای SPA
را که با
کلید عمومی
سرور
رمزنگاری
شدهاند
رمزگشایی
نماید). برای
اطلاعات
بیشتر در
مورد
استفاده از
fwknop با
کلیدهای GnuPG،
پیوند
روبرو را
ببینید:
“
http://www.cipherdyne.org/fwknop/docs/gpghowto.html”.
GPG_DECRYPT_PW
<گذرواژه_رمزگشایی>
مشخص
کردن
گذرواژه
رمزگشایی
برای کلید gpg
که توسط
“GPG_DECRYPT_ID” در
بالا تعریف
شده است. این
یک فیلد
الزامی
برای احراز
هویت مبتنی
بر gpg است.
GPG_ALLOW_NO_PW <Y/N>
اجازه به
fwknopd برای
بهرهگیری
از یک
جفتکلید GnuPG
که فاقد
گذرواژه
است. اگرچه
این ممکن
است یک حالت
استقرار
مناقشهبرانگیز
به نظر
برسد، در
محیطهای
خودکار
منطقی است،
زیرا بر
اساس
مستندات
“
http://www.gnupg.org/faq/GnuPG-FAQ.html#how-can-i-use-gnupg-in-an-automated-environment”:
«معمولاً
هیچ راهی
برای ذخیره
امنتر یک
رمز عبور
نسبت به خود
جاکلیدی
مخفی وجود
ندارد».
استفاده از
این ویژگی و
حذف عبارت
عبور از
جفتکلید GnuPG
در برخی
محیطها که
libgpgme مجبور به
استفاده از
gpg-agent و/یا pinentry برای
جمعآوری
عبارت عبور
است، مفید
خواهد بود.
GPG_REQUIRE_SIG <Y/N>
با تنظیم
این گزینه
روی Y،
برنامه fwknopd
تمام
پیامهای SPA
رمزنگاریشده
با GPG را برای
بررسی وجود
امضا
(امضاشده
توسط کلید
فرستنده)
بررسی
میکند. اگر
پیام ورودی
امضا نشده
باشد،
فرایند
رمزگشایی
با شکست
مواجه
خواهد شد.
اگر تنظیم
نشود،
مقدار
پیشفرض Y
است.
GPG_DISABLE_SIG <Y/N>
غیرفعال
کردن
اعتبارسنجی
امضا برای
پیامهای
ورودی SPA. این
گزینه
توصیه
نمیشود و
مقدار
پیشفرض آن
N است.
GPG_IGNORE_SIG_VERIFY_ERROR <Y/N>
تنظیم
این گزینه
به fwknopd اجازه
میدهد
بستههای
رمزنگاریشده
با GPG را که
امضا دارند
اما امضای
آنها در
اعتبارسنجی
رد شده است
(مثلاً کلید
امضاکننده
منقضی شده
باشد و غیره)
بپذیرد. این
تنظیم فقط
در صورتی
اعمال
میشود که
GPG_REQUIRE_SIG نیز روی Y
تنظیم شده
باشد.
GPG_REMOTE_ID
<شناسه_کلید,...,شناسه_کلید>
تعریف
فهرستی از
شناسههای
کلید gpg که
الزامی است
هر پیام
ورودی SPA که با
کلید سرور
fwknopd
رمزنگاری
شده است را
امضا کرده
باشند. این
کار تضمین
میکند که
اعتبارسنجی
کاربر راه
دور از طریق
یک سازوکار
قوی
رمزنگاری
انجام
میشود.
اعتبارسنجی
امضا به طور
پیشفرض
فعال است و
تنها در
صورتی
میتواند
غیرفعال
شود که “GPG_DISABLE_SIG”
روی Y تنظیم
شود
(گزینهای
که توصیه
نمیشود).
چندین
ورودی را با
کاما جدا
کنید.
GPG_FINGERPRINT_ID
<اثرانگشت_کلید,...,اثرانگشت_کلید>
مشخص
کردن
مجموعهای
از
اثرانگشتهای
(fingerprints) کامل
کلید GnuPG به
جای
شناسههای
کوتاهتر
کلید که با
متغیر “GPG_REMOTE_ID”
تنظیم
میشوند. در
اینجا
نمونهای
از
اثرانگشت
یکی از
کلیدهای
مجموعه
آزمون fwknop
آورده شده
است:
00CC95F05BC146B6AC4038C9E36F443C6A3FAD56.
GPG_HOME_DIR
<مسیر>
تعریف
مسیر
دایرکتوری GnuPG
برای
استفاده
توسط سرور
fwknopd. اگر این
کلیدواژه
در فایل
/etc/fwknop/access.conf مشخص
نشده باشد،
fwknopd به طور
پیشفرض از
دایرکتوری
/root/.gnupg برای
کلید(های)
سرور جهت
بستههای SPA
ورودی
مدیریتشده
توسط بند
متناظر در
access.conf استفاده
خواهد کرد.
GPG_EXE <مسیر>
تعریف
مسیر فایل
اجرایی GnuPG.
اگر این
کلیدواژه
در فایل
/etc/fwknop/access.conf مشخص
نشده باشد،
fwknopd به طور
پیشفرض از
مسیر /usr/bin/gpg
استفاده
خواهد کرد.