Monitoruj przychodzącą sesję SSH w czasie rzeczywistym


21

Czy istnieje oprogramowanie linux do monitorowania przychodzącej sesji ssh. W poprzedniej pracy powiedziano mi, że jeśli kiedykolwiek potrzebujesz wsparcia od Red Hat, możesz mieć SSH na swoim komputerze i możesz obserwować, co robią.

Jestem w podobnej sytuacji, w której chcę ssh do mojego komputera znajomych, aby mu pomóc, ale chcę, aby mógł obserwować to, co robię w celach edukacyjnych i upewnić się, że nie robię niczego złośliwego.

Jakieś sugestie?

Dzięki


na tej stronie pojawiła się reklama ObserveIT i są one wystarczająco dobrym rozwiązaniem, aby wypróbować coś, czego chciał SaaSish.
— kagali-san

Odpowiedzi:


15

GNU Screen ma tę zdolność, możesz pozwolić konkretnemu użytkownikowi powłoki działać tylko poprzez ekran.

https://www.linux.com/learn/tutorials/442418-using-screen-for-remote-interaction


1
Jedynym problemem związanym z ekranem jest to, że będą musieli rozpocząć sesję ekranu po zalogowaniu, aby zobaczyć sesję. Również jako technik, który zapewnił zdalne wsparcie i to zrobił, nie możesz monitorować wszystkich okien ekranu jednocześnie, aby nadal mogli uruchamiać polecenia na innym ekranie i ukrywać je.
— Citizen Kepler

3

Myślę, że ekran jest tym, czego szukasz, ale jeśli nie chcesz siedzieć i oglądać wideo sesji użytkownika, możesz spojrzeć na powłokę sudo.

Jeśli ustawisz tego użytkownika jako jego powłokę, możesz mieć pełne nagranie wszystkiego, co się wydarzyło, możesz „odtworzyć” go ponownie i obejrzeć, kiedy / jeśli zajdzie taka potrzeba.

Jedynym możliwym minusem tego jest to, że dzienniki mogą bardzo się rozrosnąć, na przykład jeśli uruchomią takie polecenie find /, będziesz też mieć wszystko to zarejestrowane - więc prawdopodobnie będziesz musiał wybrać konta, aby je włączyć, zamiast robić to globalnie

Jeśli chodzi o umożliwienie dostawcom dostępu do logowania, jest to prawdopodobnie idealne, ponieważ masz pełną ścieżkę audytu wszystkiego, co zrobili, wszystko (nawet backspace) jest rejestrowane i przechowywane do odtworzenia.

log_outputjest twoją opcją nagrywania dla sudoers i sudoreplay(8)jest twoim odtwarzaczem.

Jak na sudoersstronie podręcznika :

log_output: Jeśli jest ustawiony, sudo uruchomi polecenie w pseudo tty i zarejestruje wszystkie dane wyjściowe wysyłane na ekran, podobnie jak polecenie script (1). Jeśli standardowe wyjście lub standardowy błąd nie jest podłączony do tty użytkownika, z powodu przekierowania we / wy lub ponieważ polecenie jest częścią potoku, dane wyjściowe są również przechwytywane i przechowywane w osobnych plikach dziennika.

W pliku sudoers umieściłbyś coś takiego:

User_Alias SHELL_ACCOUNTS = root,jack
Defaults: SHELL_ACCOUNTS log_output

Lub do rejestrowania grupowego

Defaults:%shellusers log_output

Szczegółowe informacje można znaleźć na stronie http://www.gratisoft.us/sudo/sudoers.man.html .


Czy możesz podać trochę więcej informacji? Co dokładnie rozumiesz przez „sudo shell”? Jak ustawić na to powłokę użytkownika? Gdzie zostaną zapisane dzienniki?
— GJ.

Zaktualizowałem swoją odpowiedź kilkoma szczegółami, aby wyjaśnić.
— Kserkses


2

Możesz użyć polecenia skryptu. Zbuduj linię w .login lub .profile użytkownika, którego sesję ssh chcesz monitorować. Kiedy się zaloguje, skrypt / log jest generowany z jego I / O, co daje polecenie uruchomienia i wynik tych poleceń. W czasie rzeczywistym możesz po prostu dostosować skrypt i obserwować, co użytkownik robi w czasie rzeczywistym.

Nie można wkleić linku do Twojej referencji, ale możesz po prostu google w poleceniu „skrypt”, a otrzymasz referencje.


1

Możesz użyć kibitza . Cytowanie ze strony man:

kibitz pozwala dwóm (lub więcej) osobom na interakcję z jedną powłoką (lub dowolnym dowolnym programem).

W Fedorze jest on zawarty w pakiecie expect .



Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.