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
semanagetidak 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
sealertbelum 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
semanagejika layanan menggunakan port non-standar. - ✅ Gunakan
restoreconuntuk memperbaiki label keamanan file yang berubah. - ✅ Periksa log SELinux dengan
audit.logatausealertjika terjadi masalah.
Dengan mengikuti langkah-langkah di atas, Anda dapat memanfaatkan SELinux sebagai lapisan keamanan tambahan tanpa harus menonaktifkannya.
Top comments (0)