Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Penerokaan mendalam mengenai tiga klasifikasi dasar SELinux

Penerokaan mendalam mengenai tiga klasifikasi dasar SELinux

王林
王林asal
2024-02-26 16:03:181005semak imbas

Penerokaan mendalam mengenai tiga klasifikasi dasar SELinux

SELinux ialah teknologi keselamatan kawalan capaian mandatori yang digunakan untuk meningkatkan keselamatan sistem pengendalian Linux. Dalam SELinux, dasar dibahagikan kepada tiga kategori utama: Dasar Sasaran, Dasar MLS/MCS dan Dasar Tersuai. Ketiga-tiga klasifikasi dasar ini memainkan peranan penting dalam mekanisme keselamatan SELinux Artikel ini akan memperkenalkan tiga klasifikasi dasar ini secara terperinci dengan contoh kod tertentu.

  1. Dasar Sasaran
    Dasar disasarkan ialah klasifikasi dasar yang paling biasa digunakan dalam SELinux, yang mengehadkan kebenaran akses berdasarkan perhubungan antara pengguna, program dan proses. Dalam dasar sasaran, hanya beberapa pengguna atau proses ditakrifkan sebagai dasar keselamatan dan pengguna atau proses lain mewarisi dasar lalai. Dengan memberikan peranan dan kebenaran kepada pengguna atau proses ini, anda boleh mengawal hak akses mereka dengan berkesan.

Berikut ialah contoh kod yang menunjukkan cara menggunakan dasar sasaran untuk menyekat akses pengguna kepada fail:

# 创建一个测试文件
touch testfile.txt

# 为该文件设置安全上下文
chcon system_u:object_r:admin_home_t:s0 testfile.txt

# 创建一个用户
useradd testuser

# 给该用户分配角色和权限
semanage user -a -R "staff_r system_r" testuser

# 切换用户至 testuser
su testuser

# 尝试读取文件
cat testfile.txt
  1. Berbilang dasar (Dasar MLS/MCS)
    Berbilang dasar ialah klasifikasi dasar yang lebih ketat , Kawalan keselamatan yang lebih halus boleh dicapai. Dalam dasar MLS (Keselamatan Berbilang Tahap) dan MCS (Keselamatan Berbilang Kategori), fail dan proses dibahagikan kepada domain kawalan akses yang berbeza berdasarkan tahap atau kategori keselamatannya, dengan itu mencapai kawalan akses antara setiap domain.

Berikut ialah contoh kod yang menunjukkan cara menetapkan tahap keselamatan fail dalam dasar MLS:

# 创建一个测试文件
touch testfile.txt

# 为该文件设置安全等级
setfattr -n security.selinux -v "s0:c0,c1" testfile.txt

# 查看文件的安全等级
getfattr -n security.selinux testfile.txt
  1. Dasar Tersuai (Dasar Tersuai)
    Dasar tersuai merujuk kepada dasar yang disesuaikan mengikut keperluan khusus untuk keselamatan pemperibadian kawalan. Dengan menulis modul dasar tersuai dan peraturan yang berkaitan, gelagat lalai SELinux boleh disesuaikan untuk memenuhi keperluan keselamatan tertentu.

Berikut ialah contoh kod yang menunjukkan cara menulis modul dasar tersuai SELinux yang ringkas:

#include <selinux/selinux.h>
#include <selinux/label.h>

int main() {
    security_context_t scontext, tcontext;
    char *class = "file";
    char *perms = "read";
    security_id_t sid, tid;

    int rc = getfilecon("/etc/passwd", &scontext);
    if (rc < 0) {
        perror("getfilecon");
        return 1;
    }

    rc = security_compute_user(scontext, &sid, &tcontext);
    if (rc < 0) {
        perror("security_compute_user");
        return 1;
    }

    rc = security_compute_av(sid, class, perms, &tid);
    if (rc < 0) {
        perror("security_compute_av");
        return 1;
    }

    printf("Source context: %s
", tcontext);
    printf("Target context: %s
", tcontext);

    return 0;
}

Melalui contoh di atas, kami telah memperkenalkan dasar sasaran, berbilang dasar dan dasar tersuai SELinux secara terperinci dan menyediakan khusus Contoh kod. Dengan memahami dan menguasai klasifikasi dasar ini, pengguna boleh mempunyai pemahaman yang lebih mendalam tentang mekanisme keselamatan SELinux dan menggunakannya dengan lebih baik pada kawalan keselamatan sistem sebenar.

Atas ialah kandungan terperinci Penerokaan mendalam mengenai tiga klasifikasi dasar SELinux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn