GNU/Linux >> Belajar Linux >  >> Linux

Cara Membatasi Akses SSH untuk Pengguna dengan LShell (Limited Shell)

LShell atau Limited Shell ditulis dalam python untuk membatasi pengguna untuk serangkaian perintah dan direktori tertentu. Anda dapat membuat lingkungan pengguna dengan akses terbatas, Anda juga dapat mengaktifkan perintah penonaktifan melalui akses SSH.

Instal Shell Terbatas

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

$ sudo apt-get install lshell

Ganti Pengguna ke LShell

Sekarang atur LShell sebagai shell default untuk pengguna yang Anda perlukan. Misalnya untuk mengganti shell user sarah.

$ sudo chsh sarah

Changing the login shell for sarah
Enter the new value, or press ENTER for the default
	Login Shell [/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 mulai 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 diterapkan semua pengguna dan grup. Pengaturan bagian ini dapat diganti dengan pengaturan khusus pengguna dan grup.
  • [NAMA PENGGUNA] : Di bagian ini kami menentukan pengaturan khusus pengguna. Setelan bagian ini hanya berlaku untuk pengguna
  • [grp:GROUPNAME] : Di bagian ini kami menentukan pengaturan khusus grup. Setelan bagian ini berlaku untuk semua pengguna grup

A [bawaan] profile diterapkan untuk semua pengguna yang menggunakan lshell. Anda dapat membuat [nama pengguna] bagian atau grup [grp:groupname] bagian untuk menyesuaikan pengguna dan preferensi khusus grup.

Urutan prioritas adalah Pengguna>> Grup>> Bawaan . Bagian pengguna memiliki prioritas tertinggi dan Default memiliki prioritas terendah.

[global]
logpath         : /var/log/lshell/
loglevel        : 2

[default]
allowed         : ['ls','pwd','cd','cat','cp']
forbidden       : [';', '&', '|','`','>','<', '$(', '${']
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]
allowed         : 'all' - ['su','rm','mv']
path            : ['/etc', '/usr'] - ['/usr/local']
home_path       : '/home/raj'

[sarah]
allowed         : + ['ping'] - ['ls']
path            : - ['/usr/local']
strict          : 1
scpforce        : '/home/sarah/uploads/'

Misalnya Pengguna 'rja' dan pengguna 'sarah' keduanya termasuk dalam grup UNIX 'roda':
Roda grup:

  • Pengguna grup roda memiliki penghitung peringatan yang disetel ke 5
  • Pengguna grup roda tidak diperbolehkan menggunakan perintah 'ls'.

Raj pengguna:

  • Dapat mengakses /etc dan /var tetapi tidak /usr/local
  • Dapat mengakses semua perintah dalam perintah eksecpt PATH – su, rm, vm
  • memiliki penghitung peringatan yang disetel ke 5 [default]
  • jalur rumahnya disetel ke '/home/raj'

Sarah pengguna:

  • Dapat mengakses /home dan /usr tetapi tidak /usr/local
  • diizinkan perintah default 'ping' tetapi tidak 'ls'
  • ketat diatur ke 1 (dia tidak diperbolehkan mengetik perintah yang tidak dikenal)
Nama opsi Penjelasan
logpath direktori log (default /var/log/lshell/ )
loglevel setel level log ke 0, 1, 2, 3 atau 4 (0:tidak ada log, 1:paling tidak verbose, 4:log semua perintah)
logfilename mengonfigurasi nama file log (defaultnya adalah %u yaitu nama pengguna.log)
diizinkan daftar perintah yang diizinkan atau 'semua' untuk mengizinkan semua perintah di PATH pengguna
dilarang daftar karakter atau perintah terlarang — tolak vim, karena memungkinkan untuk keluar dari lshell
sudo_commands daftar perintah yang diizinkan untuk digunakan dengan sudo(8)
peringatan_counter jumlah peringatan saat pengguna memasukkan nilai terlarang sebelum keluar dari lshell, setel ke -1 untuk menonaktifkan.
alias daftar alias perintah (mirip dengan perintah alias bash)
intro teks pengantar untuk dicetak (saat memasukkan lshell)
cepat konfigurasikan promt Anda menggunakan %u atau %h (default:nama pengguna)
prompt_short setel perintah sortir pembaruan direktori saat ini (default:0)
pengatur waktu nilai dalam detik untuk pengatur waktu sesi
jalan daftar jalur untuk membatasi pengguna “secara geografis”
home_path setel folder beranda pengguna Anda
env_path mengatur variabel lingkungan $PATH pengguna
allowed_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 (set ke 1 atau 0)
scp_upload larang upload scp
scp_download larang download scp
sftp bolehkan melarang penggunaan sftp (set ke 1 atau 0)
luar biasa daftar perintah yang diizinkan untuk dieksekusi melalui ssh
ketat keketatan pencatatan. 1 untuk perintah yang tidak dikenal dianggap sebagai terlarang dan 0 sebagai tidak diketahui
scpforce memaksa file yang dikirim melalui scp ke direktori tertentu
history_size ukuran maksimum file riwayat
history_file setel nama file riwayat (defaultnya adalah /home/%u/.lhistory)
login_script menentukan skrip yang akan dijalankan saat pengguna masuk

Linux
  1. Bagaimana cara memberikan akses ssh ke pengguna di Ubuntu

  2. Bagaimana cara membatasi pengguna SSH ke serangkaian perintah yang telah ditentukan setelah login?

  3. Cara ssh sebagai pengguna lain

  1. Linux – Bagaimana Membatasi Akses Internet Untuk Pengguna Tertentu Di Lan Menggunakan Iptables Di Linux?

  2. Cara membatasi akses internet untuk pengguna tertentu di lan menggunakan iptables di Linux

  3. Aktifkan akses shell SSH tetapi nonaktifkan akses SFTP

  1. Bagaimana Cara Membuat Pengguna Baru Dengan Akses Ssh?

  2. Bagaimana cara membuat pengguna dengan akses hanya baca ke semua file? (yaitu root tanpa izin menulis)

  3. Bagaimana cara membatasi pengguna SSH untuk hanya mengizinkan tunneling SSH?