Порой просто необходимо после того как подключился к 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.