Istnieje kilka osób z dostępem root do konkretnej maszyny wirtualnej, którą zarządzam. Chciałbym dowiedzieć się, którego adresu IP użyto do zalogowania się do konta root.
Możesz uzyskać dostęp do dzienników, aby zobaczyć, jakie polecenia zostały wykonane wcześniej: sudo less /root/.bash_historywciąż próbuję to zbadać, wydaje się to naprawdę dobre pytanie :)
To zależy od twojej dystrybucji lub systemu operacyjnego. sshdloguje gdzieś każde logowanie i dołącza odpowiedni adres IP do logowania w formacie takim jak ten:
Aug 20 15:56:53 machine sshd[2728]: Accepted publickey for root from 192.168.1.2 port 49297
Ta część jest spójna, ale sposób jej dotarcia może się różnić. W systemach opartych na systemdużyj journalctl:
journalctl /usr/bin/sshd
aby wyświetlić listę wszystkich komunikatów dziennika z sshdpliku wykonywalnego. Możesz to zmienić dla logowania użytkownika root lub innych kryteriów i ograniczyć je według daty za pomocą --sincei --until(patrz man journalctl).
Alternatywnie i historycznie wiadomości będą logowane (zwykle) gdzieś /var/log. Zwykle pojawiają się sshdwiadomości /var/log/auth.log, ale dokładny plik może się znacznie różnić. Cokolwiek to jest:
grep sshd /var/log/auth.log
da ci zasadniczo równoważne wyjście do journalctlwersji.
Fajna sztuczka, ale IMO lepiej jest po prostu użyćlast
Creek
7
Nie należy zezwalać na korzystanie sshprzez użytkowników, logując się bezpośrednio jako root (używając hasła roota lub certyfikatu w /root/.ssh/authorized_keys), jeśli chcesz kontrolować, kto zalogował się jako root. Zamiast tego użyj jednego konta dla każdej osoby i pozwól jej użyć, sudoaby uzyskać uprawnienia roota. W ten sposób znajdziesz w odpowiednim dzienniku (pozycja pliku dziennika zależy od posiadanej dystrybucji, możesz nawet skonfigurować demona dziennika, aby wysyłał wiadomości do innego komputera) user john ran the command 'sudo rm -rf /'. Cóż, może jednak nie znajdziesz łatwo tego jednego polecenia w logach.
Po pierwsze, to nie odpowiada na pytanie. Po drugie, zawsze powinieneś mieć sposób na uratowanie systemu. Co dzieje się, gdy używasz uwierzytelniania LDAP, a serwer LDAP umiera? Jak zamierzasz zalogować się do skrzynki?
Patrick
4
@Patrick Po pierwsze, pytanie zaczyna się od „istnieje kilka osób z dostępem root do konkretnej maszyny wirtualnej”, więc sensowne jest zasugerowanie, że właściwym podejściem nie jest kontrola IP, ale kontrola użytkowników. Po drugie, kwestia, którą stawiasz, nie ma związku: jeśli dana osoba ma uzyskać dostęp do maszyny w przypadku awarii LDAP, która nie działa, powinna ona mieć własne konto lokalne, a jeśli ma ona wykonywać prace administracyjne w takiej sytuacji, konto lokalne powinno mieć sudomoc. Nigdy nie ma prawdziwego powodu do dzielenia konta między dwiema osobami, ale w razie potrzeby dana osoba może mieć dwa konta.
pqnet
Pytanie nie polega na tym, jak zmienić ich konstrukcję, ale na tym, jak uzyskać adres IP. Jeśli chodzi o inne rozwiązanie, teraz masz konto lokalne (być może kilka) z hasłem, które nigdy nie wygasa. Nie uważałbym tego za ulepszenie.
Patrick
@ Patryk cokolwiek. Zarządzasz własnym serwerem, ja zarządzam moim. Masz rację, ludzie przeczytają twój komentarz i zdecydują.
pqnet
1
@Patrick poprawa w stosunku do czego? Posiadanie osobnych kont użytkowników dla oddzielnych osób jest prawie na pewno poprawą w stosunku do posiadania kilku osób na jednym rootkoncie.
jw013,
0
Z podanego krótkiego opisu wydaje się, że lepiej byłoby skonfigurować system monitorowania dzienników. Pomoże Ci to monitorować loginy, tworzyć alerty, porównywać dane z kilku dni i oczywiście wykresy.
Ale jeśli chcesz go tymczasowo monitorować , możesz użyć lastpolecenia.
last | grep root | grep -v tty | awk '{print $3}'
To daje listę IPslub Hostnamesskąd użytkownik root zalogowany.
sudo less /root/.bash_history
wciąż próbuję to zbadać, wydaje się to naprawdę dobre pytanie :)Odpowiedzi:
Możesz użyć
last
polecenia, aby uzyskać te informacjeJak niewątpliwie widać, trzecia kolumna pokaże zdalny adres IP w przypadku logowania SSH.
last
używa/var/log/wtmp
pliku, więc ta metoda jest podobna do odpowiedzi G-Mana (nieco prostsze, ponieważ nie musisz określać ścieżki do pliku).źródło
To zależy od twojej dystrybucji lub systemu operacyjnego.
sshd
loguje gdzieś każde logowanie i dołącza odpowiedni adres IP do logowania w formacie takim jak ten:Ta część jest spójna, ale sposób jej dotarcia może się różnić. W systemach opartych na
systemd
użyjjournalctl
:aby wyświetlić listę wszystkich komunikatów dziennika z
sshd
pliku wykonywalnego. Możesz to zmienić dla logowania użytkownika root lub innych kryteriów i ograniczyć je według daty za pomocą--since
i--until
(patrzman journalctl
).Alternatywnie i historycznie wiadomości będą logowane (zwykle) gdzieś
/var/log
. Zwykle pojawiają sięsshd
wiadomości/var/log/auth.log
, ale dokładny plik może się znacznie różnić. Cokolwiek to jest:da ci zasadniczo równoważne wyjście do
journalctl
wersji.źródło
Komenda
powinien pokazywać informacje podobne do tego
who
, co pokazuje, ale cofać się w czasie.źródło
last
Nie należy zezwalać na korzystanie
ssh
przez użytkowników, logując się bezpośrednio jako root (używając hasła roota lub certyfikatu w/root/.ssh/authorized_keys
), jeśli chcesz kontrolować, kto zalogował się jako root. Zamiast tego użyj jednego konta dla każdej osoby i pozwól jej użyć,sudo
aby uzyskać uprawnienia roota. W ten sposób znajdziesz w odpowiednim dzienniku (pozycja pliku dziennika zależy od posiadanej dystrybucji, możesz nawet skonfigurować demona dziennika, aby wysyłał wiadomości do innego komputera)user john ran the command 'sudo rm -rf /'
. Cóż, może jednak nie znajdziesz łatwo tego jednego polecenia w logach.źródło
sudo
moc. Nigdy nie ma prawdziwego powodu do dzielenia konta między dwiema osobami, ale w razie potrzeby dana osoba może mieć dwa konta.root
koncie.Z podanego krótkiego opisu wydaje się, że lepiej byłoby skonfigurować system monitorowania dzienników. Pomoże Ci to monitorować loginy, tworzyć alerty, porównywać dane z kilku dni i oczywiście wykresy.
Ale jeśli chcesz go tymczasowo monitorować , możesz użyć
last
polecenia.To daje listę
IPs
lubHostnames
skąd użytkownik root zalogowany.źródło