تحليل حركة المرور عبر الشبكة باستخدام tcpdump و Wireshark CLI (TShark)
مقدمة
يُعد تحليل حركة المرور عبر الشبكة من أهم المهارات العملية لأي مسؤول أنظمة، مهندس شبكات، أو مختص أمن معلومات يعمل على بيئات لينكس. فعندما تظهر مشكلة بطء غير مبرر، أو فشل اتصال بين خدمتين، أو سلوك مشبوه على منفذ معين، يصبح فحص الحزم المارة على الواجهة الشبكية خطوة حاسمة لفهم ما يحدث فعلياً على مستوى البروتوكولات.
تتميز أداتا tcpdump وTShark بكونهما مناسبتين للعمل من سطر الأوامر، وهو ما يجعل استخدامهما مثالياً في الخوادم البعيدة أو البيئات التي لا تحتوي على واجهة رسومية. وإذا كنت قد اطلعت مسبقاً على أساسيات شبكات لينكس: العناوين، المنافذ، والبروتوكولات (IP, SSH, DNS) فستجد أن فهمك للعناوين والمنافذ يساعدك كثيراً عند تفسير نتائج الالتقاط.
في هذا المقال سنتعرف على الفرق العملي بين الأداتين، وكيفية التقاط الحزم، وتطبيق مرشحات دقيقة، وقراءة النتائج بطريقة مفيدة في التشخيص والأمن واستكشاف الأعطال.
ما الفرق بين tcpdump وTShark؟
tcpdump هي أداة خفيفة وسريعة تعتمد على مكتبة libpcap، وتُستخدم أساساً لالتقاط الحزم وعرضها مباشرة من الطرفية. وهي ممتازة عند الحاجة إلى مراقبة سريعة أو حفظ ملف التقاط بصيغة pcap.
أما TShark فهو الواجهة النصية لمحرك Wireshark نفسه، وبالتالي يقدم قدرة أعمق على تفكيك البروتوكولات واستخراج الحقول وتحليلها بدقة أعلى من العرض النصي التقليدي. هذا يجعله مناسباً جداً للتقارير، والفلترة المتقدمة، والأتمتة.
- استخدم tcpdump عندما تريد التقاطاً سريعاً وخفيفاً.
- استخدم TShark عندما تحتاج إلى تحليل بروتوكولي أكثر تفصيلاً.
- استخدم الاثنين معاً في سيناريوهات الدعم الفني والتحقيقات الأمنية.
تثبيت الأدوات والتحقق من الواجهات
في أغلب التوزيعات يمكن تثبيت الأداتين عبر مدير الحزم. وإذا كنت بحاجة إلى مراجعة أوامر التثبيت حسب التوزيعة، فراجع إدارة الحزم البرمجية وتحديث النظام (APT, YUM/DNF, Pacman). كذلك ستفيدك خبرة الدخول الأول إلى الطرفية (Terminal): الأوامر الأساسية والمساعدة (man, help) عند قراءة صفحات المساعدة الخاصة بالأدوات.
# Debian/Ubuntu
sudo apt update
sudo apt install tcpdump tshark
# RHEL/CentOS/AlmaLinux
sudo dnf install tcpdump wireshark-cli
# Arch Linux
sudo pacman -S tcpdump wireshark-cli
قبل الالتقاط، من المهم معرفة اسم الواجهة الشبكية مثل eth0 أو ens33 أو wlan0.
ip addr
tcpdump -D
tshark -D
التقاط الحزم يتطلب غالباً صلاحيات مرتفعة. لذلك يجب فهم أثر
sudoجيداً، خاصة في الخوادم الإنتاجية، ويمكن الرجوع إلى إدارة الصلاحيات والملكية (Chmod, Chown, Sudo) قبل تنفيذ الأوامر على بيئات حساسة.
التقاط الحزم باستخدام tcpdump
1) التقاط مباشر من واجهة محددة
أبسط استخدام يبدأ بتحديد الواجهة. سيعرض الأمر التالي الحزم المارة على الواجهة بشكل فوري:
sudo tcpdump -i eth0
إذا أردت منع ترجمة أسماء المضيفين والمنافذ لتسريع الإخراج وجعله أوضح، استخدم الخيار -n أو -nn.
sudo tcpdump -i eth0 -nn
2) التقاط عدد محدد من الحزم
هذا مفيد أثناء الاختبارات السريعة حتى لا يستمر الالتقاط بلا نهاية:
sudo tcpdump -i eth0 -nn -c 20
3) حفظ الالتقاط إلى ملف
بدلاً من الاكتفاء بالعرض المباشر، يمكنك حفظ النتائج لتحليلها لاحقاً باستخدام Wireshark أو TShark:
sudo tcpdump -i eth0 -nn -w capture.pcap
وبعد ذلك يمكن قراءة الملف نفسه دون الحاجة إلى إعادة الالتقاط:
tcpdump -nn -r capture.pcap
أمثلة عملية على فلاتر tcpdump
قوة tcpdump الحقيقية تظهر عند استخدام فلاتر الالتقاط. هذه الفلاتر تقلل الضوضاء وتساعدك على التركيز في المشكلة الفعلية.
- التقاط حركة المرور الخاصة بعنوان IP محدد.
- التقاط اتصالات منفذ مثل
80أو443. - استثناء بروتوكولات غير مهمة أثناء الفحص.
# حركة المرور من أو إلى عنوان IP محدد
sudo tcpdump -i eth0 host 192.168.1.10
# التقاط TCP فقط
sudo tcpdump -i eth0 tcp
# التقاط منفذ 443
sudo tcpdump -i eth0 port 443
# التقاط طلبات DNS
sudo tcpdump -i eth0 udp port 53
# التقاط SSH من عنوان مصدر محدد
sudo tcpdump -i eth0 src 10.0.0.5 and port 22
# استثناء حركة SSH
sudo tcpdump -i eth0 not port 22
عند دمج الفلاتر، ستحتاج غالباً إلى فهم جيد للأنابيب والتوجيه، خصوصاً إذا كنت تنوي إرسال المخرجات إلى ملفات أو تمريرها إلى grep. في هذا السياق يفيد الرجوع إلى الأنابيب وإعادة التوجيه (Pipes and Redirections: |, >, >>) وكذلك البحث المتقدم في النظام باستخدام (find, locate, grep).
تحليل الحزم باستخدام TShark
إذا كان هدفك يتجاوز مجرد التقاط الحزم إلى تفسير الحقول الداخلية للبروتوكولات، فإن TShark يقدم طبقة أقوى من التحليل. يمكنه قراءة الالتقاط مباشرة أو تحليل ملفات pcap.
1) تشغيل TShark على واجهة مباشرة
sudo tshark -i eth0
2) قراءة ملف pcap محفوظ مسبقاً
tshark -r capture.pcap
3) استخدام Display Filters
هنا يظهر الفرق الجوهري بينه وبين tcpdump. فبدلاً من فلاتر الالتقاط فقط، يمكنك تصفية الحزم بعد قراءتها باستخدام فلاتر Wireshark المعروفة:
# عرض حزم HTTP فقط
tshark -r capture.pcap -Y "http"
# عرض طلبات DNS فقط
tshark -r capture.pcap -Y "dns"
# عرض اتصالات TCP إلى المنفذ 443
tshark -r capture.pcap -Y "tcp.port == 443"
# عرض الحزم من عنوان محدد
tshark -r capture.pcap -Y "ip.addr == 192.168.1.10"
4) استخراج حقول محددة
هذه ميزة مهمة جداً في الأتمتة وإنشاء التقارير. يمكنك مثلاً استخراج المصدر والوجهة واسم المضيف من حزم HTTP أو DNS.
tshark -r capture.pcap -Y "dns" -T fields \
-e frame.number -e ip.src -e ip.dst -e dns.qry.name
tshark -r capture.pcap -Y "http.request" -T fields \
-e ip.src -e ip.dst -e http.host -e http.request.uri
سيناريوهات استخدام واقعية
تشخيص مشكلة DNS
إذا كان الخادم لا يصل إلى أسماء النطاقات، يمكنك مراقبة طلبات DNS والتأكد من خروجها وعودة الردود. كما أن هذا العمل يتكامل مع مراقبة السجلات (Logs) وتحليل الأخطاء (journalctl, /var/log) لتجميع صورة كاملة عن سبب المشكلة.
sudo tcpdump -i eth0 -nn udp port 53
tshark -r capture.pcap -Y "dns"
فحص اتصال خدمة ويب
عند الشك في أن المنفذ مفتوح لكن التطبيق لا يستجيب كما يجب، راقب المصافحة TCP ثم تأكد من تبادل البيانات. هذا مهم أيضاً عند مراجعة قواعد جدار الحماية (Firewall) وتأمين النظام (UFW, Firewalld, Iptables).
sudo tcpdump -i eth0 -nn host 203.0.113.10 and port 443
tshark -r capture.pcap -Y "tcp.flags.syn == 1 or tcp.flags.ack == 1"
رصد سلوك غير اعتيادي
قد تلاحظ اتصالات متكررة إلى منافذ غير مألوفة أو كثافة طلبات غير طبيعية من مصدر واحد. هنا يصبح تحليل الحزم جزءاً أساسياً من الاستجابة الأمنية، خاصة إلى جانب اكتشاف التطفل (Intrusion Detection) باستخدام أدوات مثل Fail2Ban و AIDE وتأمين الخدمات العامة: إغلاق المنافذ غير المستخدمة وتغيير إعدادات SSH الافتراضية.
أفضل الممارسات أثناء الالتقاط
- ابدأ دائماً بفلاتر ضيقة لتقليل حجم البيانات.
- احفظ الالتقاط في ملف إذا كانت المشكلة متقطعة أو تحتاج مراجعة لاحقة.
- عطّل ترجمة الأسماء باستخدام
-nnعندما تريد وضوحاً أكبر. - نسّق نتائجك في ملفات منفصلة إذا كنت تعمل على أكثر من اختبار.
- راقب حجم ملفات
pcapلأنها قد تنمو سريعاً في البيئات المزدحمة.
ملفات الالتقاط قد تحتوي على بيانات حساسة مثل أسماء النطاقات، عناوين IP، الكوكيز، أو حتى معلومات اعتماد غير مشفرة. لا تنقلها أو تشاركها دون ضوابط وصول واضحة وسياسات أمنية مناسبة.
الخلاصة
يوفر tcpdump وTShark مزيجاً عملياً قوياً لتحليل حركة المرور على أنظمة لينكس. الأول ممتاز للالتقاط السريع والخفيف، بينما يمنحك الثاني قدرة أعمق على فهم البروتوكولات واستخراج الحقول المفيدة للتحليل والأتمتة.
كلما طورت مهارتك في استخدام الفلاتر وقراءة الحزم وربطها بسياق النظام والخدمات، أصبحت أكثر قدرة على تشخيص الأعطال، تحسين الأداء، واكتشاف المؤشرات الأمنية المبكرة. ومع الممارسة المنتظمة، ستتحول هذه الأدوات من مجرد أوامر طرفية إلى جزء أساسي من منهجيتك الاحترافية في إدارة الشبكات والخوادم.
6 comments