Cara membatasi akses ssh untuk pengguna dengan lshell (shell terbatas)

Cara membatasi akses ssh untuk pengguna dengan lshell (shell terbatas)

Lshell atau Limited Shell ditulis dalam Python untuk membatasi pengguna untuk set perintah dan direktori tertentu. Anda dapat membuat lingkungan pengguna dengan akses terbatas, Anda juga dapat mengaktifkan perintah nonaktifkan melalui akses ssh.

Pasang shell terbatas

Gunakan perintah berikut untuk menginstal paket lshell pada sistem berbasis Debian Anda. Untuk sistem operasi lainnya, Anda perlu Google untuk paket lshell untuk distribusi Anda.

$ sudo apt-get install lshell 

Beralih pengguna ke lshell

Sekarang atur lshell sebagai shell default untuk pengguna yang diperlukan. Misalnya mengubah cangkang pengguna Sarah.

$ sudo chsh sarah mengubah shell login untuk sarah masukkan nilai baru, atau tekan enter untuk shell login default [/bin/lshell]:/usr/bin/lshell  

Anda juga dapat mengatur lshell sebagai shell default untuk pengguna selama pembuatan akun pengguna sebagai berikut.

$ sudo adduser -shell/usr/bin/lshell raj 

Konfigurasikan lshell

Sekarang mulailah dengan konfigurasi lshell. Edit file konfigurasi lshell /etc/lshell.conf. Ada 4 bagian dasar dalam file konfigurasi.

  • [global] : Di bagian ini kami mendefinisikan pengaturan yang diterapkan secara global. Misalnya log.
  • [bawaan] : Di bagian ini kami menetapkan nilai default yang menerapkan semua pengguna dan grup. Pengaturan bagian ini dapat ditimpa dengan pengaturan spesifik pengguna dan grup.
  • [NAMA BELAKANG] : Di bagian ini kami menentukan pengaturan spesifik pengguna. Pengaturan bagian ini diterapkan hanya untuk pengguna
  • [GRP: GroupName]: Di bagian ini kami menentukan pengaturan spesifik grup. Pengaturan bagian ini diterapkan untuk semua pengguna grup

A [bawaan] Profil diterapkan untuk semua pengguna menggunakan lshell. Anda bisa membuat [nama belakang] bagian atau grup [GRP: GroupName] bagian untuk menyesuaikan pengguna dan grup preferensi spesifik.

Urutan prioritas adalah Pengguna >> Kelompok >> Bawaan. Bagian Pengguna memiliki prioritas tertinggi dan default memiliki prioritas terendah.

[global] LogPath:/var/log/lshell/Logglevel: 2 [bawaan] Diizinkan: ['ls', 'pwd', 'cd', 'cat', 'cp'] dilarang: [';', '&', '|', ", '>', '<', '$(', '$'] sudo_commands : ['ls', 'more'] warning_counter : 2 aliases : 'll':'ls -l', 'vim':'rvim' prompt : "%[email protected]%h" timer : 0 path : ['/home', '/usr'] env_path : ':/usr/bin/usr/local/bin' env_vars : 'foo':1, 'bar':'helloworld' scp : 1 # or 0 sftp : 1 # or 0 overssh : ['rsync','ls'] strict : 0 history_file : "/home/%u/.lshell_history" [GRP: Wheel] warning_counter: 5 overssh: - ['ls'] [Raj] Diizinkan: 'semua' - ['su', 'rm', 'mv'] path: ['/etc', '/usr'] - ['/usr/local'] home_path: '/home/raj' [Sarah] Diizinkan: + ['ping'] - ['ls'] path: - ['/usr/local'] ketat: 1 scpforce: '/home/sarah/unggah/' 

Misalnya pengguna 'RJA' dan pengguna 'Sarah' keduanya termasuk dalam grup unix 'roda':
Roda grup:

  • Pengguna Wheel Group memiliki konter peringatan yang ditetapkan ke 5
  • Pengguna grup roda tidak diizinkan perintah 'ls'.

Pengguna Raj:

  • Dapat mengakses /dll dan /var tetapi tidak /usr /lokal
  • Dapat mengakses semua perintah dalam perintah Execpt Path -nya - SU, RM, VM
  • memiliki konter peringatan yang ditetapkan ke 5 [default]
  • memiliki jalur rumahnya yang ditetapkan ke '/home/raj'

Pengguna Sarah:

  • Dapat mengakses /rumah dan /usr tetapi tidak /usr /lokal
  • diizinkan perintah default 'ping' tetapi tidak 'ls'
  • Ketegangan diatur ke 1 (dia tidak diizinkan mengetik perintah yang tidak diketahui)
Nama opsiPenjelasan
Logpath Direktori Log (default/var/log/lshell/)
Loglevel Atur Level Log ke 0, 1, 2, 3 atau 4 (0: tidak ada log, 1: paling tidak verbose, 4: log semua perintah)
LogFileName Konfigurasikan nama file log (default adalah %u i.e. nama belakang.catatan)
diizinkan Daftar perintah yang diizinkan atau 'semua' untuk mengizinkan semua perintah di jalur pengguna
terlarang Daftar karakter atau perintah terlarang - tolak vim, karena memungkinkan untuk melarikan diri dari lshell
sudo_commands Daftar perintah yang diizinkan untuk digunakan dengan sudo (8)
warning_counter jumlah peringatan saat pengguna memasukkan nilai terlarang sebelum keluar dari lshell, diatur ke -1 untuk menonaktifkan.
alias Daftar Alias ​​Perintah (Mirip dengan Arahan Alias ​​Bash)
intro PENDAHULUAN Teks untuk dicetak (saat memasuki lshell)
mengingatkan Konfigurasikan Promt Anda Menggunakan %U atau %H (Default: Nama Pengguna)
prompt_short Setel Perbarui Direktori Saat Ini Sort Prompt (Default: 0)
timer nilai dalam hitungan detik untuk timer sesi
jalur daftar jalur untuk membatasi pengguna "geografis"
home_path Atur folder rumah pengguna Anda
Env_path Atur variabel lingkungan $ jalur pengguna
diizinkan_cmd_path daftar jalur; Semua file yang dapat dieksekusi di dalam jalur ini akan diizinkan
Env_vars Tambahkan variabel lingkungan
scp mengizinkan atau melarang penggunaan SCP (diatur ke 1 atau 0)
scp_upload melarang unggahan SCP
scp_download melarang unduhan SCP
sftp Izinkan melarang penggunaan SFTP (diatur ke 1 atau 0)
overssh Daftar perintah yang diizinkan untuk dieksekusi melalui SSH
ketat Ketegangan logging. 1 untuk setiap perintah yang tidak diketahui dianggap terlarang dan 0 tidak diketahui
scpforce paksa file yang dikirim melalui SCP ke direktori tertentu
history_size File riwayat ukuran maksimum
history_file Tetapkan nama file riwayat (default adalah/home/%u/.LHISTORY)
Login_script Tentukan skrip yang akan dijalankan pada login pengguna