File/Direktori Aman Menggunakan ACLS (Daftar Kontrol Akses) di Linux

File/Direktori Aman Menggunakan ACLS (Daftar Kontrol Akses) di Linux

Sebagai Admin Sistem, Prioritas pertama kami adalah melindungi dan mengamankan data dari akses yang tidak sah. Kami semua menyadari izin yang kami atur menggunakan beberapa perintah Linux yang bermanfaat seperti Chmod, chown, chgrp… dll. Namun, set izin default ini memiliki beberapa batasan dan kadang -kadang mungkin tidak berfungsi sesuai kebutuhan kita. Misalnya, kami tidak dapat mengatur set izin yang berbeda untuk pengguna yang berbeda di direktori atau file yang sama. Dengan demikian, Daftar Kontrol Akses (ACLS) diimplementasikan.

Daftar Kontrol Akses Linux

Katakanlah, Anda memiliki tiga pengguna, 'tecmint1','tecmint2' Dan 'tecmint3'. Masing -masing memiliki kelompok umum mengatakan 'acl '. Pengguna 'tecmint1'hanya menginginkan itu'tecmint2'Pengguna bisa membaca Dan mengakses file yang dimiliki oleh 'tecmint1'Dan tidak ada orang lain yang memiliki akses apa pun untuk itu.

ACLS (Daftar Kontrol Akses) memungkinkan kita melakukan trik yang sama. ACL ini memungkinkan kami untuk memberikan izin untuk a pengguna, kelompok dan kelompok pengguna mana pun yang tidak ada dalam daftar grup pengguna.

Catatan: Sesuai dokumentasi produk RedHat, ia menyediakan dukungan ACL untuk sistem file Ext3 dan sistem file yang diekspor NFS.

Cara Memeriksa Dukungan ACL Dalam Sistem Linux

Sebelum bergerak maju, Anda harus memiliki dukungan untuk ACL pada kernel saat ini dan sistem file yang dipasang.

1. Periksa kernel untuk dukungan ACL

Jalankan perintah berikut untuk memeriksa dukungan ACL untuk sistem file dan POSIX_ACL = y opsi (jika ada N alih-alih Y, Maka itu berarti kernel tidak mendukung ACL dan perlu dikompilasi ulang).

[[email dilindungi] ~]# grep -i acl /boot /config* config_Ext4_fs_posix_acl = y Config_Reiserfs_fs_posix_acl = y CONFIG_JFS_POSIX_ACL=y CONFIG_XFS_POSIX_ACL=y CONFIG_BTRFS_FS_POSIX_ACL=y CONFIG_FS_POSIX_ACL=y CONFIG_GENERIC_ACL=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_NFS_V3_ACL=y CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3_ACL=y CONFIG_NFS_ACL_SUPPORT=m CONFIG_CIFS_ACL=y CONFIG_9P_FS_POSIX_ACL=y

2. Periksa paket yang diperlukan

Sebelum mulai bermain dengan ACL pastikan bahwa Anda memiliki paket yang diperlukan terpasang. Di bawah ini adalah paket yang diperlukan yang perlu diinstal menggunakan yum atau apt-get.

[[email dilindungi] ~]# yum instal nfs4-acl-tools acl libacl [on on Topi merah sistem berbasis]
[[email dilindungi] ~] $ sudo apt-get instal nfs4-acl-tools acl [on on Debian sistem berbasis]

3. Periksa sistem file yang dipasang untuk dukungan ACLS

Sekarang, periksa sistem file yang dipasang yang dipasang dengan opsi ACL atau tidak. Kita bisa gunakan 'gunung'Perintah untuk memeriksa hal yang sama seperti yang ditunjukkan di bawah ini.

[[Email Dilindungi] ~]# mount | grep -i root /dev /mapper /fedora -root on /type ext4 (rw, relatime, data = dipesan)

Tetapi dalam kasus kami tidak menunjukkan ACL secara default. Jadi, selanjutnya kami memiliki opsi untuk memasang kembali partisi yang dipasang lagi menggunakan opsi ACL. Tapi, sebelum bergerak maju, kami memiliki opsi lain untuk memastikan bahwa partisi dipasang dengan opsi ACL atau tidak, karena untuk sistem terbaru mungkin diintegrasikan dengan opsi pemasangan default.

[[email dilindungi] ~]# tune2fs -l/dev/mapper/fedora -root | Opsi pemasangan default grep ACL: user_xattr acl

Dalam output di atas, Anda dapat melihat opsi pemasangan default sudah memiliki dukungan untuk ACL. Pilihan lain adalah untuk menghidupkan kembali partisi seperti yang ditunjukkan di bawah ini.

[[email dilindungi] ~]# mount -o remount, acl /

Selanjutnya, tambahkan entri di bawah ini ke file '/etc/fstab' untuk membuatnya permanen.

/dev/mapper/fedora-root/ext4 default, acl 1 1

Sekali lagi, kembalikan partisi.

[[email dilindungi] ~]# mount -o remount /

4. Untuk server NFS

Di server NFS, jika sistem file yang diekspor oleh server NSF mendukung ACL dan ACL dapat dibaca oleh klien NFS, maka ACLS digunakan oleh sistem klien.

Untuk menonaktifkan ACL pada NFS Share, Anda harus menambahkan opsi "no_acl" di dalam '/etc/exportfsfile di server NFS. Untuk menonaktifkannya di sisi klien NSF lagi gunakan "no_aclOpsi selama waktu pemasangan.

Cara menerapkan dukungan ACL dalam sistem Linux

Ada dua jenis ACLS:

  1. Akses ACLS: Akses ACL digunakan untuk memberikan izin pada file atau direktori apa pun.
  2. ACL default: ACL default digunakan untuk pemberian/pengaturan daftar kontrol akses pada direktori tertentu saja.

Perbedaan antara akses ACL dan ACL default:

  1. ACL default hanya dapat digunakan pada tingkat direktori.
  2. Sub direktori atau file apa pun yang dibuat dalam direktori itu akan mewarisi ACL dari direktori induknya. Di sisi lain file mewarisi ACL default sebagai ACLS aksesnya.
  3. Kami memanfaatkan “-D”Untuk mengatur ACL default dan ACL default adalah opsional.
Sebelum mengatur ACL default

Untuk menentukan ACL default untuk file atau direktori tertentu, gunakan 'getfacl' memerintah. Dalam contoh di bawah ini, getfacl digunakan untuk mendapatkan ACL default untuk folder 'Musik'.

[[Email Dilindungi] ~] # getFacl Music/ # File: Music/ # Pemilik: Root # Group: Root Pengguna :: RWX Group :: R-X Lainnya :: R-X Default: User :: RWX Default: Group :: R-X Default: Lainnya :: RW-
Setelah mengatur ACL default

Untuk mengatur ACL default untuk file atau direktori tertentu, gunakan 'setfacl' memerintah. Dalam contoh di bawah ini, setfacl Perintah akan mengatur ACLS baru (membaca Dan menjalankan) di folder 'Musik'.

[[Email Dilindungi] ~] # setfacl -m d: o: rx musik/ [[email dilindungi] ~] # getfacl musik/ # file: musik/ # pemilik: root # grup: root pengguna :: rwx grup :: r -x lainnya :: r-x Default: user :: rwx default: grup :: r-x default: lainnya :: r-x

Cara mengatur ACL baru

Menggunakan 'setfacl ' Perintah untuk mengatur atau memodifikasi pada file atau direktori apa pun. Misalnya, untuk memberi membaca Dan menulis izin untuk pengguna 'tecmint1'.

# setfacl -m u: tecmint1: rw /tecmint1 /contoh

Cara melihat ACL

Menggunakan 'getfacl'Perintah untuk melihat ACL pada file atau direktori apa pun. Misalnya, untuk melihat ACL di '/tecmint1/contoh'Gunakan perintah di bawah ini.

# getfacl/tecmint1/contoh # file: tecmint1/example/ # pemilik: tecmint1 # grup: tecmint1 pengguna :: rwx pengguna: tecmint1: rwx pengguna: tecmint2: r-- grup :: rwx mask :: rwx lainnya ::---

Cara menghapus ACL

Untuk menghapus ACL dari file/direktori apa pun, kami gunakan X Dan B opsi seperti yang ditunjukkan di bawah ini.

# setFacl -x file/direktori ACL # Hapus hanya ACL yang ditentukan dari file/direktori. # SetFacl -B File/Direktori #Removing Semua ACL Dari File/Direcoty

Mari kita terapkan ACL tentang skenario berikut.

Dua pengguna (tecmint1 Dan tecmint2), keduanya memiliki nama kelompok sekunder yang sama 'ACL'. Kami akan membuat satu direktori yang dimiliki oleh 'tecmint1'dan akan memberikan membaca Dan menjalankan Izin di Direktori untuk Pengguna 'tecmint2'.

Langkah 1: Buat dua pengguna dan hapus kata sandi dari keduanya

[[email dilindungi] ~]# untuk pengguna di tecmint1 tecmint2> do> useradd $ user> passwd -d $ user> selesai menghapus kata sandi untuk pengguna tecmint1. Passwd: Sukses Menghapus Kata Sandi Untuk Pengguna Tecmint2. Passwd: Sukses

Langkah 2: Buat grup dan pengguna ke grup sekunder.

[[email dilindungi] ~]# groupadd acl [[email dilindungi] ~]# usermod -g acl tecmint1 [[email dilindungi] ~]# usermod -g acl tecmint2

Langkah 3: Buat direktori /tecmint dan mengubah kepemilikan menjadi tecmint1.

[[email dilindungi] ~]# mkdir /tecmint1 [[email dilindungi] ~]# chown tecmint1 /tecmint1 /
[[Email Dilindungi] ~]# ls -ld /tecmint1 /drwxr-xr-x 2 root tecmint1 4096 Apr 17 14:46 /tecmint1 /
[[email dilindungi] ~]# getfacl /tecmint1 getFacl: Menghapus memimpin '/' dari nama jalur absolut # File: TecMint1 # Pemilik: TecMint1 # Group: Root User :: RWX Group :: R-X Lainnya :: R-X

Langkah 4: Masuk dengan tecmint1 dan membuat direktori di /tecmint map.

[[Email Dilindungi] ~] $ su - tecmint1 Login terakhir: Kamis 17 Apr 14:49:16 IST 2014 di PTS/4
[[email dilindungi] ~] $ cd / tecmint1 / [[email dilindungi] tecmint1] $ mkdir contoh
[[Email Dilindungi] Tecmint1] $ ll Total 4 DRWXRWXR-X 2 TECMINT1 TECMINT1 4096 Contoh
[[email dilindungi] Tecmint1] $ whoami tecmint1

Langkah 5: Sekarang atur ACL menggunakan 'setfacl', sehingga 'tecmint1'Akan memiliki semuanya rwx izin, 'tecmint2'Hanya akan memiliki membaca izin di 'contoh'Folder dan lainnya tidak akan memiliki izin.

$ setfacl -m u: tecmint1: rwx contoh/ $ setfacl -m u: tecmint2: r-- contoh/ $ setfacl -m Lain :: RWX Pengguna: TecMint1: RWX Pengguna: TecMint2: R-- Group :: R-X MASK :: RWX Lainnya ::---

Langkah 6: Sekarang login dengan pengguna lain i.e. 'tecmint2'Di terminal lain dan ubah direktori menjadi'/tecmint1'. Sekarang coba lihat konten yang digunakan 'ls'Perintah dan kemudian coba ganti direktori dan lihat perbedaan seperti di bawah ini.

[[email dilindungi] ~] $ su - tecmint2 login terakhir: Kamis 17 Apr 15:03:31 IST 2014 di PTS/5
[[email dilindungi] ~] $ cd/ tecmint1/ [[email dilindungi] tecmint1] $ ls -lr contoh/ contoh/: total 0
[[Email Dilindungi] TecMint1] $ CD Contoh/ -Bash: CD: Contoh/: Izin ditolak 
[[Email Dilindungi] Tecmint1] $ getfacl Contoh/ # File: Contoh # Pemilik: TecMint1 # Grup: TecMint1 Pengguna :: RWX Pengguna: TecMint1: RWX Pengguna: TecMint2: R-- Group :: RWX MASK :: RWX Lainnya ::---

Langkah 7: Sekarang berikan 'menjalankan' izin untuk 'tecmint2' pada 'contohfolder dan kemudian gunakan 'CD'Perintah untuk melihat efeknya. Sekarang 'tecmint2'Memiliki izin untuk melihat dan mengubah direktori, tetapi tidak memiliki izin untuk menulis apa pun.

[[Email Dilindungi] TecMint1] $ setFacl -M U: TecMint2: R -x Contoh/ [[Email Dilindungi] TecMint1] $ getFacl Contoh/ # File: Contoh # Pemilik: TecMint1 # Group: TecMint1 Pengguna :: RWX Pengguna: TecMint1: RWX Pengguna : tecmint2: r-x group :: rwx mask :: rwx lainnya ::---
[[Email Dilindungi] ~] $ su - Tecmint2 Login Terakhir: Kamis 17 Apr 15:09:49 IST 2014 di PTS/5
[[email dilindungi] ~] $ cd/ tecmint1/ [[email dilindungi] tecmint1] $ cd contoh/ [[email dilindungi]] $ getfacl .
[[email dilindungi] Contoh] $ mkdir tes mkdir: tidak dapat membuat direktori 'tes': izin ditolak 
[[email dilindungi] Contoh] $ Tes Touch Sentuhan: Tidak dapat menyentuh 'tes': izin ditolak 

Catatan: Setelah menerapkan ACL, Anda akan melihat tambahan '+output 'ls -l' seperti di bawah ini.

[[Email Dilindungi] Tecmint1]# ll Total 4 DRWXRWX ---+ 2 TECMINT1 TECMINT1 4096 Contoh 17:01

Tautan referensi

Dokumentasi ACL