สถิติการรับส่งข้อมูลต่อพอร์ตเครือข่าย


15

ฉันมีสองเครื่องที่มีแอพพลิเคชั่นสองตัวที่พูดคุยกันบนพอร์ตเครือข่ายน้อย (TCP และ UDP) ฉันต้องการนับการรับส่งข้อมูลที่ส่งและรับ ฉันต้องการไม่เพียง แต่การนับโดยรวม แต่สถิติต่อเครื่องต่อพอร์ตต่อวัน ฉันลองdarkstatแต่มันไม่ได้ให้สถิติต่อวัน แต่มีเพียงเคาน์เตอร์โดยรวมเท่านั้น

มีวิธีอื่นที่ฉันสามารถนับทราฟฟิกนั้น (ฉันสามารถใส่พร็อกซีหรือเกตเวย์ระหว่างเครื่องสองเครื่อง)

คำตอบ:


16

iptables สามารถให้สถิติเกี่ยวกับจำนวนกฎที่ถูกเรียกใช้เพื่อให้คุณสามารถเพิ่มกฎ LOG บนพอร์ตที่น่าสนใจ (สมมติว่าพอร์ต 20 & พอร์ต 80):

iptables -A INPUT -p tcp --dport 22
iptables -A INPUT -p tcp --dport 80

แล้ว

iptables -n -L -v

จะให้จำนวนแพ็คเก็ตและไบต์ที่ส่งผ่านพอร์ตนี้ แน่นอนคุณจะต้องแยกวิเคราะห์ออกจากพอร์ตที่คุณสนใจ

หากคุณต้องการค่าที่แน่นอนเพิ่ม -x:

iptables -n -L -v -x

4
ไม่จำเป็นต้องใส่LOGกฎ (ซึ่งจะทำให้ไฟล์บันทึกของคุณท่วม) เพียงแค่นับจำนวนครั้งที่กฎทริกเกอร์
Gilles 'หยุดความชั่วร้าย'

4
จริง กฎไม่จำเป็นต้องมีการดำเนินการ บทเรียนที่มีประโยชน์ในการเรียนรู้: กฎที่ไม่-Jดีสำหรับการบัญชี
Alexios


2

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

iptables -A INPUT -p tcp --dport 80 

หากคุณมีเครือข่ายเหล่านี้คุณอาจต้องการสร้างเครือข่ายการบัญชีเพื่อให้คุณสามารถรายงานและไม่มีตัวนับในศูนย์แยกจากกลุ่มอื่น ๆ

Shorewallไฟร์วอลล์ช่วยให้คุณสามารถเพิ่มบัญชีกฎชุดกฎของคุณ


1

อย่าลืมที่จะรวมสถิติการส่งออก

# Port 80 (HTTP).
iptables -A INPUT -p tcp --dport 80
iptables -A OUTPUT -p tcp --sport 80

# Port 443 (HTTPS).
iptables -A INPUT -p tcp --dport 443
iptables -A OUTPUT -p tcp --sport 443


iptables -n -L -v
iptables -n -L -v -x


iptables -n -L -v -x | grep -i "Chain\|:443\|:80"

Chain INPUT (policy DROP 357 packets, 22828 bytes)
 1286265 75076978 ACCEPT tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp dpt:80
 1305378 75018232 ACCEPT tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp dpt:443

Chain OUTPUT (policy ACCEPT 303516 packets, 94716311 bytes)
     442   255112        tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp spt:80
      46    10515        tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp spt:443

0

ใช้ tcpdump

tcpdump -i ใด ๆ -nnn

เอาต์พุตของคำสั่งดังกล่าวจะรวมถึงการประทับเวลา, ที่อยู่ IP src / dest, พอร์ตและความยาวของแพ็กเก็ต ด้วยข้อมูลเหล่านี้คุณสามารถบรรลุเป้าหมายได้อย่างง่ายดายด้วยสคริปต์ที่เป็นลายลักษณ์อักษร


0

ไม่ชัดเจนว่าคุณต้องการการใช้งานต่อ IP ปลายทางหรือไม่ แต่vnstatเป็นเครื่องมือที่มีประโยชน์สำหรับการบันทึกการใช้งานการรับส่งข้อมูลต่ออินเทอร์เฟซ ติดตั้งแล้วรันvnstat -u -i eth0สำหรับแต่ละอินเตอร์เฟสที่คุณต้องการตรวจสอบ vnstat -i eth0 -dแล้วได้รับการใช้งานที่ใช้ต่อวัน


1
ฉันไม่คิดว่าการใช้vnstatฉันจะได้รับสถิติต่อพอร์ต ... หรือฉันผิด
pbm

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