มีหลายคนที่เข้าถึงรูทไปยัง VM เฉพาะที่ฉันรับผิดชอบ ฉันต้องการทราบว่าที่อยู่ IP ใดที่ใช้ในการเข้าสู่ระบบรูท
มีหลายคนที่เข้าถึงรูทไปยัง VM เฉพาะที่ฉันรับผิดชอบ ฉันต้องการทราบว่าที่อยู่ IP ใดที่ใช้ในการเข้าสู่ระบบรูท
คำตอบ:
คุณสามารถใช้last
คำสั่งเพื่อรับข้อมูลนี้
# 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
อย่างที่คุณไม่ต้องสงสัยเลยว่าคอลัมน์ 3 จะแสดงที่อยู่ IP ระยะไกลในกรณีที่มีการเข้าสู่ระบบ SSH
last
ใช้/var/log/wtmp
ไฟล์ดังนั้นวิธีนี้คล้ายกับคำตอบของ G-Man (ง่ายกว่าเล็กน้อยเนื่องจากคุณไม่ต้องระบุพา ธ ไปยังไฟล์)
ขึ้นอยู่กับการกระจายหรือระบบปฏิบัติการของคุณ sshd
จะบันทึกการเข้าสู่ระบบแต่ละที่และจะรวมที่อยู่ IP ที่เกี่ยวข้องในรูปแบบการเข้าสู่ระบบเช่นนี้:
Aug 20 15:56:53 machine sshd[2728]: Accepted publickey for root from 192.168.1.2 port 49297
ส่วนนั้นสอดคล้องกัน แต่วิธีที่คุณไปที่นั่นอาจแตกต่างกันไป บนระบบที่systemd
ใช้ให้ใช้journalctl
:
journalctl /usr/bin/sshd
เพื่อแสดงรายการข้อความบันทึกทั้งหมดจากsshd
ไฟล์เรียกทำงาน คุณสามารถ grep นั้นสำหรับการเข้าสู่ระบบรากหรือเกณฑ์อื่น ๆ และ จำกัด ตามวันที่ด้วย--since
และ--until
(ดูman journalctl
)
หรืออีกทางหนึ่งและในอดีตข้อความจะถูกบันทึกลงใน (ปกติ) /var/log
ในบางส่วน sshd
ข้อความทั่วไปจะเข้ามา/var/log/auth.log
แต่ไฟล์ที่แน่นอนอาจแตกต่างกันไปอย่างมาก ไม่ว่ามันจะเป็นอะไร:
grep sshd /var/log/auth.log
จะให้ผลลัพธ์ที่เทียบเท่ากับjournalctl
เวอร์ชั่นในวงกว้าง
คำสั่ง
who /var/log/wtmp
ควรแสดงข้อมูลเหมือนที่who
แสดง แต่ย้อนเวลากลับไป
last
คุณไม่ควรอนุญาตให้ผู้อื่นใช้งานssh
โดยลงชื่อเข้าใช้โดยตรงในฐานะรูท (ใช้รหัสผ่านรูทหรือใบรับรอง/root/.ssh/authorized_keys
) หากคุณต้องการตรวจสอบว่าใครเข้าสู่ระบบในฐานะรูท ให้ใช้หนึ่งบัญชีแทนแต่ละคนและให้พวกเขาใช้sudo
เพื่อรับสิทธิ์การใช้งานรูท ด้วยวิธีนี้คุณจะพบในบันทึกที่เหมาะสม (ตำแหน่งของล็อกไฟล์ขึ้นอยู่กับการกระจายที่คุณมีและคุณยังสามารถกำหนดค่าภูตเข้าสู่ระบบเพื่อส่งข้อความไปยังเครื่องอื่น) user john ran the command 'sudo rm -rf /'
ข้อความ บางทีคุณอาจจะไม่พบคำสั่งเดียวในบันทึกได้อย่างง่ายดาย
sudo
อำนาจ ไม่มีเหตุผลที่แท้จริงที่จะแบ่งปันบัญชีระหว่างคนสองคน แต่คน ๆ หนึ่งอาจมีสองบัญชีได้ถ้าต้องการ
root
บัญชีเดียว
จากคำอธิบายสั้น ๆ ที่คุณให้มาดูเหมือนว่าจะดีกว่าถ้าคุณตั้งค่าระบบตรวจสอบบันทึก มันจะช่วยให้คุณตรวจสอบการเข้าสู่ระบบสร้างการแจ้งเตือนเปรียบเทียบข้อมูลหลายวันและใช่กราฟแน่นอนสำหรับทุกสิ่ง
แต่ถ้าคุณต้องการตรวจสอบมันชั่วคราวคุณสามารถใช้last
คำสั่ง
last | grep root | grep -v tty | awk '{print $3}'
นี้จะให้รายชื่อของIPs
หรือHostnames
จากการที่ผู้ใช้รากได้เข้าสู่ระบบใน
sudo less /root/.bash_history
ฉันยังคงพยายามที่จะวิจัยนี้ดูเหมือนว่าเป็นคำถามที่ดีจริงๆ :)