คุณจะบันทึกทุกคำสั่งที่พิมพ์ได้อย่างไร


24

คุณจะบันทึกคำสั่งทุกคำสั่งที่บางคนใส่ลงไปในเชลล์ได้อย่างไร?

ฉันกำลังถามทั้งสองเกี่ยวกับพื้นฐานของการป้องกันตัวเองว่าคุณลงชื่อเข้าใช้เซิร์ฟเวอร์ของผู้อื่นและมีบางอย่างผิดปกติหรือไม่หรือหากมีคนอื่นลงชื่อเข้าใช้เซิร์ฟเวอร์ของคุณ

แม้แต่สามเณรก็สามารถข้ามประวัติศาสตร์ด้วยunset historyหรือสร้างกระสุนใหม่เพื่อซ่อนเส้นทางของพวกเขา

ฉันอยากรู้ว่าผู้ดูแลระบบลินุกซ์อาวุโสติดตามคำสั่งใดบ้างที่ถูกป้อน / เปลี่ยนแปลงในระบบ

คำตอบ:


29

ตรวจสอบauditd หากคุณเพิ่ม

-a exit,always -F arch=b64 -S execve
-a exit,always -F arch=b32 -S execve

เพื่อ/etc/audit/audit.rulesคำสั่งดำเนินการทุกคนจะได้รับการลงทะเบียน ดู: http://whmcr.com/2011/10/14/auditd-logging-all-commands/

จากนั้นส่งไปยังเซิร์ฟเวอร์ syslog


แน่นอนexecveไม่ได้เป็น syscall เดียวที่คุณต้องเข้าสู่ระบบ ทำไมไม่execvpเช่นกัน หรือexecl? ฯลฯ
2rs2ts

ที่จริงแล้วฉันสังเกตเห็นว่าในหน้า man สำหรับexecมันบอกว่า " exec() ตระกูลของฟังก์ชั่นแทนที่ภาพกระบวนการปัจจุบันด้วยภาพกระบวนการใหม่ฟังก์ชั่นที่อธิบายไว้ในหน้าคู่มือนี้เป็น front-end สำหรับexecve(2)" ดังนั้นในขณะที่ฉันไม่แน่ใจเกี่ยวกับexecveatฉันสามารถรู้สึกมั่นใจเกี่ยวกับexecครอบครัว
2rs2ts

5

คุณสามารถใช้คำสั่งสคริปต์ คำสั่งนี้ไม่รวมอยู่ใน POSIX แต่คุณจะพบว่ามีประโยชน์ในการจัดเก็บในการกดแป้นพิมพ์ทั้งหมดรวมถึงข้อความเอาต์พุตและข้อความแสดงข้อผิดพลาด คุณสามารถดูไฟล์ในภายหลัง หากคุณกำลังทำงานที่สำคัญและต้องการเก็บบันทึกกิจกรรมทั้งหมดของคุณคุณควรเรียกใช้คำสั่งนี้ทันทีหลังจากคุณเข้าสู่ระบบ:

$ script
สคริปต์เริ่มทำงาน, ไฟล์คือ typescript
$ _ โปรดทราบว่านี่เป็นเชลล์ตัวอื่น - ลูกของเชลล์ล็อกอิน

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

ตอนนี้คุณสามารถใช้ชื่อไฟล์ catหรือcat typescriptไม่ว่ากรณีใดจะเป็นเพื่อดูเซสชันที่บันทึกไว้

หากคุณต้องการผนวกเซสชั่นใหม่เข้ากับการใช้ไฟล์เก่า: สคริปต์ -a ต่อ ท้ายเซสชั่นใหม่เพื่อ typescript กฎเริ่มต้นเดียวกันจะใช้ที่นี่เช่นกัน

นี่เป็นวิธีหนึ่งที่ผู้ดูแลระบบสามารถติดตามเซสชัน หวังว่าจะได้รับข้อมูลและเป็นประโยชน์ ไชโย!

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