Как удалить историю входов

Posted by

Порой просто необходимо после того как подключился к Ubuntu системе закрыть от любопытствующих возможность узнать, а действительно ли Вы подключались к ней через удаленное подключение (SSH) или входили локально (через vSphere Client, Hyper-V, iLo, IPMI и т.д)

ekzorchik@system:~$ ssh -l ekzorchik 172.40.40.21

ekzorchik@172.40.40.21's password:

ekzorchik@srv-trusty2:~$ lastlog | grep pts

ekzorchik pts/0 172.40.40.7 Sun Mar 11 17:25:15 +0300 2018

ekzorchik@srv-trusty2:~$ sudo lastb

btmp begins Fri Dec 22 16:34:54 2017

ekzorchik@srv-trusty2:~$ last | grep pts

ekzorchi pts/0 172.40.40.7 Sun Mar 11 17:25 still logged in

ekzorchik@srv-trusty2:~$ tail -f /var/log/auth.log

Mar 11 21:26:10 srv-trusty2 sshd[891]: Server listening on 0.0.0.0 port 22.

Mar 11 21:26:10 srv-trusty2 sshd[891]: Server listening on :: port 22.

Mar 11 21:26:26 srv-trusty2 sshd[1066]: Accepted password for ekzorchik from 172.40.40.7 port 57400 ssh2

Mar 11 21:26:26 srv-trusty2 sshd[1066]: pam_unix(sshd:session): session opened for user ekzorchik by (uid=0)

Для пояснения каждая команда это свой лог файл который ведет система:

Команда Журнал логов Описание
last /var/log/wtmp История успешных входов/выходов
lastb /var/log/btmp История неудавшихся попыток входа
lastlog /var/log/lastlog Список последних подключавшихся пользователей

Чтобы не оставлять следы в системе своего пребывания данные лог файлы следует почистить, но только если у Вас права суперпользователя в противном случае увы сделать это не получится.

ekzorchik@srv-trusty2:~$ sudo sed -i "s/PrintLastLog .*/PrintLastLog no/1" /etc/ssh/sshd_config

ekzorchik@srv-trusty2:~$ sudo rm -f /etc/rsyslog.d/50-default.conf

ekzorchik@srv-trusty2:~$ sudo chmod 000 /etc/cron.daily/logrotate

ekzorchik@srv-trusty2:~$ sudo chmod 000 /etc/logrotate.d/*

ekzorchik@srv-trusty2:~$ sudo rm -f /var/run/utmp

ekzorchik@srv-trusty2:~$
sudo bash -c "cat /dev/null > /var/log/lastlog"

ekzorchik@srv-trusty2:~$ sudo bash -c "cat /dev/null > /var/log/utmp"

ekzorchik@srv-trusty2:~$ sudo bash -c "cat /dev/null > /var/log/wtmp"

ekzorchik@srv-trusty2:~$ sudo find /var/log -type f -name "*tmp" -exec rm -f {} \;

ekzorchik@srv-trusty2:~$ sudo find /var/log -type f -name "*.log" -exec rm -f {} \;

ekzorchik@srv-trusty2:~$ sudo find /var/log -type f -name "*log" -exec rm -f {} \;

После проверяю, что знает обо мне система, как сейчас так и после перезагрузки системы (ekzorchik@srv-trusty2:~$ sudo reboot) при входе в нее по ssh или локально:

ekzorchik@srv-trusty2:~$ last

last: /var/log/wtmp: No such file or directory

Perhaps this file was removed by the operator to prevent logging last info.

ekzorchik@srv-trusty2:~$ sudo lastb

lastb: /var/log/btmp: No such file or directory

Perhaps this file was removed by the operator to prevent logging lastb info.

ekzorchik@srv-trusty2:~$ lastlog

/var/log/lastlog: No such file or directory

Наконец-таки я сформировал для себя какие команды нужны чтобы затереть свое пребывание в системе Ubuntu Trusty Server. Хотя уже сейчас я могу сократить действия, но лучше пусть будет так, да и к тому же все можно объединить в скрипт или ansible playbook.

ekzorchik@srv-trusty2:~$ nano clear

#!/bin/bash

sed -i "s/PrintLastLog .*/PrintLastLog no/1" /etc/ssh/sshd_config

rm -f /etc/rsyslog.d/50-default.conf

chmod 000 /etc/cron.daily/logrotate

chmod 000 /etc/logrotate.d/*

rm -f /var/run/utmp

cat /dev/null > /var/log/lastlog

cat /dev/null > /var/log/utmp

cat /dev/null > /var/log/wtmp

find /var/log -type f -name "*tmp" -exec rm -f {} \;

find /var/log -type f -name "*.log" -exec rm -f {} \;

find /var/log -type f -name "*log" -exec rm -f {} \;

exit

ekzorchik@srv-trusty2:~$ chmod +x clear

ekzorchik@srv-trusty2:~$ sudo ./clear

Проверил и на Ubuntu Xenial Server все также отрабатывает. На этом у меня пока все, с уважением автор блога Олло Александр aka ekzorchik.