Sorumlu olduğum belirli bir VM'ye kök erişimi olan birkaç kişi var. Kökte oturum açmak için hangi IP adresinin kullanıldığını bulmak istiyorum.
Sorumlu olduğum belirli bir VM'ye kök erişimi olan birkaç kişi var. Kökte oturum açmak için hangi IP adresinin kullanıldığını bulmak istiyorum.
Yanıtlar:
last
Bu bilgiyi almak için komutu kullanabilirsiniz
# last|head
phemmer ssh 192.168.0.24 Wed Aug 20 21:08 - 21:08 (00:00)
phemmer pts/13 192.168.0.2 Wed Aug 20 14:00 - 18:43 (04:43)
phemmer ssh 192.168.0.2 Wed Aug 20 14:00 - 18:43 (04:43)
phemmer ssh ::1 Wed Aug 13 23:08 - 23:08 (00:00)
phemmer ssh ::1 Wed Aug 13 23:08 - 23:08 (00:00)
phemmer ssh ::1 Wed Aug 13 23:07 - 23:07 (00:00)
phemmer pts/15 192.168.0.20 Thu Aug 7 19:00 - 19:00 (00:00)
phemmer ssh 192.168.0.20 Thu Aug 7 19:00 - 19:00 (00:00)
phemmer :0 Wed Jul 30 20:06 still logged in
reboot system boot 3.13.2-gentoo Wed Jul 30 20:05 still running
Şüphesiz görebileceğiniz gibi, 3. sütun SSH girişi durumunda uzak IP adresini gösterecektir.
last
/var/log/wtmp
dosyayı kullanır , bu nedenle bu yöntem G-Man'ın cevabına benzer (dosyanın yolunu belirtmeniz gerekmediğinden biraz daha basittir).
Bu, dağıtımınıza veya işletim sisteminize bağlıdır. sshd
her girişi bir yere kaydeder ve ilgili IP adresini girişe aşağıdaki gibi bir biçimde dahil eder:
Aug 20 15:56:53 machine sshd[2728]: Accepted publickey for root from 192.168.1.2 port 49297
Bu bölüm tutarlıdır, ancak oraya nasıl gideceğiniz değişebilir. Dayanan sistemlerde systemd
, kullanmak journalctl
:
journalctl /usr/bin/sshd
sshd
yürütülebilir tüm günlük iletilerini listelemek için . Kök girişler veya diğer kriterleri için o dışarı grep ve tarihe göre sınırlandırabilirsiniz --since
ve --until
(bkz man journalctl
).
Alternatif ve tarihsel olarak, iletiler (genellikle) içinde bir yerde oturum açacaktır /var/log
. Genellikle sshd
iletiler girilir /var/log/auth.log
, ancak tam dosya önemli ölçüde değişebilir. Hangisi olursa olsun:
grep sshd /var/log/auth.log
size journalctl
sürüme geniş ölçüde eşdeğer çıktı verecektir .
Komuta
who /var/log/wtmp
gösterileri gibi bilgileri who
göstermeli, ancak zamanda geriye gitmelidir .
last
ssh
Kök olarak /root/.ssh/authorized_keys
kimin oturum açtığını denetlemek istiyorsanız , kullanıcıların doğrudan kök olarak oturum açarak (kök parolasını veya bir sertifikayı kullanarak) kullanmasına izin vermemelisiniz . Bunun yerine, her kişi için bir hesap kullanın sudo
ve kök izinleri almak için kullanmasına izin verin. Bu şekilde uygun günlükte bulabilirsiniz (günlük dosyasının konumu, hangi dağıtımın bulunduğuna bağlıdır, günlük arka plan programını iletileri başka bir makineye gönderecek şekilde bile yapılandırabilirsiniz) mesajı user john ran the command 'sudo rm -rf /'
. Belki bir günlükte bu komutu kolayca bulamazsınız.
sudo
güç. Bir hesabı iki kişi arasında paylaşmak için hiçbir zaman gerçek bir neden yoktur, ancak gerekirse bir kişinin iki hesabı olabilir.
root
hesabı paylaşması konusunda neredeyse bir gelişmedir .
Sağladığınız kısa açıklamadan, bir günlük izleme sistemi kurmanız daha iyi olur gibi görünüyor. Girişleri izlemenize, uyarılar oluşturmanıza, birkaç günlük verileri karşılaştırmanıza ve tüm bunlar için elbette Grafikler oluşturmanıza yardımcı olur.
Ancak geçici olarak izlemeniz gerekiyorsa , last
komutu kullanabilirsiniz .
last | grep root | grep -v tty | awk '{print $3}'
Bu size kök kullanıcının oturum açtığı listeyi IPs
veya Hostnames
nereden geldiğini gösterir.
sudo less /root/.bash_history
Hala bunu araştırmaya çalışıyorum, gerçekten iyi bir soru gibi görünüyor :)