DEV Community

Cover image for Managing SELinux is easy v:(Indonesian Version)
Muhammad Fauzi
Muhammad Fauzi

Posted on

Managing SELinux is easy v:(Indonesian Version)

A. Controlling SELinux File Contexts

Ketika suatu system menjalankan SELinux, semua proses dan file diberi label. Hal itu untuk mewakili keamanan yang relevan, biasanya dikenal dengan konteks SELinux. File baru yang dibuat pada direktori biasanya labelnya akan mengikuti direktory induknya, untuk memastikan file itu memiliki konteks yang tepat.

Pada umumnya konsep tersebut dapat dirusak.
Pertama, ketika kita membuat suatu file dalm direktory kemudian labelnya akan mengikuti directory induknya, namun ketika kita memindahkannya ke directory yang berbedadengan comand mov file yang dipindahkan tetap akan memiliki label yang sama dengan directory dimana ia dibuat bukan directory di mana ia dipindahkan.
Dua, dengan menyalin file dari directory asalnya kedirectory tujuan dengan mempertahankan konteks SELinuxnya, misalnya dengan comand cp -a, konteks SELinuk akan mempertahankan file asli dari file yang di copy. Namun jika kita hanya menggunakan perintah cp file yang kita copy labelnya akan mengikuti di directory mana file tersebut ditujukan. Gunakan comand ls -Z melihat konteks SELinux pada sebuah file dan ls -Zd untuk melihat konteks SELinux sebuah directory. Semoga mudah dipahami 😊.

Changing the SELinux context of a file

Beberapa cara untuk mengubah konteks sebuah file pada Linux. Gass kita oprek-oprek!.

1. semanage fcontext. Adalah suatu metode untuk mendeklarasikan label default untuk sebuah file yang kemudian menerapkan konteks tersebut ke file dengan command restorasicon. Hal ini dapat memastikan bahwa pelabelan akan sesuai dengan keinginan bahkan setelah system diberi relabled/pelabelan ulang secara menyeluruh.

[root@host ~]# ls -Z /var/www/html/file*
unconfined_u:object_r: user_tmp_t:s0 /var/www/html/file1  unconfined_u:object_r: httpd_sys_content_t:s0/var/www/html/file2
[root@host ~]# semanage fcontext -l
...keluaran dihilangkan...
/var/www(/.*)? semua file system_u:object_r:httpd_sys_content_t:s0
...keluaran dihilangkan... 
[root@host; ~]# restorecon -Rv /var/www/
Relabeled/var/www/html/ file1dari unconfined_u:object_r: user_tmp_t:s0 ke unconfined_u:object_r: : httpd_sys_content_ts0
 [root@host ~]# ls -Z /var/www/html/file*
unconfined_u:object_r: httpd_sys_content_t:s0 /var/www/html/ file1  unconfined_u:object_r: httpd_sys_content_t:s0 /var/www/html/file2

Enter fullscreen mode Exit fullscreen mode

2. chorn. Adalah comand untuk mengubah konteks Linux dan mengatur konteks keamanan pada sebuah file, yang disimpan pada system file. Gunanya untuk menguji dan bereksperimen. Akan tetapi, hal ini tidak menyimpan perubahan konteks dalam database SELinux. Ketika perintah restorecron dijalankan, perubahan yang dilakukan chron akan dipulihkan seperti sebelumnya. Selain itu, jika seluruh file system di relabled/di pelabelan ulang maka, pengubahan konteks dengan chron akan dikembalikan.

[root@host ~]# chcon -t httpd_sys_content_t /virtual
[root@host ~]# ls -Zd /virtual
drwxr-xr-x. root root unconfined_u:object_r: httpd_sys_content_t:s0 /virtual
[root@host ~]# restorecon -v /virtual
Relabeled/virtual dari unconfined_u:object_r: httpd_sys_content_t:s0 ke unconfined_u:object_r: default_t:s0
[root@host ~]# ls -Zd /virtual
drwxr-xr-x. root root unconfined_u:object_r: default_t:s0 /virtual

Enter fullscreen mode Exit fullscreen mode

Defining SELinux Default File Context Rules

semanage fcontext command untuk melihat _dan **_restorecon** untuk mengatur konteks kedefaultnya. Ia menggunakan ekspresi reguler yang diperluas untuk menentukan jalur dan nama file. Untuk expresi reguler yang diperluas umumnya menggunakan fcontext aturan yaitu (/.)?, maksudnya “opsional, / untuk banyak angka atau karakter”.
Opsi *
semanage fcontext** adalah -a, --add , -d, --delete , -l, --list.
Untuk mengontrol SELinux konteks intall terlebih dahulu policycoreutils package dan policycoreutils-python, yang akan berisi command restorecon dan semanage. Untuk melihat konteks yang berjalan gunakan semanage fconteks -l di ikuti dengan restorecon.

B. Adjusting SELinux Policy with Booleans

SELinux booleans

SELinux booleans adalah saklar yang mengubah perilaku kebijakan SELinux atau dengan kata lain aturan yang dapat diaktifkan atau dinonaktifkan. Biasanya digunakan oleh administrator keamanan untuk menyesuaikan kebijakan untuk membuat penyesuaian yang selektif.

Command getsebool digunakan untuk mencantumkan boolean dan statusnya. setsebool untuk mengubah boolean. setsebool -P memodifikasi kebijakan SELinux agar modifikasi tetap ada. Dan semanage boolean -l melaporkan apakah suatu boolean persisten atau tidak, bersama dengan deskripsi singkat tentang boolean tersebut. Pengguna tanpa hak istimewa hanya bisa menggunakan command getsebool, selain command itu untuk menjalankanya harus supper user.

[user@host ~]$ getsebool -a
abrt_anon_write --> off
abrt_handle_event --> off
abrt_upload_watch_anon_write --> on
antivirus_can_scan_system --> off
antivirus_use_jit --> off
...output omitted...
[user@host ~]$ getsebool httpd_enable_homedirs
httpd_enable_homedirs --> off
[user@host ~]$ setsebool httpd_enable_homedirs on
Could not change active booleans. Please try as root: Permission denied
[user@host ~]$ sudo setsebool httpd_enable_homedirs on
[user@host ~]$ sudo semanage boolean -l | grep httpd_enable_homedirs
httpd_enable_homedirs          (on   ,  off)  Allow httpd to enable homedirs
[user@host ~]$ getsebool httpd_enable_homedirs
httpd_enable_homedirs --> on
Enter fullscreen mode Exit fullscreen mode

Gunakan opsi -P untuk membuatnya menulis nilai yang tertunda ke kebijakan dan tetap ada setelah di reboot.

[user@host ~]$ setsebool -P httpd_enable_homedirs on
[user@host ~]$ sudo semanage boolean -l | grep httpd_enable_homedirs
httpd_enable_homedirs          (on   ,   on)  Allow httpd to enable homedirs 
Enter fullscreen mode Exit fullscreen mode

Untuk melihat list boolean yang dalam keaddan default gunakan semanage boolean -l -C .

[user@host ~]$ sudo semanage boolean -l -C
SELinux boolean                State  Default Description

cron_can_relabel               (off   ,   on)  Allow cron to can relabel
Enter fullscreen mode Exit fullscreen mode

Top comments (1)

Collapse
 
whoame3f profile image
Muhammad Fauzi

Hello everyone this is the basic management of SELinux in the Indonesian version 😊