Dev.to Security 🔐 Cybersecurity 👁 0 📖 3 min read

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 konfi

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

Contoh hasil:

SELinux status:                 enabled
Current mode:                   enforcing
Mode from config file:          enforcing

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

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

Cari bagian berikut:

SELINUX=permissive

atau

SELINUX=disabled

Ubah menjadi:

SELINUX=enforcing

Contoh konfigurasi lengkap:

SELINUX=enforcing
SELINUXTYPE=targeted

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

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

Contoh hasil:

ssh_port_t    tcp    22,2222

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

meskipun izin file (chmod) sudah benar.

Mengembalikan label keamanan

Misalnya untuk direktori web Apache:

sudo restorecon -Rv /var/www/html

Penjelasan:

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

Melihat label keamanan file

ls -lZ /var/www/html

Contoh:

-rw-r--r--. root root system_u:object_r:httpd_sys_content_t:s0 index.html

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

Contoh:

AVC denied { read } for pid=1234 comm="httpd"

Log tersebut menunjukkan bahwa SELinux memblokir suatu akses.

Membaca log dengan format yang lebih mudah dipahami

sudo sealert -a /var/log/audit/audit.log

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.

📰 Read the original article on Dev.to Security

Originally published by Dev.to Security. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.