एंड्रॉयड

सेंटो 7 पर फ़ायरवॉल के साथ फ़ायरवॉल कैसे सेट करें

FULL BUILD: Converting a Silverado Work Horse Into a Mean Street Truck - "Senior Silverado"

FULL BUILD: Converting a Silverado Work Horse Into a Mean Street Truck - "Senior Silverado"

विषयसूची:

Anonim

एक ठीक से कॉन्फ़िगर किया गया फ़ायरवॉल समग्र सिस्टम सुरक्षा के सबसे महत्वपूर्ण पहलुओं में से एक है।

फ़ायरवॉल एक पूर्ण फ़ायरवॉल समाधान है जो सिस्टम के iptables नियमों का प्रबंधन करता है और उन पर संचालन के लिए डी-बस इंटरफ़ेस प्रदान करता है। CentOS 7 के साथ शुरू, FirewallD डिफ़ॉल्ट फ़ायरवॉल प्रबंधन उपकरण के रूप में iptables को बदलता है।

इस ट्यूटोरियल में, हम आपको दिखाते हैं कि अपने CentOS 7 सिस्टम पर FirewallD के साथ फ़ायरवॉल कैसे सेट करें और आपको मूल फ़ायरवॉलडी कॉन्सेप्ट्स समझाएँ।

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

फायरवॉल को स्थापित करना और सक्षम करना

  1. Firewalld डिफ़ॉल्ट रूप से CentOS 7 पर स्थापित है, लेकिन यदि यह आपके सिस्टम पर स्थापित नहीं है, तो आप टाइप करके पैकेज स्थापित कर सकते हैं:

    sudo yum install firewalld

    फ़ायरवॉल सेवा डिफ़ॉल्ट रूप से अक्षम है। आप फ़ायरवॉल स्थिति की जाँच कर सकते हैं:

    sudo firewall-cmd --state

    फ़ायरवॉल सेवा शुरू करने और इसे बूट प्रकार पर सक्षम करने के लिए:

    sudo systemctl start firewalld sudo systemctl enable firewalld

फायरवालल्ड जोन के साथ काम करना

पहली बार फ़ायरवॉलडी सेवा को सक्षम करने के बाद, public क्षेत्र को डिफ़ॉल्ट क्षेत्र के रूप में सेट किया गया है। आप डिफ़ॉल्ट क्षेत्र को टाइप करके देख सकते हैं:

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

public interfaces: eth0 eth1

उपरोक्त आउटपुट हमें बताता है कि 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 इंटरफेस दोनों द्वारा किया जाता है। इसके अलावा, डीएचसीपी क्लाइंट और एसएसएच से संबंधित कनेक्शन की अनुमति है।

sudo firewall-cmd --list-all-zones

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

एक इंटरफ़ेस के क्षेत्र को बदलना

आप --zone --change-interface विकल्प के साथ संयोजन में उपयोग कर --zone विकल्प का उपयोग करके आसानी से इंटरफ़ेस क्षेत्र बदल सकते हैं। निम्नलिखित आदेश कार्य क्षेत्र के 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 के नाम के बाद जिसे आप डिफ़ॉल्ट बनाना चाहते हैं।

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

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

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

sudo firewall-cmd --get-default-zone

home

एक पोर्ट या सेवा खोलना

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

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

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

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

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

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

ssh dhcpv6-client

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

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

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

क्या होगा यदि आप Plex Media Server जैसे कोई एप्लिकेशन चला रहे हैं जिसके लिए कोई उपयुक्त सेवा उपलब्ध नहीं है?

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

उदाहरण के लिए, Plex Server पोर्ट 32400 पर सुनता है और TCP का उपयोग करता है, वर्तमान सत्र के लिए सार्वजनिक क्षेत्र में पोर्ट को खोलने के लिए --add-port= विकल्प का उपयोग करें:

sudo firewall-cmd --zone=public --add-port=32400/tcp प्रोटोकॉल या तो tcp या udp हो सकते हैं।

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

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

32400/tcp

रिबूट के बाद पोर्ट 32400 खुला रखने के लिए, - --permanent विकल्प का उपयोग करके समान कमांड चलाकर नियम को स्थायी सेटिंग्स में --permanent

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

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

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

जैसा कि हमने पहले ही उल्लेख किया है, डिफ़ॉल्ट सेवाएं /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 सेवा का उपयोग कर सकते हैं।

फायरवाल्ड के साथ फॉरवर्डिंग पोर्ट

एक पोर्ट से दूसरे पोर्ट या एड्रेस पर ट्रैफ़िक फ़ॉरवर्ड करने के लिए, पहले --add-masquerade स्विच का उपयोग करके वांछित ज़ोन के लिए --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

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

निम्नलिखित उदाहरण में हम आईपी 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

फ़ायरवॉल के साथ एक नियम बनाना

निम्नलिखित उदाहरण में, हम दिखाएंगे कि यदि आप एक वेब सर्वर चला रहे थे तो अपने फ़ायरवॉल को कैसे कॉन्फ़िगर करें। हम मान रहे हैं कि आपके सर्वर में केवल एक इंटरफ़ेस eth0 , और आप केवल SSH, HTTP और HTTPS पोर्ट पर आने वाले ट्रैफ़िक को अनुमति देना चाहते हैं।

  1. डिफ़ॉल्ट क्षेत्र को dmz में बदलें

    हम dmz (demilitarized) क्षेत्र का उपयोग करेंगे क्योंकि डिफ़ॉल्ट रूप से यह केवल SSH ट्रैफ़िक की अनुमति देता है। डिफ़ॉल्ट ज़ोन को dmz में बदलने के लिए और इसे eth0 इंटरफ़ेस में असाइन करने के लिए, निम्न कमांड चलाएँ:

    sudo firewall-cmd --set-default-zone=dmz sudo firewall-cmd --zone=dmz --add-interface=eth0

    HTTP और HTTPS पोर्ट खोलें:

    HTTP और HTTPS पोर्ट खोलने के लिए dmz ज़ोन में स्थायी सेवा नियम जोड़ें:

    sudo firewall-cmd --permanent --zone=dmz --add-service=http sudo firewall-cmd --permanent --zone=dmz --add-service=https

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

    sudo firewall-cmd --reload

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

    Dmz ज़ोन कॉन्फ़िगरेशन सेटिंग्स की जाँच करने के लिए टाइप करें:

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

    dmz (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: ssh http https ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

    उपरोक्त आउटपुट हमें बताता है कि dmz डिफ़ॉल्ट ज़ोन है, इसे eth0 इंटरफ़ेस पर लागू किया गया है और ssh (22) http (80) और https (443) पोर्ट खुले हैं।

निष्कर्ष

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

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

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