การบันทึกกิจกรรม“ บุคคล” ใน Linux


11

ดังนั้นฉันได้อ่านโพสต์มากมายที่เกี่ยวข้องกับเรื่องนี้และเพิ่งสับสนมากขึ้นกว่า แต่ก่อน มีคำแนะนำสำหรับเครื่องมือต่าง ๆ รวมถึง ttyrec, snoopy, acct, rootsh, sudosh, ttyrpld, การตรวจสอบ unix และอีกมากมาย

ในกรณีของฉันฉันต้องการบันทึกคำสั่งทั้งหมดที่ดำเนินการบนระบบ (เช่นประวัติที่เปิดใช้งานการประทับเวลา) แต่ฉันต้องการทราบว่าใครทำอะไรบ้าง อย่างไรก็ตามเราทุกคนเข้าสู่ระบบผ่าน ssh ไปยังบัญชีย่อยบางส่วนของบัญชีผู้ใช้เดียวกัน (ขึ้นอยู่กับสิ่งที่เราทำ) ฉันจะรับบันทึกคำสั่งรวมถึงข้อมูล "ใคร" จะให้ฉัน (เกี่ยวกับการเชื่อมต่อ) เพื่อให้ฉันสามารถติดตามการดำเนินการกับบุคคลที่ระบุว่าเป็น "ผู้ใช้" ทั่วไปได้อย่างไร


สนูปปี้ควรจะทำเช่นนั้นและอาจเป็นทางเลือกอื่น ๆ อีกมากมาย
3molo

2
การเรียกระบบ, sudo, ประวัติเชลล์, การเปลี่ยนแปลงของระบบไฟล์? ไม่ใช่ว่าทุกกระบวนการของผู้ใช้จะต้องเริ่มจากเปลือกเข้าสู่ระบบ

คำตอบ:


9

auditdแพคเกจถูกออกแบบมาสำหรับนี้คุณสามารถใช้ PAM ที่จะกำหนดให้เข้าสู่ระบบแต่ละ ID เซสชั่นเพื่อให้คุณสามารถติดตามกิจกรรมบนกลับบัญชีเพื่อเข้าสู่ระบบเดิม (แล้วตรวจสอบบันทึกการเข้าสู่ระบบเพื่อตรวจสอบที่บุคคลที่เข้าสู่ระบบจาก) และการใช้งานausearchคำสั่งที่จะหากิจกรรมที่คุณกำลังสนใจใน. คุณสามารถอ่านคำแนะนำที่ครอบคลุมสวยที่นี่แม้ว่าบางส่วนของรายละเอียดปลีกย่อยจะต้องมีการเปลี่ยนแปลงเพื่อให้ตรงกับการกระจายของคุณ Redhat มีเว็บไซต์ที่มีคำถามที่พบบ่อยและบางส่วนเอกสารอื่น ๆที่นี่

เนื่องจากสิ่งนี้ไม่ได้อาศัยการพยายามบันทึกคำสั่งที่พิมพ์ลงในเชลล์หรือบันทึกประวัติคำสั่งของผู้ใช้จึงควรบันทึกสิ่งต่าง ๆ เช่นการเปิด vi (ซึ่งอาจจะทำได้มากกว่า X หรือในscreen) การเขียนสคริปต์ (อาจเป็นตัวอักษรหนึ่งตัว เวลาที่มีคำสั่ง cut / paste ของ vi และการรันไม่กี่ครั้ง:.!/usr/games/fortuneเพื่อรับข้อมูลต้นฉบับบางอย่างที่คุณอาจไม่สามารถบันทึกได้) จากนั้นเรียกใช้:%!/bin/bashคำสั่ง


นี่คือคำตอบที่มีแนวโน้มมากที่สุด ... การ ตรวจสอบช่วยให้คุณติดตามการกระทำของผู้ใช้อย่างสม่ำเสมอจากการเข้าสู่ระบบผ่านการออกจากระบบไม่ว่าผู้ใช้รายนี้จะรับรองโดยใช้รหัสการตรวจสอบที่สร้างขึ้นเมื่อเข้าสู่ระบบ กระบวนการเข้าสู่ระบบเดิม ตอนนี้ฉันอ่านเพิ่มเติมเกี่ยวกับวิธีการใช้งานจริง ขอบคุณสำหรับการลดทางเลือกมากมาย!
Ashimema

ขออภัยที่ใช้เวลานานในการทำเครื่องหมายคำตอบนี้ว่าเป็นที่ยอมรับ .. ฉันลองใช้ดู! ทำงานในฝัน .. ไชโยพวก!
Ashimema

4

มีเครื่องมือหลากหลายที่คุณใช้แล้วซึ่งคำถามของคุณ (และคำตอบเหล่านี้) บอกใบ้เช่นประวัติศาสตร์, สนูปปี้, auditd, บันทึก sudo, ฯลฯ ... แต่ถ้าคุณมีผู้ใช้งาน "เซตย่อยของบัญชี" มีอยู่ ไม่มีทางที่เซิร์ฟเวอร์จะบอกว่าใครทำอะไร วิธีเดียวที่คุณสามารถบอกได้ว่าใครทำอย่างนั้นโดยเฉพาะถ้าผู้ใช้มีคอมพิวเตอร์ของตนเองที่พวกเขาใช้เป็นพิเศษและใช้ keyloggers เพื่อบอกสิ่งที่พวกเขากำลังพิมพ์บนแป้นพิมพ์นั้น

เมื่อใดก็ตามที่คุณแชร์บัญชีคุณไม่สามารถบอกได้ว่าเกิดอะไรขึ้นจริงเนื่องจากคุณต้องการหลักฐานเพิ่มเติมว่าใครกำลังใช้บัญชีรูทหรือบัญชีบ๊อบหรือสิ่งที่คนของคุณกำลังทำอยู่ หากคุณกำลังพยายามตรวจสอบสิ่งที่เกิดขึ้นในเหตุการณ์เฉพาะคุณอาจต้องทบทวนนโยบายการเข้าถึงและขั้นตอนการกู้คืนและประเมินพนักงานของคุณและ / หรือมีส่วนร่วมในการฝึกอบรมหากจำเป็น (หรือเชื่อถือได้ด้วยบัญชีที่ละเอียดอ่อน) แทน มากกว่ามุ่งเน้นไปที่การตามล่าโดยตรงว่าใครทำอะไรบางอย่างเพราะมันอาจดูดซับทรัพยากรมากกว่าที่คุณยืนเพื่อรับในการค้นหาคนที่ทำมัน

มิฉะนั้นคุณอาจต้องการตรวจสอบเทคนิคการตรวจสอบทางนิติวิทยาศาสตร์เพื่อติดตามสิ่งที่เกิดขึ้น (การสร้างภาพไดรฟ์การติดตามบันทึก ฯลฯ ) หากคุณไม่ได้ตรวจสอบเหตุการณ์ให้ตรวจสอบนโยบายของคุณและทำการติดตามและตรวจสอบบัญชีให้ดีขึ้น รากมีเพียง Bob เท่านั้นที่ใช้บัญชีของเขาโดยใช้ sudo เพื่อรับสิทธิ์การใช้งานที่สูงกว่าติดตั้งและตรวจสอบการตรวจสอบ ฯลฯ ) และระวังอย่าทำให้แวดวงที่เชื่อถือได้ของคุณรู้สึกเหมือนอยู่ภายใต้กล้องจุลทรรศน์หรือคุณอาจทำให้คนแปลกหน้า เพื่อให้งานของพวกเขาเสร็จสิ้น (หรือขัดขวางพวกเขาจากการทำงานให้เสร็จ)


2

Linux auditd ( http://people.redhat.com/sgrubb/audit/ ) จะให้พลังมากที่สุดในการดูว่าใครทำอะไร คุณมีข้อมูลเพิ่มเติมในคำตอบของ DerfK

อย่างไรก็ตามไม่มีอะไรจะบอกคุณว่าใครเข้าสู่ระบบในฐานะ webadmin ถ้ามีคนที่เข้าถึงบัญชี webadmin n คน ฉันขอแนะนำให้ใช้บัญชีที่มีชื่อสำหรับผู้ใช้แต่ละคนและจากนั้นใช้ su - หรือ sudo เพื่อเรียกใช้คำสั่งจากบัญชี "ฟังก์ชั่น"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.