फ्रीबीएसडी में ओपन पोर्ट खोजने के लिए 15 उपयोगी 'सोकस्टैट कमांड उदाहरण'


सॉकस्टैट एक बहुमुखी कमांड लाइन उपयोगिता है जिसका उपयोग फ्रीबीएसडी में नेटवर्क और सिस्टम खोले गए सॉकेट को प्रदर्शित करने के लिए किया जाता है। मुख्य रूप से, Sockstat कमांड FreeBSD में डिफ़ॉल्ट रूप से स्थापित है और इसका उपयोग आमतौर पर उन प्रक्रियाओं के नाम को प्रदर्शित करने के लिए किया जाता है जिन्होंने एक FreeBSD सिस्टम पर एक निश्चित नेटवर्क पोर्ट खोला है।

हालांकि, sockstat भी कनेक्शन स्थिति के आधार पर प्रोटोकॉल संस्करण (दोनों आईपी संस्करण) के आधार पर खुले सॉकेट्स को सूचीबद्ध कर सकता है और एक पोर्ट या एक प्रोग्राम को किस पोर्ट पर बांधता और सुनता है।

यह अंतर-प्रक्रिया संचार सॉकेट को भी प्रदर्शित कर सकता है, जिसे आमतौर पर यूनिक्स डोमेन सॉकेट या आईपीसी के रूप में जाना जाता है। Sockstat कमांड को grep फ़िल्टर के साथ जोड़ा जाता है या awk उपयोगिता के माध्यम से पाइप किया जाता है जो स्थानीय नेटवर्किंग स्टैक के लिए एक शक्तिशाली उपकरण साबित होता है।

यह सॉकेट के स्वामित्व वाले उपयोगकर्ता के आधार पर एक खोले गए कनेक्शन के लिए परिणामों को सिकोड़ सकता है, नेटवर्क सॉकेट का फ़ाइल डिस्क्रिप्टर या प्रक्रिया का पीआईडीजिसने सॉकेट खोला है।

इस गाइड में हम कुछ सामान्य उपयोग के उदाहरणों को सूचीबद्ध करेंगे, लेकिन FreeBSD में सोक्टैट कमांड लाइन नेटवर्किंग उपयोगिता के बहुत शक्तिशाली हैं।

  1. FreeBSD 11.1 Installation Guide

1. फ्रीबीएसडी में सभी ओपन पोर्ट्स को सूचीबद्ध करें

बस किसी भी विकल्प या स्विच के बिना निष्पादित, sockstat कमांड सभी ओपन सॉकेट्स को एक FreeBSD सिस्टम में प्रदर्शित करेगा, जैसा कि नीचे दिए गए स्क्रीनशॉट में दिखाया गया है।

# sockstat

सॉकस्टैट आउटपुट में प्रदर्शित मूल्य इस प्रकार हैं:

  • USER : The owner (user account) of the socket.
  • COMMAND : The command which with opened the socket.
  • PID : The process ID of the command which owns the socket.
  • FD : The file descriptor number of the socket.
  • PROTO : The transport protocol (usually TCP/UDP) associated with the opened socket or socket type in case of unix domain sockets (datagram, stream or seqpac) for UNIX sockets.
  • LOCAL ADDRESS : It represents the local IP address for IP based sockets. In case of Unix sockets it represents endpoint filename attached to the socket. The “??” notation implies that the socket endpoint could not be recognized or established.
  • FOREIGN ADDRESS : The remote IP address where the socket is connected to.

2. फ्रीबीएसडी में लिस्टिंग या ओपन पोर्ट्स की सूची बनाना

-l ध्वज के साथ निष्पादित, sockstat कमांड नेटवर्किंग स्टैक में खोले गए सभी सुनने वाले सॉकेट्स को प्रदर्शित करेगा और सिस्टम में कुछ प्रकार के स्थानीय डेटा प्रोसेसिंग में शामिल यूनिक्स डोमेन सॉकेट्स या नामित पाइप्स को खोल देगा।

# sockstat -l

3. FreeBSD में IPv4 ओपन किए गए पोर्ट को सूचीबद्ध करें

केवल IPv4 प्रोटोकॉल के लिए सभी खोले गए सॉकेट्स को प्रदर्शित करने के लिए, नीचे दिए गए उदाहरण के अनुसार, -4 ध्वज के साथ कमांड जारी करें।

# sockstat -4

4. सूची IPv6 मुक्त बंदरगाहों में बंदरगाहों खोला

IPv4 संस्करण के समान, आप केवल नीचे दिखाए अनुसार कमांड जारी करके, केवल IPv6 के लिए खोले गए नेटवर्क सॉकेट को भी प्रदर्शित कर सकते हैं।

# sockstat -6

5. सूची टीसीपी या यूडीपी मुक्त बंदरगाहों में खोला

केवल निर्दिष्ट नेटवर्क प्रोटोकॉल के आधार पर नेटवर्क सॉकेट प्रदर्शित करने के लिए, जैसे TCP या UDP , --P ध्वज का उपयोग करें, उसके बाद iPad प्रोटोकॉल का तर्क नाम।

प्रोटोकॉल नाम /etc/प्रोटोकॉल फ़ाइल की सामग्री का निरीक्षण करके पाया जा सकता है। वर्तमान में, ICMP प्रोटोकॉल sockstat टूल द्वारा समर्थित नहीं है।

# sockstat -P tcp
# sockstat -P udp

चेन दोनों प्रोटोकॉल।

# sockstat –P tcp,udp

6. सूची टीसीपी और यूडीपी विशिष्ट पोर्ट नंबर

यदि आप सभी टीसीपी या यूडीपी आईपी खोले गए सॉकेट को प्रदर्शित करना चाहते हैं, तो स्थानीय या दूरस्थ पोर्ट नंबर के आधार पर, नीचे दिए गए स्क्रीनशॉट में सचित्र, नीचे दिए गए कमांड फ्लैग और सिंटैक्स का उपयोग करें।

# sockstat -P tcp -p 443             [Show TCP HTTPS Port]
# sockstat -P udp -p 53              [Show UDP DNS Port] 
# sockstat -P tcp -p 443,53,80,21    [Show Both TCP and UDP]

7. फ्रीबीएसडी में लिस्टेड और कनेक्टेड पोर्ट्स

सभी खुले और जुड़े सॉकेट्स को प्रदर्शित करने के लिए, -c ध्वज का उपयोग करें। जैसा कि नीचे दिए गए नमूनों में दिखाया गया है, आप सभी HTTPS कनेक्टेड सॉकेट्स या सभी टीसीपी कनेक्टेड सॉकेट्स को कमांड जारी करके सूचीबद्ध कर सकते हैं।

# sockstat -P tcp -p 443 -c
# sockstat -P tcp -c

8. सूची नेटवर्क FreeBSD में सुनकर बंदरगाहों

सुनने वाले राज्य में सभी खोले गए टीसीपी सॉकेट्स को सूचीबद्ध करने के लिए -l और -s झंडे संलग्न करें, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है। एक कनेक्शन रहित प्रोटोकॉल होने के नाते, यूडीपी कनेक्शन की स्थिति के बारे में कोई जानकारी नहीं रखता है।

यूडीपी खोले गए सॉकेट्स को उनके राज्य का उपयोग करके प्रदर्शित नहीं किया जा सकता है, क्योंकि यूडीपी प्रोटोकॉल डेटा भेजने/प्राप्त करने के लिए डेटाग्राम का उपयोग करता है और कनेक्शन की स्थिति निर्धारित करने के लिए कोई निर्माण-तंत्र नहीं है।

# sockstat -46 -l -s

9. यूनिक्स सॉकेट्स और नामांकित पाइप्स को सूचीबद्ध करें

यूनिक्स डोमेन सॉकेट, साथ ही साथ स्थानीय अंतर-प्रक्रिया संचार के अन्य रूप, जैसे नामित पाइप, -u ध्वज का उपयोग करके sockstat कमांड द्वारा प्रदर्शित किया जा सकता है, जैसा कि नीचे की छवि में दिखाया गया है।

# sockstat -u

10. फ्रीबीएसडी में आवेदन द्वारा खोले गए सूची पोर्ट

Sockstat कमांड आउटपुट को grep उपयोगिता के माध्यम से फ़िल्टर किया जा सकता है ताकि किसी विशिष्ट एप्लिकेशन या कमांड द्वारा खोले गए पोर्ट की सूची प्रदर्शित हो सके।

मान लीजिए कि आप Nginx वेब सर्वर से जुड़े सभी सॉकेट्स को सूचीबद्ध करना चाहते हैं, तो आप कार्य को प्राप्त करने के लिए निम्न आदेश जारी कर सकते हैं।

# sockstat -46 | grep nginx

Nginx वेब सर्वर से जुड़े केवल कनेक्ट किए गए सॉकेट्स को प्रदर्शित करने के लिए, निम्न कमांड जारी करें।

# sockstat -46 -c| grep nginx

11. सूची HTTPS कनेक्टेड प्रोटोकॉल

आप नीचे दिए गए आदेश को चलाकर प्रत्येक कनेक्शन की स्थिति के साथ HTTPS प्रोटोकॉल से जुड़े सभी जुड़े सॉकेट्स को सूचीबद्ध कर सकते हैं।

# sockstat -46 -s -P TCP -p 443 -c

12. HTTP रिमोट सॉकेट्स को सूचीबद्ध करें

HTTP प्रोटोकॉल से जुड़े सभी रिमोट सॉकेट्स को सूचीबद्ध करने के लिए, आप निम्न कमांड संयोजनों में से एक को चला सकते हैं।

# sockstat -46 -c | egrep '80|443' | awk '{print $7}' | uniq -c | sort -nr
# sockstat -46 -c -p 80,443 | grep -v ADDRESS|awk '{print $7}' | uniq -c | sort -nr

13. IP पते द्वारा उच्चतम HTTP अनुरोध प्राप्त करें

यदि आप यह पता लगाना चाहते हैं कि प्रत्येक दूरस्थ आईपी पते से कितने HTTP कनेक्शन का अनुरोध किया जाता है, तो नीचे दिए गए आदेश को जारी करें। यदि आप अपने वेब सर्वर को किसी तरह के डीडीओएस हमले के तहत निर्धारित करना चाहते हैं तो यह कमांड बहुत उपयोगी हो सकती है। संदेह के मामले में, आपको उच्चतम अनुरोध दर के साथ आईपी पते की जांच करनी चाहिए।

# sockstat -46 -c | egrep '80|443' | awk '{print $7}' | cut -d: -f1 | uniq -c | sort –nr

14. सूची डीएनएस ओपन किए गए सॉकेट

रिज़ॉल्वर द्वारा खोला गया, प्रत्येक सॉकेट कनेक्शन की स्थिति के साथ, निम्न कमांड निष्पादित करें।

# sockstat -46 -P tcp –p 53 -s

15. स्थानीय डोमेन पर टीसीपी DNS को क्वेरी करें

यदि नेटवर्क पर कोई DNS ट्रैफ़िक नहीं है, तो आप निम्न खुदाई कमांड चलाकर स्थानीय मशीन के कंसोल से TCP सॉकेट पर DNS क्वेरी को मैन्युअल रूप से ट्रिगर कर सकते हैं। बाद में, सभी रिवाल्वर सॉकेट को सूचीबद्ध करने के लिए उपरोक्त आदेश जारी करें।

# dig +tcp  www.domain.com  @127.0.0.1

बस इतना ही! Netstat और lsof कमांड लाइन उपयोगिताओं के साथ, sockstat कमांड लाइन एक शक्तिशाली उपयोगिता है जो नेटवर्क जानकारी प्राप्त करने के लिए उपयोग की जाती है और FreeBSD नेटवर्किंग स्टैक और नेटवर्किंग संबंधित प्रक्रियाओं और सेवाओं के कई पहलुओं का निवारण करती है।

लिनक्स में FreeBSD sockstat कमांड समकक्ष netstat या नव ss कमांड द्वारा दर्शाया गया है। मानो या न मानो, sockstat उपयोगिता के आधार पर, आप एंड्रॉइड OS के लिए विकसित एक समान एप्लिकेशन पा सकते हैं, जिसका नाम SockStat - Simple Netstat GUI है।