SELinux

Fedora CoreOS hadir dengan SELinux yang diaktifkan dalam mode penegakan (enforcing mode).

Perubahan kebijakan

Perubahan boolean kebijakan dan penambahan modul SELinux didukung di Fedora CoreOS. Namun, kami tidak menyertakan semanage dan tidak ada mekanisme tambahan di Butane maupun dukungan langsung di Ignition untuk melakukan operasi tersebut. Lihat fedora-coreos-tracker#701 untuk detail lebih lanjut.

Berikut contoh cara mengatur boolean SELinux melalui unit systemd yang dijalankan setiap kali boot:

Contoh konfigurasi Butane untuk menerapkan boolean SELinux secara dinamis
variant: fcos
version: 1.7.0
systemd:
  units:
    - name: setsebool.service
      enabled: true
      contents: |
        [Service]
        Type=oneshot
        ExecStart=setsebool container_manage_cgroup true
        RemainAfterExit=yes
        [Install]
        WantedBy=multi-user.target

Mengatur ulang kebijakan SELinux ke pengaturan bawaan

Jika Anda mengalami masalah tak terduga dengan SELinux, mungkin disebabkan oleh modifikasi kebijakan lokal.

Contoh penolakan SELinux
systemd-resolved[755]: Failed to symlink /run/systemd/resolve/stub-resolv.conf: Permission denied
audit[755]: AVC avc:  denied  { create } for  pid=755 comm="systemd-resolve" name=".#stub-resolv.confc418434d59d7d93a" scontext=system_u:system_r:systemd_resolved_t:s0 tcontext=system_u:object_r:systemd_resolved_var_run_t:s0 tclass=lnk_file permissive=0

Anda dapat memeriksa status kebijakan SELinux dengan perintah berikut:

$ sudo ostree admin config-diff | grep -E 'selinux/.*/policy'
M    selinux/targeted/active/policy.linked
M    selinux/targeted/active/policy.kern
M    selinux/targeted/policy/policy.31
A    selinux/targeted/policy/policy.30

Jika perintah ini menampilkan daftar entri, berarti kebijakan SELinux Anda telah dimodifikasi dari pengaturan bawaan.

Anda memiliki dua opsi untuk mengatur ulang kebijakan SELinux ke pengaturan bawaan:

  • Lakukan redeploy sistem dari artefak Fedora CoreOS terbaru.

  • Pulihkan kebijakan bawaan secara manual

Untuk memulihkan kebijakan bawaan:

  1. Buat cadangan kebijakan Anda saat ini:

    sudo cp -al /etc/selinux{,.bak}
  2. Pulihkan kebijakan SELinux bawaan:

    sudo rsync --archive --links --verbose --delete /usr/etc/selinux/ /etc/selinux/

    Setelah menjalankan perintah ini, keluaran dari sudo ostree admin config-diff | grep -E 'selinux/.*/policy' tidak lagi menunjukkan bahwa kebijakan telah dimodifikasi.

  3. Terakhir, muat ulang kebijakan SELinux atau mulai ulang sistem Anda:

    sudo semodule -R

Menonaktifkan SELinux

Kami tidak mendukung penonaktifan SELinux di Fedora CoreOS. Lihat rpm-ostree#971. Juga lihat diskusi di fedora-coreos-docs#439.

Mengatur SELinux dalam mode permisif

Kami tidak menyarankan untuk mengatur seluruh sistem dalam mode permisif (misalnya setenforce 0). Sebagai gantinya, Anda dapat mengatur SELinux agar permisif hanya untuk satu aplikasi dengan membuat modul kebijakan CIL.

Sebagai contoh untuk domain wireguard_t:

$ cat permissive-wireguard.cil
(typepermissive wireguard_t)

Anda kemudian dapat memuat modul ini dengan perintah:

sudo semodule -i permissive-wireguard.cil

Dan menghapusnya setelah tidak lagi diperlukan dengan perintah:

sudo semodule -r permissive-wireguard

Lihat juga diskusi di fedora-coreos-docs#439.