ngrep - লিনাক্সের জন্য একটি নেটওয়ার্ক প্যাকেট বিশ্লেষক


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

এই সরঞ্জামটি আইপিভি 4/6, টিসিপি, ইউডিপি, আইসিএমপিভি 4/6, আইজিএমপি পাশাপাশি বিভিন্ন ইন্টারফেসে কাঁচা সহ বিভিন্ন ধরণের প্রোটোকল নিয়ে কাজ করে। এটি tcpdump প্যাকেট স্নিফিং সরঞ্জাম হিসাবে একই ফ্যাশনে কাজ করে।

প্যাকেজ ngrep প্রদর্শিত হিসাবে প্যাকেজ পরিচালনা সরঞ্জাম ব্যবহার করে মূলধারার লিনাক্স ডিস্ট্রিবিউশনগুলিতে ডিফল্ট সিস্টেম সংগ্রহস্থল থেকে ইনস্টল করার জন্য উপলব্ধ।

$ sudo apt install ngrep
$ sudo yum install ngrep
$ sudo dnf install ngrep

এনগ্রিপ ইনস্টল করার পরে, আপনি নিম্নলিখিত উদাহরণগুলি ব্যবহার করে আপনার লিনাক্স নেটওয়ার্কের ট্র্যাফিক বিশ্লেষণ শুরু করতে পারেন।

1. নিম্নলিখিত কমান্ডটি আপনাকে ডিফল্ট ওয়ার্কিং ইন্টারফেসের সমস্ত পিংয়ের অনুরোধগুলি মেলাতে সহায়তা করবে। আপনাকে অন্য একটি টার্মিনাল খুলতে হবে এবং অন্য একটি রিমোট মেশিন পিং করার চেষ্টা করতে হবে। -q পতাকাটি ngrep কে চুপচাপ কাজ করতে বলে, প্যাকেট শিরোনাম এবং তাদের পে-লোড ব্যতীত অন্য কোনও তথ্য আউটপুট না দেয়।

$ sudo ngrep -q '.' 'icmp'

interface: enp0s3 (192.168.0.0/255.255.255.0)
filter: ( icmp ) and ((ip || ip6) || (vlan && (ip || ip6)))
match: .

I 192.168.0.104 -> 192.168.0.103 8:0
  ]...~oG[....j....................... !"#$%&'()*+,-./01234567                                                                                                             

I 192.168.0.103 -> 192.168.0.104 0:0
  ]...~oG[....j....................... !"#$%&'()*+,-./01234567                                                                                                             

I 192.168.0.104 -> 192.168.0.103 8:0
  ]....oG[............................ !"#$%&'()*+,-./01234567                                                                                                             

I 192.168.0.103 -> 192.168.0.104 0:0
  ]....oG[............................ !"#$%&'()*+,-./01234567  

এটিকে বন্ধ করতে আপনি Ctrl + C টিপতে পারেন।

২. কোনও নির্দিষ্ট গন্তব্য সাইটে কেবল ট্র্যাফিকের সাথে মেলে, উদাহরণস্বরূপ ‘google.com’, নিম্নলিখিত কমান্ডটি চালান, তারপরে এটি ব্রাউজার থেকে অ্যাক্সেস করার চেষ্টা করুন।

$ sudo ngrep -q '.' 'host google.com'

interface: enp0s3 (192.168.0.0/255.255.255.0)
filter: ( host google.com ) and ((ip || ip6) || (vlan && (ip || ip6)))
match: .

T 172.217.160.174:443 -> 192.168.0.103:54008 [AP]
  ..................;.(...RZr..$....s=..l.Q+R.U..4..g.j..I,.l..:{y.a,....C{5>[email                                                                        

T 172.217.160.174:443 -> 192.168.0.103:54008 [AP]
  .............l.......!,0hJ....0.%F..!...l|.........PL..X...t..T.2DC..... ..y...~Y;[email 

৩. আপনি যদি ওয়েবটি সার্ফ করছেন তবে আপনার ব্রাউজারটি কোন ফাইলগুলির জন্য অনুরোধ করছে তা নিরীক্ষণ করতে নিম্নলিখিত কমান্ডটি চালান:

$ sudo ngrep -q '^GET .* HTTP/1.[01]'

interface: enp0s3 (192.168.0.0/255.255.255.0)
filter: ((ip || ip6) || (vlan && (ip || ip6)))
match: ^GET .* HTTP/1.[01]

T 192.168.0.104:43040 -> 172.217.160.174:80 [AP]
  GET / HTTP/1.1..Host: google.com..User-Agent: Links (2.13; Linux 4.17.6-1.el7.elrepo.x86_64 x86_64; 
  GNU C 4.8.5; text)..Accept: */*..Accept-Language: en,*;q=0.1..Accept-
  Encoding: gzip, deflate, bzip2..Accept-Charset: us-ascii,ISO-8859-1,ISO-8859-2,ISO-8859-3,ISO-8859-4,
  ISO-8859-5,ISO-8859-6,ISO-8859-7,ISO-8859-8,ISO-8859-9,ISO-8859-10,I
  SO-8859-13,ISO-8859-14,ISO-8859-15,ISO-8859-16,windows-1250,windows-1251,windows-1252,windows-1256,
  windows-1257,cp437,cp737,cp850,cp852,cp866,x-cp866-u,x-mac,x-mac-ce,x-
  kam-cs,koi8-r,koi8-u,koi8-ru,TCVN-5712,VISCII,utf-8..Connection: keep-alive.... 

4. সমস্ত ক্রসিং সোর্স বা গন্তব্য পোর্ট 25 (এসএমটিপি) দেখতে, নিম্নলিখিত কমান্ডটি চালান।

$ sudo ngrep port 25

৫. "ত্রুটি" শব্দের উপস্থিতির জন্য কোনও নেটওয়ার্ক-ভিত্তিক সিস্টলোগ ট্র্যাফিক নিরীক্ষণ করতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন।

 
$ sudo ngrep -d any 'error' port 514

গুরুত্বপূর্ণভাবে, এই সরঞ্জামটি "/ etc/পরিষেবাদি" (লিনাক্সের মতো ইউনিক্সের মতো সিস্টেমগুলিতে) সঞ্চিত পরিষেবা পোর্ট নামগুলি পোর্ট সংখ্যায় রূপান্তর করতে পারে। এই কমান্ডটি উপরের কমান্ডের সমতুল্য।

$ sudo ngrep -d any 'error' port syslog

You. আপনি এইচটিটিপি সার্ভারের বিরুদ্ধেও এনগ্রিপ চালাতে পারেন (পোর্ট ৮০), এটি প্রদর্শিত গন্তব্যের হোস্টের সাথে সমস্ত অনুরোধের সাথে মিলবে।

$ sudo ngrep port 80

interface: eth0 (64.90.164.72/255.255.255.252)
filter: ip and ( port 80 )
####
T 67.169.59.38:42167 -> 64.90.164.74:80 [AP]
  GET / HTTP/1.1..User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i
  686) Opera 7.21  [en]..Host: www.darkridge.com..Accept: text/html, applicat
  ion/xml;q=0.9, application/xhtml+xml;q=0.9, image/png, image/jpeg, image/gi
  f, image/x-xbitmap, */*;q=0.1..Accept-Charset: iso-8859-1, utf-8, utf-16, *
  ;q=0.1..Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0..Cookie: SQ
  MSESSID=5272f9ae21c07eca4dfd75f9a3cda22e..Cookie2: $Version=1..Connection:
  Keep-Alive, TE..TE: deflate, gzip, chunked, identity, trailers....
##

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

$ sudo ngrep -W byline port 80

interface: eth0 (64.90.164.72/255.255.255.252)
filter: ip and ( port 80 )
####
T 67.169.59.38:42177 -> 64.90.164.74:80 [AP]
GET / HTTP/1.1.
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686) Opera ...
Host: www.darkridge.com.
Accept: text/html, application/xml;q=0.9, application/xhtml+xml;q=0.9 ...
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1.
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0.
Cookie: SQMSESSID=5272f9ae21c07eca4dfd75f9a3cda22e.
Cookie2: $Version=1.
Cache-Control: no-cache.
Connection: Keep-Alive, TE.
TE: deflate, gzip, chunked, identity, trailers.

Y. ওয়াইওয়াইওয়াই/এমএম/ডিডি এইচ এইচ: এমএম: এসএস.ইউ.ইউ.ইউ আকারে একটি টাইমস্ট্যাম্প মুদ্রণ করতে -বার পতাকাটি ব্যবহার করুন।

$ sudo ngrep -t -W byline port 80

interface: enp0s3 (192.168.0.0/255.255.255.0)
filter: ( port 80 ) and ((ip || ip6) || (vlan && (ip || ip6)))
####
T 2018/07/12 16:33:19.348084 192.168.0.104:43048 -> 172.217.160.174:80 [AP]
GET / HTTP/1.1.
Host: google.com.
User-Agent: Links (2.13; Linux 4.17.6-1.el7.elrepo.x86_64 x86_64; GNU C 4.8.5; text).
Accept: */*.
Accept-Language: en,*;q=0.1.
Accept-Encoding: gzip, deflate, bzip2.
Accept-Charset: us-ascii,ISO-8859-1,ISO-8859-2,ISO-8859-3,ISO-8859-4,ISO-8859-5,utf-8.
Connection: keep-alive.

৮. ইন্টারফেসটিকে প্রমিসিউস মোডে নজরদারি করা না দেওয়া (যেখানে এটি প্রতিটি নেটওয়ার্ক প্যাকেটকে পুরোপুরি উপস্থিত করে এবং এটি পড়তে পারে), -p পতাকা যুক্ত করুন।

$ sudo ngrep -p -W byline port 80

9. আর একটি গুরুত্বপূর্ণ বিকল্প হ'ল -এন আপনি কাঁচা বা অজানা প্রোটোকল পর্যবেক্ষণ করছেন এমন ক্ষেত্রে কার্যকর। এটি এনগ্রিপকে একক-অক্ষর সনাক্তকারী সহ উপ-প্রোটোকল নম্বর প্রদর্শন করতে বলে।

$ sudo ngrep -N -W byline

আরও তথ্যের জন্য এনগ্রিপ ম্যান পৃষ্ঠাটি দেখুন।

$ man ngrep

ngrep গিথুব সংগ্রহস্থল: https://github.com/jpr5/ngrep

এখানেই শেষ! এনগ্রিপ (নেটওয়ার্ক গ্রেপ) একটি নেটওয়ার্ক প্যাকেট বিশ্লেষক যা বিপিএফ ফিল্টার যুক্তিকে একই ফ্যাশন টিসিপিডম্পে বোঝে। আমরা মন্তব্য বিভাগে এনগ্রিপ সম্পর্কে আপনার মতামত জানতে চাই।