Cara Mengehadkan Akses SSH Untuk Pengguna dengan Lshell (Limited Shell)

Cara Mengehadkan Akses SSH Untuk Pengguna dengan Lshell (Limited Shell)

Lshell atau Limited Shell ditulis dalam python untuk mengehadkan pengguna untuk set arahan dan direktori tertentu. Anda boleh membuat persekitaran pengguna dengan akses terhad, anda juga boleh mengaktifkan arahan melumpuhkan akses SSH.

Pasang shell terhad

Gunakan arahan berikut untuk memasang pakej lshell pada sistem berasaskan debian anda. Untuk sistem pengendalian lain, anda perlu Google untuk pakej Lshell untuk pengedaran anda.

$ sudo apt-get memasang lshell 

Tukar pengguna ke lshell

Sekarang tetapkan lshell sebagai shell lalai untuk pengguna yang anda perlukan. Contohnya untuk menukar cangkang pengguna Sarah.

$ sudo chsh sarah menukar shell login untuk Sarah Masukkan nilai baru, atau tekan Enter untuk shell masuk lalai [/bin/lshell]:/usr/bin/lshell  

Anda juga boleh menetapkan Lshell sebagai shell lalai untuk pengguna semasa penciptaan akaun pengguna seperti berikut.

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

Konfigurasikan Lshell

Sekarang mulakan dengan konfigurasi lshell. Edit fail konfigurasi lshell /etc/lshell.Conf. Terdapat 4 bahagian asas dalam fail konfigurasi.

  • [Global]: Dalam bahagian ini kita mentakrifkan tetapan yang digunakan secara global. Contohnya log.
  • [lalai]: Dalam bahagian ini, kami menetapkan nilai lalai yang menggunakan semua pengguna dan kumpulan. Tetapan bahagian ini dapat ditindih dengan tetapan khusus pengguna dan kumpulan.
  • [Nama Pengguna]: Dalam bahagian ini, kami menentukan tetapan khusus pengguna. Tetapan seksyen ini hanya digunakan untuk pengguna
  • [GRP: GroupName]: Dalam seksyen ini, kami menentukan tetapan khusus kumpulan. Tetapan bahagian ini digunakan untuk semua pengguna kumpulan

A [lalai] Profil digunakan untuk semua pengguna menggunakan lshell. Anda boleh buat [Nama Pengguna] seksyen atau kumpulan [GRP: GroupName] seksyen untuk menyesuaikan pengguna dan pilihan khusus kumpulan.

Perintah keutamaan adalah Pengguna >> Kumpulan >> Lalai. Bahagian Pengguna mempunyai keutamaan dan lalai tertinggi mempunyai keutamaan terendah.

[Global] LogPath:/var/log/lshell/loglevel: 2 [lalai] dibenarkan: ['ls', 'pwd', 'cd', 'kucing', '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: roda] Warning_counter: 5 overssh: - ['ls'] [Raj] dibenarkan: 'semua' - ['su', 'rm', 'mv'] Path: ['/etc', '/usr'] - ['/usr/local'] home_path: '/home/raj' [Sarah] dibenarkan: + ['ping'] - ['ls'] path: - ['/usr/local'] ketat: 1 scpforce: '/home/sarah/muat naik/' 

Sebagai contoh pengguna 'RJA' dan pengguna 'Sarah' kedua -duanya tergolong dalam kumpulan 'roda' Unix:
Roda Kumpulan:

  • Pengguna kumpulan roda mempunyai kaunter amaran yang ditetapkan hingga 5
  • Pengguna kumpulan roda tidak dibenarkan arahan 'ls'.

Pengguna Raj:

  • Boleh mengakses /etc dan /var tetapi tidak /usr /tempatan
  • Boleh mengakses semua arahan dalam perintah eksekutif jalannya - Su, RM, VM
  • mempunyai kaunter amaran yang ditetapkan kepada 5 [lalai]
  • Adakah jalan rumahnya ditetapkan ke '/rumah/raj'

Pengguna Sarah:

  • Boleh mengakses /rumah dan /usr tetapi tidak /usr /tempatan
  • dibenarkan arahan lalai 'ping' tetapi tidak 'ls'
  • ketat ditetapkan kepada 1 (dia tidak dibenarkan menaip perintah yang tidak diketahui)
Nama pilihanPenjelasan
LogPath direktori log (lalai/var/log/lshell/)
Loglevel Tetapkan tahap log ke 0, 1, 2, 3 atau 4 (0: tiada log, 1: paling tidak verbose, 4: log semua arahan)
logfilename Konfigurasikan nama fail log (lalai adalah %u i.e. nama pengguna.log)
dibenarkan Senarai arahan yang dibenarkan atau 'semua' untuk membenarkan semua arahan di laluan pengguna
dilarang Senarai watak atau arahan terlarang - menafikan Vim, kerana ia membolehkan untuk melarikan diri dari Lshell
sudo_commands Senarai arahan yang dibenarkan untuk digunakan dengan sudo (8)
Amaran_counter Bilangan amaran apabila pengguna memasuki nilai terlarang sebelum keluar dari Lshell, ditetapkan ke -1 untuk melumpuhkan.
alias Senarai Perintah Aliases (serupa dengan Arahan Alias ​​Bash)
Pengenalan Pengenalan Teks ke Cetak (semasa memasuki Lshell)
segera Konfigurasikan promt anda menggunakan %u atau %h (lalai: nama pengguna)
prompt_short Tetapkan Kemas Kini Direktori Semasa Susun Prompt (Lalai: 0)
pemasa nilai dalam beberapa saat untuk pemasa sesi
jalan Senarai jalan untuk menyekat pengguna "Geografi"
home_path Tetapkan folder rumah pengguna anda
env_path Tetapkan pembolehubah persekitaran $ Path pengguna
dibenarkan_cmd_path senarai jalan; Semua fail yang boleh dilaksanakan di dalam jalan ini akan dibenarkan
env_vars Tambah pembolehubah persekitaran
SCP Benarkan atau melarang penggunaan SCP (ditetapkan ke 1 atau 0)
scp_upload melarang muat naik SCP
scp_download Melarang muat turun SCP
sftp Benarkan melarang penggunaan SFTP (ditetapkan ke 1 atau 0)
overssh Senarai arahan yang dibenarkan untuk melaksanakan melalui SSH
ketat ketat pembalakan. 1 untuk mana -mana perintah yang tidak diketahui dianggap sebagai dilarang dan 0 tidak diketahui
SCPFORCE memaksa fail yang dihantar melalui SCP ke direktori tertentu
Sejarah_size Saiz maksimum fail sejarah
SEJARAH_FILE Tetapkan nama fail sejarah (lalai adalah/rumah/%u/.lhistory)
Login_script Tentukan skrip untuk dijalankan di log masuk pengguna