विषयसूची:

रास्पबेरी Pi4 फ़ायरवॉल: 12 कदम
रास्पबेरी Pi4 फ़ायरवॉल: 12 कदम

वीडियो: रास्पबेरी Pi4 फ़ायरवॉल: 12 कदम

वीडियो: रास्पबेरी Pi4 फ़ायरवॉल: 12 कदम
वीडियो: Setting Up a Raspberry Pi 4 | Vilros 2024, नवंबर
Anonim
रास्पबेरी Pi4 फ़ायरवॉल
रास्पबेरी Pi4 फ़ायरवॉल

नए रास्पबेरी पाई 4 (आरपीआई 4) के अभी जारी होने के साथ, मैंने खुद को घरेलू उपयोग का फ़ायरवॉल बनाने का फैसला किया। इंटरनेट पर इधर-उधर ठोकर खाने के बाद, मुझे इस विषय पर गिलाउम कडौच (https://networkfilter.blogspot.com/2012/08/build-your-piwall-gateway-firewall.html) का एक बेहतरीन लेख मिला। लेख अद्भुत है, और आगे बढ़ने से पहले आपको इसे पढ़ना चाहिए--यह यहां वर्णित प्रक्रिया को आसान बना देगा। बात यह है कि यह लेख 2012 में लिखा गया था और यह आर्कलिनक्स डिस्ट्रो पर आधारित है। आर्कलिनक्स के खिलाफ कुछ भी नहीं, लेकिन मैं इसे अधिक सामान्य रास्पियन बिल्ड का उपयोग करके बनाना चाहता था। RPi4 प्रसंस्करण आवश्यकताओं को संभाल सकता है। तो, धन्यवाद, गुइल्यूम, प्रेरणा के लिए !! यह निर्देश वापस गिलाउम के (संक्षेप में "जीके") मूल पोस्ट को संदर्भित करेगा, आप संभवतः अपने ब्राउज़र में दोनों पृष्ठ खोलना चाहेंगे।

मेरे फ़ायरवॉल के बारे में कुछ मुख्य बातें:

  • मेरे पास LAN में जाने वाला बिल्ट-इन इथरनेट जैक (eth0) है
  • ISP राउटर TRENDnet अडैप्टर (eth1) पर है
  • मैंने वायरलेस एडेप्टर को सक्रिय रूप से अक्षम कर दिया है (wlan0)
  • यह आपको वहां १००% प्राप्त करने की गारंटी नहीं है… उम्मीद है कि कम से कम ९९%:) तो कृपया प्रतिक्रिया/टिप्पणियां प्रदान करें
  • यह मेरी पहली शिक्षाप्रद है। किसी भी चीज़ के लिए क्षमा करें जो उपयुक्त निर्देश योग्य-मानदंडों का पालन नहीं करती है।

आइए, अब कुछ मजे करते हैं…

आपूर्ति

  • रास्पबेरी पाई 4

    • मैंने 4GB संस्करण का उपयोग किया है, किसी भिन्न संस्करण को आज़माने के लिए स्वतंत्र महसूस करें
    • केस (मुझे FLIRC पसंद है, लेकिन यह आपकी कॉल है)
    • बिजली अनुकूलक
  • माइक्रोएसडी कार्ड, 32GB या अधिक (मैंने 64GB कार्ड का उपयोग किया है)
  • ट्रेंडनेट USB3.0 गीगाबिट ईथरनेट डोंगल (मॉडल: TU3-ETG)
  • एक जोड़ी RJ45 नेटवर्क केबल
  • यूएसबी कीबोर्ड और माउस
  • एक माइक्रो-एचडीएमआई से एचडीएमआई केबल (जिसे एचडीएमआई मॉनिटर में प्लग किया गया है)

एक बार जब आप एसएसएच और वीएनसी को चलाने और चलाने में सक्षम हो जाते हैं तो उस कीबोर्ड, वीडियो और माउस को हटाया जा सकता है।

चरण 1: प्रारंभिक आरपीआई सेटअप

प्रारंभिक आरपीआई सेटअप
प्रारंभिक आरपीआई सेटअप

करने के लिए पहली बात यह है कि आपका आरपीआई 4 एक नई प्रणाली के रूप में चल रहा है। रास्पियन पूर्ण वितरण (डेस्कटॉप और अनुशंसित सॉफ़्टवेयर के साथ रास्पियन बस्टर) को डाउनलोड और इंस्टॉल करें। आपको एक दो बार रीबूट करने की आवश्यकता होगी ताकि यह विस्तार कर सके और पूर्ण माइक्रोएसडी कार्ड का लाभ उठा सके।

जैसे ही यह बूट होता है, आपको इलाके, नेटवर्क, कीबोर्ड और माउस के बारे में सवालों के जवाब देने होंगे। एक नेटवर्क से कनेक्ट करें और इसे अपडेट करने दें।

आइए यह भी पुष्टि करें कि सब कुछ ठीक से अपडेट हो गया है, और कुछ उपयोगिताएँ प्राप्त करें जो बाद में डिबगिंग में मदद कर सकती हैं:

$ sudo apt-get update

$ sudo apt-get dist-upgrade $ sudo apt-get install htop $ sudo apt-get install tcpdump

मैंने विम स्थापित नहीं किया है, न ही जीके के चरण 8 में से कोई भी (विम कॉन्फ़िगर करें)। मैंने अभी-अभी vi संपादक का उपयोग किया है क्योंकि इसमें वैसे भी अधिकांश सुविधाएँ हैं। इससे कुछ समय और मेहनत की भी बचत हुई।

एक बार यह पूरा हो जाने के बाद, RPi4 को सेट करें ताकि हम मॉनिटर को हॉट-प्लग कर सकें। मेरा लक्ष्य इसे बिना सिर के चलाना था, लेकिन अगर मुझे मॉनिटर में प्लग इन करने की आवश्यकता है, तो इसे पहचाना जाएगा।

$ sudo vi /boot/config.txt

उस फ़ाइल में:

असम्बद्धता (सामने #-प्रतीक हटाएं): hdmi_force_hotplug=1

टिप्पणी: hdmi_drive=2

वैकल्पिक रूप से, जोड़ें: enable_hdmi_sound

चरण 2: नेटवर्किंग

नेटवर्किंग
नेटवर्किंग
नेटवर्किंग
नेटवर्किंग

यदि आप जीके की साइट पर साथ चल रहे हैं, तो यह चरण 3 है। लेकिन ध्यान रखें, मैंने सटीक क्रम में उनके पहले चरणों का बहुत पालन नहीं किया।

जब मैंने पहली बार इसे शुरू किया, तो मैंने आरपीआई को सीधे अपने आईएसपी राउटर ("मेरे मौजूदा नेटवर्क के बगल में") से जोड़ा। इसने मुझे नेटवर्क को प्रभावित किए बिना कॉन्फ़िगरेशन के साथ खेलने की अनुमति दी। RPi4 बिल्ट-इन RJ45 को अपने राउटर (या वायरलेस, यदि आप चाहें) से कनेक्ट करें। रास्पियन के साथ, ऐसा करने का सबसे आसान तरीका GUI का उपयोग करना है। डेस्कटॉप से, रास्पबेरी आइकन> वरीयताएँ> रास्पबेरी पाई कॉन्फ़िगरेशन पर क्लिक करें। SSH और VNC को सक्षम करना सुनिश्चित करें। यह Real-VNC सर्वर क्लाइंट स्थापित करेगा। मैंने पाया कि यदि आप टाइट वीएनसी क्लाइंट से जुड़ने का प्रयास करते हैं, तो यह फिट हो जाएगा और कुछ अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता होगी। तो, इस बिंदु पर अपने प्राथमिक डेस्कटॉप/लैपटॉप (आपके RPi4 नहीं) पर Real-VNC क्लाइंट स्थापित करें।

SSH आउट-ऑफ़-द-बॉक्स काम नहीं करेगा (GK का चरण 7)। हमें कुछ कॉन्फ़िगरेशन को संशोधित करने की आवश्यकता है। सबसे पहले, ssh कॉन्फ़िग फ़ाइल को संशोधित करते हैं। यहां मेरे द्वारा किए गए परिवर्तन हैं। ध्यान रखें कि मैंने यहां हर बदलाव के प्रभाव का अध्ययन नहीं किया है। मैंने वही किया जो जीके की साइट ने सुझाया था। इनमें से कुछ परिवर्तनों की आवश्यकता नहीं हो सकती है।

$ sudo vi /etc/ssh/sshd_config

उस फ़ाइल में, निम्न पंक्तियों को अनकम्मेंट करें:

HostKey /etc/ssh/ssh_host_rsa_keyHostKey /etc/ssh/ssh_host_ecdsa_keySyslogFacility AUTHLogLevel INFOSस्ट्रिक्ट मोड्स YesPubkeyAuthentication yesHostBasedAuthentication no

Rhosts को अनदेखा करें हाँ

PrintMotd noPrintLastLog yesTCPKजीवित हाँ

और निम्नलिखित पंक्तियाँ जोड़ें:

प्रोटोकॉल 2प्राइविलेजसेपरेशन का उपयोग करेंहाँकीरीजेनरेशनअंतराल 3600सर्वरकीबिट्स 768RSAप्रमाणीकरण हाँRhostsRSAप्रमाणीकरण नहीं

और निम्नलिखित पंक्तियों को संशोधित करें:

पोर्ट 15507लॉगिनग्रेसटाइम 60परमिटरूटलॉगिन नंबर

आइए जल्दी से उस पहले संशोधन के बारे में बात करते हैं … पोर्ट 15507। एसएसएच सामान्य रूप से पोर्ट 22 पर चलता है। जीके ने इसे 15507 पर स्थानांतरित कर दिया - पता नहीं क्यों। आप इसे किसी भी तरह से संशोधित कर सकते हैं या नहीं … यदि आप इसे संशोधित करना चुनते हैं, तो आपको किसी भी SSH कमांड में "-p 15507" जोड़ना होगा, जिससे आप जुड़ने का प्रयास करते हैं। यदि आप इसे छोड़ने का निर्णय लेते हैं, तो उन अन्य स्थानों पर नज़र रखें जहां इन निर्देशों में 15507 का उल्लेख किया गया है और उन्हें अनदेखा करें, विशेष रूप से फ़ायरवॉल नियम!

अंत में इस चरण के लिए, RPi4 का IP पता प्राप्त करें ताकि हम जान सकें कि किससे जुड़ना है:

$ ipconfig -a

सक्रिय नेटवर्क कनेक्ट खोजें (संभवतः eth0 या wlan0 पर) और उस IP पते को लिख लें। अब आपके पास वह है जो आपको दूर से RPi4 से कनेक्ट करने की आवश्यकता है। आइए आगे बढ़ने से पहले रीबूट करें:

$ सूडो रिबूट

चरण 3: एक और उपयोगकर्ता

एक अन्य उपयोगकर्ता
एक अन्य उपयोगकर्ता

डिफ़ॉल्ट आरपीआई उपयोगकर्ता नाम (पीआई) का उपयोग नहीं करना सबसे अच्छा है, और आपको निश्चित रूप से पासवर्ड बदलना चाहिए। सुरक्षित रहने के लिए, एक और उपयोगकर्ता खाता जोड़ें जिसका उपयोग आप दूरस्थ रूप से कनेक्ट करने और जारी रखने के लिए कर सकते हैं (जीके का चरण 6)। आरपीआई पर वापस, एक नया उपयोगकर्ता जोड़ें और उपयोगकर्ता के लिए एसएसएच में अनुमतियां सेट करें और सुडो कमांड जारी करें:

$ sudo useradd -m -g उपयोगकर्ता -G sudo, netdev -s /bin/bash [USERNAME]

$ सुडो पासवार्ड [USERNAME]

बेझिझक लॉगआउट करें या रिबूट करें और आगे चलकर उस नए बनाए गए खाते का उपयोग करें।

चरण 4: Syctl फ़ाइल

Syctl फ़ाइल
Syctl फ़ाइल

अगला चरण /etc/sysctl.conf फ़ाइल को संशोधित करना है (GK का चरण 9)। इस फ़ाइल का उपयोग कुछ कर्नेल सेटिंग्स को बदलने के लिए किया जाता है। हम वही करने जा रहे हैं जो जीके करने के लिए कहता है। यहाँ चरणों का एक सरलीकृत सेट है।

$ sudo vi /etc/sysctl.conf

उस फ़ाइल में, निम्न पंक्तियों को अनकम्मेंट करें:

net.ipv4.conf.default.rp_filter=1net.ipv4.conf.all.rp_filter=1net.ipv4.tcp_syncookies=1

net.ipv4.ip_forward = 1

net.ipv4.conf.all.accept_redirects = 0net.ipv4.conf.all.send_redirects = 0net.ipv4.conf.all.accept_source_route = 0net.ipv4.conf.all.log_martians = 1

और निम्नलिखित पंक्तियाँ जोड़ें:

net.ipv4.icmp_echo_ignore_broadcasts = 1net.ipv4.icmp_ignore_bogus_error_responses = 1net.ipv4.conf.eth0.accept_redirects = 0vm.min_free_kbytes = 8192

इन नई सेटिंग्स के साथ सेवा को पुनरारंभ करें और रीबूट करें:

$ sudo sysctl -p

$ सूडो रिबूट

चरण 5: डीएचसीपी और डीएनएस (भाग 1)

डीएचसीपी और डीएनएस (भाग 1)
डीएचसीपी और डीएनएस (भाग 1)

मेरे लिए, इस प्रक्रिया के दो दर्दनाक हिस्से थे… डीएचसीपी और डीएनएस की स्थापना, और फ़ायरवॉल नियम स्थापित करना। तो, यहाँ हम पहले भाग के साथ चलते हैं। यदि आप जीके की साइट पर अनुसरण कर रहे हैं, तो हम चरण 10 पर हैं।

ऐसा करने के लिए, आपको अपने ISP राउटर (या वर्तमान फ़ायरवॉल) से कुछ जानकारी की आवश्यकता होगी:

  • राउटर का आंतरिक आईपी पता
  • एक IP पता जिसका उपयोग आप राउटर के RPi4 इंटरफ़ेस के लिए कर सकते हैं
  • नेमसर्वर के लिए आईपी (या दो)
  • LAN कनेक्शन के लिए इंटरफ़ेस नाम (उदा., eth0 या eth1)
  • ISP कनेक्शन के लिए इंटरफ़ेस नाम (उदा., जो कुछ भी आपने LAN के लिए उपयोग नहीं किया)

RPi4 को एक स्थिर IP पता (बुलेट 2, ऊपर) देने के लिए आपको राउटर की सेटिंग्स को संशोधित करने की भी आवश्यकता हो सकती है। कम से कम, मैंने तो यही किया।

सबसे पहले, dhcpcd.conf फ़ाइल को संशोधित करते हैं…

$ sudo vi /etc/dhcpcd.conf

इन पंक्तियों पर टिप्पणी न करें:

लगातार विकल्प तेजी से

प्रत्येक नेटवर्क इंटरफ़ेस के लिए, आपको नेटवर्क विवरण सेट करना होगा। उन्हें कुछ इस तरह दिखना चाहिए:

# आईएसपी के इंटरफेस के लिए स्टेटिक

इंटरफ़ेस eth1 स्थिर ip_address=192.168.1.स्थिर राउटर=192.168.1.254 स्थिर डोमेन_नाम_सर्वर=8.8.8.8 8.8.4.4 मीट्रिक 100 # LAN इंटरफ़ेस के इंटरफ़ेस के लिए स्थिर eth0 स्थिर ip_address=10.210.212.स्थिर राउटर=10.210.212. domain_name_servers=8.8.8.8 8.8.4.4 #interface wlan0 #static ip_address=10.210.212.#static Routers=10.210.212.1 #static domain_name_servers=8.8.8.8 #अगर आप किसी डिवाइस पर IP एड्रेस को थोपना चाहते हैं तो इस सेक्शन को अनकम्मेंट करें। 'होस्ट' के बाद का नाम सिस्टम के लिए अर्थहीन है। डिवाइस का MAC पता और साथ ही वांछित #IP पता दर्ज करें। सुनिश्चित करें कि यह डीएचसीपी रेंज से बाहर है। आवश्यकतानुसार दोहराएं। #होस्ट [कुछ भी] {# हार्डवेयर ईथरनेट xx:xx:xx:xx:xx:xx; # निश्चित-पता 10.210.212.250; #}

उन नंबरों का उपयोग करना सुनिश्चित करें जो आपके लिए काम करते हैं। ऊपर दिए गए आईपी मेरे नेटवर्क के लिए हैं, नाम सर्वर के अपवाद के साथ जो Google हैं। ध्यान दें कि मैंने आईएसपी के लिए मेट्रिक को 100 पर सेट किया है ताकि नेटवर्क ट्रैफ़िक के लिए डिफ़ॉल्ट रूप से पहले प्रयास किया जा सके। मैंने अपने वायरलेस एडॉप्टर (wlan0) के लिए भी विशेष रूप से कुछ नहीं किया। मैं उस इंटरफ़ेस को पूरी तरह से बंद करने का इरादा रखता हूं, इसलिए यह मेरे लिए समझ में आया।

इसके अलावा, यदि आप किसी डिवाइस (जैसे NAS) पर IP पते को बाध्य करना चाहते हैं, तो उस निचले भाग का उपयोग करें। मेजबान को एक ऐसा नाम दें जो आपके लिए सार्थक हो, लेकिन जान लें कि इसका उपयोग कभी भी किसी चीज द्वारा नहीं किया जाता है। अर्धविराम मत भूलना।

चरण 6: डीएचसीपी और डीएनएस (भाग 2)

डीएचसीपी और डीएनएस (भाग 2)
डीएचसीपी और डीएनएस (भाग 2)

अगला चरण dnsmasq.conf फ़ाइल को संशोधित करना है…

$ sudo vi /etc/dnsmasq.conf

हमें कुछ पंक्तियों को असम्बद्ध करने और कुछ पंक्तियों को संपादित करने की आवश्यकता है। आपको dhcpcd.conf फ़ाइल से कुछ सेटिंग्स को कॉपी करने की भी आवश्यकता होगी। दो अन्य प्रश्नों का उत्तर आपको स्वयं देना होगा:

क्या आंतरिक LAN (उदा., eth0) को DHCP और DNS की आवश्यकता है? आप अपने LAN के लिए कौन-सी DHCP श्रेणी चाहते हैं, और प्रत्येक पट्टे की अवधि कितनी होनी चाहिए?

कुछ पंक्तियों को असम्बद्ध करके प्रारंभ करें:

फर्जी-प्राइवनो-डीएचसीपी-इंटरफ़ेस = wlan0bind-इंटरफेस dhcp-नाम-मिलान = सेट: wpad-अनदेखा, wpaddhcp-अनदेखा-नाम = टैग: wpad-अनदेखा करें

अपना नाम सर्वर सेट करें। उस लाइन की तलाश करें जो 'सर्वर =' शुरू करती है और इसे 'सर्वर = 8.8.8.8' जैसा कुछ बनाती है।

अपनी डीएचसीपी रेंज सेट करें। ऐसा करने के बहुत सारे तरीके हैं। मैंने दो समापन बिंदु IP, मास्क और पट्टे की लंबाई प्रदान करना चुना। मेरी सीमा 10.210.212.20-10.210.212.240 थी, जिसमें 255.255.255.0 का नेटमास्क और 12 घंटे का लीज समय था। मेरा सुझाव है कि यदि आपको कभी भी कुछ स्थिर आईपी देने की आवश्यकता हो तो आप अपनी सीमा के ऊपर और नीचे कुछ आईपी छोड़ दें।

इंटरफ़ेस सेट करें जो 'इंटरफ़ेस =' लाइन को 'इंटरफ़ेस = eth0' जैसा कुछ संशोधित करके डीएनएस और डीएचसीपी (लैन) प्राप्त करेगा। ध्यान दें कि मैंने विशेष रूप से इसे अपने वायरलेस नेटवर्क को डीएचसीपी आईपी पता निर्दिष्ट नहीं करने के लिए कहा था। दोबारा, मैं उस इंटरफ़ेस को पूरी तरह से बंद करने का इरादा रखता हूं, इसलिए यह मेरे लिए समझ में आया।

चरण 7: डीएचसीपी और डीएनएस (भाग 3)

डीएचसीपी और डीएनएस (भाग 3)
डीएचसीपी और डीएनएस (भाग 3)

इस अंतिम चरण के लिए जीके के निर्देशों से एक मोड़ …

जब मैं इस बिंदु पर अपनी आरपीआई को पुनः आरंभ करने गया, तो dnsmasq प्रक्रिया सक्रिय नहीं थी। थोड़ा इधर-उधर देखा और मैंने पाया कि dnsmasq शुरू होने से पहले मेरे eth0 और eth1 नेटवर्क इंटरफेस दोनों सक्रिय नहीं थे, इसलिए dnsmasq प्रारंभ में विफल हो जाएगा। मुझे एक कीबोर्ड और माउस को आरपीआई से कनेक्ट करना होगा और मैन्युअल रूप से dnsmasq को पुनरारंभ करना होगा। यह हेडलेस सेटअप के साथ आदर्श नहीं है। मैंने उन पोस्टों का एक समूह पढ़ा, जिनमें सेटिंग्स में विभिन्न परिवर्तन करने के लिए कहा गया था (जैसे, बाइंड-इंटरफ़ेस को अक्षम करें) और अन्य चीजें। इसमें से कोई भी काम नहीं किया। अंत में, मैंने बस एक शेल स्क्रिप्ट लिखने का फैसला किया जो हर 2 मिनट में चलेगी और dnsmasq की स्थिति की जांच करेगी। अगर यह नहीं चल रहा था, तो इसे शुरू करें। मुझे लगता है कि यह स्थिति मेरे लिए अद्वितीय नहीं है। तो, यहाँ आपको क्या करना है:

निम्नलिखित कोड को अपने आरपीआई पर 'dns_masq_keepalive.sh' नामक फ़ाइल में बनाएं।

#!/बिन/बैश

# फ़ाइल: dns_masq_keepalive.sh # अगस्त 2019 # इसका उपयोग crontab -e (*/2 * * * * /etc/dns_masq_keepalive.sh) के साथ करें ताकि यह सुनिश्चित हो सके कि dnsmasq चलता है। यदि dhcpcd.conf में उल्लिखित सभी इंटरफेस शुरू होने से पहले नहीं हैं, तो सेवा अपने आप बंद हो जाएगी। यह समस्या को ठीक करता है। # यह अगली पंक्ति सभी सक्रिय नौकरियों को 'dnsmasq' शब्द के साथ लौटाएगी। तो, इस # फ़ाइल के नाम में 'dnsmasq' शामिल न करें, अन्यथा यह इसे हर बार वापस कर देगा और आपके पास कभी भी पुनरारंभ नहीं होगा। dns_running=$(ps -e | grep dnsmasq) इको $dns_running अगर [-z "$dns_running"] तो #echo No DNSMasq sudo /etc/init.d/dnsmasq पुनरारंभ #else #echo DNSMasq रनिंग फाई

जरूरत पड़ने पर इसे कट-पेस्ट करें। आप जो भी करें, नाम में 'dnsmasq' शामिल न करें। स्क्रिप्ट 'dnsmasq' शब्द की तलाश करती है और यदि स्क्रिप्ट के नाम में है, तो यह मान लेगा कि सेवा चल रही है। साथ ही, फ़ाइल का नाम बदलें ताकि यह '.sh' के साथ समाप्त हो। निर्देश मुझे '.sh' फ़ाइल अपलोड नहीं करने देंगे - जो कि अच्छा है। शेष निर्देश मानते हैं कि फ़ाइल यहां मौजूद है: /etc/dns_masq_keepalive.sh।

दूसरा, फ़ाइल पर अनुमतियाँ सेट करें ताकि इसे निष्पादित किया जा सके:

$ sudo chmod u+x /etc/dns_masq_keepalive.sh

अब हम हर दिन के हर 2 मिनट में प्रोग्राम को चलाने के लिए crontab सिस्टम का उपयोग करेंगे। क्रोंटैब प्रारंभ करें:

$ सुडो क्रोंटैब -ई

यह आपको vi या कुछ और का उपयोग करके संपादित करने के लिए प्रेरित करेगा। कोई भी काम करेगा। एक बार जब आप इसे संपादित कर सकते हैं, तो फ़ाइल के अंत में निम्नलिखित जोड़ें:

*/2 * * * * sudo /etc/dns_masq_keepalive.sh

'*/2' में कोई स्थान नहीं है, लेकिन तारों के बीच रिक्त स्थान है। सेव करके छोड़ो। यह आपको बताना चाहिए कि कार्य निर्धारित है, या ऐसा ही कुछ।

चरण 8: फ़ायरवॉल

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

अगली दर्दनाक प्रक्रिया फ़ायरवॉल (जीके का चरण 11) है। रास्पियन प्रसिद्ध iptables प्रणाली का उपयोग करता है। जीके का ब्लॉग आपको वहां पहुंचने में मदद करने के लिए तीन फाइलें प्रदान करता है… फ़ायरवॉल। सरल, फ़ायरवॉल। उन्नत, और फ़ायरवॉल। प्रवाह। जीके के लिए सभी सम्मान, लेकिन इसे अपने आप में आसान बनाएं और केवल फ़ायरवॉल के साथ जाएं। सरल। मैंने iptables सिस्टम और नियमों का पता लगाने में बहुत समय बिताया। मुझे खुशी है कि मैंने किया, लेकिन यह दर्दनाक था। इसलिए, मैं आपकी मदद करने के लिए संलग्न दो फाइलें देता हूं… फ़ायरवॉल। सरल और फ़ायरवॉल। साफ़। इन दोनों फाइलों को अपने /etc फ़ोल्डर में कॉपी करें और उन्हें निष्पादन योग्य बनाने के लिए अनुमतियों को बदलें:

$ sudo chmod u+x /etc/firewall.simple

$ sudo chmod u+x /etc/firewall.clear

इससे पहले कि आप कोई फ़ायरवॉल नियम सेट करें, एक डेस्कटॉप/लैपटॉप को अपने RPi eth0 पोर्ट में प्लग करें और पुष्टि करें कि उसे एक IP पता मिलता है और उसमें DNS चल रहा है। ऐसा करने का सबसे आसान तरीका एक सामान्य साइट और फिर एक ज्ञात आईपी पते की कोशिश करना और पिंग करना है। अपने आरपीआई और आईएसपी राउटर को भी पिंग करें। यदि आपको परिणाम मिलते हैं, तो सब कुछ ठीक है और अब आपके सामने आने वाली कोई भी नेटवर्क समस्या संभवतः फ़ायरवॉल समस्याओं का परिणाम होगी।

प्रदान की गई पहली फ़ाइल मूल रूप से GK की फ़ायरवॉल के रूप में शुरू हुई। सरल फ़ाइल (धन्यवाद, फिर से, GK!)। मैंने इसे इस प्रणाली के लिए काम करने के लिए कई बदलाव किए हैं। इसे कम से कम HTTP, HTTPS, DNS, DHCP, पिंग, आंतरिक SSH, आंतरिक VNC, और plex के लिए अनुमति देनी चाहिए। प्लेक्स में हर संभव डिवाइस के लिए सभी खुले बंदरगाह नहीं हो सकते हैं, लेकिन इसे ठीक करने के लिए वहां कई पोस्ट हैं। फ़ाइल के शीर्ष पर वे मान हैं जिन्हें आपको अपने नेटवर्क कॉन्फ़िगरेशन में बदलने की आवश्यकता होगी।

जब आप अपने फ़ायरवॉल नियमों का परीक्षण करते हैं तो दूसरी फ़ाइल, फ़ायरवॉल.क्लियर, का उपयोग करने के लिए अभिप्रेत है। जब आप 'sudo /etc/firewall.clear' चलाते हैं तो सभी फ़ायरवॉल नियम साफ़ हो जाएंगे और सिस्टम पूरी तरह से इंटरनेट से जुड़ा होना चाहिए। इसलिए, यदि आप फ़ायरवॉल के साथ नेटवर्क सेवा (जैसे डीएनएस) काम करने में सक्षम नहीं हैं। जगह में सरल नियम, लेकिन फ़ायरवॉल चलाने के बाद यह काम करना शुरू कर देता है। साफ़ करें, आप जानते हैं कि आपको नियम समस्या है। आपके नियमों का परीक्षण करते समय यह वास्तव में केवल महत्वपूर्ण होगा।

इसलिए, हमारे पास फ़ायरवॉल नियम हैं, आरपीआई शुरू होने पर हमें उन्हें शुरू करने की आवश्यकता है। ऐसा करने के लिए, हम /etc/rc.local फ़ाइल को संपादित करेंगे:

$ sudo vi /etc/rc.local

एक बार अंदर फ़ाइल के अंत में निम्नलिखित जोड़ें:

इको "लोड हो रहा है iptables नियम"/etc/firewall.simple >> /dev/null

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

$ सूडो रिबूट

चरण 9: Syslog

सिसलोग
सिसलोग

दो कदम बाकी…

यह थोड़ा आसान है। यदि आप अभी भी वहां हैं, और जीके के ब्लॉग के साथ अनुसरण कर रहे हैं, तो यह चरण १२ है। आपको ठीक वही करने की आवश्यकता है जो वह syslog फ़ाइल के संबंध में कहते हैं। यहाँ संक्षिप्त चरण दिए गए हैं:

2 महीने का syslog डेटा रखें…

$ sudo vi /etc/logrotate.conf

हमें इसे माप के रूप में 'एक सप्ताह' का उपयोग करने के लिए कहना है, और फिर उनमें से 12 रखना है। आपको इस फ़ाइल में निम्नलिखित दो पंक्तियों की आवश्यकता है। मेरा मानना है कि आपको मौजूदा लाइनों को बदलना होगा।

साप्ताहिक घुमाएँ 12

बचाओ।

चरण 10: खर्राटे के साथ घुसपैठ का पता लगाना

Snort. के साथ घुसपैठ का पता लगाना
Snort. के साथ घुसपैठ का पता लगाना

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

सबसे पहले, स्नॉर्ट को डाउनलोड और इंस्टॉल करने के लिए sudo pacman -S snort का उपयोग न करें। निम्न कार्य करें:

$ sudo apt-get install snort

दूसरा, आप सूडो को सूडो स्नॉर्ट -वर्जन के साथ सत्यापित नहीं कर सकते हैं। इसके साथ स्थापना सत्यापित करें:

$ सूडो स्नॉर्ट -वी

अंत में, इसे स्टार्टअप पर चलाने के लिए, rc.conf फ़ाइल को संशोधित न करें, rc.local फ़ाइल को संपादित करें (फिर से)…

$ sudo vi /etc/rc.local

फ़ाइल के अंत में निम्न पंक्तियाँ जोड़ें:

गूंज "लोड हो रहा है थूथन"

#/usr/sbin/snort -D -u snort -g snort -c /etc/snort/snort.conf -i eth0 -l /var/log/snort

अब, रीबूट करें और यह सब जादुई रूप से काम करना चाहिए।

$ सूडो रिबूट

चरण 11: आनंद लें

आनंद लेना
आनंद लेना

यही होना चाहिए!

सबसे पहले, मैं गिलाउम कडौच को पर्याप्त धन्यवाद नहीं दे सकता! उन्होंने इसे प्रेरित किया।

दूसरा, यदि आपने पहले से ही अपना कीबोर्ड, वीडियो और माउस डिस्कनेक्ट नहीं किया है, तो आप कर सकते हैं। जरूरत पड़ने पर वापस आने के लिए SSH और VNC का उपयोग करें।

अंत में, यह 100% सही नहीं हो सकता है। कृपया परिवर्तनों/सुझावों/सिफारिशों के साथ वापस पोस्ट करें। मेरा लक्ष्य इसके लिए चर्चा की शुरुआत और बहुत से लोग आनंद लेना होगा!

धन्यवाद!!

PS… चित्र एक RPi4 FLIRC एल्यूमीनियम केस के अंदर है जिसमें एक पुराना Intel पंखा थोड़ा संशोधित है और ऊपर से ज़िप से बंधा हुआ है। पंखे के नीचे भी थर्मल पेस्ट है, बस अगर आप सोच रहे थे। मुझे इंटरनेट पर कुछ ऐसा ही मिला (https://www.reddit.com/r/raspberry_pi/comments/9bdgrr/it_turns_out_putting_a_heatsink_on_the_flirc_case/) और मैंने इसे स्वयं आजमाने का फैसला किया।

चरण 12: चेंजलॉग

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

25 सितंबर 2019:

  • फ़ायरवॉल में फिक्स्ड डीएचसीपी नियम। सरल
  • निर्देशों में फिक्स्ड डीएचसीपी रेंज (फाइलें सही थीं)
  • डीएचसीपी निर्देशों में फिक्स्ड-आईपी असाइनमेंट जोड़ा गया

13 अक्टूबर 2019

  • फिक्स्ड कई टाइपो
  • एक दूसरा पीआई बनाया गया है, इसलिए यदि आवश्यक हो तो मेरे पास स्वैप करने के लिए एक परीक्षण एसडीकार्ड होगा

सिफारिश की: