SELinux? What is that? Penting kah?
Tags: ramadhanbersamaredhat, linux, selinux, rha134
Published: 2024-03-22 08:28:26

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yvrsrz0s5hnwecqyi35d.jpg)
## **How SELinux Protects Resources**
**SELinux** adalah keamanan penting bagi linux. Akses ke file dan sumber daya lainnya dikontrol pada tingkat yang sangat terperinci. Proses hanya diizinkan mengakses sumber daya yang ditentukan oleh kebijakannya, atau pengaturan boolean **SELinux**.

Mengontrol izin file pengguna atau grup pengguna mana yang dapat mengakses file tertentu. Namun, pengguna yang diberi akses baca atau tulis ke file tertentu dapat menggunakan file tersebut dengan cara apa pun yang dipilih pengguna, meskipun penggunaan tersebut bukanlah cara penggunaan file tersebut.

**SELinux** merupakan serangkaian kebijakan yang ditentukan oleh pengembang software, yang dengan tepat menyatakan tindakan dan akses apa yang tepat dan diperbolehkan untuk setiap biner yang dapat dieksekusi, konfigurasi file, dan file apa yang digunakan.

## **Why use Security Enhanced Linux?**

**SELinux** menerapkan aturan untuk mencegah kelemahan dalam system aplikasi yang memengaruhi aplikasi lain atau system yang mendasarinya. Ia memberikan keamanan tambahan, hal ini menambah kompleksitas yang **dapat membuat seseorang yang awam tidak menyukai system ini**. 

**_Tiga mode SELinux :_**
- **Enforcing**: _SELinux menerapkan aturan pengontrolan akses_. Ia akan monolak jika ada pelanggaran dalam kontrol akses.
- **Permissive**: _SELinux aktif tetapi tidak sepenuhnya menerapkan kontrol akses_. Ia mencatat peringatan aturan yang dilanggar. Digunakan untuk pengujian dan pemecahan masalah
- **Disabled**: _SELinux dimatikan_, yang membuat tidak ada penolakan, atau dicatatnya pelanggaran pada system.

## **Basic SELinux security concepts**

**SELinuk** merupakan lapisan tambahan pada lapisan keamanan. Tujuan utamanya untuk melindungi data dari pengguna dari layanan sistem yang telah diretas. Bekerja dengan menerapkan kebijakan kontrol akses yang ketat untuk mengontrol akses ke file, direktori, dan port. Dengan ini, **SELinux** membantu melindungi sistem bahkan jika layanan atau proses tertentu diretas, karena **SELinux** dapat mencegah akses yang tidak sah.
Setiap file, proses, direktori, dan port memiliki label keamanan khusus yang disebut _SELinuxcontext_. **Konteks** adalah nama yang digunakan oleh kebijakan **SELinux** untuk menentukan apakah suatu proses dapat mengakses file, direktori, atau port. Secara default, kebijakan ini tidak mengizinkan interaksi apa pun kecuali aturan eksplisit memberikan akses. Jika tidak ada aturan izinkan, maka akses tidak diperbolehkan.

**Label SELinux memiliki beberapa konteks**: user, role, type, dan sensitivity. Pada umumnya setiap service memiliki context yang berbeda dan memiliki peraturan penggunaan direktori yang berbeda pula. Dengan maksud meningkatkan tingkat keamanan.
Banyak commands untuk melihat context SELinux dengan menggunakan opsi **– Z**. misalnya **ps, ls, cp, mkdir**.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yy3iksdf1m7m3f2p0ipb.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/szmwhv96e4p4yqj1yxvz.png)

## **Changing the current SELinux mode**

Untuk menentukan **SELinux** _mode_, gunakan **_getenforce_**. Untuk_ mengganti modenya_ gunakan **_setenforce_** diikuti modenya. Argumen **enforcing 0 Permisive** dan **enforcing 1 Enforcing**. Untuk mematikan SELinux **_selinux 0_** dan untuk mengaktifkan **_selinux 1_**.

```
[user@host ~]# getenforce
Permissive
[user@host ~]# setenforce Enforcing
[user@host ~]# getenforce
Enforcing
```

## **Setting the default SELinux mode**
Anda dapat mengkonfigurasi **SELinux** secara default dengan mengubah file _/etc/selinux/config_. Misalnya _enforcing_ .

```
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes
#               are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
```