यूएफडब्ल्यू फ़ायरवॉल को उबंटू और डेबियन पर कैसे सेटअप करें


सही ढंग से काम करने वाला फ़ायरवॉल पूर्ण लिनक्स सिस्टम सुरक्षा का सबसे महत्वपूर्ण हिस्सा है। डिफ़ॉल्ट रूप से, डेबियन और उबंटू वितरण एक फ़ायरवॉल कॉन्फ़िगरेशन टूल के साथ आता है जिसे UFW ( Uncomplicated फ़ायरवॉल ) कहा जाता है, कॉन्फ़िगरेशन के लिए सबसे लोकप्रिय और उपयोग में आसान कमांड लाइन टूल है Ubuntu और Debian वितरण पर एक फ़ायरवॉल का प्रबंधन।

इस आलेख में, हम Ubuntu और Debian वितरण पर UFW फ़ायरवॉल को स्थापित और सेटअप करने का तरीका बताएंगे।

इस लेख के साथ शुरू करने से पहले, सुनिश्चित करें कि आपने अपने उबंटू या डेबियन सर्वर में सूडो उपयोगकर्ता या रूट खाते के साथ लॉग इन किया है। यदि आपके पास एक sudo उपयोगकर्ता नहीं है, तो आप निम्नलिखित निर्देशों को रूट उपयोगकर्ता के रूप में उपयोग करके बना सकते हैं।

# adduser username
# usermod -aG sudo username 
# su - username
$ sudo whoami

उबंटू और डेबियन पर यूएफडब्ल्यू फ़ायरवॉल स्थापित करें

उबंटू और डेबियन में UFW ( Uncomplicated Firewall ) स्थापित किया जाना चाहिए, यदि नहीं, तो APT पैकेज मैनेजर का उपयोग करके इसे स्थापित करें।

$ sudo apt install ufw

एक बार इंस्टॉलेशन पूरा हो जाने के बाद आप टाइप करके UFW की स्थिति देख सकते हैं।

$ sudo ufw status verbose

पहली बार स्थापित करने पर, UFW फ़ायरवॉल डिफ़ॉल्ट रूप से अक्षम हो जाता है, आउटपुट नीचे के समान होगा।

Status: inactive

आप निम्न कमांड का उपयोग करके UFW फ़ायरवॉल को सक्रिय या सक्षम कर सकते हैं, जिससे फ़ायरवॉल लोड होना चाहिए और इसे बूट पर शुरू करने में सक्षम बनाता है।

$ sudo ufw enable

UFW फ़ायरवॉल को अक्षम करने के लिए, निम्न कमांड का उपयोग करें, जो फ़ायरवॉल को अनलोड करता है और इसे बूट पर शुरू करने से निष्क्रिय करता है।

$ sudo ufw disable 

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

डिफ़ॉल्ट UFW फ़ायरवॉल पॉलिसियाँ /etc/default/ufw फ़ाइल में रखी जाती हैं और इन्हें निम्न कमांड का उपयोग करके बदला जा सकता है।

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing

APT पैकेज प्रबंधक का उपयोग करके सॉफ़्टवेयर पैकेज स्थापित करते समय, इसमें /etc/ufw/applications.d निर्देशिका में एक एप्लिकेशन प्रोफ़ाइल शामिल होगी जो सेवा को परिभाषित करती है और UFW सेटिंग्स रखती है।

आप निम्न आदेश का उपयोग करके अपने सर्वर पर सभी उपलब्ध एप्लिकेशन प्रोफाइल सूचीबद्ध कर सकते हैं।

$ sudo ufw app list

आपके सिस्टम पर सॉफ्टवेयर पैकेज इंस्टॉलेशन के आधार पर आउटपुट निम्न के जैसा दिखेगा:

Available applications:
  APACHE
  APACHE Full
  APACHE SECURE
  CUPS
  OpenSSH
  Postfix
  Postfix SMTPS
  Postfix Submission

यदि आप किसी विशेष प्रोफ़ाइल और परिभाषित नियमों के बारे में अधिक जानकारी प्राप्त करना चाहते हैं, तो आप निम्न कमांड का उपयोग कर सकते हैं।

$ sudo ufw app info 'Apache'
Profile: Apache
Title: Web Server 
Description: Apache V2 is the next generation f the omnipresent Apache web server.

Ports:
  80/tcp

यदि आपका सर्वर IPv6 से कॉन्फ़िगर किया गया है, तो सुनिश्चित करें कि आपका UFW IPv6 और IPv4 समर्थन से कॉन्फ़िगर किया गया है। इसे सत्यापित करने के लिए, अपने पसंदीदा संपादक का उपयोग करके UFW कॉन्फ़िगरेशन फ़ाइल खोलें।

$ sudo vi /etc/default/ufw

फिर सुनिश्चित करें कि "IPV6" दिखाए गए कॉन्फ़िगरेशन फ़ाइल में Yes पर सेट है।

IPV6=yes

सेव करके छोड़ो। फिर निम्नलिखित आदेशों के साथ अपने फ़ायरवॉल को पुनः आरंभ करें:

$ sudo ufw disable
$ sudo ufw enable

यदि आपने अब तक UFW फ़ायरवॉल सक्षम किया है, तो यह आने वाले सभी कनेक्शनों को अवरुद्ध कर देगा और यदि आप दूरस्थ स्थान से SSH पर अपने सर्वर से जुड़े हैं, तो आप इसे फिर से कनेक्ट नहीं कर पाएंगे।

निम्न कमांड का उपयोग करने से रोकने के लिए हमारे सर्वर से SSH कनेक्शन सक्षम करें:

$ sudo ufw allow ssh

यदि आप कस्टम SSH पोर्ट (उदाहरण के लिए पोर्ट 2222 ) का उपयोग कर रहे हैं, तो आपको निम्न कमांड का उपयोग करके UFW फ़ायरवॉल पर उस पोर्ट को खोलने की आवश्यकता है।

$ sudo ufw allow 2222/tcp

सभी SSH कनेक्शन ब्लॉक करने के लिए निम्न कमांड टाइप करें।

$ sudo ufw deny ssh/tcp
$ sudo ufw deny 2222/tcp  [If using custom SSH port]

आप एक निश्चित सेवा के माध्यम से कनेक्शन की अनुमति देने के लिए फ़ायरवॉल में एक विशिष्ट पोर्ट भी खोल सकते हैं। उदाहरण के लिए, यदि आप किसी वेब सर्वर को सेट करना चाहते हैं जो पोर्ट 80 ( HTTP ) को सुनता है और 443 ( HTTPS >) डिफ़ॉल्ट रूप से।

नीचे अपाचे सेवाओं के लिए आने वाले कनेक्शन की अनुमति देने के कुछ उदाहरण दिए गए हैं।

$ sudo ufw allow http     [By service name]
$ sudo ufw allow 80/tcp   [By port number]
$ sudo ufw allow 'Apache' [By application profile]
$ sudo ufw allow https
$ sudo ufw allow 443/tcp
$ sudo ufw allow 'Apache Secure'

मान लें कि आपके पास कुछ एप्लिकेशन हैं, जिन्हें आप पोर्ट्स की एक सीमा ( 5000-5003 ) पर चलाना चाहते हैं, तो आप इन सभी पोर्ट को निम्न कमांड्स का उपयोग करके जोड़ सकते हैं।

sudo ufw allow 5000:5003/tcp
sudo ufw allow 5000:5003/udp

यदि आप विशिष्ट आईपी पते से सभी बंदरगाहों पर कनेक्शन की अनुमति देना चाहते हैं 192.168.56.1 , तो आपको आईपी पते से पहले निर्दिष्ट करने की आवश्यकता है।

$ sudo ufw allow from 192.168.56.1

किसी विशिष्ट पोर्ट पर कनेक्शन की अनुमति देने के लिए (उदाहरण के लिए पोर्ट 22 ) अपने घर की मशीन से 192.168.56.1 के आईपी पते के साथ, फिर आपको किसी भी पोर्ट को जोड़ने की आवश्यकता है दिखाए गए अनुसार IP पते के बाद/strong> और पोर्ट नंबर

$ sudo ufw allow from 192.168.56.1 to any port 22

192.168.1.1 से 192.168.1.254 तक पोर्ट 22 ( SSH ) के लिए विशेष आईपी पते के लिए कनेक्शन की अनुमति देने के लिए , निम्न कमांड चलाएँ।

$ sudo ufw allow from 192.168.1.0/24 to any port 22

किसी विशेष पोर्ट के लिए विशिष्ट नेटवर्क इंटरफ़ेस eth2 के कनेक्शन की अनुमति देने के लिए 22 ( SSH ), निम्न कमांड चलाएँ।

$ sudo ufw allow in on eth2 to any port 22

डिफ़ॉल्ट रूप से, सभी आवक कनेक्शन अवरुद्ध हो जाते हैं, जब तक कि आपने विशेष रूप से यूएफडब्ल्यू पर कनेक्शन नहीं खोला हो। उदाहरण के लिए, आपने पोर्ट 80 और 443 खोल दिए हैं और आपका वेब सर्वर अज्ञात नेटवर्क 11.12.13.0/24 से हमला कर रहा है।

इस विशेष 11.12.13.0/24 नेटवर्क रेंज से सभी कनेक्शन ब्लॉक करने के लिए, आप निम्न कमांड का उपयोग कर सकते हैं।

$ sudo ufw deny from 11.12.13.0/24

यदि आप केवल पोर्ट 80 और 443 पर कनेक्शन ब्लॉक करना चाहते हैं, तो आप निम्न कमांड का उपयोग कर सकते हैं।

$ sudo ufw deny from 11.12.13.0/24 to any port 80
$ sudo ufw deny from 11.12.13.0/24 to any port 443

UFW नियमों को हटाने के 2 तरीके हैं, नियम संख्या और वास्तविक नियम द्वारा।

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

$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere

नियम संख्या 1 को हटाने के लिए, निम्न कमांड का उपयोग करें।

$ sudo ufw delete 1

दूसरी विधि वास्तविक नियम का उपयोग करके किसी नियम को हटाने के लिए है, उदाहरण के लिए, किसी नियम को हटाने के लिए, प्रोटोकॉल के साथ पोर्ट संख्या निर्दिष्ट करें जैसा कि दिखाया गया है।

$ sudo ufw delete allow 22/tcp

आप वास्तव में सिस्टम फ़ायरवॉल में - dry-run ध्वज का उपयोग करके कोई भी ufw कमांड चला सकते हैं, यह केवल उन परिवर्तनों को दिखाता है जहां ऐसा होने लगता है।

$ sudo ufw --dry-run enable

एक कारण या दूसरे के लिए, यदि आप सभी फ़ायरवॉल नियमों को हटाना/रीसेट करना चाहते हैं, तो निम्न कमांड टाइप करें, यह आपके सभी परिवर्तनों को वापस कर देगा और नए सिरे से शुरू करेगा।

$ sudo ufw reset
$ sudo ufw status

UFW फ़ायरवॉल कुछ भी करने का प्रबंधन कर सकता है जो iptables करता है। यह नियमों की फाइलों के विभिन्न सेटों के साथ किया जा सकता है, जो कि कुछ भी नहीं हैं, लेकिन सरल iptables- पुनर्स्थापना पाठ फ़ाइलें हैं।

UFW फ़ायरवॉल की ट्यूनिंग या अतिरिक्त iptables कमांड को जोड़ने की अनुमति ufw कमांड के माध्यम से नहीं दी जाती है, यह निम्न फ़ाइलों को बदलने का एक मामला है

  • /etc/default/ufw: The main configuration file with pre-defined rules.
  • /etc/ufw/before[6].rules: In this file rules are calculated before adding via ufw command.
  • /etc/ufw/after[6].rules: In this file rules are calculated after adding via ufw command.
  • /etc/ufw/sysctl.conf: This file is used to tune kernel network.
  • /etc/ufw/ufw.conf: This file enable the ufw on boot.

बस! UFW एक एकल ufw कमांड के साथ जटिल नियमों को परिभाषित करने के लिए एक उपयोगकर्ता के अनुकूल इंटरफेस के साथ iptables का एक उत्कृष्ट फ्रंट-एंड है।

यदि आपके पास इस ufw लेख के बारे में साझा करने के लिए कोई प्रश्न या विचार हैं, तो हमें तक पहुँचने के लिए नीचे दिए गए टिप्पणी फ़ॉर्म का उपयोग करें।