SELinux nampaknya menakutkan dan sangat sukar untuk dilaksanakan dalam kebanyakan sistem moden. Namun, mengkonfigurasi SELinux mempunyai faedah besar baik dalam menegakkan keselamatan dan menyelesaikan masalah.
Tutorial ini akan membincangkan pelbagai konsep yang dilaksanakan oleh SELinux dan meneroka pelbagai kaedah praktikal untuk melaksanakan SELinux.
CATATAN: Sebelum kita mulai, ada baiknya kita menggunakan perintah dalam tutorial ini sebagai pengguna root atau pengguna dalam kumpulan sudoers.
Pasang Pakej SELinux
Mari kita pasang pelbagai pakej SELinux, yang pada gilirannya akan membantu bekerja dengan dasar SELinux.
Sebelum kita memasang pakej SELinux, ada baiknya kita mengesahkan yang dipasang pada sistem semasa.
Dalam kebanyakan pemasangan pengedaran REHL, beberapa pakej dipasang secara lalai. Pakej ini merangkumi:
- setools - pakej ini digunakan untuk memantau log, dasar pertanyaan, dan pengurusan fail konteks.
- polisycoreutils-python - menyediakan utiliti teras python untuk menguruskan SELinux
- polisycututils - pakej ini juga menyediakan utiliti untuk menguruskan SELinux.
- mcstrans - mcstrans menyediakan daemon terjemahan SELinux, yang menterjemahkan pelbagai peringkat menjadi format mudah yang dapat difahami dengan mudah.
- setools-console - serupa dengan setools.
- Selinux-policy - ia memberikan rujukan untuk mengkonfigurasi polisi SELinux
- Selinux-polisi-sasaran - serupa dengan SELinux-polisi
- Libselinux-utils - SELinux utiliti libselinux yang membantu mengurus SELinux
- Setroubleshoot-server - alat untuk menyelesaikan masalah SELinux
Untuk mengesahkan pakej mana yang sudah terpasang di sistem anda, anda boleh menggunakan perintah rpm -qa dan memasukkan hasilnya ke grep untuk SELinux sebagai:
rpm -qa | grep selinuxlibselinux-utils-2.9-4.el8_3.x86_64
rpm-plugin-selinux-4.14.3-4.el8.x86_64
selinux-polisi-disasarkan-3.14.3-54.el8_3.2.noarch
python3-libselinux-2.9-4.el8_3.x86_64
selinux-polisi-3.14.3-54.el8_3.2.noarch
libselinux-2.9-4.el8_3.x86_64
Ini akan memberi anda output dari semua pakej yang dipasang untuk sokongan SELinux
Sekiranya tidak semua paket SELinux dipasang pada sistem anda, gunakan yum untuk memasangnya seperti yang ditunjukkan dalam arahan di bawah:
yum pasang polisycututils polisycututils-python-uts selinux-policy selinux-kebijakan-target libselinux-utils setroubleshoot-server setools setools-console mcstransMod dan Negeri SELinux
Mari kita mula bermain dengan SELinux, khususnya mod SELinux.
Mod SELinux
Apabila diaktifkan, SELinux boleh menjadi tiga mod yang mungkin:
- Menguatkuasakan
- Permisif
- Kurang Upaya
Mod Penguatkuasaan
Sekiranya mod SELinux ditegakkan, ia akan memastikan bahawa tidak ada akses yang tidak sah ke sistem oleh pengguna atau proses yang ditolak. Mod penguatkuasaan juga menyimpan catatan percubaan akses tanpa kebenaran.
Mod Permisif
Mod permisif bertindak seperti keadaan SELinux yang diaktifkan sebahagiannya. Dalam mod ini, tidak ada akses yang ditolak kerana SELinux tidak menerapkan kebijakannya dalam mod ini. Walau bagaimanapun, mod permisif menyimpan catatan percubaan pelanggaran dasar. Mod ini sangat cekap untuk diuji sebelum mengaktifkannya sepenuhnya kerana pengguna dan komponen masih dapat berinteraksi dengan sistem tetapi masih mengumpulkan log. Ini membolehkan anda menyempurnakan sistem anda dengan cara yang anda fikirkan sesuai.
Mod Dilumpuhkan
Mod kurang upaya juga boleh dilihat sebagai keadaan kurang upaya di mana SELinux dilumpuhkan dan tidak menawarkan Keselamatan.
Negeri SELinux
Setelah SELinux dipasang pada sistem. Ia boleh mempunyai keadaan binari: diaktifkan dan dilumpuhkan. Untuk melihat keadaan SELinux, gunakan arahan:
mendapatkan tenagaKurang Upaya
Output di atas menunjukkan bahawa SELinux sedang dilumpuhkan.
Anda juga dapat menggunakan perintah sestatus seperti gambar di bawah:
sestatusStatus SELinux: dilumpuhkan
Dayakan dan Lumpuhkan SELinux
Negeri dan konfigurasi SELinux dikendalikan oleh fail Konfigurasi yang terletak di / etc / selinux / config. Anda boleh menggunakan arahan kucing untuk melihat isinya.
cat / etc / selinux / config#Fail ini mengawal keadaan SELinux pada sistem.
# SELINUX = boleh mengambil salah satu daripada tiga nilai berikut:
#enforcing - Dasar keselamatan SELinux dikuatkuasakan.
#permissive - SELinux mencetak amaran dan bukannya menguatkuasakan.
#disabled - Tiada polisi SELinux dimuat.
SELINUX = menguatkuasakan
# SELINUXTYPE = boleh mengambil salah satu daripada tiga nilai berikut:
# disasarkan - Proses yang disasarkan dilindungi,
# minimum - Pengubahsuaian dasar yang disasarkan. Hanya proses terpilih yang dilindungi.
# mls - Perlindungan Keselamatan Tahap.
SELINUXTYPE = disasarkan
Dari output di atas, kami mempunyai dua arahan utama yang diaktifkan. Arahan SELINUX menentukan mod di mana SELinux dikonfigurasi. Arahan SELINUXTYPE menentukan set polisi SELinux. Secara lalai, SELinux menggunakan dasar yang disasarkan yang membolehkan anda menyesuaikan kebenaran kawalan akses. Polisi lain adalah keselamatan bertingkat atau MLS.
Anda mungkin dapati, dasar minimum dalam beberapa versi.
cd / etc / selinux /[ls -l
jumlah 4
-rw-r - r-- 1 root root 548 16 Feb 22:40 konfigurasi
drwxr-xr-x 1 root root 4096 16 Feb 22:43 mls
-rw-r - r-- 1 root root 2425 21 Jul 2020 semanage.pengesahan
drwxr-xr-x 1 root root 4096 16 Feb 22:40 disasarkan
Mari kita lihat bagaimana mengaktifkan SELinux pada sistem. Sebaiknya tetapkan mod SELINUX terlebih dahulu ke permisif dan tidak dipaksakan.
nano / etc / selinux / configSekarang edit arahan SELINUX sebagai:
SELINUX = permisifSetelah anda menyimpan fail, keluarkan sistem but semula.
but semulaCATATAN: Kami sangat mengesyorkan menetapkan arahan SELINUX ke permisif sebelum menguatkuasakan SELinux.
Sebaik sahaja anda menghidupkan semula sistem, periksa log yang dilaporkan oleh SELinux di / var / log / message.
Seterusnya, pastikan anda tidak mempunyai kesalahan dan tegakkan SELinux dengan menetapkan arahan untuk menegakkan di / etc / selinux / config
Akhirnya, anda dapat melihat status SELinux menggunakan arahan sestatus:
Status SELinux: diaktifkanPemasangan SELinuxfs: / sys / fs / selinux
Direktori root SELinux: / etc / selinux
Nama polisi yang dimuat: disasarkan
Mod semasa: menguatkuasakan
Mod dari fail konfigurasi: ralat (Berjaya)
Status MLS dasar: diaktifkan
Status deny_unknown: dibenarkan
Pemeriksaan perlindungan memori: sebenarnya (selamat)
Versi dasar kernel maksimum: 31
Anda juga boleh menggunakan perintah setenforce untuk beralih antara pelbagai mod SELinux. Sebagai contoh, untuk menetapkan mod ke permisif, gunakan perintah:
setenforce permisifMod ini bersifat sementara dan akan dipulihkan ke mod dalam fail konfigurasi selepas reboot.
status sestatus SELinux: diaktifkanPemasangan SELinuxfs: / sys / fs / selinux
Direktori root SELinux: / etc / selinux
Nama polisi yang dimuat: disasarkan
Mod semasa: permisif
Mod dari fail konfigurasi: menegakkan
Status MLS dasar: diaktifkan
Status deny_unknown: dibenarkan
Pemeriksaan perlindungan memori: sebenarnya (selamat)
Versi dasar kernel maksimum: 31
Dasar dan Konteks SELinux
Untuk mengelakkan kekeliruan bagi pemula SELinux, kami tidak akan menyelami bagaimana polisi SELinux dilaksanakan tetapi hanya menyentuhnya untuk memberi anda idea.
SELinux berfungsi dengan melaksanakan dasar keselamatan. Dasar SELinux merujuk kepada peraturan yang digunakan untuk menentukan hak akses untuk setiap objek dalam sistem. Objek merujuk kepada pengguna, proses, fail, dan peranan.
Setiap konteks ditentukan dalam bentuk pengguna: peranan: jenis: tahap.
Sebagai contoh, buat direktori di direktori rumah anda dan lihat konteks keselamatan SELinux seperti yang ditunjukkan dalam arahan di bawah:
mkdir ~ / linuxhint_dirls -Z ~ / | grep linuxhint
Ini akan memaparkan output seperti gambar di bawah:
unconfined_u: object_r: user_home_t: s0 linuxhint_dirAnda juga boleh mencari direktori lain dengan konteks keselamatan seperti:
sistem: _u: object_r: user_home_t: s0Anda mungkin menyedari output di atas mengikuti sintaks pengguna: role: type: level.
Kesimpulannya
Itu adalah tutorial pemula untuk SELinux menggunakan CentOS 8. Walaupun tutorial ini dirancang untuk pemula, lebih dari cukup untuk membuat kaki anda berjalan di SELinux dan menghilangkan sifat menakutkan SELinux.
Terima kasih kerana membaca.