-
Data ostatniego logowania po ssh, pop3, imap – lastlog i nie tylko
Pewnie nie raz zdarzyła Wam się sytuacja, że pracodawca lub klient zażądał wykasowania nieużywanych kont email, czy ftp, ale skąd biedny admin ma to wiedzieć? Tutaj przydatne okazuje się polecenie „lastlog”. Nie jest to nic nadzwyczajnego, po prostu odczytanie zawartości bazy logowań znajdującej się w pliku „/var/log/lastlog i odpowiednie jej sformatowanie. Pokazywane treści, tj. login, port i datę ostatniego logowania prezentowane są w kolejności zgodnej z plikiem „/etc/passwd”. Jeśli np. pomiędzy uidem 700, a 1000 mamy pustkę, plik może wydawać się „pojemny” tj. dużo zajmować na dysku, co w rzeczywistości nie jest prawdą. Jeśli wpiszemy tylko „lastlog” to wyświetlą się nam dane ostatniego logowania wszystkich użytkowników, ale jeśli dodamy np. „-u nazwa_usera”, to powinniśmy zobaczyć coś podobnego:
Najgorsze w tym wszystkim jest, że logowanie do poczty przez pop3, czy imap nie jest traktowane jako logowanie do systemu, a więc opisywane polecenie nam się nie przyda. Cóż począć? Z pomocą przychodzi nam pewien administrator z Łodzi – Konrad. Opracował ciekawe rozwiązanie, które zaraz przedstawię. Wykorzystał funkcję „mail_executable” dovecota. Wpierw tworzymy dwa skrypty:
#!/bin/sh
touch /usr/local/share/dovecot_lastlogin/$USER
exec /usr/libexec/dovecot/imap "$@"
oraz drugi:
#!/bin/sh
touch /usr/local/share/dovecot_lastlogin/$USER
exec /usr/libexec/dovecot/pop3 "$@"
Powyższe skrypty powodują, że przy każdym zalogowaniu do poczty tworzony jest w danym katalogu plik o nazwie takiej jak login. Dzięki temu, będziemy w stanie sprawdzić ostatnią aktywność dla pop3 i imap. Aby opisywana funkcjonalność zadziałała należy dopisać poniższą linię do pliku „/etc/dovecot.conf” w sekcji „protocol imap” i „protocol pop3”:mail_executable = ścieżka_do_skryptu
Na końcu restartujemy dovecota i powinno działać 🙂
To już /var/log/mail.log za trudny jest do czytania?
Nie chodzi, że za trudny, ale trzeba sobie ułatwiać życie jak się da 🙂