Jak ograniczyć dostęp do SSH dla użytkownika za pomocą Lshell (Limited Shell)
- 1176
- 126
- Klaudia Woś
Lshell lub Limited Shell jest napisane w Pythonie w celu ograniczenia użytkownika dla określonego zestawu poleceń i katalogów. Możesz tworzyć środowisko użytkownika z ograniczonym dostępem, możesz również włączyć polecenia wyłączające się z dostępem do SSH.
Zainstaluj ograniczoną powłokę
Użyj następującego polecenia, aby zainstalować pakiet LSHell w systemie opartym na debian. W przypadku innego systemu operacyjnego musisz do Google, aby uzyskać pakiet LSHELL, aby uzyskać dystrybucję.
$ sudo apt-get instaluj lshell
Przełącz użytkownika na Lshell
Teraz ustaw Lshell jako domyślną powłokę dla użytkowników, dla których jesteś wymagany. Na przykład, aby zmienić powłokę użytkownika Sarah.
$ sudo chsh Sarah Zmiana powłoki logowania dla Sarah Wprowadź nową wartość lub naciśnij Enter, aby uzyskać domyślną powłokę logowania [/bin/lshell]:/usr/bin/lshell
Możesz także ustawić LShell jako domyślną powłokę dla użytkownika podczas tworzenia konta użytkownika jako następujące.
$ sudo adduser --shell/usr/bin/lshell raj
Skonfiguruj Lshell
Teraz zacznij od konfiguracji Lshell. Edytuj plik konfiguracyjny Lshell /etc/lshell.conf. Istnieją 4 podstawowe sekcje w pliku konfiguracyjnym.
- [globalny]: W tej sekcji definiujemy ustawienia, które stosowały się na całym świecie. Na przykład dzienniki.
- [domyślny] : W tej sekcji ustawiamy wartości domyślne, które zastosowały wszystkich użytkowników i grupy. Ustawienia tej sekcji można zastąpić ustawieniami dla użytkownika i grupy.
- [NAZWA UŻYTKOWNIKA] : W tej sekcji określamy ustawienia specyficzne dla użytkownika. Niniejsze ustawienia sekcji dotyczyły tylko użytkownika
- [GRP: nazwa grupy]: W tej sekcji określamy ustawienia grupy. Niniejsze ustawienia sekcji zastosowane dla wszystkich użytkowników grupy
A [domyślny] Profil jest stosowany dla wszystkich użytkowników korzystających z LSHELL. Możesz stworzyć [nazwa użytkownika] sekcja lub grupa [GRP: GroupName] Sekcja w celu dostosowania użytkowników i grupowych preferencji.
Priorytetem jest Użytkownik >> Grupa >> Domyślny. Sekcja użytkownika ma najwyższy priorytet, a domyślnie ma najniższy priorytet.
[światowy] logpath:/var/log/lshell/loglevel: 2 [domyślny] dozwolone: [„ls”, „pwd”, „cd”, „cat”, „cp”] zabronione: [”; ',' & ',' | ',",'> ',', '<', '$(', '$'] 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] ostrzeżenie_kountera: 5 Orssh: - [„ls”] [Raj] dozwolone: „all” - ['su', 'rm', 'mv'] ścieżka: ['/etc', '/usr'] - ['/usr/local'] home_path: '/home/raj' [Sarah] dozwolone: + ['ping'] - ['ls'] ścieżka: - ['/usr/local'] surowe: 1 scpforce: '/home/sarah/uploads/'
Na przykład użytkownik „RJA” i użytkownika „Sarah” należą do grupy „Wheel”:
Koło grupy:
- Użytkownicy Grupy Wheel ma zestaw ostrzegawczy na 5
- Użytkownicy grupy kół jest niedozwolone polecenie „LS”.
Użytkownik Raj:
- Może uzyskać dostęp /etc i /var, ale nie /usr /lokalny
- Może uzyskać dostęp do wszystkich poleceń w jego poleceniach Path Execpt - Su, Rm, VM
- ma licznik ostrzegawczy ustawiony na 5 [domyślnie]
- ma swoją domową ścieżkę na „/Home/Raj”
Użytkownik Sarah:
- Może uzyskać dostęp /dom i /usr, ale nie /usr /lokalny
- jest dozwolone domyślne polecenie „ping”, ale nie „ls”
- Surowość jest ustawiona na 1 (nie wolno mu pisać nieznanego polecenia)
Nazwa opcji | Wyjaśnienie |
---|---|
logpath | Katalog dziennika (domyślny/var/log/lshell/) |
Loglevel | Ustaw poziom dziennika na 0, 1, 2, 3 lub 4 (0: Brak dzienników, 1: najmniej sprawdzony, 4: Zaloguj wszystkie polecenia) |
LogFileName | Skonfiguruj nazwę pliku dziennika (domyślnie to %u i.mi. nazwa użytkownika.dziennik) |
dozwolony | lista dozwolonych poleceń lub „wszystkie”, aby umożliwić wszystkie polecenia na ścieżce użytkownika |
zabroniony | Lista zakazanego charakteru lub poleceń - zaprzecz vimowi, ponieważ pozwala uciec |
sudo_commands | lista dozwolonych polecenia do użycia z sudo (8) |
ostrzeżenie_kounter | Liczba ostrzeżeń, gdy użytkownik wprowadza zakazaną wartość przed wyjściem z Lshell, ustawiona na -1, aby wyłączyć. |
skróty | Lista aliasów poleceń (podobna do dyrektywy Alias Bash) |
Wprowadzenie | WPROWADZENIE Tekst do wydrukowania (podczas wchodzenia do Lshell) |
podpowiedź | Skonfiguruj PROM, używając %u lub %h (domyślnie: nazwa użytkownika) |
monit_short | Ustaw aktualizację prądu SORT Current Directory (domyślnie: 0) |
regulator czasowy | wartość w sekundach dla czasu sesji |
ścieżka | lista ścieżki do ograniczenia użytkownika „geograficznego” |
home_path | Ustaw folder domowy swojego użytkownika |
env_path | Ustaw ścieżkę zmienną środowiskową $ |
dozwolony_cmd_path | lista ścieżki; Wszystkie pliki wykonywalne w tej ścieżce będą dozwolone |
env_vars | Dodaj zmienne środowiskowe |
SCP | Zezwalaj lub zabraniaj użycia SCP (ustawiony na 1 lub 0) |
scp_upload | Zakaz przesłania SCP |
scp_download | Zakaz pobierania SCP |
sftp | Pozwól zabranianie użycia SFTP (ustawione na 1 lub 0) |
Orssh | Lista poleceń pozwalająca wykonywać SSH |
ścisły | rejestrowanie surowości. 1 Dla każdego nieznanego polecenia jest uważane za zabronione i 0 za nieznane |
scpforce | Force pliki wysłane przez SCP do konkretnego katalogu |
History_Size | Plik historii maksymalny rozmiar |
History_file | Ustaw nazwę pliku historii (domyślnie jest/home/%u/.lhistory) |
login_script | Zdefiniuj skrypt do uruchomienia przy logowaniu użytkownika |
- « Jak uaktualnić do Fedory 23 z Fedory 22 za pomocą DNF
- Authz_CoreerRor Klient odrzucony przez konfigurację serwera »