Strona 1 z 1

[SOLVED] Program do monitorowania komend użytkownika

: 07 maja 2014, 09:45
autor: civi
Witam
Mam taki problem. Mam serwer z linuxem i uruchomione ssh. Dostęp do tego serwera mają również inne osoby. Zdażyło się już tak, że przez jakąś głupią komende coś nie działało, dlatego szukam programu, który będzie informować mnie jakie komendy zostały wykonane przez użytkownika. Dzięki takiej historii mógłbym działać "wstecz" i naprawiać serwer. Znalazłem parę programów, ale nie każdy spełnia moje założenia.
Psacct - wyświetla nawet fajnie co użytkownik robił, aczkolwiek na danym serwerze, a ja potrzebowały bym aby to było przesyłane na inny serwer.
Snoppy Logger - loguje do sysloga, ale nie loguje potrzebnych mi rzeczy
Whowatch - loguje tylko w czasie rzeczywistym
Logwatch - nie loguje tego co chcę.
Szukałem również coś do zabbixa ale niestety nie znalazłem.
Może ktoś wie jakim progrmem można zrobić taką funkcjonalność. Jak by miało to gui to by było ekstra.

Re: Program do monitorowania komend użytkownika

: 07 maja 2014, 12:22
autor: perzan
W katalogu domowym użytkownika jest plik

Kod: Zaznacz cały

 .bash_history 
, do którego zapisywane są komendy wpisywane w terminalu. Nie wiem czy dokładnie o to Ci chodzi, ale umożliwia podgląd "wstecz" o którym mówisz. Co prawda są one (chyba) zapisywane dopiero po zamknięciu okna terminala.

Re: Program do monitorowania komend użytkownika

: 07 maja 2014, 12:27
autor: ethanak
a ja odpalę mc/ash/cokolwiek i tyle w bash_history zobaczysz że odpaliłem...

Re: Program do monitorowania komend użytkownika

: 07 maja 2014, 13:29
autor: perzan
Jest jeszcze polecenie

Kod: Zaznacz cały

 history 
A co do MC to można podejrzeć odpowiedni plik

Kod: Zaznacz cały

 less ~/.local/share/mc/history 
Podejrzewam, bo nie mam pewności, że inne terminale/programy mają zapisywaną historię w podobny sposób.

Re: Program do monitorowania komend użytkownika

: 07 maja 2014, 13:36
autor: ethanak
hm...

Kod: Zaznacz cały

$ python
>>> import os
>>> os.system('niechceszwiedzieccorobie')

Re: Program do monitorowania komend użytkownika

: 07 maja 2014, 13:55
autor: perzan
:D
hmmm...

Kod: Zaznacz cały

#! /bin/bash
cd jakis_katalog
rm jakis_bardzo_wazny_plik
I też nie ma śladu w history. Poza wpisem, że skrypt został odpalony.

Ja Cię nie podpuszczam, ale paczki przez dpkg używając pythona nie zainstalujesz ;) (No dobra - pewnie zainstalujesz. Tylko po co do tego pythona zaciągać?)
Skojarzył mi się wpis z bash.org.pl
(...)
<bbirdy> zeby w ogole tu sie pytac, musze korzystac z lynxa
<szatkus> Nie podpuszczam Cię, ale nie napiszesz posta wgetem.
Ale to chyba zły i nikczemny pracownik jest, który pythona odpala tylko po to by system popsuć. Względnie skrypt na złość adminowi pisze ;)
I tutaj pytanie do Autora wątku - o szukanie jakich komend "psujących system" chodzi? Bo jak widać na miecz się i tarcza znajdzie vide "dla chcącego..."

Re: Program do monitorowania komend użytkownika

: 07 maja 2014, 14:06
autor: ethanak
a widziałeś ubuntu bez pythona? albo pythona bez os?
na mój gust kolega wątkotwórca zbyt mocno uszczęśliwia swoich userów (tzn. rób co chcesz a ja to naprawię).
a prostszą sprawą byłoby założenie wątku w stylu "jak maksymalnie ograniczyć prawa użyszkodnika na ssh" (podejrzewam, że kolega @jacekalex ze trzy strony na ten temat by napisał) - a poza tym wprowadzić regułę typu "rozrabianie skutkuje passwd -l a pretensje rozpatruję każdego 30 lutego".
ale to nie mój serwer i zasady korzystania koleś sobie sam ustala.

-- 07 maja 2014 14:12 --

lekko ot - wgetem da się napisać posta ;)

Re: Program do monitorowania komend użytkownika

: 07 maja 2014, 14:53
autor: jacekalex
ethanak pisze:a widziałeś ubuntu bez pythona? albo pythona bez os?
na mój gust kolega wątkotwórca zbyt mocno uszczęśliwia swoich userów (tzn. rób co chcesz a ja to naprawię).
a prostszą sprawą byłoby założenie wątku w stylu "jak maksymalnie ograniczyć prawa użyszkodnika na ssh" (podejrzewam, że kolega @jacekalex ze trzy strony na ten temat by napisał) - a poza tym wprowadzić regułę typu "rozrabianie skutkuje passwd -l a pretensje rozpatruję każdego 30 lutego".
ale to nie mój serwer i zasady korzystania koleś sobie sam ustala.

-- 07 maja 2014 14:12 --

lekko ot - wgetem da się napisać posta ;)
Przesada, jeden post starczy.
Dla Hakerów jest Grsec-ACL, Apparmor albo Selinux, dla Administratorów jakaś restrykcyjna powłoka (jest ich jak mrówków) np IBSH, do tego Chrooty, Jaile, i diabli wiedzą, co jeszcze.

Jak ktoś chce, to może też napisać własną powłokę, wystarczy średnia znajomość języka C/C++.
Dowód rzeczowy. :twisted:

Pozdro
:craz:

Re: Program do monitorowania komend użytkownika

: 07 maja 2014, 16:54
autor: enedil
@jacekalex zainspirowałeś mnie i napisałem własną powłokę ;)

Kod: Zaznacz cały

#include <iostream>
#include <cstdlib>
#include <string>
#include <unistd.h>

int main(int argc, char * argv[])
{
    std::string buffer;
    char *username = getlogin();
    char prompt;
    if (getuid())
        prompt = '$';
    else
        prompt = '#';
    do
    {
        std::cout << username << ":" << get_current_dir_name() << prompt << ' ';
        std::getline(std::cin, buffer);
        system(buffer.c_str());
        buffer.clear();
    }
    while (buffer != "exit");
    return 0;
}
EDIT: Widzę, że jednak nie działa :/ nie obsługuje zmiany katalogu.

Re: Program do monitorowania komend użytkownika

: 07 maja 2014, 17:20
autor: jacekalex
Tu coś o logowaniu poleceń basha:
http://askubuntu.com/questions/93566/ho ... n-a-server
U mnie działa.

http://blog.rootshell.be/2009/02/28/bas ... to-syslog/
Ten też działa, nawet lepiej. :twisted:

Re: Program do monitorowania komend użytkownika

: 08 maja 2014, 13:21
autor: Ubek308
civi pisze:Zdażyło się już tak, że przez jakąś głupią komende coś nie działało, dlatego szukam programu, który będzie informować mnie jakie komendy zostały wykonane przez użytkownika..
A ja zaczne od elementaŻa:
User nie moze rozwalic systemu.
Jesli rozwali jakis program czy dane - znaczy ze ma do nich dostep.
Pytanie czy nie ma za duzo dostepu.
Do tego wymyslono opcje read-only.

Re: Program do monitorowania komend użytkownika

: 13 maja 2014, 10:28
autor: civi
Dobra znalazłem rozwiazanie.
Wszystko loguję programem script. Jest on dostępny out-of-box. W /etc/profile mam następujace linie

Kod: Zaznacz cały

# Record terminal sessions.
if [ "x$SESSION_RECORD" = "x" ]
then
timestamp=`date "+%d_%m_%Y_%H:%M_%N"`
touch /sciezka/session.$USER.$timestamp
output=/sciezka/session.$USER.$timestamp
SESSION_RECORD=started
export SESSION_RECORD
script -t -f -q 2>${output}.timing $output
exit
exit
fi
Jedyny problem jest taki, że nie mogę się połaczyć przez WinScp do serwera.

Re: [SOLVED] Program do monitorowania komend użytkownika

: 13 maja 2014, 11:23
autor: Ubek308
Nie chce mi sie analizowac ale to w/w rejestruje chyba tylko to co sie dzieje pod X-ami a user moze w kazej chwili przerzucic sie na tty1, odpalic emacsa i spod niego robic rozne rzeczy podobnie jak z mc, emacs ma mozliwosc wyskoku do shella, polaczenia sie po ftp i umie jeszcze pare innych rzeczy o jakich dzis w szkolach nie ucza.
Wszystko zalezy od szczegolow rzecz jasna.

Re: [SOLVED] Program do monitorowania komend użytkownika

: 13 maja 2014, 12:29
autor: ethanak
bo to nie jest "program do monitorowania użytkowników" tylko "program do poprawiania nastroju pseudoadmina".
równie dobrze zadziała skrypt

Kod: Zaznacz cały

#!/bin/bash
echo wszystko w porządku możesz iść spać
ale jeśli komuś wystarczy...