تونل‌ها یکبارمصرف‌اند؛ سیاست نباید چنین باشد. روی یک دروازه لینوکس، قاعده‌ای از nftables که رابط تونل را با نام تطبیق می‌دهد می‌تواند یک بار بارگذاری شود و هر بار که آن رابط ظاهر می‌شود همچنان اعمال شود. رابط هنوز چرخه حیات خود را دارد: ساخته می‌شود، از بین می‌رود، و مسیرها و ترجمه‌های پیرامون آن برنامه خودشان را دنبال می‌کنند. جدا کردن این مالکان همان چیزی است که دسترسی را در هنگام اتصال مجدد پایدار نگه می‌دارد.

تطبیق بر اساس نام از رابط بیشتر عمر می‌کند

nftables تطبیق‌های عددی شاخص رابط و تطبیق‌های پویای نام iifname و oifname را ارائه می‌دهد. قواعدی که از این نام‌ها استفاده می‌کنند حتی وقتی دستگاه تونل هنوز ساخته نشده است پاک بارگذاری می‌شوند، که دقیقاً همان چیزی است که یک مجموعه قواعد در زمان راه‌اندازی نیاز دارد. تطبیق متوقف می‌شود اگر رابط تغییر نام دهد و وقتی رابط جدیدی آن نام را بگیرد از سر گرفته می‌شود. شاخص عددی این ویژگی را ندارد، به همین دلیل شکل نامی انتخاب معمول برای یک تونل است.

نام یک کلید تطبیق است، نه شاهدی بر اینکه چه کسی در آن سوی دیگر است. تأیید هویت همتا همچنان کار VPN است.

پیش از افزودن قواعد، زنجیره را بخوانید

ببینید مجموعه قواعد اکنون چه دارد و قاعده جدید کجا قرار می‌گیرد، چون ترتیب نتیجه را تعیین می‌کند.

nft list ruleset
nft -c -f /etc/nftables.conf

فهرست زنجیره‌ها، قواعد و دستگیره‌ها را نشان می‌دهد و حالت بررسی یک فایل نامزد را بدون بارگذاری آن اعتبارسنجی می‌کند. اجازه‌ای که فقط برای تونل است و پس از پذیرش قبلی برای همان جریان قرار می‌گیرد چیزی را تغییر نمی‌دهد، چون اولین قاعده منطبق برنده می‌شود. به همین دلیل یک قاعده دیرهنگام می‌تواند درست به نظر برسد و هیچ اثری نداشته باشد. زنجیره را به ترتیب بخوانید و تأیید کنید که منع ترافیک از سمت مشتری به پیوند بالادست همچنان پیش از هر چیز گسترده‌تری می‌آید.

مسیرها، ترجمه و جریان‌ها مالکان دیگری دارند

حضور رابط هیچ مسیری نمی‌سازد و همتا را احراز هویت نمی‌کند. آن‌ها به مدیر VPN تعلق دارند، در حالی که ترجمه چرخه حیات سومی دارد.

conntrack -L -s 10.20.0.0/24 | head
ip route show dev vpn0

فهرست conntrack جریان‌های موجود را با مقادیر اصلی و ترجمه‌شده نشان می‌دهد و فهرست مسیرها نشان می‌دهد که مدیر چه چیزی را برای رابط نصب کرده است. قواعد NAT وضعیت ردیابی اتصال را در اولین بسته ایجاد می‌کنند، بنابراین یک جریان برقرارشده ترجمه خود را حتی پس از تغییر قاعده حفظ می‌کند. به همین دلیل به‌روزرسانی یک قاعده و جریانی که از مسیر جدید استفاده می‌کند دو گزاره متفاوت‌اند. تصمیم بگیرید کدام نشست‌ها باید دوباره متصل شوند و جریان‌های نامرتبط را به حال خود بگذارید.

شروع سرد، از دست رفتن و بازیابی را بپذیرید

دروازه را با تونل غایب در زمان راه‌اندازی، سپس با آن حاضر، و سپس پس از قطع و بازگشت آزمایش کنید. تأیید کنید که ارسال به جلو ممنوع در نبود تونل ممنوع می‌ماند، جریان مجاز جدید پس از احراز هویت همتا کار می‌کند، و بازیابی نیازی به پاک کردن وضعیت نامرتبط ندارد. کل زنجیره POSTROUTING یا هر ورودی conntrack را به عنوان اقدام توقف یک پروفایل پاک نکنید، چون سرویس‌های دیگر آن‌ها را به اشتراک می‌گذارند. ثبت کنید کدام مؤلفه رابط، مسیر و سیاست را تغییر داده است، نه فقط اینکه یک قلاب راه‌اندازی با صفر خارج شده است.

سیاستی که از اتصال مجدد جان سالم به در می‌برد آن است که مالکانش نام‌گذاری شده‌اند و قواعدش با تونل هم پایین و هم بالا آزمایش شده است. قلابی که موفقیت گزارش می‌کند فقط ثابت می‌کند که قلاب اجرا شده است.

مقالات مرتبط