SELinux

Fedora CoreOS ມາພ້ອມກັບການເປີດໃຊ້ SELinux ໃນໂໝດບັງຄັບໃຊ້ (enforcing mode).

ການປ່ຽນແປງນະໂຍບາຍ

Fedora CoreOS ຮອງຮັບການປ່ຽນແປງຄ່າບູລີນຂອງນະໂຍບາຍ ແລະ ການເພີ່ມໂມດູນ SELinux. ເຖິງຢ່າງໃດກໍຕາມ, ພວກເຮົາບໍ່ໄດ້ລວມເອົາ semanage ແລະ ບໍ່ມີວິທີງ່າຍໆໃນ Butane ຫຼື ການຮອງຮັບໂດຍກົງໃນ Ignition ສຳລັບການປະຕິບັດການເຫຼົ່ານັ້ນ. ເບິ່ງ fedora-coreos-tracker#701 ສຳລັບລາຍລະອຽດເພີ່ມເຕີມ.

ນີ້ແມ່ນຕົວຢ່າງການຕັ້ງຄ່າບູລີນຂອງ SELinux ຜ່ານຢູນິດ systemd ທີ່ຈະເຮັດວຽກທຸກຄັ້ງທີ່ເປີດເຄື່ອງ:

ຕົວຢ່າງການຕັ້ງຄ່າ Butane ສຳລັບການນຳໃຊ້ຄ່າບູລີນ SELinux ແບບໄດນາມິກ
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

ການຕັ້ງຄ່ານະໂຍບາຍ SELinux ກັບຄືນເປັນຄ່າເລີ່ມຕົ້ນ

ຫາກທ່ານພົບກັບບັນຫາ SELinux ທີ່ບໍ່ຄາດຄິດ, ມັນອາດຈະເກີດຈາກການປ່ຽນແປງນະໂຍບາຍພາຍໃນເຄື່ອງ.

ຕົວຢ່າງການປະຕິເສດຈາກ 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

ທ່ານສາມາດກວດສອບສະຖານະຂອງນະໂຍບາຍ SELinux ໄດ້ດ້ວຍຄຳສັ່ງ:

$ 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

ຫາກຄຳສັ່ງນີ້ສົ່ງຄືນລາຍການຕ່າງໆອອກມາ, ສະແດງວ່ານະໂຍບາຍ SELinux ຂອງທ່ານໄດ້ຖືກປ່ຽນແປງໄປຈາກຄ່າເລີ່ມຕົ້ນ.

ທ່ານມີສອງທາງເລືອກໃນການຕັ້ງຄ່ານະໂຍບາຍ SELinux ກັບຄືນເປັນຄ່າເລີ່ມຕົ້ນ:

  • ຕິດຕັ້ງລະບົບໃໝ່ (Re-deploy) ຈາກໄຟລ໌ artifacts ຫຼ້າສຸດຂອງ Fedora CoreOS.

  • ກູ້ຄືນນະໂຍບາຍເລີ່ມຕົ້ນດ້ວຍຕົນເອງ

ເພື່ອກູ້ຄືນນະໂຍບາຍເລີ່ມຕົ້ນ:

  1. ສຳຮອງຂໍ້ມູນນະໂຍບາຍປັດຈຸບັນຂອງທ່ານ:

    sudo cp -al /etc/selinux{,.bak}
  2. ກູ້ຄືນນະໂຍບາຍ SELinux ເລີ່ມຕົ້ນ:

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

    ຫຼັງຈາກໃຊ້ຄຳສັ່ງນີ້, ຜົນທີ່ໄດ້ຈາກ sudo ostree admin config-diff | grep -E 'selinux/.*/policy' ຄວນຈະບໍ່ສະແດງວ່ານະໂຍບາຍຖືກປ່ຽນແປງອີກຕໍ່ໄປ.

  3. ສຸດທ້າຍ, ໃຫ້ໂຫຼດນະໂຍບາຍ SELinux ໃໝ່ ຫຼື ເລີ່ມຕົ້ນລະບົບໃໝ່:

    sudo semodule -R

ການປິດການໃຊ້ງານ SELinux

ພວກເຮົາບໍ່ຮອງຮັບການປິດການໃຊ້ງານ SELinux ໃນ Fedora CoreOS. ເບິ່ງ rpm-ostree#971. ເບິ່ງການສົນທະນາເພີ່ມເຕີມໄດ້ທີ່ fedora-coreos-docs#439.

ການຕັ້ງຄ່າ SELinux ໃນໂໝດຜ່ອນຜັນ (permissive mode)

ພວກເຮົາບໍ່ແນະນຳໃຫ້ຕັ້ງຄ່າທັງໝົດຂອງລະບົບເປັນໂໝດຜ່ອນຜັນ (ເຊັ່ນ: set enforce 0). ແຕ່ທ່ານສາມາດຕັ້ງຄ່າ SELinux ໃຫ້ເປັນໂໝດຜ່ອນຜັນສຳລັບແອັບພລິເຄຊັນດຽວໄດ້ ໂດຍການສ້າງ ໂມດູນນະໂຍບາຍ CIL.

ຕົວຢ່າງສຳລັບໂດເມນ wireguard_t:

$ cat permissive-wireguard.cil
(typepermissive wireguard_t)

ຈາກນັ້ນທ່ານສາມາດໂຫຼດໂມດູນນີ້ໄດ້ດ້ວຍ:

sudo semodule -i permissive-wireguard.cil

ແລະ ລຶບມັນອອກເມື່ອບໍ່ຕ້ອງການໃຊ້ແລ້ວດ້ວຍ:

sudo semodule -r permissive-wireguard

ເບິ່ງການສົນທະນາເພີ່ມເຕີມໄດ້ທີ່ fedora-coreos-docs#439.