लिनक्सवरील फायरवॉल संगणक प्रणाली सुरक्षित करण्यात महत्त्वाची भूमिका बजावते. ते एक अडथळा म्हणून काम करते, नेटवर्क ट्रॅफिक नियंत्रित करते आणि फिल्टर करते जेणेकरून सिस्टमला अनधिकृत प्रवेश, हल्ले आणि इतर धोक्यांपासून संरक्षण मिळेल. योग्यरित्या कॉन्फिगर केलेल्या फायरवॉलशिवाय, सर्व्हर विविध प्रकारच्या सायबर हल्ल्यांना बळी पडू शकतो, ज्यामुळे डेटा सुरक्षा आणि गोपनीयतेवर गंभीर परिणाम होऊ शकतात.
या लेखात, आपण Linux फायरवॉल कॉन्फिगर करण्यासाठी दोन मुख्य टूल्स पाहू: firewalld आणि iptables. आपण त्यांच्या वैशिष्ट्यांचे, कार्यक्षमतेचे आणि फायद्यांचे तुलनात्मक विश्लेषण करू. याव्यतिरिक्त, आपण या प्रत्येक टूल्सची स्थापना आणि वापर करण्यासाठी तपशीलवार सूचना देऊ, तसेच Linux प्लॅटफॉर्मवर फायरवॉलसह तुमची सिस्टम सुरक्षित करण्यासाठी सर्वोत्तम पद्धतींवर चर्चा करू. सर्व कृती एका वर प्रदर्शित केल्या जातील. वर्च्युअल सर्व्हर रूट प्रवेश सह.
लिनक्सवर फायरवॉलल्ड कॉन्फिगर करणे
फायरवॉल्ट (फायरवॉल डेमन) हा लिनक्स ऑपरेटिंग सिस्टीममध्ये फायरवॉल व्यवस्थापित करण्यासाठी एक प्रोग्राम आहे. तो फायरवॉल नियम कॉन्फिगर करण्यासाठी, नेटवर्क अॅप्लिकेशन्सच्या कनेक्शनला परवानगी देण्यासाठी किंवा ब्लॉक करण्यासाठी एक वापरकर्ता इंटरफेस प्रदान करतो. बहुतेक सर्व्हर वितरणांमध्ये ते डीफॉल्टनुसार पूर्व-स्थापित केलेले असते. जर फायरवॉलल्ड पूर्व-स्थापित नसेल, तर ते वितरणाच्या अधिकृत रिपॉझिटरीजमधून स्वतंत्रपणे स्थापित केले जाऊ शकते.
रेड हॅट सिस्टीमसाठी (जसे की आरएचईएल, सेंटोस, फेडोरा) इंस्टॉलेशन खालील आदेशाने केले जाते:
yum install firewalld
डेबियन/उबंटूसाठी:
apt-get install firewalld
स्थापनेनंतर, ते खालील आदेशाने त्वरित सुरू आणि सक्रिय केले जाऊ शकते:
systemctl start firewalld
पुढे, तुम्हाला स्टार्टअपमध्ये सेवा जोडण्याची आवश्यकता आहे:
systemctl enable firewalld
या टप्प्यावर, आम्ही ufw बंद करण्याची शिफारस करतो, कारण फायरवॉलल्ड किंवा iptables सह या टूलचा एकाच वेळी वापर करण्याची शिफारस केलेली नाही. स्थिती तपासा:
systemctl status ufw
ते थांबवण्यासाठी, ही आज्ञा प्रविष्ट करा:
systemctl stop ufw
पूर्ण निष्क्रियतेसाठी:
ufw disable
या कृतींनंतर, तुम्ही फायरवॉलडी कॉन्फिगर करण्यासाठी पुढे जाऊ शकता.
प्रथम, ट्रस्ट झोन परिभाषित करणे आवश्यक आहे. नेटवर्क इंटरफेससाठी ट्रस्टची पातळी निश्चित करण्यासाठी फायरवॉलल्ड झोनची संकल्पना वापरते. प्रत्येक इंटरफेसला एक झोन नियुक्त केला जातो आणि झोनवर आधारित फायरवॉल नियम लागू केले जातात. सर्व उपलब्ध झोनची यादी या आदेशाने उघडली जाते:
firewall-cmd --get-zones
सामान्यतः, 4 मुख्य झोन वापरले जातात:
- सार्वजनिक: हे झोन अशा नेटवर्कसाठी आहे जे तुम्हाला असुरक्षित वाटतात;
- खाजगी: होम नेटवर्क किंवा इतर विश्वसनीय नेटवर्क कनेक्शनवर लागू होते;
- अंतर्गत: अंतर्गत नेटवर्कसाठी वापरले जाते, जसे की एखाद्या संस्थेतील किंवा कॉर्पोरेट नेटवर्कमधील;
- DMZ: या झोनमध्ये सहसा असे सर्व्हर ठेवले जातात जे इंटरनेटवरून अॅक्सेस करता येतील.
तथापि, हे फक्त एक उदाहरण आहे. तुम्ही खालील कमांड वापरून तुमचा स्वतःचा झोन जोडू शकता:
firewall-cmd --permanent --new-zone=nameyourzone
जोडल्यानंतर, रीलोड आवश्यक आहे:
firewall-cmd --reload
झोन हटविण्यासाठी, अशीच एक पद्धत वापरली जाते.
firewall-cmd --permanent --delete-zone=nameyourzone
झोन निश्चित केल्यानंतर, आवश्यक सेवा आणि पोर्टसाठी रहदारीला परवानगी देणे आवश्यक आहे. विशिष्ट सेवेला परवानगी देण्यासाठी, ही आज्ञा वापरा:
firewall-cmd --zone=public --add-service=name
कोठे नाव हे सेवेचे नाव आहे. उदाहरणार्थ, अपाचेसाठी रहदारीला परवानगी देण्यासाठी:
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
कोठे नियम नियमाचा प्रकार आहे (उदा., पोर्ट, सर्व्हिस, रिच-रूल, इ.), आणि नियम_स्पेसिफिकेशन हे नियमाचेच स्पष्टीकरण आहे.
फायरवॉल कॉन्फिगरेशनमध्ये बदल केल्यानंतर, ते सेव्ह करणे आणि लागू करणे आवश्यक आहे. बदल सेव्ह करण्यासाठी, ही आज्ञा वापरा:
firewall-cmd --runtime-to-permanent
बदल लागू करण्यासाठी:
firewall-cmd --reload
सेटअप पूर्ण झाल्यावर, तुम्ही सर्व नियमांची यादी उघडून निवडलेले पॅरामीटर्स सत्यापित करू शकता:
firewall-cmd --list-all
जर काही समस्या उद्भवल्या तर, खालील आदेश वापरून फायरवॉल लॉग तपासा:
journalctl -u firewalld
टीप: आम्ही फक्त कनेक्शन सेट करण्यासाठी सामान्य अल्गोरिथम कव्हर केले आहे. या टूलमध्ये विस्तृत कार्यक्षमता आहे. सर्व उपलब्ध पर्यायांबद्दल संपूर्ण माहितीसाठी, तुम्ही वापरू शकता अधिकृत दस्तऐवज किंवा मदत उघडा:
firewall-cmd --help
लिनक्सवर iptables कॉन्फिगर करणे
फायरवॉलल्डच्या विपरीत, iptables हे लिनक्समध्ये फायरवॉल व्यवस्थापित करण्यासाठी एक जुने परंतु तरीही मोठ्या प्रमाणात वापरले जाणारे साधन आहे. ते लिनक्स कर्नल स्तरावर पॅकेट फिल्टरिंग नियमांसाठी अधिक थेट आणि लवचिक दृष्टिकोन प्रदान करते. तथापि, iptables ला फायरवॉलल्डच्या तुलनेत अधिक प्रगत ज्ञान आणि अनुभव आवश्यक आहे, ज्यामुळे ते नवशिक्यांसाठी कमी प्रवेशयोग्य बनते. या आदेशासह टूलची पूर्व-स्थापित आवृत्ती तपासा:
iptables -V
जर टूल इन्स्टॉल केलेले नसेल, तर ते इन्स्टॉल करावे लागेल. उबंटू, डेबियन वर इन्स्टॉलेशनसाठी कमांड:
apt install iptables
रेड हॅट सिस्टमसाठी (उदा., सेंटोस, फेडोरा):
yum install iptables
स्थापनेनंतर सक्रिय करण्यासाठी आदेश:
systemctl start iptables
स्टार्टअपमध्ये जोडण्यासाठी, कार्यान्वित करा:
systemctl enable iptables
iptables कॉन्फिगरेशन सुरू करण्यापूर्वी, ते कसे कार्य करते हे समजून घेणे महत्वाचे आहे. प्रोग्रामच्या सिंटॅक्समुळे हे मदत होते. ते असे दिसते:
iptables -t table action chain additional_parameters
चला प्रत्येक बाबीबद्दल अधिक खोलवर जाणून घेऊया.
आयप्टेबल्समध्ये चार मुख्य टेबल्स आहेत: फिल्टर, नॅट, मँगल आणि रॉ. प्रत्येक पॅकेट विशिष्ट प्रकारच्या पॅकेटवर प्रक्रिया करण्यासाठी डिझाइन केलेले आहे आणि त्याचे स्वतःचे नियमांचे साखळी आहेत:
- फिल्टर: हे सर्वात जास्त वापरले जाणारे टेबल आहे, ज्यामध्ये पॅकेट फिल्टरिंगचे नियम आहेत. पॅकेटना परवानगी द्यायची की नाकारायची याचा निर्णय घेण्यासाठी याचा वापर केला जातो.
- नॅट: हे टेबल पॅकेटमधील नेटवर्क अॅड्रेस आणि पोर्ट बदलण्यासाठी वापरले जाते. हे बहुतेकदा मास्करेडिंग (NAT) सेट करण्यासाठी वापरले जाते.
- मंगल: या टेबलमध्ये, तुम्ही पॅकेट हेडरमध्ये बदल करू शकता. हे मार्किंगसारख्या विशेष पॅकेट ऑपरेशन्ससाठी वापरले जाते.
- कच्चे: हे टेबल कनेक्शन ट्रॅकिंग सिस्टममधून जाण्यापूर्वी लागू होणारे नियम कॉन्फिगर करण्यासाठी वापरले जाते. हे सामान्यतः असे नियम सेट करण्यासाठी वापरले जाते जे ट्रॅकिंग सिस्टमद्वारे सुधारित केले जाऊ नयेत, जसे की विशिष्ट पत्त्यांवरून पॅकेट ड्रॉप करणे.
प्रत्येक टेबलमध्ये साखळ्यांचा संच असतो. साखळ्या म्हणजे नियमांचा एक क्रम असतो जो क्रमाने तपासला जातो. तीन पूर्वनिर्धारित साखळ्या आहेत:
- इनपुट (इनकमिंग). येणाऱ्या पॅकेटचे काय करायचे हे या साखळीतील नियम ठरवतात.
- आउटपुट (आउटगोइंग). ही साखळी तुमचा संगणक नेटवर्कवरील इतर उपकरणांना किंवा संगणकांना पाठवत असलेल्या सर्व पॅकेटना लागू होते.
- फॉरवर्ड (फॉरवर्डिंग). या साखळीतील नियमांमध्ये फॉरवर्ड केलेल्या पॅकेटचे काय करायचे ते स्पष्ट केले आहे.
शेवटी, प्रत्येक साखळीत काही क्रिया (लक्ष्य) असते. प्रत्यक्षात, 5 मुख्य क्रिया वापरल्या जातात:
- स्वीकारा: पॅकेटला फायरवॉलमधून जाऊ द्या.
- थेंब: पॅकेट नाकारा आणि कोणताही प्रतिसाद न देता ते टाकून द्या.
- नाकारा: पॅकेट नाकारा आणि पाठवणाऱ्याला ICMP त्रुटी संदेश पाठवा.
- लॉग: सिस्टम लॉगमध्ये पॅकेट लॉग करा आणि दुसरी क्रिया करा (उदा., स्वीकारा किंवा सोडा).
- परत: सध्याच्या साखळीतील नियम तपासणे थांबवा आणि कॉलिंग साखळीवर परत या (लागू असल्यास).
सेटअप सुरू करण्यासाठी, खालील आदेशासह विद्यमान नियमांची यादी उघडा:
iptables -L
Iptables कॉन्फिगर करण्यासाठी मार्गदर्शक म्हणून, सर्वात सामान्यतः वापरल्या जाणाऱ्या कमांडची व्यावहारिक उदाहरणे पाहू. सोयीसाठी, आपण विशिष्ट साखळीनुसार उदाहरणे 3 गटांमध्ये विभागू.
साखळी इनपुट:
- पोर्ट ८० वर TCP प्रोटोकॉलद्वारे येणार्या रहदारीला परवानगी द्या:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
२. पोर्ट २२ वर UDP प्रोटोकॉलद्वारे येणार्या रहदारीला परवानगी द्या:
iptables -A INPUT -p udp --dport 22 -j ACCEPT
३. विशिष्ट आयपी अॅड्रेसवरून येणारी ट्रॅफिक ब्लॉक करा:
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
साखळी पुढे:
- विशिष्ट श्रेणीच्या आयपी अॅड्रेसवरून फॉरवर्ड केलेला ट्रॅफिक ब्लॉक करा:
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
हे rules.v4 फाइलमध्ये सध्याचे iptables नियम सेव्ह करते. रीबूट केल्यानंतर पुनर्संचयित करण्यासाठी, एंटर करा:
iptables-restore < /etc/iptables/rules.v4
ही कमांड rules.v4 फाईलमधील नियम पुनर्संचयित करते.
निष्कर्ष
Linux वर firewalld किंवा iptables वापरून फायरवॉल कॉन्फिगर करणे हा सर्व्हर सुरक्षिततेची खात्री करण्याचा एक महत्त्वाचा पैलू आहे. दोन्ही टूल्स नेटवर्क ट्रॅफिक व्यवस्थापित करण्यासाठी आणि अनधिकृत प्रवेश आणि सायबर हल्ल्यांपासून सिस्टमचे संरक्षण करण्यासाठी विश्वसनीय माध्यमे देतात. firewalld आणि iptables मधील निवड वापरकर्त्याच्या विशिष्ट गरजा आणि प्राधान्यांवर अवलंबून असते, त्यांची भिन्न कार्यक्षमता आणि ताकद लक्षात घेऊन.