GNU/Linux >> Belajar Linux >  >> Linux

Amankan Linux Dengan File Sudoers

Di Linux, file sudoers adalah tempat Anda memberi pengguna hak istimewa yang lebih tinggi. Secara default, hanya pengguna root yang memiliki hak istimewa ini. Namun, dalam beberapa kasus, pengguna biasa mungkin juga perlu memiliki hak istimewa yang lebih tinggi.

Bukan pembaca? Tonton tutorial video terkait ini! Tidak melihat videonya? Pastikan pemblokir iklan Anda dinonaktifkan.

File sudoers terutama untuk dikelola oleh administrator sistem dan dapat sedikit menakutkan bagi pendatang baru. Jangan biarkan hal itu membuat Anda putus asa! Dengan kesabaran dan perhatian terhadap detail, siapa pun dapat belajar mengelola file sudoers secara efektif.

Panduan ini akan mengajari Anda cara mengedit sudoers dan memberi pengguna hak istimewa yang lebih tinggi dengan aman. Anda juga akan mempelajari beberapa praktik terbaik yang perlu diingat saat bekerja dengan sudoers. Jangan pergi ke mana pun; bersiaplah untuk membawa manajemen hak istimewa pengguna Linux Anda ke tingkat berikutnya!

Prasyarat

Tutorial ini akan menjadi demonstrasi langsung. Jika Anda ingin mengikuti, pastikan Anda memiliki sistem Linux dengan akun pengguna biasa yang dapat Anda gunakan. Panduan ini menggunakan sistem Ubuntu 20.04, tetapi distribusi Linux lainnya juga dapat berfungsi.

Ikhtisar File Sudoers Linux

File sudoers tinggal di /etc/sudoers, file teks biasa yang berisi kebijakan tentang hak istimewa apa yang diperoleh pengguna saat menjalankan perintah sudo. Sebelum melangkah lebih jauh, penting untuk membiasakan diri Anda dengan konten dan bagian default file sudoers.

Tangkapan layar di bawah ini menunjukkan konten file sudoers default di Ubuntu 20.04. Isi default file sudoers mungkin berbeda antara distro Linux.

Berikut ini adalah bagian-bagian dalam file sudoers.

Bagian Default

  • Defaults env_reset - Executing commands with sudo creates a new environment with minimal or default environment variables. In most Linux distros, sudo will load the environment variable in the /etc/environment file.
  • Default mail_badpass – Baris ini memicu pengiriman email ke root ketika pengguna memasukkan kata sandi yang salah dengan sudo.
  • Defaults secure_path - This line defines the PATH environment variable that sudo uses instead of the user’s PATH environment.

Hak Istimewa Pengguna dan Grup Sudo

Baris ini mendefinisikan hak istimewa sudo untuk pengguna atau anggota grup tertentu.

Catatan:% di awal menunjukkan bahwa kebijakan tersebut berlaku untuk anggota grup.

  • Bidang pertama mendefinisikan bahwa kebijakannya berlaku untuk root pengguna dan anggota admin dan sudo grup.
  • ALL pertama artinya aturan berlaku untuk semua host.
  • Yang kedua ALL memungkinkan root akun untuk menjalankan perintah sebagai pengguna mana pun.
  • Ketiga ALL memungkinkan root akun untuk menjalankan perintah sebagai grup apa pun.
  • ALL terakhir berarti kebijakan ini berlaku untuk perintah perintah.

Sertakan Arahan

Di akhir file, Anda akan melihat baris yang terlihat seperti komentar tetapi sebenarnya bukan. Baris yang dimulai dengan #include dan #includedir disebut include directives.

#includedir /etc/sudoers.d – Baris ini memberitahu sudo untuk mencari di /etc/sudoers.d direktori untuk file konfigurasi tambahan.

Mengedit File Sudoers dengan Alat yang Tepat

File sudoers adalah file teks biasa yang dapat Anda buka dengan editor teks pilihan Anda—tetapi tidak disarankan untuk melakukannya. Mengapa? Karena konten file sudoers mengikuti sintaks tertentu, editor teks biasa tidak memiliki perlindungan untuk mencegah Anda mengacaukan file sudoers.

Konfigurasi yang tidak tepat dapat menyebabkan masalah keamanan; terburuk, setiap pengguna mungkin kehilangan kemampuan untuk meningkatkan hak istimewa mereka.

Apa alat yang benar? — visudo . Alat ini membuka file sudoers di editor teks default. Selain itu, visudo mencegah pengeditan bersamaan dan melakukan pemeriksaan kesalahan sebelum keluar.

Di Ubuntu 20.04, editor default adalah vim , tetapi Anda dapat menyetel editor alternatif, seperti nano , jika Anda mau.

1. Buka sesi terminal atau SSH ke mesin Linux Anda.

2. Jalankan perintah di bawah ini untuk membuat daftar editor teks yang tersedia di komputer Anda.

sudo update-alternatives --config editor

Seperti yang Anda lihat, editor default saat ini adalah pilihan 5, yaitu vim. Misalkan Anda lebih memilih untuk tetap default, tekan Enter. Jika Anda lebih suka editor lain, tekan nomor pilihan yang sesuai, seperti 0 untuk nano, dan tekan Enter.

3. Sekarang, jalankan perintah di bawah ini untuk membuka file sudoers di editor default.

sudo visudo

Jika file sudoers dibuka di sesi lain, Anda akan melihat kesalahan di bawah ini, dan visudo akan mencegah Anda membuka file tersebut. Dengan cara ini, tidak ada dua pengguna yang dapat membuat perubahan yang bertentangan secara bersamaan.

visudo:/etc/sudoers sibuk, coba lagi nanti

4. Setelah file sudoers terbuka, sengaja menyebabkan kesalahan sintaks dengan menghapus instance terakhir ALL, lalu simpan dan keluar dari editor.

5. visudo will warn you that there’s a syntax error and asks, “What now?”. At this point, you have three options.

  • Ketik e dan tekan Enter untuk mengedit ulang file. Opsi ini memungkinkan Anda memperbaiki file sudoers di editor lagi.
  • Ketik x dan tekan Enter untuk membuang perubahan dan keluar dari visudo .
  • Ketik Q, tekan Enter untuk mengabaikan kesalahan, simpan file sudoers, dan keluar dari visudo. Jangan pilih opsi ini kecuali Anda yakin dengan konsekuensinya.

Dalam contoh ini, tekan x untuk membuang perubahan dan mempertahankan konten file sudoers lama.

Seperti yang Anda lihat, akan sulit untuk mengacaukan file sudoers dengan visudo secara permanen.

Memberikan Hak Istimewa Tertentu

Membuat perubahan langsung pada file sudoers dapat dilakukan tetapi dapat menjadi tidak dapat dikelola seiring dengan berkembangnya kebijakan dan aturan. Alternatif yang lebih baik adalah menggunakan arahan include sebagai gantinya. Dengan cara ini, Anda dapat membuat beberapa file konfigurasi yang berisi kebijakan dan aturan khusus yang berbeda.

Misalkan Anda ingin memberikan sekelompok pengguna untuk menjalankan perintah jaringan tertentu sebagai root. Untuk melakukannya, Anda perlu membuat file di direktori /etc/sudoers.d yang berisi aturan khusus untuk grup tersebut.

1. Pertama, buat grup yang Anda inginkan yang akan menjadi target aturan kustom. Dalam contoh ini, nama grup adalah netadmin.

sudo addgroup netadmin

2. Selanjutnya, buat akun pengguna biasa dan jadikan itu anggota grup netadmin.

sudo adduser ata
sudo usermod -aG netadmin ata
id ata

3. Sekarang, buat file sudoers baru bernama /etc/sudoers.d/networking dan buka dengan visudo.

sudo visudo -f /etc/sudoers.d/networking

4. Salin dan tempel baris berikut ke jaringan berkas.

Cmnd_Alias     CAPTURE = /usr/sbin/tcpdump
Cmnd_Alias     SERVERS = /usr/sbin/apache2ctl, /usr/bin/htpasswd
Cmnd_Alias     NETALL = CAPTURE, SERVERS
%netadmin ALL=NETALL

Baris Cmnd_Alias ​​membuat alias untuk perintah. Dalam contoh ini, Anda menetapkan alias TANGKAP untuk perintah tcpdump dan SERVER untuk perintah apache2ctl dan htpasswd. Anggap baris-baris ini sebagai pengelompokan perintah dan beri nama kolektif.

Baris terakhir menentukan bahwa anggota grup netadmin dapat menjalankan perintah apa pun di alias NETALL sebagai root. Baris ini harus muncul setelah baris Cmnd_Alias.

5. Untuk menguji hak istimewa sudo akun ata, alihkan ke akun pengguna ata.

su - ata

6. Sekarang, jalankan salah satu perintah yang dapat diakses oleh pengguna sudo, seperti tcpdump.

sudo tcpdump -c 5

Seperti yang Anda lihat di bawah, perintah sudo seharusnya berfungsi karena akun memiliki akses untuk menjalankannya.

7. Selanjutnya, uji dan konfirmasikan bahwa akun tidak dapat menjalankan perintah lain yang tidak ada dalam aturan khusus, seperti lshw.

sudo lshw

Akibatnya, upaya sudo gagal karena akun Anda tidak memiliki hak istimewa untuk menjalankan perintah sebagai root.

8. Terakhir, beralih kembali ke akun Anda dengan menjalankan perintah di bawah ini.

exit

Pengerasan Keamanan Menggunakan Opsi passwd_tries

Anda tidak dapat membiarkan siapa pun mencoba memasukkan kata sandi yang salah dengan sudo sesering yang mereka inginkan—itu akan menjadi undangan terbuka untuk serangan brute-force atau penyemprotan kata sandi. Sebagai tindakan pencegahan, Anda harus mengatur jumlah maksimum percobaan ulang dengan menambahkan opsi passwd_tries di dalam file sudoers.

1. Pertama, buka file sudoers khusus dengan visudo.

sudo visudo -f /etc/sudoers.d/networking

2. Tambahkan baris di bawah ini ke akhir file sudoers. Baris ini akan mengizinkan hingga empat upaya kata sandi sudo yang salah sebelum mencegah upaya apa pun lagi.

Defaults passwd_tries=4

File sudoers khusus sekarang akan terlihat sama seperti tangkapan layar di bawah ini. Pastikan untuk menyimpan file dan keluar dari editor.

3. Sekarang, beralih ke akun pengguna ata dan jalankan kembali perintah tcpdump sebagai root. Tapi kali ini, masukkan kata sandi yang salah hingga permintaan kata sandi berakhir.

sudo tcpdump

Setelah upaya keempat Anda dengan kata sandi yang salah, Anda melihat bahwa sudo menghentikan Anda memasukkan kata sandi lain untuk kelima kalinya.

Kesimpulan

Dalam tutorial ini, Anda mempelajari dasar-dasar file sudoers default. Anda membuat aturan khusus dalam file sudoers terpisah untuk memberikan hak istimewa khusus. Membuat dan menerapkan aturan khusus lebih aman daripada menambahkan pengguna ke sudo grup.

Anda juga mempelajari cara menerapkan opsi passwd_tries untuk menentukan berapa banyak upaya kata sandi yang salah yang dapat dilakukan pengguna sebelum Sudo menghentikan upaya otentikasi. Anda dapat meningkatkan kontrol secara terperinci pengguna mana yang memiliki akses ke perintah apa.

Jangan berhenti di sini! Anda dapat melakukan lebih banyak hal dengan file sudoers, seperti menambahkan file kuliah untuk meningkatkan pengalaman sudo pengguna. Terima kasih telah membaca, dan selamat bersenang-senang mengamankan sistem Linux Anda!


Linux
  1. Periksa status file di Linux dengan perintah stat

  2. Salin file di terminal Linux

  3. Ganti nama file di terminal Linux

  1. Pindahkan file di terminal Linux

  2. Analisis kernel Linux dengan ftrace

  3. Salin dan tempel di baris perintah Linux dengan xclip

  1. Temukan file dan direktori di Linux dengan perintah find

  2. Memulai dengan perintah tac Linux

  3. Izin File di Linux dengan Contoh