लिनक्समा रहेको फायरवालले कम्प्युटर प्रणालीलाई सुरक्षित राख्न महत्त्वपूर्ण भूमिका खेल्छ। यसले प्रणालीलाई अनधिकृत पहुँच, आक्रमण र अन्य खतराहरूबाट जोगाउन नेटवर्क ट्राफिकलाई नियन्त्रण र फिल्टर गर्ने, अवरोधको रूपमा काम गर्छ। राम्रोसँग कन्फिगर गरिएको फायरवाल बिना, सर्भर विभिन्न प्रकारका साइबर आक्रमणहरूको जोखिममा पर्न सक्छ, जसले डेटा सुरक्षा र गोपनीयताको लागि गम्भीर परिणामहरू निम्त्याउँछ।
यस लेखमा, हामी लिनक्स फायरवाल कन्फिगर गर्नका लागि दुई मुख्य उपकरणहरू हेर्नेछौं: फायरवालल्ड र iptables। हामी तिनीहरूका सुविधाहरू, कार्यक्षमता र फाइदाहरूको तुलनात्मक विश्लेषण गर्नेछौं। थप रूपमा, हामी यी प्रत्येक उपकरणहरू सेटअप र प्रयोग गर्नको लागि विस्तृत निर्देशनहरू प्रदान गर्नेछौं, साथै लिनक्स प्लेटफर्ममा फायरवालको साथ तपाईंको प्रणाली सुरक्षित गर्ने उत्तम अभ्यासहरू छलफल गर्नेछौं। सबै कार्यहरू a मा प्रदर्शन गरिनेछ। भर्चुअल सर्भर जड पहुँचको साथ।
Linux मा firewalld कन्फिगर गर्दै
फायरवालले (फायरवाल डेमन) लिनक्स अपरेटिङ सिस्टमहरूमा फायरवाल व्यवस्थापन गर्ने एउटा कार्यक्रम हो। यसले फायरवाल नियमहरू कन्फिगर गर्न, नेटवर्क अनुप्रयोगहरूको जडानहरूलाई अनुमति दिन वा ब्लक गर्न प्रयोगकर्ता इन्टरफेस प्रदान गर्दछ। यो धेरैजसो सर्भर वितरणहरूमा पूर्वनिर्धारित रूपमा पूर्व-स्थापित हुन्छ। यदि फायरवालल्ड पूर्व-स्थापित छैन भने, यसलाई वितरणको आधिकारिक भण्डारहरूबाट स्वतन्त्र रूपमा स्थापना गर्न सकिन्छ।
Red Hat प्रणालीहरू (जस्तै RHEL, CentOS, Fedora) को लागि स्थापना निम्न आदेशको साथ गरिन्छ:
yum install firewalld
डेबियन/उबुन्टुको लागि:
apt-get install firewalld
स्थापना पछि, यसलाई तुरुन्तै आदेशको साथ सुरु र सक्रिय गर्न सकिन्छ:
systemctl start firewalld
अर्को, तपाईंले सुरुवातमा सेवा थप्नु पर्छ:
systemctl enable firewalld
यस बिन्दुमा, हामी ufw लाई असक्षम पार्न सिफारिस गर्छौं, किनकि यो उपकरणलाई firewalld वा iptables सँग एकैसाथ प्रयोग गर्न सिफारिस गरिएको छैन। स्थिति जाँच गर्नुहोस्:
systemctl status ufw
यसलाई रोक्नको लागि, आदेश प्रविष्ट गर्नुहोस्:
systemctl stop ufw
पूर्ण निष्क्रियताको लागि:
ufw disable
यी कार्यहरू पछि, तपाईं फायरवालल्ड कन्फिगर गर्न अगाडि बढ्न सक्नुहुन्छ।
पहिला, विश्वास क्षेत्रहरू परिभाषित गर्न आवश्यक छ। नेटवर्क इन्टरफेसहरूको लागि विश्वासको स्तर निर्धारण गर्न फायरवालल्डले क्षेत्रहरूको अवधारणा प्रयोग गर्दछ। प्रत्येक इन्टरफेसलाई एउटा क्षेत्र तोकिएको हुन्छ, र क्षेत्रको आधारमा फायरवाल नियमहरू लागू गरिन्छ। सबै उपलब्ध क्षेत्रहरूको सूची निम्न आदेशको साथ खोलिन्छ:
firewall-cmd --get-zones
सामान्यतया, ४ मुख्य क्षेत्रहरू प्रयोग गरिन्छ:
- सार्वजनिक: यो क्षेत्र तपाईंले असुरक्षित ठान्नुहुने नेटवर्कहरूको लागि हो;
- निजी: गृह नेटवर्क वा अन्य विश्वसनीय नेटवर्क जडानहरूमा लागू हुन्छ;
- आन्तरिक: आन्तरिक नेटवर्कहरूको लागि प्रयोग गरिन्छ, जस्तै संस्था वा कर्पोरेट नेटवर्क भित्रका;
- DMZ: यो क्षेत्र त्यस्तो ठाउँ हो जहाँ सामान्यतया सर्भरहरू राखिन्छन् जुन इन्टरनेटबाट पहुँचयोग्य हुनुपर्छ।
यद्यपि, यो केवल एउटा उदाहरण हो। तपाईं निम्न आदेश प्रयोग गरेर आफ्नो क्षेत्र थप्न सक्नुहुन्छ:
firewall-cmd --permanent --new-zone=nameyourzone
थपेपछि, पुन: लोड आवश्यक छ:
firewall-cmd --reload
क्षेत्र मेटाउन, यस्तै विधि प्रयोग गरिन्छ
firewall-cmd --permanent --delete-zone=nameyourzone
क्षेत्रहरू परिभाषित गरेपछि, आवश्यक सेवाहरू र पोर्टहरूको लागि ट्राफिक अनुमति दिन आवश्यक छ। निश्चित सेवालाई अनुमति दिन, यो आदेश प्रयोग गर्नुहोस्:
firewall-cmd --zone=public --add-service=name
कहाँ नाम सेवाको नाम हो। उदाहरणका लागि, Apache को लागि ट्राफिक अनुमति दिन:
firewall-cmd --zone=public --add-service=http
अनुमतियोग्य पोर्टहरू परिभाषित गर्न, आदेश प्रयोग गर्नुहोस्:
firewall-cmd --zone=public --add-port=number/protocol
उदाहरणका लागि, SSH को लागि मानक २२ पोर्ट यस्तो देखिनेछ:
firewall-cmd --zone=public --add-port=22/tcp
यस चरणमा, मुख्य नियमहरू पहिले नै सिर्जना गरिएका छन्। त्यसपछि, स्रोत, गन्तव्य, पोर्ट, र अन्य मापदण्डको आधारमा ट्राफिक कसरी प्रशोधन गरिनेछ भनेर निर्धारण गर्नुहोस्। नियम थप्नको लागि (प्रयोग गरेर सार्वजनिक उदाहरणको रूपमा क्षेत्र):
firewall-cmd --zone=public rule
उदाहरणका लागि, कुनै पनि स्रोतबाट पोर्ट ८० (HTTP) मा आगमन ट्राफिकलाई अनुमति दिन:
firewall-cmd --zone=public --add-port=80/tcp --permanent
नियम हटाउन:
firewall-cmd --permanent --remove-rule=rule_specification
कहाँ नियम नियमको प्रकार हो (जस्तै, पोर्ट, सेवा, रिच-रूल, आदि), र नियम_विशिष्टीकरण नियमको नै विशिष्टीकरण हो।
Firewalld कन्फिगरेसनमा परिवर्तनहरू गरेपछि, तिनीहरूलाई बचत गर्न र लागू गर्न आवश्यक छ। परिवर्तनहरू बचत गर्न, यो आदेश प्रयोग गर्नुहोस्:
firewall-cmd --runtime-to-permanent
परिवर्तनहरू लागू गर्न:
firewall-cmd --reload
सेटअप पूरा गरेपछि, तपाईंले सबै नियमहरूको सूची खोलेर चयन गरिएका प्यारामिटरहरू प्रमाणित गर्न सक्नुहुन्छ:
firewall-cmd --list-all
यदि कुनै समस्या उत्पन्न भयो भने, निम्न आदेश प्रयोग गरेर Firewalld लगहरू जाँच गर्नुहोस्:
journalctl -u firewalld
नोट: हामीले जडान सेटअप गर्ने सामान्य एल्गोरिथ्म मात्र समेटेका छौं। उपकरणमा व्यापक कार्यक्षमता छ। सबै उपलब्ध विकल्पहरूको पूर्ण जानकारीको लागि, तपाईंले प्रयोग गर्न सक्नुहुन्छ आधिकारिक कागजात वा मद्दत खोल्नुहोस्:
firewall-cmd --help
लिनक्समा iptables कन्फिगर गर्दै
फायरवालल्ड भन्दा फरक, iptables फायरवाल व्यवस्थापन गर्न लिनक्समा पुरानो तर अझै पनि व्यापक रूपमा प्रयोग हुने उपकरण हो। यसले लिनक्स कर्नेल स्तरमा प्याकेट फिल्टरिङ नियमहरूमा थप प्रत्यक्ष र लचिलो दृष्टिकोण प्रदान गर्दछ। यद्यपि, iptables लाई फायरवालल्डको तुलनामा बढी उन्नत ज्ञान र अनुभव चाहिन्छ, जसले गर्दा शुरुआतीहरूको लागि यो कम पहुँचयोग्य हुन्छ। आदेशको साथ उपकरणको पूर्व-स्थापित संस्करण जाँच गर्नुहोस्:
iptables -V
यदि उपकरण स्थापना गरिएको छैन भने, यसलाई स्थापना गर्न आवश्यक पर्दछ। उबुन्टु, डेबियनमा स्थापनाको लागि आदेश:
apt install iptables
Red Hat प्रणालीहरूको लागि (जस्तै, CentOS, Fedora):
yum install iptables
स्थापना पछि सक्रियताको लागि आदेश:
systemctl start iptables
स्टार्टअपमा थप्न, कार्यान्वयन गर्नुहोस्:
systemctl enable iptables
iptables कन्फिगरेसन सुरु गर्नु अघि, यो कसरी काम गर्छ भनेर बुझ्नु महत्त्वपूर्ण छ। यो कार्यक्रमको वाक्य रचनाले मद्दत गर्दछ। यो निम्नानुसार देखिन्छ:
iptables -t table action chain additional_parameters
प्रत्येक वस्तुको गहिराइमा गइहालौं।
Iptables मा चार मुख्य तालिकाहरू छन्: फिल्टर, न्याट, म्यांगल, र कच्चाप्रत्येक प्याकेट निश्चित प्रकारका प्याकेटहरू प्रशोधन गर्न डिजाइन गरिएको हो र यसको आफ्नै नियमहरूको श्रृंखला छ:
- फिल्टर: यो सबैभन्दा धेरै प्रयोग हुने तालिका हो, जसमा प्याकेट फिल्टरिङ नियमहरू छन्। यो प्याकेटहरूलाई अनुमति दिने वा अस्वीकार गर्ने भन्ने निर्णय लिन प्रयोग गरिन्छ।
- nat: यो तालिका प्याकेटहरूमा नेटवर्क ठेगानाहरू र पोर्टहरू परिमार्जन गर्न प्रयोग गरिन्छ। यो प्रायः मास्करेडिङ (NAT) सेटअप गर्न प्रयोग गरिन्छ।
- माला: यस तालिकामा, तपाईंले प्याकेट हेडरहरू परिमार्जन गर्न सक्नुहुन्छ। यो विशेष प्याकेट सञ्चालनहरूको लागि प्रयोग गरिन्छ, जस्तै मार्किंग।
- कच्चा: यो तालिका जडान ट्र्याकिङ प्रणालीमा जानु अघि लागू हुने नियमहरू कन्फिगर गर्न प्रयोग गरिन्छ। यो सामान्यतया ट्र्याकिङ प्रणालीद्वारा परिमार्जन नगरिने नियमहरू सेट अप गर्न प्रयोग गरिन्छ, जस्तै निश्चित ठेगानाहरूबाट प्याकेटहरू छोड्ने।
प्रत्येक तालिकामा चेनहरूको सेट हुन्छ। चेनहरू नियमहरूको अनुक्रम हुन् जुन क्रमिक रूपमा जाँच गरिन्छ। त्यहाँ तीन पूर्वनिर्धारित चेनहरू छन्:
- इनपुट (आगमन)। यस शृङ्खलाका नियमहरूले आगमन प्याकेटहरूसँग के गर्ने भनेर निर्धारण गर्छन्।
- आउटपुट (बहिर्गमन)। यो शृङ्खला तपाईंको कम्प्युटरले नेटवर्कमा रहेका अन्य उपकरणहरू वा कम्प्युटरहरूमा पठाउने सबै प्याकेटहरूमा लागू हुन्छ।
- अगाडि (फर्वार्ड गर्दै)। यस शृङ्खलाका नियमहरूले फर्वार्ड गरिएका प्याकेटहरूसँग के गर्ने भनेर निर्दिष्ट गर्दछ।
अन्तमा, प्रत्येक शृङ्खलामा केही कार्य (लक्ष्य) हुन्छ। अभ्यासमा, ५ मुख्य कार्यहरू प्रयोग गरिन्छ:
- ACCEPT: प्याकेटलाई फायरवालबाट जान दिनुहोस्।
- ड्रप: प्याकेट अस्वीकार गर्नुहोस् र कुनै प्रतिक्रिया बिना नै यसलाई खारेज गर्नुहोस्।
- अस्वीकृत गर्नुहोस्: प्याकेट अस्वीकार गर्नुहोस् र प्रेषकलाई ICMP त्रुटि सन्देश पठाउनुहोस्।
- लग: प्याकेटलाई प्रणाली लगमा लग गर्नुहोस् र अर्को कार्य गर्नुहोस् (जस्तै, स्वीकार गर्नुहोस् वा छोड्नुहोस्)।
- फर्किनु: हालको शृङ्खलामा नियमहरू जाँच गर्न रोक्नुहोस् र कलिङ शृङ्खलामा फर्कनुहोस् (यदि लागू भएमा)।
सेटअप सुरु गर्न, निम्न आदेश प्रयोग गरेर अवस्थित नियमहरूको सूची खोल्नुहोस्:
iptables -L
Iptables कन्फिगर गर्ने मार्गदर्शकको रूपमा, सबैभन्दा धेरै प्रयोग हुने आदेशहरूको व्यावहारिक उदाहरणहरू हेरौं। सुविधाको लागि, हामी विशिष्ट श्रृंखलाको आधारमा उदाहरणहरूलाई ३ समूहमा विभाजन गर्नेछौं।
दल इनपुट:
- पोर्ट ८० मा TCP प्रोटोकल मार्फत आगमन ट्राफिकलाई अनुमति दिनुहोस्:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
२. पोर्ट २२ मा UDP प्रोटोकल मार्फत आगमन ट्राफिकलाई अनुमति दिनुहोस्:
iptables -A INPUT -p udp --dport 22 -j ACCEPT
३. विशिष्ट IP ठेगानाबाट आउने ट्राफिकलाई रोक्नुहोस्:
iptables -A INPUT -s 192.168.1.100 -j DROP
दल आउटपुट:
- पोर्ट ४४३ मा TCP प्रोटोकल मार्फत बहिर्गमन ट्राफिकलाई अनुमति दिनुहोस्:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
२. पोर्ट ८० मा UDP प्रोटोकल मार्फत बहिर्गमन ट्राफिकलाई अनुमति दिनुहोस्:
iptables -A OUTPUT -p udp --dport 80 -j ACCEPT
३. कुनै विशेष पोर्टमा जाने ट्राफिकलाई रोक्नुहोस् (उदाहरणका लागि, २१):
iptables -A OUTPUT -p tcp --dport 21 -j DROP
दल अघिल्तिर:
- विशिष्ट दायराका IP ठेगानाहरूबाट फर्वार्ड गरिएको ट्राफिकलाई रोक्नुहोस्:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP
२. विशिष्ट नेटवर्क इन्टरफेसबाट प्याकेटहरूको फर्वार्डिङ रोक्नुहोस्:
iptables -A FORWARD -i eth1 -j DROP
३. कुनै खास पोर्टको लागि एकसाथ जडानहरूको संख्या सीमित गर्नुहोस् (यस उदाहरणमा, पोर्ट ८० मा प्रति मिनेट १० जडानहरू):
iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT
तपाईंले देख्न सक्नुहुन्छ, प्रत्येक छुट्टाछुट्टै केसमा, एउटा अतिरिक्त तर्क (आदेश) प्रयोग गरिन्छ। सम्भावित तर्कहरूको पूर्ण सूची र उपकरणको कार्यक्षमताको लागि समग्र समर्थन प्राप्त गर्न, प्रविष्ट गर्नुहोस्:
iptables -h
सेटिङहरू सही छन् भनी सुनिश्चित गर्न, नियमहरूको सूची हेर्न आदेश पुन: प्रविष्ट गर्नुहोस्:
iptables -L
कुनै खास नियम मेटाउन, यो आदेश प्रयोग गर्नुहोस्:
iptables -D chain rule_number
उदाहरणका लागि, यदि तपाईं INPUT चेनबाट नियम नम्बर १ मेटाउन चाहनुहुन्छ भने, आदेश यस्तो देखिनेछ:
iptables -D INPUT 1
एउटै आदेशले सबै नियमहरू मेटाउन:
iptables -F
महत्त्वपूर्ण टिप्पणी: प्रणाली वा सेवा रिबुट गरेपछि iptables नियमहरू स्वचालित रूपमा बचत हुँदैनन्। नियमहरू बचत गर्न, तिनीहरूलाई कन्फिगरेसन फाइलमा थप्नु पर्छ र रिबुट पछि पुनर्स्थापित गर्नु पर्छ। iptables-बचत गर्नुहोस् र iptables-restore उपयोगिताहरूले यसमा मद्दत गर्न सक्छन्। नियमहरू बचत गर्न, आदेश प्रविष्ट गर्नुहोस्:
iptables-save > /etc/iptables/rules.v4
यसले हालको iptables नियमहरू rules.v4 फाइलमा बचत गर्छ। रिबुट पछि पुनर्स्थापना गर्न, प्रविष्ट गर्नुहोस्:
iptables-restore < /etc/iptables/rules.v4
यो आदेशले rules.v4 फाइलबाट नियमहरू पुनर्स्थापित गर्छ।
निष्कर्ष
firewalld वा iptables प्रयोग गरेर Linux मा Firewall कन्फिगर गर्नु सर्भर सुरक्षा सुनिश्चित गर्ने एउटा महत्त्वपूर्ण पक्ष हो। दुवै उपकरणहरूले नेटवर्क ट्राफिक व्यवस्थापन गर्ने र प्रणालीलाई अनधिकृत पहुँच र साइबर आक्रमणबाट जोगाउने भरपर्दो माध्यम प्रदान गर्दछ। firewalld र iptables बीचको छनौट प्रयोगकर्ताको विशिष्ट आवश्यकता र प्राथमिकताहरूमा निर्भर गर्दछ, तिनीहरूको फरक कार्यक्षमता र शक्तिहरूलाई विचार गर्दै।