با استفاده از TCPDump – DEV Community

TCPDump یک ابزار تجزیه و تحلیل بسته مبتنی بر خط فرمان است که برای تجزیه و تحلیل شبکه و ممیزی امنیت شبکه در سیستم های مبتنی بر یونیکس و لینوکس استفاده می شود. این به شما امکان می دهد تقریباً از تمام لایه های مدل OSI بر ترافیک نظارت کنید، بنابراین می توانید با بسته هایی که می خواهید به روشی که می خواهید کار کنید. می توانید بسته های ضبط شده را ذخیره کرده و بعداً با Wireshark یا ابزار تجزیه و تحلیل دیگری آن ها را تجزیه و تحلیل کنید.
ویژگی ها و مزایای TCPDump
TCPDump یک ابزار قدرتمند با قابلیت ضبط، تجزیه و تحلیل و گزارش ترافیک شبکه با جزئیات است. می توان از آن برای فیلتر انواع بسته ها، پورت های خاص، آدرس های IP و موارد دیگر استفاده کرد. یکی از بزرگترین مزیت های TCPDump قابلیت سفارشی سازی گسترده آن و تنوع گسترده گزینه ها و فیلترهایی است که ارائه می کند. اندازه کوچک و سیستم مورد نیاز کم آن نیز باعث می شود خودرو به سرعت و کارآمد کار کند.
راه اندازی TCPDump
TCPDump به طور پیش فرض در اکثر توزیع های لینوکس ارائه می شود. اما برای بررسی نصب بودن یا ارتقا به آخرین نسخه، ترمینال را باز کنید و از دستورات زیر استفاده کنید:
برای توزیع های مبتنی بر دبیان (اوبونتو، مینت و غیره):
sudo apt-get update
sudo apt-get install tcpdump
برای توزیع های مبتنی بر Red Hat (CentOS، Fedora و غیره):
sudo yum install tcpdump
دستورات اولیه TCPDump
نحو عمومی
سینتکس اصلی دستور TCPDump به شرح زیر است:
tcpdump [seçenekler] [filtre]
گزینهها و عبارات فیلتر زیادی وجود دارد که هر کدام تعیین میکنند که TCPDump چه نوع ترافیکی را ثبت میکند و نتایج چگونه نمایش داده میشوند.
رابط های فهرست
tcpdump -D
دستور، رابط های شبکه موجود را فهرست می کند.
مثال:
tcpdump -D
ضبط ترافیک در یک رابط خاص
tcpdump -i [arabirim]
گزینه ‘-i’ و نام رابط برای ضبط تمام ترافیک یک رابط استفاده می شود.
مثال:
tcpdump -i eth0
فیلترینگ میزبان
tcpdump -i [arabirim] host [ip_adresi]
فیلتر “میزبان” برای نظارت بر ترافیک مربوط به یک میزبان خاص استفاده می شود.
مثال:
tcpdump -i eth0 host 192.168.1.108
فیلتر پروتکل
نام پروتکل مستقیم برای فیلتر کردن یک پروتکل خاص (TCP، UDP، ICMP و غیره) استفاده می شود.
برای گرفتن ترافیک TCP:
tcpdump -i eth0 tcp
فیلتر پورت
فیلتر “پورت” برای ضبط ترافیک در یک پورت خاص استفاده می شود.
برای گرفتن ترافیک در پورت 80:
tcpdump -i eth0 port 80
فیلتر IP منبع و مقصد
فیلترهای ‘src’ (منبع/منبع) و ‘dst’ (مقصد) برای گرفتن بسته هایی با آدرس IP مبدا و/یا مقصد استفاده می شوند.
مثال:
برای گرفتن ترافیک با آدرس IP منبع 192.168.1.108:
tcpdump -i eth0 src 192.168.1.108
برای گرفتن ترافیک با آدرس IP مقصد 192.168.1.108:
tcpdump -i eth0 dst 192.168.1.108
برای گرفتن ارتباط بین یک آدرس منبع و مقصد خاص:
tcpdump -i eth0 src 192.168.1.108 and dst 192.168.1.1
فیلتر شبکه
فیلتر ‘net’ برای ضبط ترافیک در یک شبکه IP خاص استفاده می شود.
مثال:
برای گرفتن تمام ترافیک در شبکه 192.168.1.0/24:
tcpdump -i eth0 net 192.168.1.0/24
فیلتر کردن جهت بسته ها
عبارات ‘src’ و ‘dst’ و فیلتر ‘net’ با هم برای فیلتر کردن جهت بسته ها استفاده می شوند.
برای گرفتن ترافیک از یک شبکه خاص:
tcpdump -i eth0 src net 192.168.1.0/24
برای جذب ترافیک به یک شبکه خاص:
tcpdump -i eth0 dst net 192.168.1.0/24
نوشتن خروجی در فایل و خواندن از آن
گزینه ‘-w’ و نام فایل برای نوشتن خروجی TCPDump روی یک فایل استفاده می شود. این برای تجزیه و تحلیل بعدی بسیار مفید است.
مثال:
tcpdump -i eth0 -w output.pcap
از گزینه ‘-r’ و نام فایل برای خواندن خروجی TCPDump ذخیره شده قبلی استفاده کنید:
tcpdump -r output.pcap
نظارت فوری بر ترافیک شبکه با TCPDump
دستور tcpdump می تواند پارامتر -c را برای توقف زمانی که به تعداد مشخصی از بسته ها رسید، بگیرد. به عنوان مثال، اگر می خواهید فقط 10 بسته اول را ضبط کنید و سپس متوقف شوید، می توانید از دستور زیر استفاده کنید:
مثال:
sudo tcpdump -c 10 -i eth0 -v
فیلترهای TCPDump
TCPDump برای گرفتن بسته هایی با ویژگی های خاص با فیلترهای مختلف همه کاره است.
فیلتر کردن آدرس IP یا محدوده
فیلترهای «host»، «src»، «dst» و «net» برای فیلتر کردن یک آدرس IP یا شبکه خاص استفاده میشوند.
فیلتر پورت
فیلترهای ‘port’، ‘src port’، ‘dst port’ برای فیلتر کردن یک پورت خاص استفاده می شوند.
فیلتر پروتکل
نام پروتکل مستقیماً برای فیلتر کردن یک پروتکل خاص استفاده می شود (به عنوان مثال ‘tcp’، ‘udp’، ‘icmp’).
فیلتر اندازه بسته
فیلترهای «کمتر»، «بزرگتر» و «لن» برای فیلتر کردن بستههایی با اندازه معین استفاده میشوند.
گرفتن بسته های خاص
عبارات فیلتر TCPDump به طور خاص برای گرفتن انواع خاصی از بسته ها استفاده می شود. به عنوان مثال، فیلتر زیر می تواند برای گرفتن تمام بسته های TCP با پرچم SYN استفاده شود:
tcpdump 'tcp[13] & 2 != 0'