چرا مسدود کردن پورتهای VPN تونلهای غیرمجاز را متوقف نمیکند
فهرستهای پورت، تونلهایی را که از 443 یا با شماره پروتکل میگذرند از دست میدهند. به جای موارد محبوب، اختیار دستگاه، مقصدهای تأییدشده و جریانهای مشاهدهشده را کنترل کنید.
قاعده فایروال ترافیکی را که با آن مطابقت دارد رد میکند. اما هر استفادهای از اتصالی را که مجاز میداند رد نمیکند، و بیشتر سیاستهای مقابله با تونلهای غیرمجاز دقیقاً در همین شکاف شکست میخورند. مسدود کردن پورتهای کارخواهی که پنج سال پیش محبوب بود، هر چیزی را که از 443 میگذرد دستنخورده میگذارد و درباره دستگاهی که میتواند مسیرهای خود را بازنویسی کند چیزی نمیگوید. کنترل را حول اختیار و مقصدها بسازید و سپس جریانهایی را که واقعاً مجاز میکنید بخوانید.
چرا فهرست پورت یک سیاست نیست
پورتها مفهومی از لایه انتقال هستند و چند فناوری تونل اصلاً از پورت استفاده نمیکنند. برخی دیگر عمداً یک پورت را با ترافیک معمول وب شریک میشوند، چون آن پورت همانی است که عبورش تضمین شده است. بنابراین قاعدهای که بر پورت تاریخی بنا شده، مشتی پیادهسازی را برمیشمرد نه کلاس رفتار را. همچنین بد فرسوده میشود: همان لحظهای که ارائهدهنده مقادیر پیشفرض را تغییر میدهد، فهرست گذشته را توصیف میکند.
بدتر آنکه، مسدودسازی موفق یک پورت میتواند به عنوان مدرکی خوانده شود که کل مشکل حل شده است، و این کنترلهایی را که اهمیت داشتند به تأخیر میاندازد.
شماره پروتکل و پورت دو فضای نام متفاوتاند
به GRE شماره پروتکل IP یعنی 47 اختصاص یافته است. این پورت TCP 47 نیست و پورت UDP 47 هم نیست، و فیلتری که برای پورت نوشته شده به آن نمیرسد. ESP و AH نیز با همان ویژگی در شماره پروتکلهای 50 و 51 قرار دارند. ترافیک کپسولهشده میتواند درون یک اتصال مجاز پنهان شود، از این رو یک دسته یا امضا میتواند کمک کند اما هرگز بهتنهایی هدف را تصدیق نمیکند. اطمینان و پوشش به یک محصول و انتشار مشخص تعلق دارند، نه به این مفهوم.
nft list ruleset | grep -nE 'gre|esp|ah|47|50|51'
cat /proc/net/protocols | head -20
ss -tn state established '( dport = :443 )'
دستور اول نشان میدهد واقعاً چه نوشتهاید؛ دستور دوم جدول پروتکلهایی را نشان میدهد که پشته میشناسد؛ دستور سوم نشان میدهد همین حالا چند نشست از پورت وب استفاده میکنند. هیچکدام نمیگویند آن نشستها برای چه هستند. رهگیری TLS تصمیمی جداگانه با هزینههای خودش در اعتماد، حریم خصوصی و سازگاری کارخواه است. نه پیششرطی برای رد یک مقصد نامدار است و نه تضمینی برای شناسایی تونلها.
اختیاری را که دستگاه دارد کنترل کنید
دستگاهی که میتواند جدول مسیریابی و فیلتر خود را تغییر دهد تواناییهایی دارد که یک برنامه معمولی ندارد. مدیریت پذیرش و پیکربندی همان چیزی است که آن توانایی را حذف میکند، و صرفنظر از اینکه تونل از کدام پورت استفاده کند عمل میکند.
این یعنی اتصالهای تأییدشده نقش اعلامشده خود را میگیرند نه اجازه نامحدود برای ارسال به نمایندگی دستگاههای دیگر، و یعنی حقوق نصب و مدیریت شبکه بخشی از سیاست است نه اندیشهای پس از واقع.
جریانهایی را که میمانند مشاهده کنید. هویت دستگاه، نقش تخصیصیافته و فراداده جریان را به هم مرتبط کنید و طبقهبندی را مدرکی با محدودیت بدانید نه حکم.
conntrack -L | awk '{print $1, $4, $5}' | sort | uniq -c | sort -rn | head
ip -br addr show
ip route show default
نشست رمزنگاریشده طولانی یا شمار بایت زیاد مدرک سوءاستفاده نیست: پشتیبانگیری، ابزارهای پشتیبانی و پیوندهای میان سایتها یکسان به نظر میرسند. جمعآوری را به تحقیق محدود کنید و آنچه مییابید را زیر فرایندی که مالک آن است نگه دارید.
استثناها را صریح کنید
هر محیطی مقصدهایی دارد که باید برای بهروزرسانی، احراز هویت و بازیابی قابل دسترس بمانند. آنها را با هدف و مسئول بنویسید و بازبینی کنید، نه اینکه یکییکی با هر قطعی کشفشان کنید.
وقتی کسبوکار واقعاً سرویس خارجی گستردهای را مجاز میداند، اختیاری را که آن سرویس فراهم میکند بسنجید، نه اینکه فرض کنید برچسب مقصد هر استفادهای را قابل قبول میکند.
استثنای بازبینینشده سوراخی با شماره تیکت است. استثنایی با نام، دلیل و تاریخ بازبینی یک تصمیم است.
با طرحی نوشتهشده بپذیرید، نه با شعار
پذیرش دو نیمه دارد: کار تأییدشده همچنان موفق میشود و موارد ممنوع مشخص در آزمونی مجاز شکست میخورند. هر دو باید پیش از تغییر نوشته و پس از آن تکرار شوند.
تغییرات نقطه پایانی و سیاست را در آن بازبینی بگنجانید، چون مسیری که روی یک لپتاپ افزوده میشود میتواند فیلتری را که در لبه بینقص کار میکرد باطل کند.
تحویلشدنی، مرز خروجی دارای مالک با فهرستی شناختهشده از ریسک باقیمانده است. ادعای اینکه چند پورت بسته به استفاده غیرمجاز از VPN پایان داد، آن نیست.