คุณสามารถใช้เฟรมเวิร์ก auditd สำหรับสิ่งเหล่านี้ พวกเขาไม่ได้เป็น "ผู้ใช้ที่เป็นมิตร" หรือใช้งานง่ายดังนั้นจึงต้องมีการขุดในส่วนของคุณ
ก่อนอื่นตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง auditd แล้วทำงานอยู่และเคอร์เนลของคุณรองรับ
สำหรับ Ubuntu คุณสามารถติดตั้งapt-get install auditd
ตัวอย่างได้
จากนั้นคุณเพิ่มนโยบายสำหรับการตรวจสอบเพื่อติดตามconnect
syscalls เช่นนี้ทั้งหมด:
auditctl -a exit,always -F arch=b64 -S connect -k MYCONNECT
หากคุณใช้การติดตั้ง Linux แบบ 32 บิตคุณต้องเปลี่ยน b64 เป็น b32
คำสั่งนี้จะแทรกนโยบายไปยังเฟรมเวิร์กการตรวจสอบและการเชื่อมต่อ () syscalls ใด ๆ จะถูกบันทึกลงในไฟล์บันทึกการตรวจสอบของคุณ (โดยปกติ/var/log/audit/audit.log
) เพื่อให้คุณดู
ตัวอย่างเช่นการเชื่อมต่อกับ netcat กับ news.ycombinator.com พอร์ต 80 จะส่งผลดังนี้:
type=SYSCALL msg=audit(1326872512.453:12752): arch=c000003e syscall=42 success=no exit=-115 a0=3 a1=24e8fa0 a2=10 a3=7fff07a44cd0 items=0 ppid=5675 pid=7270 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts4 ses=4294967295 comm="nc" exe="/bin/nc.openbsd" key="MYCONNECT"
type=SOCKADDR msg=audit(1326872512.453:12752): saddr=02000050AE84E16A0000000000000000
ที่นี่คุณจะเห็นว่าแอปพลิเคชั่น /bin/nc.openbsd เริ่มต้นการเชื่อมต่อ () ถ้าคุณได้รับสายเชื่อมต่อจำนวนมากและต้องการที่จะ grep out ip หรือพอร์ตที่คุณต้องทำการแปลง บรรทัด SOCKADDR มีอาร์กิวเมนต์ saddr ซึ่งเริ่มต้นด้วย 0200 ตามด้วยหมายเลขพอร์ตเป็นเลขฐานสิบหก (0050) ซึ่งหมายถึง 80 และจากนั้น IP เป็นฐานสิบหก (AE84E16A) ซึ่งเป็น IP ของ news.ycombinator.com ที่ 174.132.225.106
กรอบการตรวจสอบสามารถสร้างบันทึกจำนวนมากได้ดังนั้นอย่าลืมปิดใช้งานเมื่อคุณทำภารกิจของคุณสำเร็จ หากต้องการปิดใช้งานนโยบายด้านบนเพียงแค่แทนที่ -a ด้วย -d เช่น:
auditctl -d exit,always -F arch=b64 -S connect -k MYCONNECT
เอกสารที่ดีเกี่ยวกับกรอบการตรวจสอบ:
http://doc.opensuse.org/products/draft/SLES/SLES-security_sd_draft/part.audit.html
แปลงที่อยู่ IP เป็น / จาก hex, dec, binary และอื่น ๆ ได้ที่:
http://www.kloth.net/services/iplocate.php
ตัวแปลง hex / dec ทั่วไป:
http://www.statman.info/conversions/hexadecimal.html
บทนำบทสรุปเกี่ยวกับ auditd จาก IT Security Stack Exchange
http://security.blogoverflow.com/2013/01/a-brief-introduction-to-auditd/
แก้ไข 1 :
อีกวิธีหนึ่งที่รวดเร็ว (สวีเดน: fulhack) คือการสร้างลูปด่วนที่ทิ้งข้อมูลการเชื่อมต่อกับคุณเช่นนี้:
while true;do
ss -ntap -o state established '( dport = :80 )'
sleep 1
done
คำสั่งนี้ใช้ss
คำสั่ง (สถิติซ็อกเก็ต) เพื่อดัมพ์การเชื่อมต่อที่สร้างขึ้นในปัจจุบันไปยังพอร์ต 80 รวมถึงกระบวนการที่เริ่มต้น หากมีข้อมูลจำนวนมากคุณสามารถเพิ่ม| tee /tmp/output
หลังจากทำทั้งสองอย่างแล้วแสดงเอาท์พุทบนหน้าจอเช่นเดียวกับที่เขียนไปยัง / tmp / output สำหรับการประมวลผล / ขุดในภายหลัง ถ้ามันไม่ได้จับการเชื่อมต่ออย่างรวดเร็ว haproxy โปรดลองลบsleep 1
แต่ต้องระวังการบันทึกที่กว้างขวางหากเป็นเครื่องที่ใช้งานหนัก แก้ไขตามต้องการ!