Cara membatasi akses ssh untuk pengguna dengan lshell (shell terbatas)
- 4257
- 887
- Dr. Travis Bahringer
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 opsi | Penjelasan |
---|---|
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 |
- « Cara meningkatkan ke Fedora 23 dari Fedora 22 menggunakan DNF
- Klien authz_coreerror ditolak oleh konfigurasi server »