mengenal-selinux

Intro

SELinux (Security-Enhanced Linux) adalah sistem Kontrol Akses Dasar (MAC) yang dibangun dalam kernel Linux .

Salah satu fitur utama SELinux adalah memungkinkan sobat server untuk memblokir akses tidak sah ke resource sistem. Arsitektur keamanan ini menerapkan pemisahan hak istimewa antara pengguna dan proses sistem, sehingga memungkinkan administrator untuk mengelola akses ke sumber daya secara lebih efisien.

Dalam artikel ini, sobat server akan mempelajari apa itu Security-Enhanced Linux (SELinux), cara kerjanya, dan cara mengonfigurasinya dengan benar.

Apa itu SELinux?

Security-Enhanced Linux (SELinux) adalah arsitektur keamanan yang dibuat oleh Badan Keamanan Nasional Amerika Serikat (NSA) dan Red Hat. Modul keamanan ini tersedia untuk sebagian besar distribusi Linux, tetapi terutama digunakan pada RHEL dan Fedora. 

SELinux memberlakukan kebijakan Mandatory Access Control (MAC). MAC adalah jenis sistem keamanan yang memungkinkan sysadmin untuk menetapkan kebijakan akses keamanan terpusat dan menentukan pengguna dan proses mana yang memiliki akses ke sumber daya tertentu. Sistem ini juga beroperasi pada model dengan hak istimewa paling rendah, yang memblokir akses ke sumber daya secara default.

Dengan SELinux, sobat server dapat membedakan pengguna dari aplikasi yang dijalankan user biasa. Misalnya, shell user memiliki akses penuh ke direktori home. Namun, jika pengguna menjalankan email, SELinux akan memblokir klien agar tidak mengakses bagian direktori home tertentu.

SELinux juga meningkatkan tingkat perlindungan dengan memisahkan kebijakan keamanan dan penerapan keputusan keamanan di dalam kernel. Pemisahan ini memberi sysadmin kontrol yang lebih besar atas keamanan sistem secara keseluruhan. Perlindungan tambahan juga berasal dari SELinux yang terintegrasi ke dalam kernel Linux, yang berarti ia selalu berjalan, dan pengguna serta proses tidak dapat menonaktifkannya.

Bagaimana Cara Kerja Linux yang Ditingkatkan Keamanannya?

SELinux bekerja dengan menerapkan kontrol akses wajib (MAC). Dengan MAC, sysadmin menentukan pengguna dan proses mana yang memiliki akses ke sumber daya tertentu, alih-alih mengandalkan izin yang ditetapkan secara luas dan kurang aman. Untuk mencapai hal ini, SELinux menggunakan kebijakan keamanan.

Kebijakan SELinux

SELinux memblokir semua aplikasi dan pengguna secara default, hanya mengizinkan akses kepada mereka yang ditentukan dalam kebijakan keamanan.

Kebijakan keamanan adalah serangkaian aturan yang memberi tahu SELinux siapa yang memiliki akses ke sumber daya sistem tertentu. Aturan ini menetapkan izin untuk setiap pengguna, proses, dan sumber daya. 

SELinux mencatat setiap keputusan (memblokir atau mengizinkan akses) dalam Access Vector Cache (AVC), yang mempercepat proses kontrol akses.

Ketika suatu proses meminta akses ke suatu sumber daya, SELinux akan berkonsultasi dengan AVC untuk memeriksa apakah suatu keputusan telah dibuat untuk permintaan tersebut. Jika ya, permintaan tersebut langsung ditolak, sehingga menghemat waktu dan sumber daya. Jika tidak, SELinux berkonsultasi dengan policy dan membuat keputusan.

Salah satu fitur penting dari Security-Enhanced Linux adalah kemampuan untuk menentukan izin yang berbeda untuk proses yang berbeda. Misalnya, seorang admin menetapkan kebijakan yang memungkinkan proses server web untuk membaca dan menulis ke root dokumen tetapi memblokir proses lainnya.

SELinux juga mendukung kontrol akses berbasis konteks. Misalnya, seorang sysadmin menetapkan kebijakan yang mengizinkan server web untuk membaca dan menulis ke root hanya dalam kondisi tertentu, yaitu, ketika permintaan berasal dari alamat IP tepercaya .

Label SELinux dan Penegakan Tipe

Penegakan dan pelabelan tipe adalah konsep penting untuk SELinux.

SELinux menggunakan label dengan kebijakan kontrol akses untuk menentukan tindakan mana yang diizinkan untuk setiap sumber daya. Admin menetapkan label untuk setiap proses, jaringan, port, atau file. Label tersebut terdiri dari yang berikut:

  • User. User Linux yang dipetakan ke pengguna SELinux.
  • Role. role resmi pengguna. Setiap role diotorisasi untuk jenis tertentu.
  • Tipe . Menentukan penegakan tipe. Setiap tipe memberlakukan serangkaian izin.
  • Level (opsional). Level izin keamanan, dinyatakan dalam tingkatan.

Label merupakan bagian dari kebijakan keamanan, yang menentukan jenis akses yang diizinkan untuk setiap jenis label. 

Sintaksis labelnya adalah:

user:role:type:level

Tipe label merupakan konsep yang paling penting untuk kebijakan yang ditargetkan. Proses pemeriksaan tipe label kebijakan keamanan disebut penegakan tipe. Penegakan tipe memastikan bahwa hanya proses dan pengguna yang sah yang memiliki akses ke sumber daya tertentu.

Setiap jenis dikaitkan dengan serangkaian izin yang menentukan tindakan yang diizinkan untuk jenis tersebut. Saat suatu proses atau pengguna mencoba mengakses suatu sumber daya, SELinux membandingkan jenis sumber daya tersebut dengan jenis proses atau pengguna. Selanjutnya, modul tersebut memberikan atau menolak akses berdasarkan izin yang dikaitkan dengan jenis tersebut. 

Mode SELinux

Salah satu fitur utama SELinux adalah kemampuannya untuk beroperasi dalam berbagai mode, yang memungkinkan sysadmin untuk menyempurnakan keamanan sistem. 

Ada tiga mode SELinux utama:

  1. Mode default. Mode SELinux default dan paling aman. Dalam mode ini, SELinux memberlakukan kebijakan kontrol akses yang ditetapkan oleh sysadmin dan tidak mengizinkan pengguna untuk mengabaikannya. Jika pengguna atau proses mencoba mengakses sumber daya yang tidak diizinkan oleh kebijakan, SELinux menolak permintaan tersebut dan mencatat keputusan tersebut di AVC.
  2. Mode permisif . Kurang aman dibandingkan mode default tetapi tetap memberikan perlindungan. Dalam mode ini, SELinux tidak memberlakukan kebijakan tetapi mencatat peristiwa saat pengguna atau proses mencoba mengakses sumber daya yang diblokir oleh kebijakan. Hal ini memungkinkan sysadmin untuk memantau sistem guna mengetahui potensi masalah keamanan dan membuat perubahan kebijakan yang diperlukan sebelum mengizinkan mode penegakan.
  3. Mode nonaktif . Mode yang paling tidak aman karena tidak melindungi sumber daya sistem. Dalam mode ini, SELinux tidak memberlakukan kebijakan kontrol akses. Mode ini berguna untuk pengujian atau debugging.

Bagaimana cara mengkonfigurasi SELinux?

Linux dilengkapi dengan kebijakan keamanan SELinux yang sudah terpasang sebelumnya, yang menyederhanakan konfigurasi. Selain itu, arsitekturnya juga memungkinkan administrator untuk menentukan kebijakan keamanannya sendiri.

Ada beberapa cara untuk mengonfigurasi SELinux, baik secara permanen atau selama sesi saat ini.

Catatan: User akun dengan hak istimewa root atau sudo diperlukan untuk mengonfigurasi SELinux.

Konfigurasikan SELinux Secara Permanen

Untuk mengatur konfigurasi SELinux yang tidak akan direset setelah di-boot ulang, edit berkas /etc/selinux/config . File ini berisi opsi konfigurasi SELinux, termasuk mode operasi SELinux. 

Untuk menyetel mode ke enforcing, permissive, atau disabled, ubah SELINUXvariabelnya sesuai kebutuhan. Misalnya, untuk menyetel SELinux ke mode permissive, ikuti langkah-langkah berikut:

1. Buka berkas konfigurasi SELinux di editor teks pilihan Anda. Tutorial ini menggunakan Vim .

sudo vim /etc/selinux/config

2. Atur SELINUXvariabel menjadi permissivedengan:

SELINUX=permissive

3. Simpan dan keluar dari File.

4. Restart ulang sistem.

5. Verifikasi perubahan dengan:

sudo sestatus

Perintah ini sestatusmemperlihatkan bahwa mode SELinux saat ini bersifat permisif dan memverifikasi perubahan dalam berkas konfigurasi.

Konfigurasikan SELinux Sementara

SELinux juga menyediakan perintah untuk mengatur konfigurasi hanya untuk sesi saat ini. Setelah sesi dimulai ulang, pengaturan akan diatur ulang ke pengaturan dalam berkas konfigurasi.

Perintah tersebut setenforcemengaktifkan mode penegakan (dengan variabel 1) atau menonaktifkannya (dengan variabel 0). Untuk mengaktifkan mode penegakan, jalankan:

sudo setenforce 1

Perintah tersebut tidak memberikan output. Verifikasikan hasilnya menggunakan salah satu sestatusatau getenforce.

Untuk memeriksa apakah SELinux dalam mode penegakan dengan sestatus, jalankan:

sudo sestatus

Output menunjukkan bahwa mode saat ini sedang diberlakukan, sementara variabel berkas konfigurasi masih  permissive. Memulai ulang terminal akan mengembalikan mode saat ini ke permisif.

Cara lain untuk memeriksa mode saat ini adalah dengan getenforceperintah:

sudo getenforce

Linux vs. SELinux: Apa Perbedaannya?

SELinux dan Linux adalah dua entitas yang berbeda. Linux adalah sistem operasi, dan SELinux adalah modul keamanan yang merupakan bagian dari kernel Linux. 

Perbedaan antara pengaturan Linux standar dan SELinux adalah:

  • Tujuan . Sebagai sistem operasi, Linux mengelola sumber daya perangkat keras dan perangkat lunak, menyediakan fondasi untuk pengembangan perangkat lunak. Di sisi lain, SELinux adalah komponen keamanan yang melindungi Linux dari perangkat lunak berbahaya dan akses tidak sah.
  • Penerapan kontrol akses.  Dalam pengaturan Linux standar, pengguna dan aplikasi memiliki akses tak terbatas ke sistem selama mereka memiliki hak istimewa yang diperlukan. Mekanismenya adalah Discretionary Access Control (DAC) . Namun, SELinux bekerja secara berbeda. Security-Enhanced Linux memungkinkan administrator untuk menentukan izin bagi setiap pengguna, proses, dan sumber daya pada sistem. SELinux memblokir setiap upaya akses yang tidak sah, sementara sysadmin menggunakan kebijakan keamanan untuk menentukan kapan pengguna memiliki akses ke proses atau file sistem operasi tertentu.

App Armor vs. SELinux: Apa Perbedaannya?

AppArmor adalah pesaing utama SELinux. Meskipun kedua framework keamanan MAC melindungi sistem dari perangkat lunak berbahaya dan akses tidak sah ke sumber daya sistem, AppArmor dan SELinux berbeda dalam banyak aspek:

  • Tidak seperti SELinux, AppArmor tidak menggunakan penegakan tipe tetapi mengelola akses menggunakan berkas konfigurasi. AppArmor menggunakan profil, serangkaian aturan untuk mengizinkan atau memblokir setiap program. Profil ini ada untuk setiap program dan merupakan bagian dari berkas konfigurasi. Ketika suatu program mencoba melakukan tindakan yang tidak diizinkan oleh profil, AppArmor memblokir tindakan tersebut dan mencatat kejadian tersebut. SELinux menggunakan MAC, yang memungkinkan sysadmin untuk menentukan izin bagi setiap pengguna, proses, dan sumber daya pada sistem.
  • AppArmor terutama digunakan pada SUSE dan Ubuntu , meskipun kedua sistem tersedia untuk distribusi Linux apa pun.
  • AppArmor lebih mudah dipelajari, dikonfigurasi, dan dikelola. Namun, sistem ini memiliki waktu mulai yang lebih lambat, fleksibilitas yang lebih rendah, dan tingkat kontrol yang lebih rendah. SELinux lebih rumit untuk dikonfigurasi dan dikelola, karena memberikan kontrol kepada sysadmin dan memungkinkan kontrol yang lebih rinci berdasarkan pengguna, proses, dan konteks. 

Kesimpulan

Setelah membaca artikel ini, sobat server akan mengetahui apa itu Security Enhanced Linux (SELinux) dan cara mengonfigurasi konfigurasi keamanan sederhana.

Leave a Reply

Your email address will not be published. Required fields are marked *

Back To Top