nftables: قاعدهٔ اجازهٔ VPN را پیش از شناسهٔ حذف درج کنید
در nftables، دستورهای insert و add قاعده را در دو سوی مقابل یک شناسه قرار میدهند. حذف را پیدا کنید، سو را انتخاب کنید و سپس پیش از تغییر مجموعهٔ قواعد فایل را بررسی کنید.
قاعدهٔ اجازه را در جای نادرست بگذارید و مانند نبودن قاعده عمل میکند. در nftables انتخاب میان insert و add تعیین میکند که عبارت تازه در کدام سو از قاعدهٔ ارجاعشده بنشیند، و شناسه قاعده را در مجموعهٔ قواعد زنده نامگذاری میکند نه شمارهٔ سطر آن. اگر جایگذاری را اشتباه کنید، بسته نخست به حذف میرسد.
مقایسهٔ زیر از یک همتای ثابت و یک تبادل شنوندهٔ بیرونی استفاده میکند. عمداً باریک است؛ جایگزینی یک زنجیرهٔ کامل تغییری دیگر با نمایهٔ ریسک متفاوت است.
دو جایگذاری، دو نتیجهٔ متفاوت
insert قاعده را پیش از قاعدهٔ ارجاعشده میگذارد. add آن را پس از آن میگذارد. اگر قاعدهٔ ارجاعشده حذف نهایی برای جریان باشد، این دو فرمان نتایج متضاد میدهند، حتی وقتی متن قاعده یکسان است.
حذف کردن یک مکان رفتار پیشفرض خودش را دارد، که دلیل دیگری است برای اینکه فرمانی را از انجمن کپی نکنید بدون خواندن اینکه به چه چیزی لنگر انداخته است. لنگر تمام تصمیم است. سوی موردنظر را پیش از تایپ فرمان بنویسید. insert و add در فایل یک کلمه فاصله دارند.
جایگذاری نسبت به قاعدهای در یک زنجیرهٔ مشخص است. انتقال همان عبارت به زنجیرهای دیگر یا اولویت hook دیگر تغییر میدهد که کدام بستهها را میبیند، حتی وقتی نحو قاعده درست به نظر میرسد.
شناسه یک قاعده را مشخص میکند، نه شمارهٔ سطر را
شناسهای مانند 42 یک شناسه در وضعیت کنونی مجموعهٔ قواعد است. قاعدهٔ چهلودوم نیست، و در میان میزبانها، بازسازیها یا مدیری که پیکربندیاش را دوباره بار میکند پایدار نیست.
پیش از انتخاب لنگر، زنجیره و حذف نهایی واقعی را پیدا کنید. سپس شناسه را روی همان قاعده در همان فهرستی که حذف را نشان میدهد تأیید کنید تا شماره و قاعده با هم خوانده شوند. شناسهای که از فهرست کهنه خوانده شده ممکن است از پیش به قاعدهٔ دیگری تعلق داشته باشد. آن را در نشستی که تغییر را اعمال میکند دوباره بخوانید.
iptables --version
nft -a list ruleset
نسخهٔ iptables نشان میدهد کدام بکاند در کار است. مجموعهٔ قواعد iptables-nft و یک جدول بومی که مستقل مدیریت میشود میتوانند همزمان وجود داشته باشند، پس فهرست یک فرانتاند بهطور خودکار تصویر کامل فیلترسازی نیست. پیش از انتخاب زنجیره هر دو نما را بررسی کنید.
زنجیره و قاعدهای را پیدا کنید که واقعاً حذف میکند
hook ورودی، اولویت زنجیره و قاعدهای را بخوانید که این جریان شنونده را رد میکند. جدول inet میتواند هر دو خانوادهٔ نشانی را داشته باشد، اما یک قاعدهٔ منفرد هنوز میتواند فقط با IPv4 مطابقت کند.
یک همتای تأییدشده بگیرید و 198.51.100.25 را از محدودهٔ مستندات بهعنوان مثال به کار ببرید. یک فایل بومی بازبینیشده میتواند اجازهٔ بیرونی را پیش از شناسهٔ 42 بگذارد:
insert rule inet filter input handle 42 iifname "eth0" ip saddr 198.51.100.25 udp dport { 500, 4500 } counter accept
پس از بررسی، خانواده، جدول، زنجیره، شناسه، رابط ورودی و همتا را جایگزین کنید. مثال از شکل مکانگذاری بر پایهٔ شناسه استفاده میکند که برای nft 1.0.9 مستند شده است، و به یک فایل ورودی تعلق دارد؛ نقلقول آکولاد وقتی فرمان بهصورت تعاملی تایپ میشود موضوعی جداگانه است.
مالک پیکربندی را روشن نگه دارید. مدیری که قواعدش را بازسازی میکند میتواند ویرایش زمان اجرا را بازنویسی کند، و اسکریپت بوت که شناسهٔ کهنه را سختکد میکند یا شکست میخورد یا به قاعدهٔ نادرست میچسبد.
اجازه محدود است، حذف نهایی است
حکم اجازه ارزیابی را در مسیر کنونیاش پایان میدهد، اما یک زنجیرهٔ پایهٔ قابل اعمال در ادامه هنوز میتواند بسته را حذف کند. حکم حذف نهایی است. به همین دلیل شمارندهٔ اجازهٔ روبهفزونی اثبات موفقیت جریان نیست.
همهٔ اولویتهای hook مرتبط را بررسی کنید نه یک زنجیره را بهتنهایی. بسته میتواند از یک فیلتر ورودی بگذرد و باز هم توسط hook جدول دیگری با اولویتی متفاوت رد شود. هر زنجیرهٔ پایهای را که جریان را میبیند فهرست کنید.
این قاعده تنها تبادل شنوندهٔ بیرونی را پوشش میدهد. ESP کپسولیشده در انتقال، ESP بومی، همتاهای IPv6 و ترافیک رمزگشاییشده درون تونل همه به سیاستهای خود نیاز دارند. این یک دیوار آتش کامل VPN سایت نیست.
فایل را بررسی کنید، سپس نتیجهٔ زنده را تأیید کنید
پیش از اعمال، یک بررسی نحو و تراکنش روی فایل بازبینیشده اجرا کنید. حالت بررسی گزارش میدهد که آیا nft میتواند تغییر را تجزیه و آماده کند؛ آن را اعمال نمیکند و ثابت نمیکند که hook دیگری به بسته اجازه میدهد. فایل تا زمانی که مالک آن را اعمال نکند یک پیشنهاد میماند:
nft -c -f reviewed-vpn-rule.nft
از طریق فرایند کنترلشدهٔ مالک اعمال کنید و دسترسی بازیابی را حفظ کنید. اگر قاعده نادرست باشد، حذفی که میکوشیدید پیش از آن قرار بگیرید میتواند مسیری را هم که برای اصلاحش به کار میبرید ببرد.
پس از تغییر، تلاش تازهٔ یک همتای مجاز را مشاهده کنید و بررسی کنید که منابع بیرون از همتای تأییدشده هنوز رد میشوند. قاعدهٔ پایدار را به هر مدیری که مالک مجموعهٔ قواعد است منتقل کنید، زیرا شناسههای زمان اجرا اشیای کنونی را مکان مییابند نه اینکه آنها را میان بوتها مشخص کنند.