FULL BUILD: Converting a Silverado Work Horse Into a Mean Street Truck - "Senior Silverado"
विषयसूची:
- आवश्यक शर्तें
- बेसिक फायरवालड कॉन्सेप्ट
- फायरवालड ज़ोन
- फ़ायरवॉल सेवाएं
- फायरवालड रनटाइम और स्थायी सेटिंग्स
- फायरवॉल को स्थापित करना और सक्षम करना
- फायरवालल्ड जोन के साथ काम करना
- एक इंटरफ़ेस के क्षेत्र को बदलना
- डिफ़ॉल्ट ज़ोन बदलना
- एक पोर्ट या सेवा खोलना
- एक नई फ़ायरवॉलडी सेवा बनाना
- फायरवाल्ड के साथ फॉरवर्डिंग पोर्ट
- फ़ायरवॉल के साथ एक नियम बनाना
- निष्कर्ष
एक ठीक से कॉन्फ़िगर किया गया फ़ायरवॉल समग्र सिस्टम सुरक्षा के सबसे महत्वपूर्ण पहलुओं में से एक है।
फ़ायरवॉल एक पूर्ण फ़ायरवॉल समाधान है जो सिस्टम के 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
।
फायरवॉल को स्थापित करना और सक्षम करना
-
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
एक पोर्ट या सेवा खोलना
फ़ायरवॉल के साथ आप पूर्वनिर्धारित नियमों के आधार पर विशिष्ट बंदरगाहों के लिए यातायात की अनुमति दे सकते हैं जिन्हें सेवाएं कहा जाता है।
सभी डिफ़ॉल्ट उपलब्ध सेवाओं की सूची प्राप्त करने के लिए:
sudo firewall-cmd --get-services
आप संबंधित सेवा.xml फ़ाइल को
/usr/lib/firewalld/services
निर्देशिका के भीतर खोलकर प्रत्येक सेवा के बारे में अधिक जानकारी प्राप्त कर सकते हैं। उदाहरण के लिए, HTTP सेवा इस तरह परिभाषित की गई है:
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
टीसीपी पोर्ट खोल रहे हैं।
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 पोर्ट पर आने वाले ट्रैफ़िक को अनुमति देना चाहते हैं।
-
डिफ़ॉल्ट क्षेत्र को 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 सेंटोस सुरक्षाराउटर फ़ायरवॉल सेटिंग्स को कॉन्फ़िगर कैसे करें और सेट अप करें
राउटर फ़ायरवॉल को कॉन्फ़िगर कैसे करें, हार्डवेयर राउटर पेज तक पहुंचें, राउटर फ़ायरवॉल सेटिंग्स कॉन्फ़िगर करें। पता लगाएं कि कंप्यूटर पर कौन से बंदरगाहों की आवश्यकता है।
सेंटो 8 पर फ़ायरवॉल को कैसे कॉन्फ़िगर करें और प्रबंधित करें
इस ट्यूटोरियल में, हम बात करेंगे कि CentOS 8 पर फ़ायरवॉल को कैसे कॉन्फ़िगर और प्रबंधित किया जाए। हम बेसिक फ़ायरवॉल की अवधारणाओं के बारे में भी बताएँगे।
Ubuntu 18.04 पर ufw के साथ एक फ़ायरवॉल कैसे सेट करें
डिफ़ॉल्ट रूप से, उबंटू एक फ़ायरवॉल कॉन्फ़िगरेशन टूल के साथ आता है जिसे UFW (अनकम्प्लिकेटेड फ़ायरवॉल) कहा जाता है। UFW iptables फ़ायरवॉल नियमों के प्रबंधन के लिए एक उपयोगकर्ता के अनुकूल फ्रंट-एंड है और इसका मुख्य लक्ष्य iptables का प्रबंधन आसान बनाना है या जैसा कि नाम कहता है कि सीधी है।