Iptables के साथ अपने लिनक्स डेस्कटॉप को कैसे सुरक्षित करें
लिनक्स की सुरक्षा के लिए प्रतिष्ठा हो सकती है, लेकिन यह सही नहीं है। कई वितरणों में भी सबसे अच्छा सुरक्षा डिफ़ॉल्ट नहीं होता है, इसलिए सुरक्षा के लिए कुछ सर्वोत्तम प्रथाओं को लागू करना सबसे अच्छा है। ऐसा एक उदाहरण फ़ायरवॉल का उपयोग कर रहा है।
लिनक्स में फ़ायरवॉल के लिए कुछ विकल्प हैं, लेकिन अधिकांश वास्तव में iptables के आसपास केवल रैपर हैं। इस गाइड के लिए हम आपको दिखाएंगे कि iptables के साथ सीधे कैसे काम करना है।
Iptables क्या है?
Iptables लिनक्स कर्नेल फ़ायरवॉल है। यह प्रत्येक लिनक्स वितरण के साथ आता है, और यह आपके कंप्यूटर से आने वाले यातायात को नियंत्रित करने का सबसे प्रत्यक्ष तरीका है।
Iptables जटिल होने के लिए एक प्रतिष्ठा है, और यह हो सकता है। हालांकि, iptables के बारे में सब कुछ जानने के लिए आपको अपने डेस्कटॉप पर प्रभावी ढंग से इसका उपयोग करने की आवश्यकता नहीं है। आपको बस कुछ बुनियादी ज्ञान की आवश्यकता है कि यह कैसे काम करता है और इसके नियम कैसे संरचित किए जाते हैं।
संबंधित : लिनक्स में फ़ायरवॉल को कैसे संभालें और कॉन्फ़िगर करें
कमांड संरचना
सभी iptables नियम एक ही मूल संरचना का पालन करें। प्रत्येक नियम iptables के लिए एक सिंगल-लाइन कमांड है जो बताता है कि किसी विशिष्ट पोर्ट पर यातायात को कैसे संभालना है। नीचे दिए गए उदाहरण पर नज़र डालें:
-ए इनपुट - i eth0 -p tcp -m राज्य --स्टेट स्थापित, संबंधित - 80-एसीसी स्वीकार करें
यह बहुत कुछ दिख सकता है, लेकिन जब आप इसे तोड़ते हैं तो यह वास्तव में सरल होता है। सबसे पहले, यह नियम -A
साथ शुरू होता है क्योंकि यह आपके iptables नियमों में शामिल होगा।
अगला, -i
ध्वज उस इंटरफ़ेस को निर्दिष्ट करता है जिसके लिए नियम है। इस मामले में, यह eth0
। जब आप अपने नियम लिखते हैं, तो सुनिश्चित करें कि आप जानते हैं कि आप अपने नेटवर्क से किस इंटरफेस से जुड़े हुए हैं।
निम्नलिखित ध्वज, -p
, प्रोटोकॉल का नाम। यह नियम tcp
, जो वेब यातायात है।
-m
झंडा थोड़ा अलग है। इसका उपयोग यह कहने के लिए किया जाता है कि यातायात को खारिज नहीं करने के लिए ऐसी स्थिति है जिसे पूरा किया जाना चाहिए। इस नियम में स्थिति राज्य है।
राज्य वास्तव में अगला झंडा है। आपको सभी कैप्स में लिखे गए स्वीकार्य राज्यों की एक सूची देना और अल्पविराम से अलग होना चाहिए। यह नियम दोनों नए और स्थापित कनेक्शन स्वीकार करता है।
यहां अंतिम ध्वज का दूसरा --sport
। यह "स्रोत पोर्ट" के लिए खड़ा है, और यह iptables कहता है जहां से यातायात आ रहा है। एक --dport
ध्वज भी है जो "गंतव्य बंदरगाह" के लिए खड़ा है। इसका उपयोग पोर्ट बंदरगाह से आने वाले पोर्ट ट्रैफिक को संभालने के लिए OUTPUT
नियमों के लिए किया जाता है।
अंत में, -j
झंडा है। यह iptable बताता है कि "कूद" करने के लिए कार्रवाई। इस मामले में इसे पिछली स्थितियों को पूरा करने वाले यातायात को ACCEPT
करना चाहिए।
एक फाइल का उपयोग करना
आप अपने नियम iptables में मैन्युअल रूप से एक-एक करके दर्ज कर सकते हैं। यह अविश्वसनीय रूप से कठिन है, और आप कहां हैं और आप क्या कर रहे हैं इसका ट्रैक खोना बहुत आसान है। एक नियम फ़ाइल बनाने के लिए यह बहुत बेहतर है जिसे आप एक बार में iptables में आयात कर सकते हैं।
इससे कोई फ़र्क नहीं पड़ता कि आप फ़ाइल कहां बनाते हैं। लोग उन्हें /tmp
निर्देशिका में भी बनाते हैं क्योंकि iptables आयात किए जाने के बाद परिणाम संग्रहीत करता है।
अपनी फाइल बनाएं यह गाइड /tmp/iptables-ip4
का उपयोग करने जा रहा है। फ़ाइल में निम्नलिखित दो पंक्तियां जोड़ें। आपके सभी नियम उनके बीच जाएंगे।
* फिल्टर # यहां आपके नियम COMMIT
अपने नियम बनाएं
आप अपने नियमों को स्थापित करना शुरू कर सकते हैं। ये सिर्फ सुझाव हैं। जाहिर है, अगर आप अन्य सेवाओं को चला रहे हैं या अन्य बंदरगाहों की खुली जरूरत है, तो आप निश्चित रूप से कुछ चीजों को बदल सकते हैं या अपने नियम जोड़ सकते हैं।
लूपबैक
लूपबैक इंटरफ़ेस एक आंतरिक इंटरफ़ेस है जो लिनक्स का उपयोग करता है।
-ए इनपुट - मैं lo -j स्वीकार करता हूं - एक आउटपुट -ओ lo -j स्वीकार करें
पिंग
यह वरीयता का मामला है। बहुत से लोग अपने डेस्कटॉप पर पिंग को अनुमति देना पसंद नहीं करते हैं। हालांकि, कनेक्शन का परीक्षण करने के लिए यह उपयोगी हो सकता है। यदि आप पिंग को अनुमति देना चाहते हैं, तो नीचे दिए गए नियम जोड़ें। यदि आप नहीं करते हैं, तो उन्हें बाहर निकालें।
-ए इनपुट - i eth0 -p icmp -m राज्य --स्टेट नया - ईसीएमपी-प्रकार 8 -j स्वीपेट -ए इनपुट - i eth0 -p icmp -m स्थिति - स्टेटस स्थापित, संबंधित - स्वीकार करें - एक आउटपुट - o eth0 -p icmp -j ACCEPT
मकड़जाल
आप स्पष्ट रूप से वेब से कनेक्ट करने में सक्षम होना चाहते हैं। उस के फ्लिप तरफ, आप इंटरनेट से उत्पन्न कनेक्शन की अनुमति नहीं देना चाहते हैं।
-ए इनपुट - i eth0 -p tcp -m राज्य --स्टेट स्थापित, संबंधित - 80-ए ACCEPT -A INPUT -i eth0 -p tcp -m स्थिति - स्टेटस स्थापित, संबंधित - 443 -j ACCEPT -ए आउटपुट -ओ eth0 -p tcp -m tcp --dport 80 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 443 -j ACCEPT
आपको DNS कनेक्शन की अनुमति देने की भी आवश्यकता होगी ताकि आपका कंप्यूटर केवल आईपी पते की बजाय यूआरएल का उपयोग कर सके क्योंकि यह बहुत सुविधाजनक नहीं होगा। यहां इस्तेमाल किए गए एक के लिए अपने राउटर के आईपी पते का चयन करें।
-ए इनपुट - 1 ens3 -s 192.168.1.1 -p udp --पोर्ट 53-मीटर राज्य - स्टेटस स्थापित, संबंधित-एसीसी स्वीप-ए आउटपुट -o ens3 -d 192.168.1.1 -p udp --dport 53 -m udp -j ACCEPT
पहर
अधिकांश लिनक्स डेस्कटॉप इंटरनेट से सिस्टम समय को सेट और बनाए रखने के लिए एनटीपी का उपयोग करते हैं। समय प्राप्त करने के लिए आपको अपने कंप्यूटर को एनटीपी सर्वर से कनेक्ट करने की अनुमति देनी होगी।
-ए इनपुट - i eth0 -p udp -m राज्य --स्टेट स्थापित, संबंधित --पोर्ट 123 -j ACCEPT -A OUTPUT -o eth0 -p udp -m udp --पोर्ट 123 -j ACCEPT
मुद्रण
जब तक आप एक यूएसबी प्रिंटर या बाहरी प्रिंट सर्वर का उपयोग नहीं कर रहे हैं, तो आपको CUPS से कनेक्शन सक्षम करने की आवश्यकता है।
-ए INPUT -p udp -m udp --पोर्ट 631 -j ACCEPT -A INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A OUTPUT -p udp -m udp --पोर्ट 631 -j ACCEPT -A OUTPUT -p tcp -m tcp --पोर्ट 631 -j ACCEPT
ईमेल
आप शायद ईमेल भेजने और प्राप्त करने में भी सक्षम होना चाहते हैं। ईमेल मुश्किल हो सकता है। यहां दिए गए बंदरगाहों को एसएसएल ईमेल बंदरगाह हैं। यदि आपको असुरक्षित ईमेल का उपयोग करने की आवश्यकता है, तो उन बंदरगाहों को प्रतिस्थापित करें।
# IMAP -A INPUT -i eth0 -p tcp -m स्थिति --स्टेट स्थापित, संबंधित - 993 -j ACCEPT -A OUTPUT-o eth0 -p tcp -m tcp --dport 993 -j ACCEPT # POP3 -A INPUT -i eth0 -p tcp -m राज्य --स्टेट स्थापित, संबंधित - 995 -j ACCEPT -A OUTPUT-o eth0 -p tcp -m tcp --dport 995 -j ACCEPT # SMTP -A INPUT -i eth0 -पी टीसीपी -एम स्टेट --स्टेट स्थापित, संबंधित --पोर्ट 465 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 465 -j ACCEPT
SSH
एसएसएच कनेक्शन का पूरी तरह से उपयोग करने के लिए, आपको एसएसएच पर इनपुट और आउटपुट दोनों की अनुमति देने की आवश्यकता है।
# इनपुट -ए इनपुट - आई ens3 -p tcp -m स्टेट --स्टेट नया, स्थापित - 22-एसीसी स्वीकृति -एक आउटपुट -o ens3 -p tcp -m स्थिति - स्टेटस स्थापित - 22-एसीसी स्वीकृति # आउटपुट-ए आउटपुट-o ens3 -p tcp -m स्टेट --स्टेट नया, स्थापित - 22-एसीसी स्वीकार करें - एक इनपुट- I ens3 -p tcp -m स्थिति - स्टेटस स्थापित - 22-एसीसी स्वीकृति
डीएचसीपी
अधिकतर लिनक्स डेस्कटॉप राउटर से स्वचालित रूप से आईपी पता प्राप्त करने के लिए डीएचसीपी का उपयोग करते हैं। डीएचसीपी अपने बंदरगाहों का उपयोग करता है, इसलिए उन्हें भी सुलभ होने की आवश्यकता है। यदि आप एक स्थिर आईपी का उपयोग कर रहे हैं, तो आपको इन नियमों की आवश्यकता नहीं है।
-ए इनपुट - i eth0 -p udp -m राज्य --स्टेट स्थापित, संबंधित --पोर्ट 67:68 -j ACCEPT -A OUTPUT -o eth0 -p udp -m udp --dport 67:68 -j ACCEPT
अन्य सभी को अस्वीकार करें
अंत में, आप iptables को पूरी तरह से अस्वीकार करने के लिए कहेंगे कि आपने ऊपर दिए गए नियमों में स्पष्ट रूप से अनुमति नहीं दी है।
- एक इनपुट - जे अस्वीकार - एक फॉरवर्ड -जे अस्वीकार - एक आउटपुट -जे अस्वीकार
सब कुछ के बाद, आपके नियमों को ऐसा कुछ दिखना चाहिए।
अपने नियम आयात करना
अब आपके पास एक पूर्ण-कार्यात्मक iptables नियम सूची है। आपको बस इसे उपयोग करने के लिए iptables को सौंपने की जरूरत है।
यदि कुछ नियम समय के साथ जोड़े गए हैं, तो उन्हें साफ़ करें। इन आदेशों के बाद, आप उन डिफ़ॉल्टों को देखेंगे जो सबकुछ अनुमति देते हैं।
sudo iptables -F && sudo iptables -X
उन लोगों के साथ, आप अपने द्वारा बनाई गई फ़ाइल से नए को पुनर्स्थापित कर सकते हैं।
sudo iptables-restore </ tmp / itpables-ip4
आपका कंप्यूटर अब नए iptables नियमों का उपयोग कर रहा है। आप उनकी जांच कर सकते हैं।
सूडो iptables-एस
हालांकि, वे अभी तक स्थायी नहीं हैं। अगर आप अभी अपने कंप्यूटर को पुनरारंभ करते हैं, तो आपके पास वास्तव में एक बुरा समय होगा।
उन्हें स्थायी बनाना
नियमों को स्थायी बनाने के कई तरीके हैं। वे प्रत्येक वितरण के लिए अलग हैं। यह गाइड डेबियन- और उबंटू-आधारित सिस्टम पर ध्यान केंद्रित करने जा रहा है, क्योंकि वे सबसे लोकप्रिय हैं।
एक पैकेज उपलब्ध है, जिसे iptables-persistant
कहा जाता है, जो iptables-persistant
को सहेजने और पुनर्स्थापित करने को संभालता है। आपको बस इतना करना है कि इसे इंस्टॉल करें।
sudo apt iptables- लगातार स्थापित करें
स्थापना के दौरान, पैकेज आपको पूछेगा कि क्या आप अपनी कॉन्फ़िगरेशन को सहेजना चाहते हैं। "हां" चुनें
भविष्य में, यदि आप नियम जोड़ना चाहते हैं, तो आप निम्न आदेश चलाकर फिर से सहेज सकते हैं।
सुडो सेवा netfilter- लगातार बचाओ
अब आप अपने कंप्यूटर के माध्यम से आने वाले यातायात के नियंत्रण में हैं। निश्चित रूप से अधिक है कि आप iptables के साथ कर सकते हैं, लेकिन आपको मूल बातें पहले आत्मविश्वास महसूस करनी चाहिए।