Sử dụng Booleans để điều chỉnh các cài đặt SELinux policies

Chia sẻ

Cùng tìm hiểu về tính linh hoạt của khi áp dụng Booleans trong SELinux và cách sử dụng chúng

Security-Enhanced Linux, hay viết tắt là SELinux, đã có mặt được một thời gian, nó được phát triển bởi NSA, và hiện nay đã được cung cấp mã nguồn mở cho cộng đồng từ năm 2000 và là một phần của nhân Linux từ năm 2003. SElinux giúp quản trị viên có thể theo dõi cách các phần khác nhau của hệ thống Linux đang thực hiện các hành động gì

Mục lục

Những điều cơ bản
Một “công tắc” nhanh chóng

Có những Booleans nào tồn tại trong hệ thống
Điều này có nghĩa là gì
Tắt/Bật Booleans

Những điều cơ bản

Cơ bản là SELinux sử dụng một cơ sở dữ liệu lưu trữ các chính sách nhằm chấp thuận hay ngăn cản một files, một ứng dụng hay một tiến trình tiếp cận một hệ thống. Ứng dụng hay tiến trình được định nghĩa là các đối tượng sẽ yêu cầu các quyền truy cập vào tệp tin. Sự quyết định có cho phép hay không được đưa ra dựa vào các chính sách & phân quyền được lưu vào AVC (access vector cache)

Một “công tắc” nhanh chóng

Điều gì xảy ra khi bạn sử dụng một service bị chặn bởi một trong các chính sách được đặt ra? Việc định nghĩa lại nội dung các chính sách này có thể không cần thiết. Đó là tại sao Booleans được nhắc tới ở đây. Booleans cơ bản như là một công tắc cho phép thay đổi nhanh chóng các chính sách của các vùng đặc biệt trên hệ thống thông qua SELinux. Các Booleans là các chuỗi số cho phép chúng ta thực hiện các thay đổi ở cấp độ nhỏ đối với một chính sách được thực thi.

Có những Booleans nào tồn tại trong hệ thống

Để xem danh sách các Booleans có sẵn, bạn sử dụng câu lệnh dưới đây

getsebool -a
[cloudzone@client ~]$ getsebool -a abrt_anon_write --> off abrt_handle_event --> off abrt_upload_watch_anon_write --> on antivirus_can_scan_system --> off antivirus_use_jit --> off auditadm_exec_content --> on authlogin_nsswitch_use_ldap --> off authlogin_radius --> off authlogin_yubikey --> off awstats_purge_apache_log_files --> off boinc_execmem --> on cdrecord_read_content --> off cluster_can_network_connect --> off cluster_manage_all_files --> off cluster_use_execmem --> off cobbler_anon_write --> off cobbler_can_network_connect --> off cobbler_use_cifs --> off cobbler_use_nfs --> off collectd_tcp_network_connect --> off ...Output Omitted...

Điều này có nghĩa là gì

Có rất nhiều các thông số ở đây. Như các bạn có thể thấy ở danh sách phía trên, chức năng của một vài Boolean switches thực sự không rõ ràng. Bạn có thể dùng câu lệnh sau để có thêm một chút thông tin về các Boolean

semanage boolean -l | grep tên Boolean
[cloudzone@client ~]$ sudo semanage boolean -l | grep cobbler* cobbler_anon_write (off , off) Allow cobbler to anon write cobbler_can_network_connect (off , off) Allow cobbler to can network connect cobbler_use_cifs (off , off) Allow cobbler to use cifs cobbler_use_nfs (off , off) Allow cobbler to use nfs httpd_can_network_connect_cobbler (off , off) Allow httpd to can network connect cobbler httpd_serve_cobbler_files (off , off) Allow httpd to serve cobbler files

Bạn có thể thấy ở trên chúng ta đang tìm kiếm tất cả các Booleans bắt đầu với cobbler. Từ trái sang phải chúng ta thấy lần lượt là các chuỗi Boolean, giá trị hiện tại và giá trị mặc định của chúng, và một giải thích ngắn về switch này

Tắt/Bật Booleans

Để tắt/bật một switch, chúng ta sử dụng câu lệnh sau

setsebool tên chuỗi Booleans on (off)

Ví dụ để kích hoạt một chuỗi Booleans

[cloudzone@client ~]$ sudo setsebool cobbler_anon_write on [cloudzone@client ~]$ sudo semanage boolean -l | grep cobbler_anon_write cobbler_anon_write (on , off) Allow cobbler to anon write

Để tắt một chuỗi Booleans

[cloudzone@client ~]$ sudo setsebool cobbler_anon_write off [cloudzone@client ~]$ sudo semanage boolean -l | grep cobbler_anon_write cobbler_anon_write (off , off) Allow cobbler to anon write

Cần lưu ý rằng là sự thay đổi của chuỗi Boolean này sẽ bị mất khi khởi động lại. Nếu bạn cần tạo ra sự thay đổi vĩnh viễn thì bạn sẽ thêm tham số -P vào cấu trúc câu lệnh

[cloudzone@client ~]$ sudo setsebool -P cobbler_anon_write on
Chia sẻ

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *