টিসিপিফ্লো - লিনাক্সে নেটওয়ার্ক ট্র্যাফিক বিশ্লেষণ এবং ডিবাগ করুন


টিসিপিফ্লো হ'ল লিনাক্সের মতো ইউনিক্সের মতো সিস্টেমে নেটওয়ার্ক ট্র্যাফিক বিশ্লেষণের জন্য একটি মুক্ত, ওপেন সোর্স, শক্তিশালী কমান্ড লাইন ভিত্তিক সরঞ্জাম। এটি টিসিপি সংযোগের মাধ্যমে প্রাপ্ত বা স্থানান্তরিত ডেটা ক্যাপচার করে এবং পরবর্তী বিশ্লেষণের জন্য একটি ফাইলে এটি একটি দরকারী ফর্ম্যাটে সংরক্ষণ করে যা প্রোটোকল বিশ্লেষণ এবং ডিবাগিংয়ের অনুমতি দেয়।

এটি আসলে একটি টিসিপিডাম্প-জাতীয় সরঞ্জাম কারণ এটি তার থেকে বা কোনও সঞ্চিত ফাইল থেকে প্যাকেটগুলি প্রসেস করে। এটি একই অংশীদার দ্বারা সমর্থিত একই শক্তিশালী ফিল্টারিং এক্সপ্রেশন সমর্থন করে। পার্থক্যটি হ'ল টিসিপিফ্লো সমস্ত টিসিপি প্যাকেটগুলিকে ক্রমে রাখে এবং পরবর্তী বিশ্লেষণের জন্য প্রতিটি প্রবাহকে একটি পৃথক ফাইলে (প্রবাহের প্রতিটি দিকের জন্য একটি ফাইল) একত্রিত করে।

এর বৈশিষ্ট্য সেটটিতে সংকুচিত এইচটিটিপি সংযোগগুলি সংক্ষেপিত করার জন্য, মাইমে এনকোডিংটিকে পূর্বাবস্থায়িত করতে, বা পোস্ট প্রসেসিংয়ের জন্য তৃতীয় পক্ষের প্রোগ্রামগুলি আহ্বান করার জন্য আরও অনেক কিছু রয়েছে।

টিসিপিফ্লোয়ের জন্য অনেকগুলি ব্যবহারের কেস রয়েছে যার মধ্যে রয়েছে নেটওয়ার্ক প্যাকেট প্রবাহ বোঝা এবং নেটওয়ার্ক ফরেনসিক সম্পাদন এবং এইচটিটিপি সেশনগুলির বিষয়বস্তু প্রকাশ করার জন্য সমর্থন করে।

লিনাক্স সিস্টেমগুলিতে কীভাবে টিসিপিফ্লো ইনস্টল করবেন

মূলধারার জিএনইউ/লিনাক্স বিতরণের অফিসিয়াল সংগ্রহস্থলগুলিতে টিসিপিফ্লো পাওয়া যায়, যেমনটি আপনার প্যাকেজ ম্যানেজারটি দেখানো হিসাবে এটি ব্যবহার করে ইনস্টল করতে পারেন।

$ sudo apt install tcpflow	#Debian/Ubuntu
$ sudo yum install tcpflow	#CentOS/RHEL
$ sudo dnf install tcpflow	#Fedora 22+

টিসিপিফ্লো ইনস্টল করার পরে, আপনি এটি সুপার-ইউরর সুবিধা সহ চালাতে পারেন, অন্যথায় sudo কমান্ডটি ব্যবহার করুন। মনে রাখবেন এটি সক্রিয় নেটওয়ার্ক ইন্টারফেসে (উদাহরণস্বরূপ enp0s3) শোনে।

$ sudo tcpflow

tcpflow: listening on enp0s3

ডিফল্টরূপে টিসিপিফ্লো ফর্মের নামযুক্ত ফাইলগুলিতে সমস্ত ক্যাপচার করা ডেটা সঞ্চয় করে (আপনি টাইমস্ট্যাম্পের মতো নির্দিষ্ট বিকল্পগুলি ব্যবহার করলে এটি ভিন্ন হতে পারে)।

sourceip.sourceport-destip.destport
192.168.043.031.52920-216.058.210.034.00443

Tcp ফ্লো কোনও ফাইলের ক্যাপচার হয়েছে কিনা তা দেখার জন্য এখন একটি ডিরেক্টরি তালিকা তৈরি করুন।

$ ls -1

total 20
-rw-r--r--. 1 root    root     808 Sep 19 12:49 192.168.043.031.52920-216.058.210.034.00443
-rw-r--r--. 1 root    root      59 Sep 19 12:49 216.058.210.034.00443-192.168.043.031.52920

যেমনটি আমরা আগে উল্লেখ করেছি, প্রতিটি টিসিপি ফ্লো তার নিজস্ব ফাইলে সংরক্ষণ করা হয়। উপরের আউটপুট থেকে, আপনি দেখতে পাচ্ছেন যে তিনটি ট্রান্সক্রিপ্ট ফাইল রয়েছে, যা দুটি বিপরীত দিকে tcpflow নির্দেশ করে, যেখানে প্রথম ফাইলে উত্স আইপি এবং দ্বিতীয় ফাইলে গন্তব্য আইপি এবং বিপরীতে।

প্রথম ফাইল 192.168.043.031.52920-216.058.210.034.00443 তে পোর্ট 443 বন্দরের মাধ্যমে 216.058.210.034 (রিমোট হোস্ট) হোস্ট করার জন্য, বন্দর 52920 এর মাধ্যমে হোস্ট 192.168.043.031 (লোকালহোস্ট যার উপর টিসিপিফ্লো চালানো হয়েছিল) থেকে হোস্ট 192 থেকে স্থানান্তরিত ডেটা রয়েছে।

এবং দ্বিতীয় ফাইল 216.058.210.034.00443-192.168.043.031.52920 এ হোস্ট 216.058.210.034 (রিমোট হোস্ট) থেকে 443 বন্দরটি 192.168.043.031 হোস্ট করার জন্য (রিমোট হোস্ট) 52220 বন্দর দিয়ে পোর্টের মাধ্যমে প্রেরণ করা ডেটা রয়েছে।

একটি এক্সএমএল প্রতিবেদন তৈরি করা হয়েছে, যার মধ্যে প্রোগ্রামটি সম্পর্কিত তথ্য যেমন এটি কীভাবে সংকলন করা হয়েছিল এবং যে কম্পিউটারটি এটি চালিত হয়েছিল এবং প্রতিটি টিসিপি সংযোগের রেকর্ড রয়েছে তার মধ্যে রয়েছে।

আপনারা যেমন খেয়াল করেছেন, tcpflow বর্তমান ডিরেক্টরিতে ট্রান্সক্রিপ্ট ফাইলগুলি ডিফল্টরূপে সঞ্চয় করে। -o বিকল্পটি আপনাকে আউটপুট ডিরেক্টরি নির্দিষ্ট করতে সহায়তা করতে পারে যেখানে ট্রান্সক্রিপ্ট ফাইলগুলি লিখিত হবে।

$ sudo tcpflow -o tcpflow_files
$ sudo ls -l tcpflow_files

total 32
-rw-r--r--. 1 root root 1665 Sep 19 12:56 157.240.016.035.00443-192.168.000.103.45986
-rw-r--r--. 1 root root   45 Sep 19 12:56 169.044.082.101.00443-192.168.000.103.55496
-rw-r--r--. 1 root root 2738 Sep 19 12:56 172.217.166.046.00443-192.168.000.103.39954
-rw-r--r--. 1 root root   68 Sep 19 12:56 192.168.000.102.00022-192.168.000.103.42436
-rw-r--r--. 1 root root  573 Sep 19 12:56 192.168.000.103.39954-172.217.166.046.00443
-rw-r--r--. 1 root root 4067 Sep 19 12:56 192.168.000.103.45986-157.240.016.035.00443
-rw-r--r--. 1 root root   38 Sep 19 12:56 192.168.000.103.55496-169.044.082.101.00443
-rw-r--r--. 1 root root 3159 Sep 19 12:56 report.xml

নীচে -c পতাকা ব্যবহার করে, প্যাকেটের সামগ্রীগুলি স্টডআউটে প্রাপ্ত হওয়ার সাথে সাথে ফাইলগুলিতে কোনও ক্যাপচার করা ডেটা সংরক্ষণ না করে মুদ্রণ করতে পারেন।

এটি কার্যকরভাবে পরীক্ষা করতে, দ্বিতীয় টার্মিনালটি খুলুন এবং একটি পিং চালান, বা ইন্টারনেট ব্রাউজ করুন। আপনি পিং বিবরণ বা আপনার ব্রাউজিং বিবরণ টিসিপিফ্লো দ্বারা ক্যাপচার করা দেখতে পারা উচিত।

$ sudo tcpflow -c

কোনও নির্দিষ্ট বন্দরে সমস্ত ট্র্যাফিক ক্যাপচার করা সম্ভব, উদাহরণস্বরূপ পোর্ট 80 (এইচটিটিপি)। এইচটিটিপি ট্র্যাফিকের ক্ষেত্রে, যদি আপনি -c স্যুইচ সরিয়ে ফেলা হয় তবে আপনি এইচটিটিপি শিরোনামগুলি সমস্ত স্টডআউটে বা একটি ফাইলে অনুসরণ করতে পারবেন।

$ sudo tcpflow port 80

নির্দিষ্ট নেটওয়ার্ক ইন্টারফেস থেকে প্যাকেটগুলি ক্যাপচার করতে, ইন্টারফেসের নামটি নির্দিষ্ট করতে -i পতাকা ব্যবহার করুন।

$ sudo tcpflow -i eth0 port 80

আপনি প্রদর্শিত হিসাবে একটি লক্ষ্য হোস্ট (স্বীকৃত মানগুলি আইপি ঠিকানা, হোস্টনাম বা ডোমেনগুলি) নির্দিষ্ট করতে পারেন।

$ sudo tcpflow -c host 192.68.43.1
OR
$ sudo tcpflow -c host www.google.com 

আপনি -a পতাকা সহ সমস্ত স্ক্যানার ব্যবহার করে সমস্ত প্রক্রিয়াকরণ সক্ষম করতে পারবেন এটি সমস্ত কোডের -e সমতুল্য।

$ sudo tcpflow -a  
OR
$ sudo tcpflow -e all

একটি নির্দিষ্ট স্ক্যানার সক্রিয় করা যেতে পারে; উপলব্ধ স্ক্যানারগুলির মধ্যে এমডি 5, এইচটিপি, নেটভিজ, টিসিপিডেমাক্স এবং ওয়াইফাইভিজ (প্রতিটি স্ক্যানার সম্পর্কে বিস্তারিত তথ্য দেখতে টিসিপিফ্লো -H চালান) অন্তর্ভুক্ত রয়েছে।

$ sudo tcpflow -e http
OR
$ sudo tcpflow -e md5
OR
$ sudo tcpflow -e netviz
OR
$ sudo tcpflow -e tcpdemux
OR
$ sudo tcpflow -e wifiviz

নিম্নলিখিত উদাহরণটি দেখায় যে কিভাবে টিসিপিডেমিক্স ব্যতীত সমস্ত স্ক্যানার সক্ষম করতে হয়।

$ sudo tcpflow -a -x tcpdemux 

টিসিপিফ্লো সাধারণত প্যাকেটগুলি ক্যাপচার করার আগে নেটওয়ার্ক ইন্টারফেসটিকে প্রম্পিস মোডে রাখার চেষ্টা করে। আপনি প্রদর্শিত হিসাবে -p পতাকা ব্যবহার করে এটি প্রতিরোধ করতে পারেন।

$ sudo tcpflow -p -i eth0

একটি tcpdump pcap ফাইল থেকে প্যাকেট পড়তে -r পতাকা ব্যবহার করুন।

$ sudo tcpflow -f file.pcap

আপনি -v বা -d 10 বিকল্পগুলি ব্যবহার করে ভার্বোজ মোড সক্ষম করতে পারেন।

$ sudo tcpflow -v
OR
$ sudo tcpflow -d 10

গুরুত্বপূর্ণ: টিসিপিফ্লোয়ের একটি সীমাবদ্ধতা হ'ল, বর্তমানে এটি আইপি টুকরোগুলি বুঝতে পারে না, এইভাবে আইপি টুকরো সম্বলিত টিসিপি সংযোগগুলির অংশ হিসাবে প্রেরিত ডেটা সঠিকভাবে ধরা পড়বে না।

আরও তথ্য এবং ব্যবহারের বিকল্পগুলির জন্য, tcpflow ম্যান পৃষ্ঠাটি দেখুন।

$ man tcpflow 

টিসিপিফ্লো গিথুব সংগ্রহস্থল: https://github.com/simsong/tcpflow

এখন এ পর্যন্তই! টিসিপিফ্লো একটি শক্তিশালী টিসিপি ফ্লো রেকর্ডার যা নেটওয়ার্ক প্যাকেট প্রবাহ বুঝতে এবং নেটওয়ার্ক ফরেনসিক সম্পাদন এবং আরও অনেক কিছুর জন্য দরকারী। এটি চেষ্টা করে দেখুন এবং মন্তব্য সম্পর্কে আমাদের সাথে এটি সম্পর্কে আপনার মতামত ভাগ করুন।