نام زنجیره قلاب نیست: iptables در برابر nftables
زنجیره یک ظرف است؛ قلاب تعیین میکند که آیا هسته به آن مراجعه میکند. پیش از ویرایش قواعد، زنجیرههای درونی iptables را با زنجیرههای پایه nftables مقایسه کنید.
هر دو دیوار آتش میتوانند ترافیک VPN ارسالشده را فیلتر کنند و قواعد را به روشهای متفاوت به مسیر بسته پیوند میزنند. در iptables زنجیرههای درونی داخل یک جدول وجود دارد، بنابراین FORWARD بهعنوان یک نقطه قلاب نامدار هست. nftables نام زنجیره را از نوع، قلاب و اولویت آن جدا میکند، یعنی زنجیرهای عادی با نام FORWARD هیچ چیز را فیلتر نمیکند. مقایسه این دو مدل توضیح میدهد چرا ورودیای که در یک ابزار درست به نظر میرسد در ابزار دیگر هیچ اثری ندارد.
زنجیره یک ظرف است. اینکه هسته به آن مراجعه بکند به پیادهسازی و به نحوه پیوند مجموعه قواعد بستگی دارد.
دو مدل، دو پیوند متفاوت
در iptables جدول filter سه زنجیره درونی دارد: INPUT، FORWARD و OUTPUT، و -N یک زنجیره تعریفشده توسط کاربر میسازد که تنها وقتی اثر میکند که از یکی از آنها به آن پرش شود. راهنمای nftables در عوض زنجیرههای پایه را تعریف میکند که نوع، قلاب و اولویت خود را اعلام میکنند، و زنجیرههای عادی را که چنین نمیکنند. زنجیره پایه میتواند هر نامی که بخواهید داشته باشد و زنجیره عادی با نام FORWARD هیچ ویژگیای از برچسب خود نمیگیرد. تمام تفاوت همین است و در آموزشی که فقط متن قواعد را نشان میدهد دیده نمیشود.
بکاندهای سازگاری دلیل دومی میافزایند که از نام فرمان رفتار استنتاج نکنیم. مستندات iptables از عملیاتی نام میبرد که زیر iptables-nft متفاوت است، پس nftables بومی، iptables-nft و یک مجموعه قواعد قدیمی را سه سامانه بدانید نه سه املا از یک چیز.
خطا را در بافت واقعیاش بخوانید
جدول ناموجود، خطای مجوز، قابلیت در دسترس نبودن هسته و زنجیره نامدار ناموجود چهار یافته متفاوت است و تنها یکی درباره زنجیره است. نسخه ابزار، خانواده نشانی و جدول درخواستی، فضای نام شبکه و نخستین خطای دقیق را ثبت کنید. سپس بررسی کنید کدام مؤلفه مالک مجموعه قواعد است: سرویس دیوار آتش یا دروازهای که محصول مدیریت میکند ممکن است زنجیرهها و ترتیب خود را تولید کند. افزودن یک زنجیره بومی در کنار آنها سیاست مدیریتشده را دستنخورده میگذارد و فهرست را گیجکنندهتر میکند.
فضای نام یک کانتینر میتواند مجموعه قواعدی متفاوت از میزبان داشته باشد، بنابراین فرمانی که در بافت نادرست اجرا شود نمیتواند نشان دهد کدام زنجیره یک بسته ارسالشده را دیده است. بالا بردن امتیازها به این دلیل که زنجیره مورد انتظار دیده نمیشد تشخیص نیست.
شمارندهها گستره را ثابت میکنند، نه حکم را
شمارندههای قاعده به شما میگویند که به قاعدهای رسیده شده است. نمیگویند که قاعدهای بعدی عملیات را مجاز کرده است و ثابت نمیکنند که هر مسیر جایگزین رد شده است. آنها را در جریان یک ترافیک بیخطر مجاز بخوانید، همراه با ترتیب قواعد و پیوند زنجیره، و بهعنوان یک مشاهده ببینید نه حکم. شمارنده غیرصفر روی قاعده حذف یعنی ترافیک به آن برخورد کرده است؛ درباره ترافیکی که برخورد نکرده چیزی نمیگوید.
ارسال IP در هسته تنظیمی کاملاً جداگانه است. وجود یک زنجیره ارسال را فعال نمیکند و نبود یک برچسب آشنا یعنی ارسال متوقف نشده است.
جریانی را که انتظار دارید محافظت شود توصیف کنید
یک درخواست کارخواه را پس از رمزگشایی پوشش بنویسید: مبدأ، مقصد، خانواده نشانی و اینکه در دروازه پایان مییابد یا از آن میگذرد. ورودی سرویس محلی و ترافیک ارسالشده در نقاط مختلف مشاهده میشوند، پس قواعد و آزمونهای متفاوت میخواهند. برای VPN پلشده مسیر پل را هم بررسی کنید، زیرا زنجیره در سطح IP چارچوبهای Ethernet را بهطور خودکار کنترل نمیکند.
پیش از تغییر یک دروازه دور، دسترسی مستقل برای بازیابی را حفظ کنید. سپس جریان مورد نظر و ردهای لازم را زیر همان مجموعه قواعد تأیید کنید. زنجیره خالی تازه با نامی آشنا تعمیر نیست.
مقایسه با یک پرسش پایان مییابد: هسته برای این بسته واقعاً کدام قلاب را فرا میخواند؟ به آن پاسخ دهید و نام زنجیره دیگر اهمیت ندارد.