DEV Community

kandamalahim
kandamalahim

Posted on

Pastikan server AlmaLinux telah mengatur SELINUX ini!

SELinux (Security-Enhanced Linux) adalah fitur keamanan bawaan di AlmaLinux yang membantu melindungi sistem dari akses yang tidak sah. Secara default, SELinux sudah aktif, sehingga Anda hanya perlu memastikan bahwa konfigurasinya sudah benar.


1. Periksa Status SELinux

Langkah pertama adalah memastikan SELinux sedang berjalan dalam mode Enforcing.

Mode SELinux terdiri dari tiga jenis:

Mode Fungsi
Enforcing Menerapkan aturan keamanan dan memblokir akses yang melanggar. (Mode yang direkomendasikan)
Permissive Tidak memblokir akses, hanya mencatat pelanggaran ke log.
Disabled SELinux tidak aktif.

Cek status SELinux

sestatus
Enter fullscreen mode Exit fullscreen mode

Contoh hasil:

SELinux status:                 enabled
Current mode:                   enforcing
Mode from config file:          enforcing
Enter fullscreen mode Exit fullscreen mode

Jika hasil menunjukkan:

  • Current mode: enforcing → Tidak perlu melakukan apa pun.
  • Current mode: permissive → Ubah ke mode Enforcing.
  • SELinux status: disabled → SELinux dinonaktifkan dan perlu diaktifkan melalui konfigurasi.

Mengaktifkan mode Enforcing tanpa restart

sudo setenforce 1
Enter fullscreen mode Exit fullscreen mode

Catatan: Perintah ini hanya berlaku sampai server di-restart.


2. Mengaktifkan SELinux Secara Permanen

Agar SELinux tetap berada pada mode Enforcing setelah restart, ubah file konfigurasinya.

Buka file konfigurasi

sudo nano /etc/selinux/config
Enter fullscreen mode Exit fullscreen mode

Cari bagian berikut:

SELINUX=permissive
Enter fullscreen mode Exit fullscreen mode

atau

SELINUX=disabled
Enter fullscreen mode Exit fullscreen mode

Ubah menjadi:

SELINUX=enforcing
Enter fullscreen mode Exit fullscreen mode

Contoh konfigurasi lengkap:

SELINUX=enforcing
SELINUXTYPE=targeted
Enter fullscreen mode Exit fullscreen mode

Simpan perubahan kemudian keluar dari editor.

Tips: Jika sebelumnya SELinux dalam keadaan disabled, lakukan restart server agar perubahan diterapkan.


3. Mengizinkan Port Non-Standar

SELinux hanya mengizinkan layanan berjalan pada port yang telah dikenali.

Sebagai contoh, jika Anda mengubah port SSH dari 22 menjadi 2222, maka SELinux akan memblokir koneksi sampai port baru didaftarkan.

Menambahkan port SSH baru

sudo semanage port -a -t ssh_port_t -p tcp 2222
Enter fullscreen mode Exit fullscreen mode

Penjelasan:

  • -a → Menambahkan aturan baru.
  • ssh_port_t → Tipe port untuk layanan SSH.
  • tcp → Protokol yang digunakan.
  • 2222 → Port yang diizinkan.

Memastikan port berhasil ditambahkan

sudo semanage port -l | grep ssh
Enter fullscreen mode Exit fullscreen mode

Contoh hasil:

ssh_port_t    tcp    22,2222
Enter fullscreen mode Exit fullscreen mode

Jika port 2222 muncul, berarti konfigurasi berhasil.

Catatan: Jika perintah semanage tidak ditemukan, instal paket berikut:

sudo dnf install policycoreutils-python-utils

4. Memperbaiki Label Keamanan File

SELinux menggunakan Security Context atau label keamanan pada setiap file.

Jika Anda memindahkan file menggunakan perintah seperti cp atau mv, label tersebut bisa berubah sehingga aplikasi tidak dapat mengakses file.

Gejalanya biasanya berupa pesan:

Permission denied
Enter fullscreen mode Exit fullscreen mode

meskipun izin file (chmod) sudah benar.

Mengembalikan label keamanan

Misalnya untuk direktori web Apache:

sudo restorecon -Rv /var/www/html
Enter fullscreen mode Exit fullscreen mode

Penjelasan:

  • -R → Rekursif ke semua subfolder.
  • -v → Menampilkan proses yang dilakukan.

Melihat label keamanan file

ls -lZ /var/www/html
Enter fullscreen mode Exit fullscreen mode

Contoh:

-rw-r--r--. root root system_u:object_r:httpd_sys_content_t:s0 index.html
Enter fullscreen mode Exit fullscreen mode

Jika label sudah benar, Apache dapat membaca file tersebut tanpa masalah.


5. Memantau Log SELinux

Apabila sebuah aplikasi tiba-tiba tidak dapat berjalan setelah SELinux aktif, kemungkinan aksesnya diblokir oleh kebijakan SELinux.

Melihat log secara langsung

sudo tail -f /var/log/audit/audit.log | grep AVC
Enter fullscreen mode Exit fullscreen mode

Contoh:

AVC denied { read } for pid=1234 comm="httpd"
Enter fullscreen mode Exit fullscreen mode

Log tersebut menunjukkan bahwa SELinux memblokir suatu akses.


Membaca log dengan format yang lebih mudah dipahami

sudo sealert -a /var/log/audit/audit.log
Enter fullscreen mode Exit fullscreen mode

sealert akan memberikan penjelasan mengenai:

  • Penyebab masalah.
  • Layanan yang diblokir.
  • Rekomendasi perbaikan.

Catatan: Jika sealert belum tersedia, instal paket berikut:

sudo dnf install setroubleshoot-server

Ringkasan Perintah Penting

Tujuan Perintah
Cek status SELinux sestatus
Aktifkan mode Enforcing sudo setenforce 1
Edit konfigurasi permanen sudo nano /etc/selinux/config
Tambah port SSH sudo semanage port -a -t ssh_port_t -p tcp 2222
Lihat daftar port SSH `sudo semanage port -l \
Perbaiki label keamanan {% raw %}sudo restorecon -Rv /var/www/html
Lihat label file ls -lZ /var/www/html
Pantau log SELinux `sudo tail -f /var/log/audit/audit.log \
Analisis log {% raw %}sudo sealert -a /var/log/audit/audit.log

Kesimpulan

Untuk menjaga keamanan server AlmaLinux:

  • ✅ Pastikan SELinux berada pada mode Enforcing.
  • ✅ Simpan konfigurasi secara permanen di /etc/selinux/config.
  • ✅ Daftarkan port baru menggunakan semanage jika layanan menggunakan port non-standar.
  • ✅ Gunakan restorecon untuk memperbaiki label keamanan file yang berubah.
  • ✅ Periksa log SELinux dengan audit.log atau sealert jika terjadi masalah.

Dengan mengikuti langkah-langkah di atas, Anda dapat memanfaatkan SELinux sebagai lapisan keamanan tambahan tanpa harus menonaktifkannya.

Top comments (0)