Little Snitch untuk Linux
(obdev.at)- Alat untuk memvisualisasikan dan mengendalikan koneksi jaringan aplikasi, sehingga Anda dapat melihat program mana yang berkomunikasi dengan server mana
- Di Connections View, lalu lintas real-time dan historis ditampilkan per aplikasi, dengan dukungan pemblokiran koneksi dan pelacakan penggunaan data hanya dengan satu klik
- Melalui fitur Blocklists dan Rules, Anda dapat mengendalikan lalu lintas yang tidak diinginkan secara presisi berdasarkan kategori atau kondisi yang rinci
- Secara internal menggunakan eBPF untuk memantau koneksi pada level kernel, dan menyediakan antarmuka berbentuk PWA melalui web UI
- Bukan alat keamanan, melainkan alat yang berfokus pada privasi, cocok untuk memblokir komunikasi keluar dari perangkat lunak umum, tetapi terbatas untuk pertahanan terhadap serangan tingkat lanjut
Gambaran umum
- Little Snitch for Linux adalah alat untuk memvisualisasikan dan mengendalikan koneksi jaringan aplikasi secara real-time
- Anda dapat melihat aplikasi mana yang berkomunikasi dengan server mana
- Menyediakan fungsi untuk memblokir koneksi yang tidak diinginkan, mencatat lalu lintas, dan melacak penggunaan data
- Memerlukan Linux kernel 6.12 atau lebih baru dan dukungan kernel BTF
- Web UI dapat diakses di
http://localhost:3031/dan dapat dipasang dalam bentuk PWA (Progressive Web App)
Pemantauan koneksi
- Di Connections View, aktivitas jaringan saat ini dan masa lalu ditampilkan per aplikasi
- Menampilkan item yang diblokir oleh aturan dan daftar blokir, penggunaan data, serta riwayat lalu lintas
- Dapat diurutkan dan difilter berdasarkan aktivitas terbaru, jumlah data, dan nama
- Koneksi dapat diblokir hanya dengan satu klik
- Diagram lalu lintas di bagian bawah memvisualisasikan jumlah data seiring waktu
- Jika Anda menyeret untuk memperbesar area tertentu, hanya aktivitas pada periode tersebut yang akan ditampilkan
Pengelolaan daftar blokir
- Fitur Blocklists memungkinkan pemblokiran massal kategori lalu lintas yang tidak diinginkan
- Dapat diunduh otomatis dari sumber jarak jauh dan selalu dijaga tetap mutakhir
- Format yang didukung: satu baris per domain, satu baris per hostname, format
/etc/hosts(IP + hostname), dan rentang jaringan CIDR -
Wildcard, regex, glob, dan format berbasis URL tidak didukung
- Demi efisiensi, disarankan menggunakan daftar berbasis domain
- Contoh daftar: Hagezi, Peter Lowe, Steven Black, oisd.nl
- Format
.lsrulesuntuk macOS tidak kompatibel dengan versi Linux
Aturan kustom
- Fitur Rules memberikan kontrol yang lebih rinci dibanding blocklist
- Dapat dikonfigurasi per proses, port, dan protokol tertentu
- Daftar aturan dapat diurutkan dan difilter
- Melalui aturan, Anda dapat menyusun kebijakan kontrol jaringan yang detail
Keamanan akses
- Secara default, antarmuka web dapat diakses oleh semua proses yang berjalan secara lokal
- Ada kemungkinan aplikasi berbahaya dapat mengubah aturan, memodifikasi daftar blokir, atau menonaktifkan filter
- Untuk mencegah hal ini, Anda dapat mengaktifkan persyaratan autentikasi
- Pengaturan rinci dilakukan melalui konfigurasi lanjutan (Advanced configuration)
Struktur internal
- Menggunakan eBPF untuk melakukan hooking ke Linux network stack
- Program eBPF memantau koneksi keluar dan meneruskan data ke daemon
- Daemon bertugas melacak statistik, memproses aturan, dan menyediakan web UI
- Kode sumber program eBPF dan web UI tersedia secara publik di GitHub
Konfigurasi lanjutan
- UI bawaan hanya menampilkan pengaturan utama, sedangkan pengaturan lanjutan dikonfigurasi melalui file teks
- Setelah diubah, daemon
littlesnitchperlu di-restart
- Setelah diubah, daemon
- Lokasi konfigurasi default:
/var/lib/littlesnitch/config/- Jangan edit langsung; salin file yang ingin diubah ke
/var/lib/littlesnitch/overrides/config/lalu edit - Konfigurasi di direktori override selalu diprioritaskan
- Jangan edit langsung; salin file yang ingin diubah ke
- File konfigurasi utama
web_ui.toml: pengaturan alamat jaringan, port, TLS, dan autentikasi- Jika dapat diakses oleh banyak pengguna, autentikasi perlu diaktifkan
- Jika diekspos di luar loopback, TLS tambahan diperlukan
main.toml: mengatur perilaku default untuk koneksi yang tidak cocok dengan aturan- Nilai default adalah allow, dan dapat diubah menjadi deny bila diperlukan
- Salah konfigurasi berisiko membuat sistem tidak dapat diakses
executables.toml: aturan pengelompokan executable- Menghapus nomor versi agar beberapa versi aplikasi yang sama ditampilkan sebagai satu
- Mendefinisikan hubungan induk untuk shell dan proses pengelola aplikasi
- Terus ditingkatkan melalui umpan balik komunitas
- Program eBPF dan web UI dapat diganti dengan versi build pengguna
- Versi di direktori override akan diprioritaskan
Keterbatasan
- Dirancang sebagai alat privasi, bukan alat keamanan
- Lebih sederhana daripada versi macOS, dan memiliki keterbatasan fungsional karena batasan eBPF
- eBPF memiliki batas ruang penyimpanan dan kompleksitas program, sehingga
- Jika lalu lintas tinggi, tabel cache dapat penuh dan pemetaan antara paket, proses, dan nama DNS bisa menjadi tidak lengkap
- Saat memulihkan hostname asli dari alamat IP, digunakan heuristik (heuristics)
- Versi macOS melakukan pemetaan yang lebih akurat dengan deep packet inspection (DPI)
- Cocok untuk memantau dan memblokir komunikasi keluar dari perangkat lunak umum, tetapi tidak cocok untuk pertahanan sistem terhadap penyerang tingkat lanjut
Lisensi
- Terdiri dari 3 komponen
- Program kernel eBPF dan web UI dirilis di bawah GNU GPL v2 dan tersedia di GitHub
- Daemon (
littlesnitch --daemon) bersifat proprietary, tetapi gratis digunakan dan dapat didistribusikan ulang
1 komentar
Komentar Hacker News
Saya tidak memakai Little Snitch atau Open Snitch, tetapi saya penasaran apakah alat ini juga bisa memblokir permintaan yang menyalahgunakan program yang diizinkan
Misalnya, jika
suspicious.pymemanggil Firefox untuk mengunggah data, saya ingin tahu apakah firewall bisa mencegahnyaJika skrip dijalankan dengan
#!/bin/interpreter, aturan diterapkan ke path skrip, tetapi jika dijalankan dalam bentukinterpreter script, perilakunya berbedaDi Open Snitch, pencocokan bisa dibuat lebih rinci berdasarkan apakah proses python termasuk dalam pohon induk, dan sebagainya
Firewall Windows lama seperti Outpost atau Zone Alarm menyediakan fitur Leak Control untuk mendeteksi perilaku seperti itu
Sebagian besar distro menyertakan fitur ini, tetapi pengguna umum jarang mempelajari atau mengonfigurasikan aturannya
Saya mencobanya di Fedora 43, tetapi program itu memakai semua inti CPU dan gagal sambil meninggalkan log 50K baris
Muncul error
BPF_PROG_LOAD syscall returned Argument list too longDi VM ARM64 program bisa dimuat, tetapi tidak bisa mengidentifikasi proses
Mereka sedang menyelidiki masalah kompatibilitas eBPF dan mengatakan butuh waktu karena sumber daya terbatas
Karena filesystem bawaan Fedora adalah Btrfs, identifikasi proses tidak memungkinkan, dan perbaikan direncanakan pada versi 1.0.1
Sebagai pengguna Linux, saya menganggap keterbukaan kode itu penting
Saya sudah cukup puas dengan kombinasi OpenSnitch + OpenSnitch-UI
Saya penasaran seberapa layak model alat berbayar di Linux
Sebagian besar berbentuk gratis, berbasis donasi, atau model open-core
Saya ingin tahu apakah Little Snitch merilis versi Linux secara gratis karena anggapan bahwa “di Linux tidak menghasilkan uang”, atau karena alasan lain
Saya sendiri juga merasa tidak nyaman dengan program tertutup yang menangani traffic jaringan
Sebagai gantinya, saya menyumbang ribuan dolar setiap tahun ke proyek FOSS
Tetapi pengguna seperti ini sedikit, jadi sulit menghasilkan pendapatan dari model yang sepenuhnya open source
Terutama untuk kode berhak istimewa tinggi seperti firewall, sulit dipercaya jika bukan open source
Mereka bilang penasaran bagaimana hasilnya nanti
Postingan blog terkait: Memperkenalkan Little Snitch for Linux
Dulu ada ZoneAlarm untuk Windows
Saya selalu penasaran kenapa Linux tidak punya sesuatu seperti ini
Setelah melihat kode Direwall, gaya C lama itu masih tetap ada
Program itu bekerja dengan menambal library socket, dan saya penasaran apakah sekarang masih bisa dikompilasi
Pada awalnya ia banyak bertanya, tetapi setelah belajar akan menjadi tenang, dan struktur itu dijelaskan dengan jelas
Karena itu pengguna mempercayainya, dan saya juga merekomendasikannya karena hal tersebut
Ketika software komersial mulai masuk ke Linux, muncul keinginan untuk memantau jaringan
Fitur itu bagus karena bisa membatasi eksekusi sembarangan di Windows
Saya sudah lama memakai Little Snitch dan menyetujui semua permintaan jaringan secara manual
Tetapi saya bertanya-tanya seberapa jauh saya bisa memercayai program yang punya izin setingkat ekstensi kernel
Karena hampir tidak ada informasi tentang perusahaan atau pengembangnya, saya jadi penasaran
Komponen eBPF dirilis sebagai open source GPLv2, dan bisa dicek di kode GitHub
Namun daemon harus dijalankan dengan hak root, jadi perlu dibatasi dengan kontrol akses seperti SELinux
Karena ini rilis pertama, mereka sedang menangani laporan bug dan mengatakan terkejut dengan beragamnya lingkungan Linux
Di macOS, mereka memakai Network Extension API, bukan ekstensi kernel
Jika tujuannya mengamati jaringan, ada juga GUI sniffer seperti Sniffnet
Selamat atas rilis port Linux-nya
Sebagai alternatif yang sepenuhnya open source dan berbasis terminal, saya memperkenalkan RustNet yang saya pelihara
Ini adalah alat pemantauan paket real-time berbasis TUI, bukan firewall, tetapi melakukan sandboxing sendiri melalui Landlock
Saya penasaran bagaimana perbandingannya dengan OpenSnitch
OpenSnitch GitHub
Ini karena keterbatasan teknis versi Linux
Karena berbasis eBPF, saat cache overflow pemetaan proses menjadi tidak mungkin, dan deep packet inspection seperti di macOS tidak bisa digunakan
Ini dijelaskan lebih rinci di penjelasan resmi
Tulisan terkait
Saya cukup puas memakai OpenSnitch
Tetapi akan bagus jika ada sistem plugin sehingga perilaku pengguna dan koneksi jaringan bisa dianalisis bersama, lalu hanya koneksi yang tak terduga yang muncul sebagai notifikasi
Akan praktis juga jika ada wrapper auto-allow berbasis CLI sebagai pengganti popup