Cara membatasi akses pengguna pada mesin linux

Cara membatasi akses pengguna pada mesin linux

Objektif

Pelajari cara membatasi akses pengguna pada mesin Linux

Sistem Operasi dan Versi Perangkat Lunak

  • Sistem operasi: - Semua distribusi Linux

Persyaratan

  • Izin root

Kesulitan

MUDAH

Konvensi

  • # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root
    langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
  • $ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa

Perkenalan

Dalam tutorial ini kita akan belajar cara membatasi akses ke mesin Linux dengan berinteraksi dengan dua file: /etc/securetty, yang mari kita tentukan dari konsol apa yang dimungkinkan untuk masuk secara langsung sebagai root, dan /etc/keamanan/akses.conf, di mana kami dapat menetapkan beberapa aturan untuk membatasi akses bagi pengguna atau grup tertentu dari asal -usul tertentu.

Batasi login root

Hal pertama yang akan kami lakukan, ini adalah belajar cara mengedit /etc/securetty file untuk mengizinkan akses root langsung hanya pada beberapa konsol spesifik. Mari kita lihat file: Ini seperti apa pada mesin Centos7:



Konsol VC/1 VC/2 VC/3 VC/4 VC/5 VC/6 VC/7 VC/8 VC/9 VC/10 VC/11 TTY1 TTY2 TTY3 TTY4 TTY5 TTY6 TTY7 TTY8 TTY9 TTY10 TTY11 TTYS0 TTYSCLP0 SCLP_LIN0 320 320 Tty1 HVC0 HVC1 HVC2 HVC3 HVC4 HVC5 HVC6 HVC7 HVSI0 HVSI1 HVSI2 XVC0 

Apa yang kita lihat di sana itu hanya daftar semua terminal dari mana akses langsung sebagai pengguna root diizinkan. Mari kita fokus pada Tty perangkat untuk saat ini. Buka file dengan editor teks dan komentari tty1 pintu masuk:

[…] #Tty1 tty2 tty3 tty4 tty5 tty6 tty7 tty8 tty9 tty10 tty11 […] 

Simpan dan Keluar dari Editor Teks. Sekarang, jika kita beralih ke yang pertama Tty dengan menekan CTRL + ALT + 1 atau dengan berlari Chvt 1, Dan cobalah untuk masuk sebagai root, kami akan memiliki hasil berikut:

Seperti yang diharapkan, sistem menolak akses kami sebagai root dari TTY yang ditentukan. Untuk mendapatkan hak istimewa root dan menyelesaikan tugas administratif, kita harus login sebagai pengguna normal dan kemudian menggunakan sudo atau su (atau login dari TTY lain jika diizinkan).

Ketahuilah bahwa ini tidak akan mempengaruhi kemampuan untuk masuk sebagai root saat menggunakan ssh. Untuk menghindari perilaku tertentu, Anda harus mengkonfigurasi server SSH, memodifikasi /etc/ssh/sshd_config file, dan atur Leverrootlogin arahan ke TIDAK



Pengaturan Aturan Akses di/etc/Security/Access.conf

Jika /etc/securetty File memungkinkan kami untuk menentukan dari terminal mana yang dimungkinkan untuk masuk secara langsung sebagai root, mengatur aturan akses di /etc/keamanan/akses.conf file, kami dapat mengizinkan atau menolak akses ke pengguna atau grup tertentu dari asal spesifik.

Masukkan PAM_ACCESS.jadi modul

Sebelum menyiapkan aturan kami, kami perlu memodifikasi /etc/pam.d/login, untuk menambahkan Pam_Access.Jadi modul yang akan memungkinkan Pam untuk memindai mengakses.conf mengajukan aturan yang akan kami definisikan. Gunakan editor teks favorit Anda untuk memodifikasi file sehingga terlihat seperti ini:

#%PAM-1.0 auth [user_unknown = abaikan sukses = ok abaikan = abaikan default = buruk] pam_securetty.Jadi auth Substack System-Auth Auth termasuk akun postlogin yang diperlukan PAM_NOGIN.jadi akun diperlukan Pam_Access.Jadi akun termasuk kata sandi sistem-auth termasuk sistem-auth # pam_selinux.Jadi dekat harus menjadi sesi aturan sesi pertama yang diperlukan PAM_SELINUX.jadi tutup sesi yang diperlukan Pam_loginuid.Jadi sesi opsional Pam_console.Jadi # Pam_Selinux.Jadi terbuka seharusnya hanya diikuti oleh sesi yang akan dieksekusi dalam sesi konteks pengguna yang diperlukan PAM_SELINUX.Jadi buka sesi yang diperlukan Pam_Namespace.Jadi sesi opsional Pam_keyinit.Jadi sesi Force Revoke termasuk sesi sistem -auth termasuk postlogin -Session PAM_CK_CONNECTOR OPSIONAL.Jadi 

Apa yang telah kami lakukan adalah menambahkan Akun yang diperlukan PAM_ACCESS.Jadi baris di akhir akun bagian. Sekarang kami sudah menyiapkan Pam kita bisa mulai berbicara tentang aturan akses.

Sintaks aturan

Untuk mendefinisikan aturan di mengakses.conf file, kita harus menghormati sintaks yang sangat sederhana dan jelas. Peraturan terdiri dari tiga bagian, dipisahkan oleh usus besar:

Izin: Pengguna: Origins

Bagian pertama dari aturan ini menentukan izin, dan terdiri dari a - atau + Tanda: Yang pertama menciptakan apa yang dapat kita sebut aturan 'tolak', sedangkan yang terakhir menentukan aturan di mana izin akses diberikan.

Di bagian kedua kami memberikan subjek aturan. Bagian ini terdiri dari daftar grup atau nama login. Untuk menghindari konflik antara pengguna dan grup yang dapat dinamai dengan cara yang sama, entri grup dapat ditentukan dalam tanda kurung, tetapi hanya jika nodefgroup Opsi diatur di /etc/pam.d/login file yang kami modifikasi di atas, di akhir baris yang kami tambahkan.

Bagian ketiga dari aturan ini menentukan sumber dari mana akses diizinkan atau ditolak, menjadi itu: satu atau lebih ttys, Nama host, alamat host, atau domain.



Kata kunci

Sintaks aturan mari kita bahkan menggunakan beberapa kata kunci yang kuat. Pertama -tama yang kami miliki SEMUA. Kata kunci ini akan selalu cocok: misalnya, ketika digunakan di bagian kedua, itu akan cocok dengan semua pengguna atau grup yang mungkin, atau saat digunakan di yang ketiga, semua sumber yang mungkin.

Itu TIDAK ADA kata kunci memiliki efek sebaliknya SEMUA, Dan LOKAL, yang hanya memiliki akal asal bagian aturan, akan cocok dengan setiap string yang tidak mengandung a.'. Akhirnya kata kunci yang sangat kuat KECUALI yang memungkinkan kami untuk menentukan pengecualian ke aturan yang ditetapkan.

Beberapa contoh

File ini memberikan beberapa contoh yang berguna, mari kita lihat beberapa di antaranya. Pertama -tama kami memiliki yang berikut:

- : Semua kecuali root: tty1

Baris ini, akan memungkinkan kami mendapatkan hasil sebaliknya yang telah kami peroleh sebelumnya dengan memodifikasi /etc/securetty File: Pertama -tama kami memiliki - tanda, yang berarti itu adalah a membantah aturan. Di bagian selanjutnya, dipisahkan oleh usus besar, kami memiliki Semua kecuali root,yang menentukan bahwa aturan tersebut harus diterapkan untuk semua pengguna kecuali akar, Dan di bagian ketiga, kita melihat bahwa aturan yang ditentukan hanya valid ketika seseorang mencoba mengakses dari tty1.

Contoh lain, kali ini dengan beberapa nama pengguna:

-: wsbscaro wsbsecr wsbspac wsbsym wscosor wstaiwde: semua

Aturan ini melarang akses ke WSBSCARO, WSBSECR, WSBSPAC, WSBSYM, WSCOSOR dan WSTAIWDE dari semua sumber (lihat SEMUA kata kunci beraksi)

Sesuatu yang lebih kompleks. Kali ini aturan tersebut menolak akses ke semua pengguna yang bukan anggota grup roda di lokal Login:

-: Semua kecuali (roda): lokal

Akhirnya contoh yang menentukan aturan untuk login jarak jauh:

+ : root: 192.168.200.1 192.168.200.4 192.168.200.9

Seperti yang harus kita pahami sekarang, aturan ini memungkinkan akar untuk mengakses sistem hanya dari alamat IP yang ditentukan.

Kasus uji

Kita dapat memverifikasi apa yang kami katakan di atas dengan kasus uji: mari kita bangun aturan untuk menolak akses EGDOC (akun saya tentang sistem ini) dari tty1 dan menambahkannya di akhir /etc/keamanan/akses.conf mengajukan:

-: egdoc: tty1

Sekarang, jika kita beralih ke tty1 Dan cobalah untuk masuk, kami mendapatkan respons kasar ini dari sistem:

Harap perhatikan bahwa urutan aturan yang ditentukan di /etc/keamanan/akses.conf File sangat penting, karena aturan dievaluasi dalam urutan penampilan.

Tutorial Linux Terkait:

  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • File Konfigurasi Linux: 30 Teratas Paling Penting
  • Unduh Linux
  • Can Linux mendapatkan virus? Menjelajahi kerentanan Linux…
  • Distro linux terbaik untuk pengembang
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 22.04 Jammy Jellyfish…
  • Perintah Linux: 20 perintah terpenting teratas yang Anda butuhkan untuk…
  • Instal Arch Linux di VMware Workstation
  • Perintah Linux Dasar