Model SELinux

SELinux dapat dioperasikan dalam 3 cara yang berbeda, yaitu :

  • Enforcing : SELinux menolak akses berdasarkan aturan kebijakan SELinux, yaitu sebagai pedoman yang mengontrol keamanan mesin.
  • Permissive : SELinux tidak menolak akses, tetapi penolakan login untuk tindakan jika berjalan dalam mode enforcing kembali.
  • Disabled : Silahkan artikan sendiri wkwkwkwkw.

Perintah getenforce akan menampilkan mode SELinux saat ini, sedangkan setenforce digunakan mengubah mode SELinux yaitu Enforcing atau Permissive dengan diikuti oleh angka 1 atau 0 selama sesi saat ini saja.

Anda perlu untuk mengedit file /etc/selinux/config dan aturlah set variabel SELinux dari Enforcing, Permissive, atau Disabled.

Berikut contoh dari perintah-perintah di atas:

# getenforce
# setenforce 0
# getenforce
# setenforce 1
# getenforce
# cat /etc/selinux/config

getenforce

Biasanya Anda akan menggunakan setenforce untuk beralih mode SELinux (Enforcing ke Permissive dan sebaliknya) sebagai langkah pemecahan masalah pertama. Jika SELinux saat ini diatur ke enforcing apabila menurut pengalaman Anda sudah memecahkan masalahnya, dan jika Anda set ke permissive, Anda belum berkeyakinan bahwa yang anda cari ke dalam masalah izin SELinux permissive.

SELinux Contexts

SELinux Contexts terdiri dari Lingkungan akses kontrol dimana keputusan tersebut berdasarkan SELinux user, role, dan type (dan opsional level) :

  • SELinux user melengkapi akun pengguna Linux regular dengan memetakan ke akun SELinux user, yang mana digunakan SELinux context untuk proses didalam sesi tersebut, dimana secara eksplisit menentukan peran mereka diperbolehkan dan tingkatannya.
  • Konsep peran sebagai perantara antara domain dan pengguna SELinux dalam mendefinisikan yang dapat mengakses proses domain dan jenis file. Ini akan melindungi sistem Anda terhadap kerentanan serangan eskalasi.
  • Tipe didefinisikan tipe file SELinux atau Proses SELinux domain. Dalam keadaan normal. Proses dapat dicegah dari pengakses file dari proses akses file yang digunakan, sehingga akses hanya diperbolehkan jika aturan kebijakan SELinux tertentu yang memungkinkan hal tersebut dapat diakses.

Mari kita lihat bagaimana semua dapat bekerja melalui contoh-contoh berikut:

Contoh 1 : Merubah default port untuk SSH

dalam mengamankan SSH, disini dijelaskan adalah merubah default port SSH, dimana langkah ini adalah salah satu langkah keamanan pertama yang dilakukan untuk mengamankan server Anda terhadap serangan dari luar. Silahkan untuk mengedit file /etc/ssh/sshd_config dan ganti port ke 9999 :

Port 9999

Simpan perubahan tersebut, dan restart sshd:

# systemctl restart sshd
# systemctl status sshd

Change SSH

Seperti yang Anda lihat, sshd tidak dapat dimulai.

Pemeriksaan cepat dari /var/log/audit/audit.log menunjukkan bahwa sshd ditolak ijinnya untuk memulai pada port 9999, karena port tersebut untuk layanan JBoss Management:

# cat /var/log/audit/audit.log | grep AVC | tail -1

Inspect SSH log

Pada point ini Anda bisa menonaktifkan SELinux (tapi Jangan!) seperti yang telah dijelaskan sebelumnya cobalah untuk memulai sshd kembali, dan harus berjalan. Namun Utilitas semanage dapat memberitahu kita apa yang perlu dirubah agar dapat memulai sshd dengan port yang telah dirubah tanpa ada masalah dengan port yang telah dirubah.

Jalankan,

# semanage port -l | grep ssh

untuk mendapatkan daftar dari port-port SELinux yang memungkinkan sshd dapat berjalan pada port tersebut.

Semanage tool

Mari kita rubah port di /etc/ssh/sshd_config ke port 9998, dan menambahkan port ke ssh_port_t context, kemudian restart service sshd :

# semanage port -a -t ssh_port_t -p tcp 9998
# systemctl restart sshd
# systemctl is-active sshd

Semanage Add Port

Seperti yang Anda lihat, layanan sshd telah berhasil kali ini. Contoh ini menggambarkan bahwa fakta SELinux mengontrol TCP port number untuk tipe kepemilikan port tersebut.

Sumber : www.tecmint.com

Next Post Previous Post