Tutorial lengkap tentang sandboxing dalam Linux dengan Firejail dan banyak lagi

Kemaskini terakhir: 22/02/2026
Pengarang Ishak
  • Sandboxing dalam Linux bergantung pada ruang nama, seccomp-BPF, MAC dan chroot untuk mengasingkan proses dan mengehadkan kesan kerentanan.
  • Firejail menawarkan cara yang ringan dan mudah untuk memenjarakan aplikasi desktop dan pelayan dengan profil yang telah ditetapkan dan pilihan lanjutan.
  • Alat seperti Bubblewrap, Flatpak, AppArmor, SELinux dan Kata Containers meluaskan kemungkinan pengasingan dalam senario yang lebih kompleks.
  • Menggabungkan keselamatan memori dengan sandboxing, seperti dalam pendekatan Fil-C dan OpenSSH, menyediakan pertahanan yang mendalam untuk aplikasi kritikal.

Sandboxing dalam Linux

Lindungi aplikasi anda di Linux Ia telah menjadi hampir wajib jika anda melayari laman web yang penuh dengan pengiklanan yang agresif, menjalankan binari yang tidak dipercayai atau mengurus perkhidmatan yang terdedah kepada internet. Walaupun Linux sudah merupakan sistem yang agak mantap, realitinya ialah pelayar, pemain media atau mana-mana klien rangkaian anda boleh menjadi titik masuk yang sempurna untuk perisian hasad, cryptojacking atau kecurian data jika anda tidak mengasingkannya dengan betul.

Dalam tutorial lengkap ini tentang Sandboxing dalam Linux dengan alatan seperti Firejail, Bubblewrap, AppArmor dan teknologi kernel Anda akan melihat bagaimana pengasingan proses benar-benar berfungsi, mekanisme keselamatan yang digunakan oleh sistem (ruang nama, seccomp-BPF, chroot, had sumber, dll.), dan bagaimana anda boleh menggabungkannya secara praktikal untuk meminimumkan kesan potensi eksploitasi. Matlamatnya adalah untuk anda meninggalkan sini dengan pemahaman yang jelas, contoh yang sedia untuk digunakan, dan asas yang kukuh untuk meningkatkan keselamatan aplikasi desktop dan pelayan anda.

Cara menggunakan Firejail
artikel berkaitan:
Cara menggunakan Firejail di Linux untuk mengasingkan dan melindungi aplikasi

Apakah itu sandbox dalam Linux dan mengapa anda perlu menggunakannya?

Apabila kita bercakap tentang sandboxing dalam Linux, kita merujuk kepada jalankan program dalam persekitaran terhad, diasingkan daripada sistem yang lain, supaya jika berlaku sesuatu yang tidak kena (eksploitasi, perisian hasad, skrip berniat jahat di laman web, dsb.) kerosakan tersebut terhad kepada "kotak pasir" tersebut dan tidak boleh menjejaskan sistem pengendalian, dokumen atau perkhidmatan lain dengan mudah.

Pendekatan ini amat berguna terutamanya untuk aplikasi yang sangat terdedahseperti pelayar web, klien e-mel, aplikasi pesanan, program torrent, pemain media atau perkhidmatan rangkaian yang boleh diakses dari internet. Dalam semua kes ini, risiko mereka memproses kandungan yang tidak dipercayai adalah sangat tinggi, jadi adalah masuk akal untuk melindungi mereka dengan beberapa lapisan perlindungan.

Dalam Linux, sandboxing moden adalah berdasarkan terutamanya pada mekanisme kernel asli: Ruang nama LinuxDasar kawalan akses (MAC) seperti AppArmor atau SELinux, penapis seccomp-BPF, sekatan dengan setrlimit, chroot dan pelaksanaan di bawah pengguna yang tidak berkemampuan. Alatan seperti Firejail, Bubblewrap, Flatpak atau sistem kontena seperti Docker bergantung pada blok binaan asas ini.

Penting juga untuk memahami bahawa Keselamatan memori dan sandboxing adalah konsep yang berbeza tetapi saling melengkapi.Sesebuah program boleh ditulis dalam bahasa yang selamat untuk memori (atau dilindungi oleh runtime yang menghalang ralat C/C++ yang biasa), tetapi jika ia mempunyai akses penuh kepada sistem fail dan semua panggilan sistem, ia kekal berbahaya jika dikompromikan. Sebaliknya, program yang diasingkan dalam kotak pasir boleh mengandungi kelemahan memori yang boleh dieksploitasi dari dalam. Keselamatan sebenar datang daripada menggabungkan kedua-dua pendekatan.

Firejail: kotak pasir paling popular untuk aplikasi desktop

Penjara api mungkin alat sandboxing paling terkenal pada desktop LinuxIa diprogramkan dalam C dan berfungsi sebagai fail boleh laku SUID-bit yang bergantung pada ruang nama, seccomp-BPF dan ciri kernel lain untuk mewujudkan persekitaran terpencil di sekitar program yang anda ingin jalankan.

Kelebihannya adalah bahawa Ia sangat ringan dan mudah digunakanKelajuan aplikasi dalam sandbox hampir sama dengan pelaksanaan biasa; ia tidak menambah proses pemastautin apabila sistem bermula dan mempunyai sangat sedikit kebergantungan. Dalam praktiknya, ia hanya menggunakan sumber apabila anda melancarkan aplikasi melaluinya, menjadikannya sesuai walaupun untuk mesin sederhana.

Selain itu, Firejail dilengkapi dengan Profil konfigurasi yang telah ditetapkan untuk lebih daripada 300-1000 aplikasi biasa (bergantung pada versi yang anda lihat): pelayar seperti Firefox dan Chromium, VLC, Transmission, pembaca PDF, editor teks dan banyak lagi. Profil ini menentukan bahagian sistem fail yang dilihat oleh setiap program, kebenaran yang dimilikinya, sama ada ia boleh menggunakan bunyi, jenis akses rangkaian yang dimilikinya, dsb.

Anda juga boleh menggunakan Firejail untuk program pelayan dan alat terminalContohnya, untuk memenjarakan pelayan web Apache atau perkhidmatan tersuai yang mendengar pada port tertentu. Modelnya sentiasa sama: proses berjalan dalam satu set ruang nama dan sekatan yang mengehadkan kesan pelanggaran keselamatan.

Cara Firejail berfungsi pada tahap teknikal

Agar Firejail dapat mengangkat sangkarnya, ia menggunakan secara intensif Ruang nama LinuxFungsi ini, yang mula tiba dalam kernel dalam versi 2.6.23, telah diperluas untuk menawarkan pelbagai jenis pengasingan: PID, rangkaian, pengguna, pemasangan, UTS (nama hos), IPC, dan sebagainya. Setiap ruang nama merangkumi satu set sumber, supaya proses yang berkongsi ruang nama melihat realiti yang berbeza daripada proses di luarnya.

Dalam erti kata lain, satu program bermula dengan Firejail Ia tidak melihat sistem fail, jadual proses, tindanan rangkaian atau nama hos yang sama dan bukannya sistem yang lain, tetapi versi yang ditapis atau dipasang sebahagiannya bergantung pada profil yang digunakan. Ini adalah asas bagi banyak teknologi kontena, seperti Docker, dan merupakan sebab utama mengapa ia begitu cekap.

Firejail melengkapi ruang nama dengan dasar kawalan akses (MAC) pada sistem failDengan peraturan ini, anda boleh, sebagai contoh, membenarkan program hanya mengakses subdirektori tertentu direktori utama anda, seperti Muat Turun atau folder konfigurasi khusus aplikasi, sambil menyekat akses kepada yang lain. Banyak profil lalai sudah termasuk peraturan yang jelas yang membolehkan program berfungsi tanpa membiarkannya berkeliaran bebas di cakera anda.

Satu lagi lapisan penting ialah seccomp-BPFMekanisme ini membolehkan penapis panggilan sistem (syscall) dikaitkan dengan proses. Penapis diterangkan menggunakan BPF (Penapis Paket Berkeley) dan menentukan syscall mana yang dibenarkan dan dengan parameter apa; sebarang panggilan lain menyebabkan kernel menamatkan proses atau mengembalikan ralat. Pelayar seperti Chrome dan sistem kontena seperti Docker juga memanfaatkan teknik ini untuk mengehadkan apa yang boleh dilakukan oleh kod yang sedang berjalan.

  Cara Menggunakan Fortect pada Windows: Panduan Lengkap, Ciri dan Harga

Akhirnya, Firejail boleh hidup dengan AppArmor dan SELinuxSistem MAC ini berfungsi pada peringkat kernel untuk menyekat akses kepada fail, soket, keupayaan, dan sebagainya. Firejail menambah satu lagi lapisan pengasingan: ia bukan sahaja menentukan sumber yang boleh diakses oleh aplikasi, tetapi juga memisahkannya kepada ruang nama supaya beberapa aplikasi yang mempunyai kebenaran yang serupa tidak semestinya perlu melihat atau memanipulasi satu sama lain.

Pasang Firejail dan antara muka grafiknya Firetools

Dalam kebanyakan pengedaran GNU/Linux, Firejail Ia tidak diprapasang, tetapi ia tersedia di repositori rasmi.Dalam Debian, Ubuntu dan derivatif, hanya gunakan APT untuk memasukkannya ke dalam sistem tanpa sebarang kebergantungan tambahan atau perkhidmatan latar belakang tambahan.

Untuk memasang pakej Firejail asas, anda boleh menjalankan:

sudo apt-get install firejail

Dengan arahan tunggal itu, anda akan mempunyai Semua yang anda perlukan untuk menggunakan Firejail dari terminalTidak perlu menyentuh fail konfigurasi untuk bermula; dengan mengetahui beberapa arahan asas, anda sudah boleh memenjarakan aplikasi pertama anda.

Sekiranya anda mahu antara muka grafik yang lebih mesra pengguna Untuk melancarkan dan mengkonfigurasi aplikasi, anda juga boleh memasang Firetools, yang bertindak sebagai pelancar dengan ikon dalam dulang sistem dan wizard persediaan.

sudo apt-get install firetools

Selepas pemasangan, anda akan melihat dua entri baharu dalam menu aplikasi: satu untuk dulang dengan pelancar dan satu lagi untuk Wizard Konfigurasi Firejail, wizard langkah demi langkah yang membolehkan anda memilih aplikasi, memutuskan sama ada untuk menggunakan profil lalai atau profil tersuai dan melaraskan kebenaran pada direktori, bunyi, rangkaian dan perlindungan kernel yang lain.

Menggunakan Firejail dari terminal: asas dan banyak lagi

Penggunaan Firejail yang paling biasa adalah untuk tambah arahan firejail pada fail boleh laku yang anda ingin asingkan. Jika program mempunyai profil yang telah ditetapkan, ia akan digunakan secara automatik; jika tidak, konfigurasi generik akan digunakan serta sebarang yang anda tambah melalui baris arahan.

Contohnya, untuk membuka Firefox di dalam kotak pasir, arahannya ialah:

firejail firefox

Perlu diingat bahawa dalam pengedaran seperti Ubuntu 22.04 dan yang lebih baru, Firefox biasanya didatangkan sebagai pakej Snap, jadi Arahan ini mungkin tidak berfungsi secara langsungDalam hal ini, anda perlu menggunakan versi yang dibungkus APT atau menyesuaikan profil dengan laluan binari yang betul yang sebenarnya berjalan.

Ceritanya serupa dengan aplikasi desktop yang lain. Beberapa contoh biasa ialah:

firejail gedit
firejail evince
firejail vlc
firejail transmission-gtk

Semasa aplikasi tersebut dibuka, jika anda melihat monitor sumber, anda akan melihatnya setiap proses muncul sebagai anak kepada proses penjara kebakaranUntuk melihat pokok proses lengkap yang berjalan dalam kotak pasir pada bila-bila masa, anda boleh menggunakan:

firejail --tree

Jika anda ingin meneroka semua pilihan yang disokong (terdapat banyak untuk rangkaian, X11, lebar jalur, profil tersuai, dll.), anda mempunyai pilihan biasa yang tersedia:

firejail --help

Profil konfigurasi Firejail: di mana ia berada dan cara mengaksesnya

Kuasa sebenar Firejail datang daripadanya profil konfigurasiSetiap profil menerangkan bagaimana program tertentu harus diasingkan: direktori mana yang dipasangnya sebagai baca sahaja atau baca-tulis, sama ada ia mempunyai akses kepada folder pengguna, sama ada pecutan 3D dibenarkan, sama ada ia boleh mengakses Internet, DNS mana yang digunakannya, sama ada ia mendengar pelayan bunyi, dsb.

Profil global sistem biasanya disimpan dalam /dll/penjara api/Untuk melihat senarai penuh yang tersedia pada mesin anda, anda boleh menjalankan:

ls /etc/firejail/

Setiap fail dengan sambungan .profile mentakrifkan peraturan untuk sesuatu program. Jika anda ingin mengubah suai, contohnya, profil Firefox lalai, anda boleh mengeditnya dengan editor teks kegemaran anda dengan menjalankannya dengan keistimewaan pentadbir:

sudo nano /etc/firejail/firefox.profile

Di dalamnya anda akan menemui arahan Firejail yang mengawal pemasangan khas, akses, kapasiti dan pilihanUntuk memahami semua parameter yang tersedia, sangat disyorkan untuk menyemak halaman manual khusus untuk profil:

man 5 firejail-profile

Selain mengubah suai profil sedia ada, anda boleh Cipta profil baharu untuk program yang belum mempunyai profil mereka sendiri.Dalam kes ini, Firejail biasanya menggunakan konfigurasi generik yang lebih permisif. Jika anda ingin menyesuaikan tingkah laku aplikasi tertentu, anda boleh menentukan fail profil dengan namanya dan menyesuaikannya dengan keperluan anda, menggunakan dokumentasi rasmi dan contoh daripada pengguna lain.

Profil pengguna: menulis ganti dan melanjutkan tetapan standard

Selalunya tidak sesuai untuk kita menyentuhnya profil sistem dalam /etc/firejailSama ada untuk memudahkan kemas kini masa hadapan atau kerana anda ingin mempunyai variasi anda sendiri untuk pengguna tertentu, Firejail menyokong profil dalam direktori konfigurasi pengguna, yang boleh merangkumi profil global dan menambah atau mengubah suai peraturan.

Langkah pertama ialah membuat folder tempat profil pengguna ini akan disimpan:

mkdir -p ~/.config/firejail/

Bayangkan anda mahukan VLC tidak pernah mempunyai akses kepada Internet Apabila anda membukanya dengan Firejail, anda boleh mencipta profil setempat yang dipanggil vlc.profile yang merangkumi profil global dan menambah sekatan rangkaian. Untuk melakukan ini, buka fail:

nano ~/.config/firejail/vlc.profile

Dan letakkan sesuatu seperti berikut:

include /etc/firejail/vlc.profile
net none

Arahan termasuk Seret tetapan lalai VLC, dan baris berikut akan menambah peraturan untuk menyekat rangkaian. Dari saat itu, lancarkan VLC Penjara Api Ia juga akan menggunakan fail pengguna ini dan, oleh itu, VLC tidak akan dapat mengakses Internet, dan kekal terhad kepada memainkan kandungan setempat.

Ingat bahawa nama fail dalam folder pengguna anda mestilah padankan nama profil standard supaya Firejail dapat mengesan dan menggabungkannya dengan betul.

Pilihan lanjutan Firejail: rangkaian, mod peribadi dan sumber

Selain profil, Firejail menawarkan pelbagai pilihan parameter baris arahan untuk melaraskan tingkah laku kotak pasir buat sementara waktu pada setiap larian, tanpa perlu menyentuh fail konfigurasi.

  Cara memasang program Linux asli pada FreeBSD

Contohnya, anda boleh lumpuhkan akses rangkaian untuk aplikasi tertentu menggunakan pilihan –net=none. Untuk memulakan VLC dalam mod internet terpencil, sila:

firejail --net=none vlc

Satu lagi ciri yang sangat berkuasa ialah mod peribadiDalam mod ini, program berjalan dalam sistem fail sementara (tmpfs), tidak melihat tetapan sebenar atau fail peribadi anda, dan semua yang dilakukannya hilang apabila anda log keluar dari kotak pasir. Ia sesuai untuk operasi sensitif, seperti mengakses perbankan dalam talian, menguji laman web yang mencurigakan atau menjalankan perisian yang anda tidak mahu meninggalkan jejak.

Satu contoh praktikal ialah membuka Google Chrome dengan mod peribadi dan DNS khusus (contohnya, yang daripada Google):

firejail --private --dns=8.8.8.8 --dns=8.8.4.4 google-chrome

Dalam senario ini, Chrome bermula dengan tetapan lalainya, tanpa sambungan atau sejarah penyemakan imbas, mengasingkan dirinya dalam persekitaran tmpfs dan menggunakan pelayan DNS yang ditentukan. Ini adalah cara yang agak munasabah untuk meminimumkan risiko semasa melawati laman web sensitif.

Firejail juga membenarkannya Aplikasi dalam kotak pasir menggunakan antara muka rangkaian maya mereka sendiridengan alamat IP dalaman yang berasingan, jadual ARP, tembok api berasingan, dsb., menggunakan macvlan. Anda boleh, sebagai contoh, memulakan Firefox pada antara muka eth0 dengan:

firejail --net=eth0 firefox

Jika anda ingin memberikan alamat IP tertentu kepada kotak pasir tersebut:

firejail --net=eth0 --ip=192.168.1.80 firefox

Perlu diingat bahawa Fungsi ini pada masa ini biasanya terhad kepada rangkaian berwayardan mungkin tidak berfungsi pada antara muka tanpa wayar bergantung pada konfigurasi dan pengedaran sistem anda.

Kawalan lebar jalur dan pemantauan kotak pasir

Satu ciri Firejail yang kurang dikenali ialah keupayaannya untuk had lebar jalur aplikasi yang anda jalankan dalam kotak pasir. Ini sesuai untuk ujian prestasi, mensimulasikan sambungan perlahan atau sekadar menghalang klien torrent daripada menyusahkan keseluruhan lebar jalur anda.

Corak biasa terdiri daripada berikan nama kepada kotak pasir dan kemudian kendalikannya dari terminal lain. Contohnya, memulakan Firefox dalam kotak pasir yang dipanggil pelayar yang disambungkan ke eth0:

firejail --name=navegador --net=eth0 firefox

Dalam terminal lain, anda boleh menetapkan had muat naik dan muat turun dengan pilihan –bandwidth, dengan menyatakan nama kotak pasir, antara muka dan nilai (dalam KB/s):

firejail --bandwidth=navegador set eth0 80 20

Dengan parameter tersebut, Firefox akan dihadkan kepada kelajuan muat turun 80 KB/s dan kelajuan muat naik 20 KB/s.Jika anda kemudian ingin mengalih keluar sekatan tersebut, anda boleh mengosongkan peraturan lebar jalur dengan:

firejail --bandwidth=navegador clear eth0

Untuk mengetahui pada bila-bila masa Aplikasi apa yang anda jalankan di dalam Firejail?Arahan `-list` memaparkan senarai PID, pengguna dan program berkaitan:

firejail --list

Dan jika apa yang menarik minat anda adalah lihat penggunaan sumber (memori, CPU, bilangan proses) bagi setiap kotak pasir aktif, yang anda ada:

firejail --top

Masukkan kotak pasir sedia ada dan gunakan Firejail secara lalai

Terdapat situasi di mana anda mungkin berminat mengakses "dari dalam" kotak pasir yang sedang berjalanContohnya, untuk memeriksa konfigurasi rangkaian anda, menyemak laluan yang dipasang atau melaksanakan tugas pentadbiran. Firejail membolehkan anda menyertai sandbox tertentu menggunakan pilihan `--join`, menggunakan PID salah satu proses.

Jika, sebagai contoh, di pintu keluar senarai penjara kebakaran Anda melihat bahawa Firefox mempunyai PID 5394, anda boleh memasukkan kotak pasirnya dengan:

sudo firejail --join=5394

Firejail itu sendiri menguruskan pertukaran kepada proses anak pertama di dalam penjara dan meninggalkan anda dalam shell root dalam persekitaran terpencil itu, dari mana anda boleh menjalankan pemeriksaan yang anda perlukan.

Satu lagi kemungkinan yang sangat praktikal ialah Jadikan Firejail sebagai cara lalai untuk memulakan sebarang program dengan profil yang tersediaUntuk melakukan ini, anda boleh menggunakan arahan firecfg, yang mencipta pautan simbolik dalam /usr/local/bin yang menunjuk ke /usr/bin/firejail untuk setiap aplikasi dengan profil.

sudo firecfg

Mulai saat ini, setiap kali anda melancarkan program daripada senarai (daripada menu grafik atau terminal), ia akan bermula secara automatik dalam kotak pasir. Jika anda ingin mengembalikannya, cuma alih keluar pautan simbolik yang dicipta dalam / usr / local / bin.

Jika anda lebih suka menggunakan tingkah laku ini hanya kepada satu aplikasi tertentuAnda boleh mencipta pautan simbolik itu sendiri. Contohnya, untuk memastikan Firefox sentiasa menggunakan Firejail:

sudo ln -s /usr/bin/firejail /usr/local/bin/firefox

Apabila anda ingin berhenti menggunakan Firejail secara automatik untuk program tersebut, anda hanya perlu memadam pautan simbolik yang sepadan dalam /usr/local/bin.

Pelayan grafik alternatif: Xpra dan Xephyr dengan Firejail

Salah satu kritikan klasik terhadap model X11 ialah Ia tidak menawarkan pengasingan yang baik antara aplikasi grafikIni membuka peluang kepada penggodam kekunci, tangkapan skrin dan teknik pengintipan tetingkap-ke-tetingkap yang lain. Firejail cuba mengurangkan sebahagian daripada masalah ini dengan membenarkan aplikasi berjalan pada pelayan grafik alternatif.

Khususnya, anda boleh menggunakan Xpra dan Xephyr sebagai pelayan X yang berasingan, supaya program yang di-jail tidak berkongsi pelayan X yang sama dengan desktop yang lain. Pertama, anda perlu memasang pakej yang sepadan pada sistem anda:

sudo apt-get install xpra xserver-xephyr

Kemudian, anda boleh melancarkan aplikasi dengan menentukan pelayan X untuk digunakan dengan pilihan –x11. Contohnya, untuk memulakan VLC tanpa akses rangkaian dan menggunakan Xephyr:

firejail --x11=xephyr --net=none vlc

Jika anda lebih suka aplikasi dijalankan pada Xpra, arahannya akan serupa, iaitu mengubah parameter:

firejail --x11=xpra --net=none vlc

Dengan skim ini, Anda menyukarkan hidup pengguna keylogger dan tangkapan skrin. bahawa mereka cuba mengintip apa yang anda lakukan dalam aplikasi khusus itu, memandangkan ia kekal "bersambung" ke pelayan grafiknya sendiri, bebas daripada seluruh desktop.

Pendekatan sandboxing lain dalam Linux: Bubblewrap, Flatpak, AppArmor dan kontena

Walaupun Firejail sangat mudah untuk pengguna desktop, terdapat lebih banyak alat dalam ekosistem Linux yang ditujukan untuk mengasingkan proses dan aplikasiTiada yang sempurna dan semuanya mempunyai kebaikan dan keburukannya, tetapi adalah penting untuk mengetahui mereka untuk memilih yang terbaik dalam setiap kes.

Bubblewrap merupakan alternatif yang memberi tumpuan kepada menawarkan masa jalan sandboxing minimalisBubblewrap lebih bersih dan mempunyai permukaan serangan yang lebih kecil berbanding alat setuid yang besar. Ia lebih sukar untuk dikonfigurasikan secara langsung berbanding Firejail, tetapi banyak penyelesaian moden menggunakannya secara tertutup. Tidak seperti Firejail, falsafah Bubblewrap adalah untuk mengelakkan penggunaan SUID apabila mungkin, sekali gus mengurangkan kesan potensi kerentanan dalaman.

  Cara Membuat Pautan Muat Turun Terus – Alternatif

Projek seperti Bubblewrap dibina di atasnya. Penjara Gelembungyang objektifnya adalah untuk menawarkan pengalaman yang lebih mesra pengguna dengan cuba membetulkan beberapa kekurangan organisasi Firejail (profil yang lebih konsisten, konfigurasi yang lebih jelas, dsb.). Kelemahannya ialah ia merupakan alat yang kurang dikenali dengan pangkalan pembangun yang kecil, jadi Ia tidak diaudit atau diuji dalam pertempuran serta pilihan lain yang lebih popular.

Sebaliknya adalah FlatpakIa digunakan secara meluas untuk mengedarkan aplikasi desktop terpencil. Walaupun ia bergantung pada teknik sandboxing (ruang nama, portal, kebenaran deklaratif, dll.), ramai pakar menunjukkan bahawa Ia bukan perkara mudah untuk mengkonfigurasinya tanpa meninggalkan jurangTambahan pula, ia hanya terpakai kepada aplikasi yang dipaketkan sebagai Flatpak, jadi jika program anda tidak wujud dalam format itu, ia tidak akan berfungsi untuk anda.

Dalam bidang dasar MAC, AppArmor dan SELinux Ia membolehkan anda menentukan peraturan yang sangat halus tentang fail, soket, kapasiti dan sumber yang boleh digunakan oleh setiap program. Secara teorinya, ia sangat berkuasa dan biasanya menawarkan tahap keselamatan yang lebih tinggi daripada penyelesaian yang ditentukan pengguna, tetapi ia mengalami masalah yang sama: Menyediakannya dengan betul adalah rumitMencipta profil yang mantap untuk setiap perkhidmatan memerlukan masa, pengalaman dan penyelenggaraan yang berterusan.

Dalam persekitaran awan dan Kubernetes, alternatif yang sangat menarik ialah bekas berdasarkan mesin maya ringan, seperti Kata Containers, yang disepadukan oleh Red Hat OpenShift sebagai runtime pilihan yang mematuhi OCI. Dalam model ini, setiap beban kerja berjalan pada kernel terpencilnya sendiri dalam VM ringan, menyediakan a lapisan penebat tambahan di atas pemisahan biasa mengikut ruang nama. Operator bertanggungjawab untuk memasang, mengurus dan mengemas kini masa jalan ini dalam kluster.

Keselamatan memori + sandboxing: pendekatan Fil-C dan kes OpenSSH

Selain desktop, banyak aplikasi kritikal dijalankan pada pelayan (seperti OpenSSH atau komponen platform SaaS) mendapat manfaat daripada penggabungan keselamatan memori dan sandboxing mendalamDi sinilah pendekatan projek seperti Fil-C memainkan peranan, mencadangkan pelaksanaan yang selamat untuk C/C++ yang mampu wujud bersama dengan mekanisme asli Linux.

OpenSSH pada Linux sudah menggunakan beberapa teknik pengasingan: chroot (buat sangkar chroot) untuk mengehadkan paparan sistem fail, pelaksanaan proses sebagai pengguna dan kumpulan yang tidak berhak, penggunaan setrlimit untuk menyekat sumber (membuka fail, mencipta proses, dsb.) dan menapis seccomp-BPF yang hanya membenarkan subset panggilan sistem terkawal; semua yang lain menyebabkan proses tamat.

Cabaran untuk masa jalan seperti Fil-C ialah menyesuaikan diri dengan sekatan tersebut tanpa melanggar programContohnya, jika pengumpul sampah memerlukan thread latar belakang, anda mesti memastikan semua thread tersebut dicipta sebelum mengaktifkan kotak pasir, dan penapis seccomp dipasang pada kesemuanya, bukan hanya thread utama, juga mematuhi tetapan seperti PR_SET_NO_NEW_PRIVS dan PR_SET_SECCOMP.

Fil-C menawarkan ciri-ciri seperti zlock_runtime_threads()Langkah-langkah ini memaksa permulaan semua thread yang diperlukan sebelum mengaktifkan sandbox dan menyekat penciptaan thread baharu selepas itu, memastikan bahawa sekatan dikenakan secara konsisten sepanjang proses. Ia juga memerlukan pengecualian kecil dalam penapis seccomp, seperti mendayakan MAP_NORESERVE dalam mmap atau sistem sched_yield, yang diperlukan untuk pengurusan masa jalan dalaman.

Jenis kerja ini menunjukkan bahawa Adalah mungkin untuk menggabungkan persekitaran selamat memori, kotak pasir yang ketat dan aplikasi berprofil tinggi seperti OpenSSH tanpa mengorbankan keserasian atau prestasi. Pembangun Chrome dan Mozilla telah mendokumentasikan amalan serupa untuk kotak pasir Linux mereka sendiri selama bertahun-tahun, menetapkan piawaian untuk pertahanan yang mantap secara mendalam.

Kes penggunaan praktikal: melindungi pelayaran dan kehidupan seharian anda

Semua ini diterjemahkan ke dalam senario harian bagi mana-mana pengguna Linux. Contohnya, apabila anda melayari Laman torrent, laman muat turun yang penuh dengan tetingkap timbul, laman web lucah atau portal dengan pautan yang mencurigakanKebarangkalian untuk menemui skrip cryptojacking, iklan berniat jahat atau percubaan cap jari adalah lebih daripada munasabah.

Satu ukuran mudah terdiri daripada Jailkan pelayar dengan Firejail setiap kali anda menghadapi masalah tersebut. Lancarkan pelayar dengan:

firejail chromium &

Wahai:

firejail firefox &

Ia memberikan anda lapisan ketenangan fikiran tambahan. Tanda ampersand (&) pada hujungnya berguna untuk memastikan pelayar terbuka walaupun anda secara tidak sengaja menutup terminal. Jika anda menggabungkannya dengan penyelesaian seperti Pi-hole pada rangkaian tempatan anda, atau sambungan sekatan skrip dan perlombongan, Anda dapat mengurangkan permukaan serangan dengan ketara. apabila melayari laman web yang meragukan.

Mod peribadi Firejail, profil yang menyekat akses kepada folder sensitif dan penggunaan DNS terkawal untuk pelayar yang anda gunakan dengan perbankan dalam talian anda adalah keputusan kecil yang, jika digabungkan, Mereka membezakan antara ketakutan yang serius dan bulu mata tertutup yang mudah..

Melihat gambaran keseluruhan, jelas bahawa sandboxing dalam Linux bukanlah penyelesaian yang mudah, tetapi ia adalah alat yang sangat berkuasa jika anda tahu cara menggabungkannya: Firejail dan profilnya untuk kegunaan harian, Bubblewrap dan Flatpak untuk persekitaran yang lebih terkawal, AppArmor/SELinux dan seccomp-BPF untuk perkhidmatan kritikal, dan teknologi seperti Kata Containers atau runtime selamat memori seperti Fil-C semasa membina infrastruktur yang lebih kompleks. Akhirnya, ia adalah tentang membina lapisan supaya walaupun satu gagal, Selebihnya akan terus memastikan sistem anda agak selamat.