Bảo mật Ubuntu: Dùng Firejail ‘nhốt’ ứng dụng vào Sandbox để chặn đứng nguy cơ mất dữ liệu

Ubuntu tutorial - IT technology blog
Ubuntu tutorial - IT technology blog

Lỗ hổng từ sự chủ quan: Khi “người dùng thường” vẫn chưa đủ an toàn

Ngày đầu “vọc vạch” Ubuntu, mình từng tin rằng Linux là một pháo đài bất khả xâm phạm. Mình thoải mái tải script từ GitHub, cài đủ loại tool hỗ trợ mà chẳng mảy may lo lắng. Nhưng thực tế phũ phàng hơn nhiều: Bất kỳ script nhỏ nào chạy bằng quyền người dùng thường cũng có thể đọc sạch dữ liệu trong thư mục /home của bạn.

Thử tưởng tượng thế này: Bạn tải một phần mềm xem video mới. Bạn nghĩ nó chỉ cần đọc file MP4? Thực tế, nếu không được kiểm soát, nó hoàn toàn có thể âm thầm lục lọi thư mục .ssh để lấy Private Key. Nó cũng dễ dàng copy file cấu hình trình duyệt chứa mật khẩu hoặc tự ý bật webcam mà bạn chẳng hề hay biết.

Gốc rễ vấn đề: Tại sao Linux lại “hào phóng” quyền hạn như vậy?

Mọi chuyện nằm ở cơ chế phân quyền mặc định. Khi bạn chạy ứng dụng với tư cách user itfromzero, ứng dụng đó sẽ thừa hưởng mọi quyền hạn của bạn. Nó có quyền đọc, ghi vào mọi file bạn sở hữu. Cơ chế này giúp các phần mềm phối hợp dễ dàng, nhưng lại là kẽ hở chết người nếu ứng dụng chứa mã độc (malware).

Đa số chúng ta chỉ lo cài Firewall hay Fail2ban cho Server. Chúng ta quên mất rằng máy trạm (Workstation) mới là mục tiêu hàng đầu. Nếu máy cá nhân bị chiếm quyền, kẻ tấn công sẽ có đủ “chìa khóa vạn năng” để đột nhập vào mọi hệ thống quan trọng khác mà bạn đang quản lý.

Sandbox – Giải pháp trung hòa giữa bảo mật và hiệu suất

Trước khi biết đến Firejail, mình thường phải loay hoay với những lựa chọn khá phiền phức:

  • Máy ảo (VM): An toàn tuyệt đối nhưng ngốn 2-4GB RAM chỉ để chạy một cái tool nhỏ. Chờ máy ảo khởi động cũng đủ khiến mình tụt hứng làm việc.
  • Docker: Tuyệt vời cho Backend, nhưng để chạy app có giao diện (GUI) thì cấu hình rất “chát” và thường xuyên lỗi font hoặc âm thanh.
  • AppArmor/SELinux: Cực kỳ mạnh mẽ nhưng viết profile cho chúng là một thử thách thực sự. Chỉ cần sai một dấu chấm phẩy, ứng dụng sẽ đứng hình ngay lập tức.

Sau nhiều lần thử nghiệm, mình tìm thấy Firejail. Đây chính là giải pháp “nhẹ tựa lông hồng” để cô lập ứng dụng trên Ubuntu.

Triển khai Firejail: Tạo “chiếc lồng” an toàn cho ứng dụng

Firejail tận dụng các tính năng sẵn có trong nhân Linux như Namespaces và Seccomp-bpf. Nó tạo ra một môi trường ảo (Sandbox) bao quanh ứng dụng. Khi nằm trong chiếc lồng này, ứng dụng chỉ thấy một hệ thống giả lập với thư mục home trống rỗng. Nó không thấy file thật, không thấy mạng (nếu bị cấm) và không thể can thiệp vào các tiến trình khác.

Bước 1: Cài đặt nhanh trong 30 giây

Firejail có sẵn trong kho phần mềm mặc định của Ubuntu. Bạn chỉ cần mở Terminal và chạy lệnh:

sudo apt update
sudo apt install firejail firetools -y

Trong đó, firejail là công cụ thực thi lệnh, còn firetools là giao diện đồ họa để bạn quan sát các ứng dụng đang bị “nhốt” một cách trực quan.

Bước 2: Chạy ứng dụng an toàn

Cách dùng đơn giản nhất là thêm tiền tố firejail vào trước lệnh khởi chạy. Ví dụ, để duyệt web an toàn với Firefox:

firejail firefox

Lúc này, Firefox vẫn hoạt động mượt mà. Tuy nhiên, nếu bạn thử dùng trình duyệt để mở một file trong ~/.ssh, hệ thống sẽ báo lỗi không tìm thấy file ngay lập tức.

Bước 3: Các chế độ bảo mật “nặng đô”

Tùy vào độ tin cậy của phần mềm, mình thường áp dụng các tùy chọn sau:

1. Chế độ Private (Duyệt web không dấu vết):

firejail --private firefox

Lệnh này tạo một thư mục home tạm thời trên RAM. Mọi dữ liệu tải về, lịch sử web, cookie sẽ bốc hơi ngay khi bạn tắt trình duyệt. Không một dấu vết nào được lưu lại trên ổ cứng.

2. Ngắt kết nối mạng (Network Sandbox):

Với các trình xem ảnh hoặc edit video offline, mình luôn cấm chúng kết nối Internet để tránh việc gửi dữ liệu lén lút:

firejail --net=none vlc

3. Chế độ chỉ đọc (Read-only):

Nếu muốn ứng dụng chỉ được phép xem mà không được sửa đổi tài liệu quan trọng:

firejail --read-only=~/Documents my_app

Tự động hóa với Firecfg

Chắc chắn bạn không muốn lúc nào cũng phải mở Terminal để gõ lệnh. Hãy dùng firecfg để tích hợp Firejail vào toàn bộ menu ứng dụng:

sudo firecfg

Sau khi chạy lệnh này, mỗi khi bạn click vào icon Firefox hay VLC trên màn hình, chúng sẽ tự động được chạy bên trong môi trường Sandbox của Firejail. Cực kỳ tiện lợi!

Lời kết từ trải nghiệm thực tế

Bảo mật không phải là cài thật nhiều phần mềm diệt virus, mà là xây dựng thói quen tốt. Firejail gần như không gây lag máy (overhead cực thấp so với VM). Đổi lại, nó mang đến sự an tâm tuyệt đối khi bạn phải làm việc với các công cụ lạ.

Đừng đặt niềm tin mù quáng vào mọi script bạn thấy trên mạng. Hãy tập thói quen “nhốt” chúng vào Sandbox. Đây là cách tốt nhất để bảo vệ SSH Keys, tài khoản ngân hàng và bí mật công việc của bạn. Hãy cài Firejail ngay hôm nay, hệ thống của bạn sẽ cảm ơn bạn vì điều đó.

Share: