มีวิธีบันทึกการเชื่อมต่อขาออกทั้งหมดที่กระบวนการสร้างขึ้นหรือไม่ ฉันรู้netstat
แต่ดูเหมือนว่าจะเป็นภาพรวมของจุดในเวลามากกว่าสิ่งที่ทำงานและบันทึกข้อมูลในช่วงเวลา
ฉันต้องการเฉพาะ IP หรือชื่อโฮสต์พอร์ตและกระบวนการเชื่อมต่อ
มีวิธีบันทึกการเชื่อมต่อขาออกทั้งหมดที่กระบวนการสร้างขึ้นหรือไม่ ฉันรู้netstat
แต่ดูเหมือนว่าจะเป็นภาพรวมของจุดในเวลามากกว่าสิ่งที่ทำงานและบันทึกข้อมูลในช่วงเวลา
ฉันต้องการเฉพาะ IP หรือชื่อโฮสต์พอร์ตและกระบวนการเชื่อมต่อ
คำตอบ:
บน Linux คุณสามารถตั้งค่าระบบย่อยการตรวจสอบเพื่อบันทึกทุกครั้งที่พยายามสร้างการเชื่อมต่อเครือข่าย สำหรับข้อมูลเกี่ยวกับระบบย่อยการตรวจสอบให้อ่านauditctl
หน้า manหรือบทช่วยสอนนี้หรือตัวอย่างอื่น ๆ ในเว็บไซต์นี้ ติดตั้งauditd
แพ็คเกจการกระจายของคุณหากจำเป็น
auditctl -A exit,always -S connect
บันทึกอยู่ใน/var/log/audit/audit.log
การกระจายทั้งหมดที่ฉันรู้ นอกจากนี้คุณยังสามารถค้นหาพวกเขาausearch
ด้วย
auditctl -d exit,always -S connect
less /var/log/audit/audit.log
หากคุณสามารถที่จะติดตั้งเคอร์เนลที่กำหนดเองคุณควรมีลักษณะที่SystemTap มีตัวอย่างมากมายวิธีติดตามกิจกรรมเครือข่าย
บน Linux คุณสามารถใช้ip_conntrack
เพื่อทำให้สิ่งนี้สำเร็จ มันเป็นโมดูลการติดตามการเชื่อมต่อซึ่งปกติใช้ในการตรวจสอบการเชื่อมต่อสำหรับโปรโตคอลที่ทำงานผิดปกติ (เช่น FTP) ที่จะจัดการโดยกล่องไฟร์วอลล์ / NAT
modprobe ip_conntrack
cat /proc/net/ip_conntrack
คุณสามารถ grep ไฟล์หลอกเพื่อดูการเชื่อมต่อที่จัดตั้งขึ้นและ grep แหล่ง IP เพิ่มเติมเพื่อดูว่าเมื่อมันมาจากกล่องของคุณ
ฉันจะดูการใช้งานtcpdump
บนอินเทอร์เฟซขาออกดูSYN
คำขอขาออก
หากคุณรู้สึกว่าการผจญภัยจริงๆคุณสามารถสร้างโปรแกรมอรรถประโยชน์เช่น: strace
หรือtruss
รายงานการconnect
เรียกใช้ระบบทั้งหมดในขณะที่ติดตามการทำงานของโปรแกรม แต่มันอันตรายกว่าเล็กน้อยและมีข้อเสียเมื่อจัดการกับกระบวนการแบบมัลติเธรด
watch -n 2 netstat
ในเวลาเดียวกัน แต่นั่นไม่ใช่ทางออกที่เหมาะสมใช่ไหม