Little Snitch به لینوکس رسید؛ رایگان و نیمهمتنباز
خلاصهٔ کاملتر
Little Snitch سالهاست بین کاربرهای مک بهعنوان فایروال «خروجی» شناخته میشه؛ ابزاری که بهت میگه کدوم برنامه داره با کجا حرف میزنه و اجازه میده جلوش رو بگیری. حالا شرکت اتریشی Objective Development نسخهٔ لینوکسی این محصول رو معرفی کرده و بخشی از کدش رو هم روی گیتهاب گذاشته.
طبق توضیح مخزن، این ریپازیتوری فقط بخش متنباز محصوله و از چند تکه تشکیل شده: کریت ebpf که همهٔ برنامههای eBPF متصل به کرنل لینوکس رو نگه میداره، کریت common برای تایپها و توابع مشترک بین کرنل و فضای کاربر، کریت demo-runner که یه برنامهٔ فضای کاربره و نشون میده چطور باید برنامههای eBPF رو داخل کرنل لود کرد، و webroot که رابط کاربری وب و جاوااسکریپتی محصوله.
انتخاب eBPF یعنی فیلترینگ بهجای ماژول کرنل اختصاصی، داخل ماشین مجازی خود کرنل اجرا میشه. demo-runner هم برای نمونه دو تا فهرست متنی از هاستها و دامنههای ممنوع رو لود میکنه و نشون میده داده چطور از طریق مپهای eBPF بین فضای کاربر و کرنل رد و بدل میشه.
نکتهای که تیم توسعه صراحتاً بهش اشاره میکنه، شکنندگی eBPFست: وریفایر کرنل ممکنه بعد از تغییر تو خود وریفایر، کامپایلر Rust یا bpf-linker برنامه رو رد کنه. برای همین نسخهٔ nightly مورد استفاده تو فایل rust-toolchain.toml پین شده و اسکریپتهای بیلد همون نسخه رو صدا میزنن. به گفتهٔ سازندهها، این کد روی کرنلهای ۶.۱۲ تا ۷.۲.۰ از وریفایر رد میشه.
از نظر لایسنس، همهٔ کد این مخزن عمومی زیر GPL نسخهٔ ۲ منتشر شده و مشارکتها هم با همین شرایط پذیرفته میشن. ولی یه مرز مهم هست: Little Snitch for Linux رایگانه، اما محصول کامل بخش اختصاصی هم داره که جزو این مخزن نیست و متنباز حساب نمیشه.
نکات کلیدی:
- نسخهٔ لینوکسی Little Snitch رایگانه و بخش هستهایش متنباز شده
- فیلترینگ روی eBPF سوار شده و کریتها با Rust نوشته شدن
- مخزن شامل کد eBPF، کد مشترک کرنل و فضای کاربر، اجراکنندهٔ نمونه و رابط وب جاوااسکریپتیه
- تولچین nightly برای بیلد eBPF پین شده؛ سازگاری روی کرنل ۶.۱۲ تا ۷.۲.۰ تأیید شده
- کد عمومی زیر GPLv2، ولی بخش اختصاصی محصول متنباز نیست




