एंड्रॉयड

सेंटो 8 पर फ़ायरवॉल को कैसे कॉन्फ़िगर करें और प्रबंधित करें

Linux Tutorial for Beginners: Introduction to Linux Operating System

Linux Tutorial for Beginners: Introduction to Linux Operating System

विषयसूची:

Anonim

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

CentOS 8 जहाजों में फायरवाल डेमन नामक फायरवॉल डेमन है। यह डी-बस इंटरफेस के साथ एक पूर्ण समाधान है जो आपको गतिशील रूप से सिस्टम के फ़ायरवॉल को प्रबंधित करने की अनुमति देता है।

इस ट्यूटोरियल में, हम बात करेंगे कि CentOS 8 पर फ़ायरवॉल को कैसे कॉन्फ़िगर और प्रबंधित किया जाए। हम बेसिक फ़ायरवॉल की अवधारणाओं के बारे में भी बताएँगे।

आवश्यक शर्तें

फ़ायरवॉल सेवा को कॉन्फ़िगर करने के लिए, आपको sudo विशेषाधिकार के साथ रूट या उपयोगकर्ता के रूप में लॉग इन करना होगा।

बेसिक फायरवालड कॉन्सेप्ट

फ़ायरवॉल ज़ोन और सेवाओं की अवधारणाओं का उपयोग करता है। आपके द्वारा कॉन्फ़िगर किए गए ज़ोन और सेवाओं के आधार पर, आप नियंत्रित कर सकते हैं कि सिस्टम से ट्रैफ़िक की अनुमति या अवरोधन क्या है।

फ़ायरवॉल को firewall-cmd कमांड-लाइन उपयोगिता का उपयोग करके कॉन्फ़िगर और प्रबंधित किया जा सकता है।

CentOS 8 में, iptables को nftables द्वारा बदल दिया जाता है क्योंकि फायरवालडल डेमॉन के लिए डिफ़ॉल्ट फ़ायरवॉल बैकेंड होता है।

फायरवालड ज़ोन

ज़ोन नियमों के पूर्वनिर्धारित सेट हैं जो आपके कंप्यूटर से जुड़े नेटवर्क के विश्वास के स्तर को निर्दिष्ट करते हैं। आप ज़ोन के लिए नेटवर्क इंटरफेस और स्रोत असाइन कर सकते हैं।

नीचे जोन के ट्रस्ट स्तर के अनुसार फायरवॉलड द्वारा प्रदान किए गए ज़ोन अविश्वासित से भरोसेमंद हैं:

  • ड्रॉप: सभी आने वाले कनेक्शनों को बिना किसी सूचना के छोड़ दिया जाता है। केवल आउटगोइंग कनेक्शन की अनुमति है। ब्लॉक: सभी आने वाले कनेक्शन IPv4 लिए एक icmp-host-prohibited icmp6-adm-prohibited icmp-host-prohibited संदेश और icmp6-adm-prohibited लिए icmp6-adm-prohibited icmp-host-prohibited संदेश के साथ अस्वीकार कर दिए जाते हैं। केवल आउटगोइंग कनेक्शन की अनुमति है। सार्वजनिक: अविश्वसनीय सार्वजनिक क्षेत्रों में उपयोग के लिए। आप नेटवर्क पर अन्य कंप्यूटरों पर भरोसा नहीं करते हैं, लेकिन आप चयनित आवक कनेक्शनों की अनुमति दे सकते हैं। बाहरी: NAT नेटवर्क के साथ बाहरी नेटवर्क पर उपयोग के लिए जब आपका सिस्टम गेटवे या राउटर के रूप में काम करता है। केवल चयनित आवक कनेक्शनों की अनुमति है। आंतरिक: आंतरिक नेटवर्क पर उपयोग के लिए जब आपका सिस्टम गेटवे या राउटर के रूप में कार्य करता है। नेटवर्क पर अन्य प्रणालियों को आम तौर पर भरोसा किया जाता है। केवल चयनित आवक कनेक्शनों की अनुमति है। dmz: आपके डिमिलिट्राइज़्ड ज़ोन में स्थित कंप्यूटरों के लिए उपयोग किया जाता है जिनकी आपके नेटवर्क के बाकी हिस्सों तक सीमित पहुंच है। केवल चयनित आवक कनेक्शनों की अनुमति है। काम: काम मशीनों के लिए इस्तेमाल किया। नेटवर्क पर अन्य कंप्यूटरों पर आमतौर पर भरोसा किया जाता है। केवल चयनित आवक कनेक्शनों की अनुमति है। घर: घर मशीनों के लिए इस्तेमाल किया। नेटवर्क पर अन्य कंप्यूटरों पर आमतौर पर भरोसा किया जाता है। केवल चयनित आवक कनेक्शनों की अनुमति है। विश्वसनीय: सभी नेटवर्क कनेक्शन स्वीकार किए जाते हैं। नेटवर्क के सभी कंप्यूटरों पर भरोसा करें।

फ़ायरवॉल सेवाएं

फ़ायरवॉल सेवाएं पूर्वनिर्धारित नियम हैं जो एक क्षेत्र के भीतर लागू होते हैं और एक विशिष्ट सेवा के लिए आने वाले यातायात की अनुमति देने के लिए आवश्यक सेटिंग्स को परिभाषित करते हैं। सेवाएँ आपको एक ही चरण में कई कार्य आसानी से करने देती हैं।

उदाहरण के लिए, सेवा में पोर्ट खोलने, यातायात को अग्रेषित करने, और बहुत कुछ के बारे में परिभाषा हो सकती है।

फायरवालड रनटाइम और स्थायी सेटिंग्स

फ़ायरवॉल दो अलग-अलग कॉन्फ़िगरेशन सेट, रनटाइम और स्थायी कॉन्फ़िगरेशन का उपयोग करता है।

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

डिफ़ॉल्ट रूप से, firewall-cmd उपयोगिता का उपयोग करके फ़ायरवॉल कॉन्फ़िगरेशन में परिवर्तन करते समय, परिवर्तन रनटाइम कॉन्फ़िगरेशन पर लागू होते हैं। परिवर्तनों को स्थायी करने के लिए कमांड के लिए --permanent विकल्प चुनें।

दोनों कॉन्फ़िगरेशन सेट में परिवर्तन लागू करने के लिए, आप निम्न दो विधियों में से एक का उपयोग कर सकते हैं:

  1. रनटाइम कॉन्फ़िगरेशन बदलें और इसे स्थायी बनाएं:

    sudo firewall-cmd sudo firewall-cmd --runtime-to-permanent

    स्थायी कॉन्फ़िगरेशन बदलें और फ़ायरवॉल डैम को पुनः लोड करें:

    sudo firewall-cmd --permanent sudo firewall-cmd --reload

फ़ायरवॉल को सक्षम करना

CentOS 8 पर, फ़ायरवॉल को डिफ़ॉल्ट रूप से स्थापित और सक्षम किया गया है। यदि किसी कारण से यह आपके सिस्टम पर स्थापित नहीं है, तो आप टाइप करके डेमॉन को स्थापित और शुरू कर सकते हैं:

sudo dnf install firewalld sudo systemctl enable firewalld --now

आप के साथ फ़ायरवॉल सेवा की स्थिति की जाँच कर सकते हैं:

sudo firewall-cmd --state

यदि फ़ायरवॉल सक्षम है, तो कमांड को प्रिंट होना चाहिए। अन्यथा, आप not running देखेंगे।

फायरवालड ज़ोन

डिफ़ॉल्ट ज़ोन वह है जिसका उपयोग उन सभी चीज़ों के लिए किया जाता है जो स्पष्ट रूप से दूसरे ज़ोन को निर्दिष्ट नहीं की जाती हैं।

आप डिफ़ॉल्ट क्षेत्र को टाइप करके देख सकते हैं:

sudo firewall-cmd --get-default-zone

public

सभी उपलब्ध क्षेत्रों की सूची प्राप्त करने के लिए, टाइप करें:

sudo firewall-cmd --get-zones

block dmz drop external home internal public trusted work

सक्रिय क्षेत्र और उन्हें दिए गए नेटवर्क इंटरफेस को देखने के लिए:

sudo firewall-cmd --get-active-zones

नीचे दिए गए आउटपुट से पता चलता है कि इंटरफेस eth0 और eth1 public क्षेत्र को सौंपा गया है:

public interfaces: eth0 eth1

आप इसके साथ ज़ोन कॉन्फ़िगरेशन सेटिंग्स प्रिंट कर सकते हैं:

sudo firewall-cmd --zone=public --list-all

public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

उपरोक्त आउटपुट से, हम देख सकते हैं कि सार्वजनिक क्षेत्र सक्रिय है और डिफ़ॉल्ट लक्ष्य का उपयोग करता है, जो कि सही है। आउटपुट यह भी दर्शाता है कि ज़ोन eth0 और eth1 इंटरफेस द्वारा उपयोग किया जाता है और DHCP क्लाइंट और SSH ट्रैफ़िक की अनुमति देता है।

sudo firewall-cmd --list-all-zones

कमांड सभी उपलब्ध ज़ोन की सेटिंग्स के साथ एक विशाल सूची प्रिंट करता है।

ज़ोन लक्ष्य को बदलना

लक्ष्य निर्दिष्ट ट्रैफ़िक के लिए ज़ोन के डिफ़ॉल्ट व्यवहार को परिभाषित करता है जो निर्दिष्ट नहीं है। इसे निम्न विकल्पों में से एक में सेट किया जा सकता है: default , ACCEPT , REJECT , और DROP

ज़ोन के लक्ष्य को सेट करने के लिए, --zone विकल्प के साथ ज़ोन निर्दिष्ट करें और --set-target विकल्प के साथ --set-target

उदाहरण के लिए, आपके द्वारा चलाए जाने वाले public क्षेत्र के लक्ष्य को DROP बदलने के लिए:

sudo firewall-cmd --zone=public --set-target=DROP

इंटरफ़ेस को किसी भिन्न क्षेत्र में असाइन करना

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

किसी भिन्न ज़ोन के लिए एक इंटरफ़ेस निर्दिष्ट करने के लिए, --zone विकल्प के साथ ज़ोन निर्दिष्ट करें और --zone --change-interface विकल्प के साथ --change-interface

उदाहरण के लिए, निम्न आदेश work क्षेत्र के लिए eth1 इंटरफ़ेस प्रदान करता है:

sudo firewall-cmd --zone=work --change-interface=eth1

टाइप करके परिवर्तनों को सत्यापित करें:

sudo firewall-cmd --get-active-zones

work interfaces: eth1 public interfaces: eth0

डिफ़ॉल्ट ज़ोन बदलना

डिफ़ॉल्ट ज़ोन को बदलने के लिए, --set-default-zone विकल्प का उपयोग करें, उस --set-default-zone के नाम के बाद जिसे आप डिफ़ॉल्ट बनाना चाहते हैं।

उदाहरण के लिए, डिफ़ॉल्ट ज़ोन को home बदलने के लिए आप निम्न कमांड चलाएंगे:

sudo firewall-cmd --set-default-zone=home

इन परिवर्तनों को सत्यापित करें:

sudo firewall-cmd --get-default-zone

home

नए जोन बनाना

फायरवालड आपको अपने खुद के जोन बनाने की अनुमति भी देता है। यह तब आसान है जब आप प्रति-एप्लिकेशन नियम बनाना चाहते हैं।

निम्नलिखित उदाहरण में हम एक नया क्षेत्र बनाएंगे जिसका नाम memcached , पोर्ट 11211 खोलें और केवल 192.168.100.30 आईपी ​​पते से एक्सेस की अनुमति दें:

  1. ज़ोन बनाएं:

    sudo firewall-cmd --new-zone=memcached --permanent

    क्षेत्र में नियम जोड़ें:

    sudo firewall-cmd --zone=memcached --add-port=11211/udp --permanent sudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanent sudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanent

    परिवर्तनों को सक्रिय करने के लिए फ़ायरवॉल डेमॉन को पुनः लोड करें:

    sudo firewall-cmd --reload

फ़ायरवॉल सेवा

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

सभी डिफ़ॉल्ट उपलब्ध सेवाओं की सूची प्राप्त करने के लिए:

sudo firewall-cmd --get-services

आप संबंधित सेवा.xml फ़ाइल को /usr/lib/firewalld/services निर्देशिका के भीतर खोलकर प्रत्येक सेवा के बारे में अधिक जानकारी प्राप्त कर सकते हैं। उदाहरण के लिए, HTTP सेवा इस तरह परिभाषित की गई है:

/usr/lib/firewalld/services/http.xml

WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages. WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.

सार्वजनिक क्षेत्र में इंटरफेस के लिए आने वाले HTTP ट्रैफ़िक (पोर्ट 80) की अनुमति देने के लिए, केवल वर्तमान सत्र (रनटाइम कॉन्फ़िगरेशन) प्रकार के लिए:

sudo firewall-cmd --zone=public --add-service=http यदि आप डिफ़ॉल्ट क्षेत्र को संशोधित कर रहे हैं तो आप --zone विकल्प को छोड़ सकते हैं।

यह सत्यापित करने के लिए कि सेवा को सफलतापूर्वक जोड़ा गया था --list-services विकल्प का उपयोग करें:

sudo firewall-cmd --zone=public --list-services

ssh dhcpv6-client

पोर्ट को फिर से खोलने के लिए एक रिबूट के बाद एक ही कमांड को एक बार फिर से --permanent विकल्प के साथ, या निष्पादित करें:

sudo firewall-cmd --runtime-to-permanent

अपने परिवर्तनों को सत्यापित करने के लिए --permanent विकल्प के साथ --permanent --list-services उपयोग करें:

sudo firewall-cmd --permanent --zone=public --list-services

ssh dhcpv6-client

सेवा को हटाने के लिए सिंटैक्स एक को जोड़ते समय समान है। बस का उपयोग करें --remove-service --add-service ध्वज के बजाय --add-service :

sudo firewall-cmd --zone=public --remove-service=http --permanent

ऊपर दिया गया कमांड सार्वजनिक क्षेत्र के स्थायी कॉन्फ़िगरेशन से http सेवा को हटा देता है।

एक नई फ़ायरवॉलडी सेवा बनाना

जैसा कि हमने पहले ही उल्लेख किया है, डिफ़ॉल्ट सेवाएं /usr/lib/firewalld/services निर्देशिका में संग्रहीत की जाती हैं। एक नई सेवा बनाने का सबसे आसान तरीका मौजूदा सेवा फ़ाइल को /etc/firewalld/services निर्देशिका में कॉपी करना है, जो उपयोगकर्ता द्वारा बनाई गई सेवाओं के लिए स्थान है और फ़ाइल सेटिंग्स को संशोधित करती है।

उदाहरण के लिए, Plex Media Server के लिए सेवा परिभाषा बनाने के लिए, आप SSH सेवा फ़ाइल का उपयोग कर सकते हैं:

sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml

नव निर्मित plexmediaserver.xml फ़ाइल खोलें और सेवा के लिए संक्षिप्त नाम और विवरण बदलें तथा टैग। आपको बदलने के लिए सबसे महत्वपूर्ण टैग port टैग है, जो पोर्ट संख्या और प्रोटोकॉल को परिभाषित करता है जिसे आप खोलना चाहते हैं।

निम्नलिखित उदाहरण में, हम 1900 यूडीपी और 32400 टीसीपी पोर्ट खोल रहे हैं।

/etc/firewalld/services/plexmediaserver.xml

plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere. plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.

फ़ाइल सहेजें और फ़ायरवॉल सेवा पुनः लोड करें:

sudo firewall-cmd --reload

अब आप अपने क्षेत्र में किसी भी अन्य सेवा की तरह plexmediaserver सेवा का उपयोग कर सकते हैं।

ओपनिंग पोर्ट्स और सोर्स आईपी

फायरवल्ड आपको सेवा परिभाषा बनाए बिना किसी विश्वसनीय आईपी पते से या किसी विशिष्ट पोर्ट पर सभी ट्रैफ़िक को जल्दी से सक्षम करने की अनुमति देता है।

एक स्रोत आईपी खोलना

किसी विशिष्ट IP पते (या श्रेणी) से आने वाले सभी ट्रैफ़िक को अनुमति देने के लिए, --zone विकल्प के साथ ज़ोन और स्रोत IP को --add-source विकल्प के साथ निर्दिष्ट करें।

उदाहरण के लिए, public क्षेत्र में 192.168.1.10 से आने वाले सभी ट्रैफ़िक को चलाने के लिए, रन करें:

sudo firewall-cmd --zone=public --add-source=192.168.1.10

नया नियम लगातार बनाए रखें:

sudo firewall-cmd --runtime-to-permanent

निम्नलिखित कमांड का उपयोग करके परिवर्तनों को सत्यापित करें:

sudo firewall-cmd --zone=public --list-sources

192.168.1.10

किसी स्रोत IP को निकालने के लिए सिंटैक्स एक को जोड़ते समय समान होता है। बस का उपयोग करें --remove-source --add-source विकल्प के बजाय --add-source :

sudo firewall-cmd --zone=public --remove-source=192.168.1.10

स्रोत पोर्ट खोलना

किसी दिए गए पोर्ट पर आने वाले सभी ट्रैफ़िक को अनुमति देने के लिए, --zone विकल्प के साथ ज़ोन निर्दिष्ट करें और --add-port विकल्प के साथ पोर्ट और प्रोटोकॉल।

उदाहरण के लिए, चालू सत्र के लिए सार्वजनिक क्षेत्र में पोर्ट 8080 खोलने के लिए आप घाव चलाएं:

sudo firewall-cmd --zone=public --add-port=8080/tcp

प्रोटोकॉल या तो tcp , udp , sctp , या dccp

परिवर्तनों की पुष्टि करें:

sudo firewall-cmd --zone=public --list-ports

8080

रिबूट के बाद पोर्ट को खुला रखने के लिए, नियम को स्थायी कमांड में --permanent कमांड फ्लैग का उपयोग करके या निष्पादित करके समान कमांड --permanent :

sudo firewall-cmd --runtime-to-permanent

पोर्ट को हटाने के लिए सिंटैक्स एक पोर्ट जोड़ते समय समान होता है। बस --add-port विकल्प के बजाय --add-port का उपयोग करें।

sudo firewall-cmd --zone=public --remove-port=8080/tcp

अग्रेषण पोर्ट

एक पोर्ट से दूसरे पोर्ट पर ट्रैफ़िक फ़ॉरवर्ड करने के लिए, पहले --add-masquerade विकल्प का उपयोग करके वांछित ज़ोन के लिए --add-masquerade सक्षम करें। उदाहरण के लिए, external क्षेत्र के लिए आवरण को सक्षम करने के लिए, टाइप करें:

sudo firewall-cmd --zone=external --add-masquerade

आईपी ​​पते पर एक पोर्ट से दूसरे पोर्ट पर आगे का ट्रैफ़िक

निम्नलिखित उदाहरण में हम उसी सर्वर पर पोर्ट 80 से पोर्ट 8080 पर ट्रैफ़िक अग्रेषित कर रहे हैं:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080

दूसरे IP पते पर ट्रैफ़िक अग्रेषित करें

निम्नलिखित उदाहरण में हम आईपी 10.10.10.2 साथ एक सर्वर पर पोर्ट 80 से पोर्ट 80 तक ट्रैफ़िक अग्रेषित कर रहे हैं:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2

किसी भिन्न पोर्ट पर किसी अन्य सर्वर पर ट्रैफ़िक अग्रेषित करें

निम्नलिखित उदाहरण में हम आईपी 10.10.10.2 साथ एक सर्वर पर पोर्ट 80 से पोर्ट 8080 तक ट्रैफ़िक अग्रेषित कर रहे हैं:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2

आगे के नियम को लगातार बनाए रखने के लिए, उपयोग करें:

sudo firewall-cmd --runtime-to-permanent

निष्कर्ष

आपने सीखा है कि अपने CentOS 8 सिस्टम पर फ़ायरवॉल सेवा को कैसे कॉन्फ़िगर और प्रबंधित करें।

सभी अनावश्यक कनेक्शनों को सीमित करते हुए, आपके सिस्टम के उचित कामकाज के लिए आवश्यक सभी आवक कनेक्शनों की अनुमति देना सुनिश्चित करें।

फायरवालड फ़ायरवॉल सेंटोस सुरक्षा