Mengelola Keamanan SELinux
Tags: ramadhanbersamredhat, redhat, selinux, martabak
Published: 2024-04-03 16:31:22

**Bagian**

**A. Penjelasan tentang SELinux**
**B. Penjelasan 3 mode kerja SELinux**



Mari simak penjelasan berikut.

- **A. Penjelasan tentang SELinux**

**Security Enhanced Linux (SELinux)** adalah lapisan tambahan keamanan sistem. Tujuan utama SELinux adalah untuk melindungi data pengguna dari layanan sistem yang telah dikompromikan. Sebagian besar administrator Linux terbiasa dengan model keamanan izin pengguna/grup/standar dan lainnya. Ini adalah model berbasis pengguna dan grup yang dikenal sebagai kontrol akses diskresioner. SELinux menyediakan lapisan keamanan tambahan yang berbasis objek dan dikendalikan oleh aturan yang lebih canggih, yang dikenal sebagai kontrol akses wajib.

Untuk memungkinkan akses anonim jarak jauh ke server web, port firewall harus dibuka. Namun, ini memberi orang jahat kesempatan untuk membahayakan sistem melalui kerentanan. Jika mereka berhasil mengkompromikan proses server web, mereka mendapatkan izinnya. Secara khusus, izin pengguna dan grup. Pengguna dan grup tersebut memiliki akses baca ke root dokumen. Ini juga memiliki akses ke file dan direktori yang dapat ditulis dunia. **apacheapache/var/www/html/tmp/var/tmp**

SELinux adalah seperangkat aturan keamanan yang menentukan proses mana yang dapat mengakses file, direktori, dan port mana. Setiap file, proses, direktori, dan port memiliki label keamanan khusus yang disebut SELinux context. context adalah nama yang digunakan oleh kebijakan SELinux untuk menentukan apakah suatu proses dapat mengakses file, direktori, atau port. Secara default, kebijakan tidak mengizinkan interaksi apa pun kecuali aturan eksplisit memberikan akses. Jika tidak ada aturan izinkan, tidak ada akses yang diizinkan.

SELinux adalah fitur keamanan penting dari Linux. Akses ke file dan sumber daya lainnya dikendalikan pada tingkat yang sangat terperinci. Proses hanya diizinkan untuk mengakses sumber daya yang ditentukan oleh kebijakan mereka, atau pengaturan SELinux boolean.

Izin file mengontrol pengguna atau grup pengguna mana yang dapat mengakses file tertentu. Namun, pengguna yang diberi akses baca atau tulis ke file tertentu dapat menggunakan file itu dengan cara apa pun yang dipilih pengguna.

Contohnya, dengan akses menulis ke sebuah file, apakah sebuah file data terstruktur yang dirancang untuk ditulis hanya menggunakan program tertentu, boleh dibuka dan diubah oleh editor lain yang bisa menyebabkan kerusakan?

Izin file tidak dapat menghentikan akses yang tidak diinginkan seperti itu. Mereka tidak pernah dirancang untuk mengontrol bagaimana sebuah file digunakan, tetapi hanya siapa yang diizinkan untuk membaca, menulis, atau menjalankan sebuah file.


- **B. Penjelasan 3 mode kerja SELinux**

SELinux terdiri dari “policies”, yaitu peraturan yang memperbolehkan atau mencegah penggunaan aplikasi tertentu. Ada tiga status SELinux, yaitu:

**1. Enforcing** yang artinya semua akses tanpa otorisasi akan ditolak. Dalam kondisi ini, SELinux sedang aktif.
**2. Permissive** yang artinya SELinux membolehkan akses tanpa otorisasi, tetapi diikuti oleh peringatan.
**3. Disable** yang artinya SELinux dalam keadaan mati dan tidak akan memberi peringatan apa pun.


melihat status selinux
```
[root@reizzo ~]# getenforce

Enforcing

# enforcing   ⇒  SELinux is enabled (default)

# permissive  ⇒  MAC is not enabled, but only records audit logs according to Policies

# disabled    ⇒  SELinux is disabled
```

atau menggunakan sestatus jika ingin mendisplay statusnya saja.
```
[root@reizzo ~]# sestatus

SELinux status:                 enabled

SELinuxfs mount:                /sys/fs/selinux

SELinux root directory:         /etc/selinux

Current mode:                   enforcing
Loaded policy name:             targeted


Mode from config file:          enforcing

Memory protection checking:     actual (secure)
Policy MLS status:              enabled

Policy deny_unknown status:     allowed


Max kernel policy version:      31
```



Jika ingin merubah mode dari selinux, maka caranya sebagai berikut.
```
[root@reizzo ~]# vi /etc/selinux/config
# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#     permissive - SELinux prints warnings instead of enforcing.
#     enforcing - SELinux security policy is enforced.


#     disabled - No SELinux policy is loaded.

# change value you'd like to set

SELINUX=enforcing

# SELINUXTYPE= can take one of these three values:
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     targeted - Targeted processes are protected,


#     mls - Multi Level Security protection.

SELINUXTYPE=targeted



# restart to apply change

[root@reizzo ~]# reboot
```
Sebagai catatan, jika merubah selinux dari disable menjadi enforcing/ permisive, maka perlu melabel ulang file sistem menggunakan Selinux , karena jika sebuah file atau direktory dibuat ketika selinux dalam keadaan disable, maka file atau direktory tersebut tidak terlabeli oleh selinux makadari itu kita perlu melabeli nya juga. berikut caranya;

```
[root@reizzo ~]# touch /.autorelabel
[root@reizzo ~]# reboot
```