Computer >> Hướng Dẫn Máy Tính >  >> Kết Nối Mạng >> Internet

Cứng hóa Firefox với AppArmor: Hướng dẫn từng bước

Vài tuần trước, tôi đã viết một bài viết cung cấp cái nhìn tổng quan cơ bản về công cụ cứng hóa AppArmor, giải thích cách nó hoạt động và minh họa ví dụ thực tế về cách giới hạn và cứng hóa trình duyệt Firefox. Tuy nhiên, không phải bất kỳ phiên bản Firefox nào, mà cụ thể là phiên bản tarball (tệp nén tar) bạn tải xuống từ Mozilla. Đó là kho lưu trữ tar. Tải về, giải nén, chạy.

Cho đến nay mọi thứ đều ổn. Sử dụng hồ sơ AppArmor (mẫu) từ cài đặt Kubuntu của tôi, tôi đã có thể, với một vài sửa đổi nhỏ, tạo bộ quy tắc tùy chỉnh cho phiên bản Firefox tar chạy từ thư mục home. Vấn đề là theo mặc định, nó không thể tự cập nhật. Chúng ta sẽ khắc phục điều đó ngay bây giờ.

Cứng hóa Firefox với AppArmor: Hướng dẫn từng bước

Vấn đề chi tiết

Cụ thể như sau: Nếu bạn sử dụng phiên bản Firefox tar, nó có tùy chọn tự động cập nhật giống như trên Windows. Trình duyệt sẽ nhận bản cập nhật, bạn khởi động lại, xong. Bạn không cần cài đặt lại thủ công, chỉ cần tiếp tục chạy trình duyệt từ nơi bạn giải nén lần đầu, ví dụ ~/Firefox/.

Tuy nhiên, với hồ sơ AppArmor của tôi, trình duyệt không thể tự cập nhật (xem ảnh chụp màn hình trên). Nó sẽ báo có bản cập nhật và cho phép bạn tải xuống thủ công. Thực tế có khá nhiều giải pháp thay thế:

  • Bạn có thể xóa quy tắc AppArmor, và khi khởi động lại trình duyệt, Firefox sẽ tự cập nhật được. Nhưng cách này phiền toái. Và bạn sẽ phải áp dụng lại quy tắc sau đó.

sudo apparmor_parser -R "tên hồ sơ Firefox tar của bạn"

  • Bạn có thể truy cập thủ công trang chủ, tải xuống kho tarball mới, sau đó giải nén đè lên thư mục cũ, hoặc giải nén và sao chép thủ công tất cả các tệp từ thư mục mới vào thư mục cài đặt Firefox. Cách này không ảnh hưởng đến hồ sơ người dùng Firefox của bạn.

tar -xvf "tên_tarball"
cp -ar "thư_mục_giải_nén"/* "thư_mục_cài_đặt_Firefox"/

Tuy nhiên, אלו chỉ là các giải pháp "dễ dàng" bán phần, chúng ta muốn giải pháp vững chắc hơn.

Giải pháp

Giải pháp thực sự là xem xét hồ sơ AppArmor và hiểu quy tắc nào gây xung đột. Nói chung, mỗi dòng trong hồ sơ là một quy tắc cho phép chọn lọc (như đọc nhưng không ghi vào thư mục), hoặc từ chối hoàn toàn truy cập vào tài nguyên cụ thể. Bất cứ điều gì không được viết rõ ràng sẽ không được hồ sơ bao gồm.

Một trong các quy tắc mặc định trong tệp là từ chối quyền ghi vào tệp và thư mục bên trong thư mục cài đặt Firefox. Điều này hợp lý cho hồ sơ mặc định khi Firefox được cài đặt trong thư mục hệ thống, nhưng không nhất thiết nếu bạn cài đặt Firefox ở nơi riêng biệt.

deny @{MOZ_LIBDIR}/** w,

Chúng ta có thể bình luận (comment out) quy tắc này, tải lại hồ sơ Firefox, và xong:

sudo apparmor_parser -r "tên_hồ_sơ"

Cứng hóa Firefox với AppArmor: Hướng dẫn từng bước

Cứng hóa Firefox với AppArmor: Hướng dẫn từng bước

Kết luận

Xong. Thay đổi nhỏ và đơn giản này là tất cả những gì cần thiết để trả lại khả năng tự cập nhật cho phiên bản Firefox tar. Nếu bạn cực kỳ quan tâm đến bảo mật, bạn có thể nói rằng điều này không tốt, và bạn sẵn sàng cập nhật thủ công khi cần. Bạn luôn có thể dùng cách đó. Nhưng nếu bạn muốn sự tiện lợi, và vẫn muốn phần lớn hồ sơ AppArmor cứng hóa hoạt động cho bạn, thì bạn có thể cho phép trình duyệt ghi vào thư mục cài đặt của nó. Chỉ cần nhận thức được những hậu quả tiềm ẩn.

Hy vọng hướng dẫn này làm rõ hoặc giải mã một số câu hỏi bạn có thể có về chủ đề này. Nhưng chưa kết thúc đâu. Tiếp theo, chúng ta sẽ nói về D-Bus, cụ thể là các quy tắc cần thiết để Firefox có thể sử dụng các tính năng tích hợp KDE/Plasma. Có vẻ như chỉ dành cho KDE, nhưng tôi sẽ đảm bảo hướng dẫn đủ chung để áp dụng cho bất kỳ loại tích hợp trình duyệt nào. Hẹn gặp lại lần sau, các nerd đồng chí.

Chúc vui.