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:
lastBu 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/wtmpdosyayı 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. sshdher 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
sshdyü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 --sinceve --until(bkz man journalctl).
Alternatif ve tarihsel olarak, iletiler (genellikle) içinde bir yerde oturum açacaktır /var/log. Genellikle sshdiletiler girilir /var/log/auth.log, ancak tam dosya önemli ölçüde değişebilir. Hangisi olursa olsun:
grep sshd /var/log/auth.log
size journalctlsürüme geniş ölçüde eşdeğer çıktı verecektir .
Komuta
who /var/log/wtmp
gösterileri gibi bilgileri whogöstermeli, ancak zamanda geriye gitmelidir .
last
sshKök olarak /root/.ssh/authorized_keyskimin 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 sudove 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.
sudogüç. 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.
roothesabı 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 , lastkomutu kullanabilirsiniz .
last | grep root | grep -v tty | awk '{print $3}'
Bu size kök kullanıcının oturum açtığı listeyi IPsveya Hostnamesnereden geldiğini gösterir.
sudo less /root/.bash_historyHala bunu araştırmaya çalışıyorum, gerçekten iyi bir soru gibi görünüyor :)