आमचे व्हीपीएस सुरक्षित करण्यासाठी चरण

या ट्यूटोरियलमध्ये डेबियन जीएनयू / लिनक्ससह व्हर्च्युअल प्रायव्हेट सर्व्हर (व्हीपीएस) कसे तयार करावे आणि कसे सुरक्षित करावे ते दर्शविले गेले आहे. प्रारंभ करण्यापूर्वी, काही गोष्टी गृहीत धरल्या जातातः

  1. आपल्यास GNU / Linux सह एक मध्यम स्तरातील परिचितता आहे.
  2. आमच्या वैयक्तिक वापरासाठी एक व्हीपीएस आहे ज्यामध्ये आम्हाला एसएसएचद्वारे प्रवेश आहे.
  3. व्हीपीएसकडे समर्पित बाह्य आयपीव्ही 4 250.250.250.155 आहे आणि आमच्या प्रदात्याकडे 250.250.0.0/16 ब्लॉक आहे. (1)
  4. आमच्या व्हीपीएसमध्ये आमच्याकडे बाहेरून प्रवेश करण्यासाठी केवळ http, https आणि ssh सेवा सक्षम असतील.
  5. बाह्य डीएनएस सक्षम केले जाणार नाही कारण ते सहसा आमच्या प्रदात्याच्या पॅनेलमध्ये केले जाते. (२)
  6. हे सुपरयूझर म्हणून काम करेल.

स्थापना

प्रथम चरण म्हणून, चला सर्व्हर अद्यतनित करू आणि आम्हाला आवश्यक असलेली काही पॅकेजेस स्थापित करूः

# एप्टीट्यूड अपडेट आणि एप्टीट्यूड सेफ-अपग्रेड # एप्टीट्यूड -आरव्हीडब्ल्यू इंस्टॉल ड्रॉपबेयर ftसफ्टस्पर्व्हर एसएसएलएच इप्टेबल्स-पर्सिस्टंट यूलॉग फेलबॅनबेन एनजीन्क्स-लाईट अपाचेस-टेलनेट भूतस्क्रिप्ट पॉपलर-युट्स झिप अनझिप-अनारिप-फ्री पी-झिप-फुल कमी मल्टीटाईल एम

सेटअप

आता आपण वर्क यूजर तयार करणार आहोत. सर्व्हरवर मूळ म्हणून काम करणे असुरक्षित आहे, म्हणून आम्ही प्रथम एक खास वापरकर्ता तयार करू:

uडयूझर ऑपरेटर युजरमोड -एजी सुडो ऑपरेटर

पहिली कमांड ऑपरेटर यूजर तयार करते, दुसरी ती त्यास गटामध्ये जोडते सुडो, जे आपणास रूट म्हणून अनुप्रयोग चालविण्यास अनुमती देईल.

सुपर वापरकर्त्यांसाठी परवानग्या समायोजित करा

नियमितपणे काम करण्यासाठी आम्ही वापरकर्त्याचा वापर करू ऑपरेटर यापूर्वी तयार केलेले, आपल्याला कमांड एक्झिक्युशन पर्याय सुपरयूजर म्हणून समायोजित करणे आवश्यक आहे, ज्यासाठी आपण पुढील कमांड कार्यान्वित करतो:

विसुडो

ही कमांड मुळात फाइल सुधारित करण्यास परवानगी देते / इ / सूडर्स; ज्यामध्ये आपल्यात या ओळी असाव्यात:

डीफॉल्ट env_reset, टाइमस्टॅम्प_टाईमआउट = 0% sudo ALL = (सर्व: सर्व) सर्व

पहिल्या ओळीत पर्याय डीफॉल्ट मूल्यांमध्ये जोडला जाईल टाइमस्टॅम्प_टाइमआउट जे sudo कमांड कार्यान्वित केल्यावर आपल्याला संकेतशब्दाची समाप्ती वेळ (मिनिटांत) सेट करण्यास अनुमती देते. डीफॉल्ट 5 आहे, परंतु दोनवेळा हे कधीकधी असुरक्षित असते:

  1. जर अनवधानाने आम्ही आपला संगणक संकेतशब्द कालबाह्य होण्यापूर्वी लॉग इन केलेला सोडला तर, कोणीही कोणत्याही निर्बंधाशिवाय रूट म्हणून आज्ञा चालवू शकते.
  2. जर, अज्ञानाद्वारे आम्ही एखादा अनुप्रयोग किंवा स्क्रिप्ट कार्यान्वित करतो ज्यामध्ये संकेतशब्द कालबाह्य होण्यापूर्वी दुर्भावनायुक्त कोड आहे, तर आमच्या स्पष्ट संमतीशिवाय अनुप्रयोगास आमच्या सिस्टममध्ये सुपरयूझर म्हणून प्रवेश मिळू शकतो.

त्यामुळे जोखीम टाळण्यासाठी, आम्ही मूल्य शून्यावर सेट केले आहे, म्हणजेच प्रत्येक वेळी sudo कमांड कार्यान्वित केल्यावर पासवर्ड प्रविष्ट करावा लागेल. Aणात्मक मूल्य -1 म्हणून सेट केले असल्यास त्याचा परिणाम असा होतो की संकेतशब्द कधीच संपुष्टात येत नाही, जो आपल्याला पाहिजे असलेल्या विपरित परिणाम देईल.

दुसर्‍या ओळीत हे स्पष्ट केले गेले आहे की सुदो ग्रुप कोणत्याही संगणकावर कोणतीही कमांड कार्यान्वित करू शकतो, जी नेहमीची आहे, जरी ती समायोजित केली जाऊ शकते. ()) असे काही लोक आहेत ज्यांनी सोयीसाठी संकेतशब्द टाइप करणे टाळण्यासाठी ओळ खाली घातली आहे:

% sudo ALL = (सर्व: सर्व) नोपास्डब्ल्यूडी: सर्व

तथापि, आम्ही हे स्पष्ट करण्यापूर्वी हे धोकादायक आहे आणि म्हणूनच याची शिफारस केली जात नाही.

रीस्टार्ट अक्षम करा

सुरक्षिततेच्या कारणास्तव, आम्ही की संयोजन वापरून रीस्टार्ट अक्षम करू Ctrl + Alt + Del, ज्यासाठी आपण फाईलमध्ये ही ओळ जोडली पाहिजे / इत्यादी / पुढाकार:

ca: 12345: ctrlaltdel: / bin / echo "Ctrl + Alt + Del अक्षम केले गेले आहे."

ड्रॉपबेयरसह ओपनएसएच बदला

बहुतेक व्हीपीएस ओपनएसएसएच स्थापितसह येतात, जे निश्चितपणे खूप उपयुक्त आहे, परंतु जोपर्यंत आम्हाला ओपनएसएचच्या सर्व कार्यक्षमतेचा फायदा घेण्याची आवश्यकता नाही तोपर्यंत व्हीपीएससाठी हलके पर्याय नाहीत, जसे की ड्रॉपबियर, जे सामान्यत: नियमित वापरासाठी पुरेसे असते. तथापि, या अनुप्रयोगाचा एक दोष हा आहे की तो एकात्मिक एसएफटीपी सर्व्हरसह येत नाही आणि म्हणूनच आम्ही सुरुवातीस हे पॅकेज स्थापित केले. gesftpserver.

ड्रॉपबियर कॉन्फिगर करण्यासाठी आम्ही फाईलमध्ये बदल करू / etc / डीफॉल्ट / ड्रॉपबियर जेणेकरून यात या दोन ओळी असतील:

NO_START = 0 DROPBEAR_EXTRA_ARGS = "- डब्ल्यूपीपी 127.0.0.1:22 -I 1200-मी"

पहिली ओळ सहजपणे सेवा सक्षम करते आणि दुसरे कार्य अनेक गोष्टी करतात:

  1. रूट प्रवेश टाळा.
  2. स्थानिक इंटरफेसच्या पोर्ट 22 वर सेवा ऐकत ठेवते (आम्ही नंतर का ते स्पष्ट करू).
  3. प्रतीक्षा वेळ (20 मिनिटे) सेट करते.

एसएसएलएच

पोर्ट 22 (एसएसएच) सर्वज्ञात आहे आणि सामान्यत: हॅकर्स ब्रेक करण्याचा प्रयत्न करतात त्यापैकी एक आहे, म्हणून आम्ही त्याऐवजी 443 पोर्ट (एसएसएल) वापरू. असे होते की हे पोर्ट एचटीटीपीएस वर सुरक्षित ब्राउझिंगसाठी वापरले गेले आहे.

या कारणास्तव आम्ही sslh पॅकेज वापरू, जे पोर्ट 443 वर येणार्‍या पॅकेटचे विश्लेषण करणारे मल्टिप्लेसरपेक्षा अधिक काही नाही आणि रहदारीचे प्रकार एसएसएच किंवा एसएसएल आहे का यावर अवलंबून त्यांना अंतर्गत किंवा एका सेवेकडे वळवते.

एसएसएलएच इंटरफेसवर ऐकू शकत नाही जिथे दुसरी सर्व्हिस आधीच ऐकत आहे, म्हणूनच आम्ही आधी ड्रॉपबियरला स्थानिक इंटरफेसवर ऐकू दिला.

आता आपल्याला जे करण्याची आवश्यकता आहे ते म्हणजे इंटरफेस आणि पोर्ट ज्याद्वारे ऐकणे आवश्यक आहे ते दर्शवावे आणि सेवेच्या प्रकारानुसार पॅकेट्स कोठे पुनर्निर्देशित करावे आणि यासाठी कॉन्फिगरेशन फाइलमध्ये बदल करू. / etc / default / sslh:

डीएईएमओएन = / यूएसआर / एसबीन / एसएसएलएच डीएएमओएन_ओपीटीएस = "- वापरकर्ता एसएसएलएच --लिस्टन 250.250.250.155:443 --ss 127.0.0.1:22 --ssl 127.0.0.1:443 - पीडफाईल / वार / रन / एसएसएलएच / एसएसएलएच .पीड "RUN = होय

शेवटी, आम्ही सेवा पुन्हा सुरू केल्या:

सेवा एसएचएस स्टॉप आणि & सर्व्हिस ड्रॉपबियर स्टार्ट && सर्व्हिस एसएसएलएच रीस्टार्ट

मागील आदेशानंतर, आमचे सुरक्षित सत्र कदाचित व्यत्यय आणेल, अशा परिस्थितीत पुन्हा लॉग इन करणे पुरेसे आहे, परंतु या वेळी कार्य वापरकर्त्यासह आणि पोर्ट 443 वापरणे. जर सत्र व्यत्यय आणत नसेल तर ते बंद करून पुन्हा सुरू करण्याचा सल्ला दिला जाईल. योग्य मूल्यांसह.

जर सर्व काही योग्य प्रकारे कार्य करत असेल तर आम्ही मूळ म्हणून कार्य करणे सुरू ठेवू शकतो आणि आपली इच्छा असल्यास, ओपनएसएच विस्थापित करा:

sudo su - योग्यता -r पुलिंग ओपनश-सर्व्हर

फायरवॉल

फायरवॉलमधील नोंदी वेगळ्या फाईलमध्ये विभक्त करणे ही आपण पुढील गोष्ट करू /var/log/firewall.log पुढील विश्लेषणाची सोय करण्यासाठी, म्हणूनच आम्ही स्टार्टअपवेळी ulogd पॅकेज स्थापित केले. त्यासाठी आपण फाईल एडिट करू /etc/logd.conf संबंधित विभाग समायोजित करण्यासाठी:

[LOGEMU] फाइल = "/ var / लॉग / फायरवॉल.लॉग" समक्रमण = 1

पुढे रेकॉर्ड रोटेशन फाईल मध्ये बदल करू / इ / लॉगरोटेट / यूलॉग्ड दररोज फिरविणे (तारखेसह) ठेवणे आणि डिरेक्टरीमध्ये संकुचित सॉलोव्ह्ज जतन करणे / वार / लॉग / युलॉग /:

/var/log/ulog/*.log /var/log/firewall.log {दररोज डेटक्स्ट मिसिंगोक कॉम्प्रेस कॉन्प्रेस कॉम्प्रेस कॉम्प्रेस कॉम्प्रेस कॉम्प्रप्रेस स्क्रिप्ट्स 640 रूट postड पोस्टरोटेट /etc/init.d/ulogd रीलोड एमव्ही /var/log/firewall.log-* तयार करतात .gz / var / log / ulog / endcript}

त्यानंतर आम्ही खालील अंमलबजावणी करून नेटफिल्टर नियम तयार करु:

आयपीटी = $ (जे इप्टेबल्स) आयपॅक्स्ट = 250.250.250.155 आयपॅस्टबीएलके = 250.250.0.0 / 16 आयपीबीएएसटी = 255.255.255.255 $ आयपीटी-एफ $ आयपीटी-एक्स $ आयपीटी-झेड $ आयपीटी -ए इनपुट -i लो -जे एसीसीपीटी $ आयपीटी पी इनपुट ड्रॉप $ आयपीटी-पी फॉरवर्ड ड्रॉप $ आयपीटी-पी आऊटपुट एसीपीटी A आयपीटी -ए इनपुट-एम स्टेट - स्टेट इनव्हॅलीड -जे यूलॉग --ulog-उपसर्ग IN.gVALID $ IPT -A INPUT -p igmp -j ULOG --ulog -प्रेफिक्स IN_IGMP $ IPT -A INPUT -m pkত্তিpe --pkt- प्रसारण -j ULOG --ulog-उपसर्ग IN_BCAST $ IPT -A INPUT -m pkttype --pkt- प्रकार मल्टीकास्ट -j ULOG --ulog-prefix IN_MCAST आयपीटी -ए फॉरवर्ड -j उलॉग --ulog-उपसर्ग फॉरवर्ड $ IPT -N आयसीएमपीएनपी $ IPT -A इनपुट!  -i लो-पी आयसीएमपी -j आयसीएमपीएनपी $ आयपीटी -ए आयसीएमपीएनपी -पी आयसीएमपी-एफ -j यूओएलओजी --ulog-उपसर्ग IN_ICMP_FRAGMENTED $ आयपीटी -ए आयसीएमएमपीपी -पी आयसीएमपी -एम आयसीएमपी -एम लांबी!  - लांबी 28: 1322 -j ULOG --ulog-prefix IN_ICMP_INVALIDSIZE $ IPT -A ICMP_IN -p icmp -m icmp -m hashlimit --hashlimit-वरील 4 / सेकंद --hashlimit- मोड srcip --hashlimit-srcmask 24 - -Hshlimit-name icmpflood -j ULOG --ulog-prefix IN_ICMP_FLOOD $ IPT -A ICMP) -p icmp -m icmp -m hashlimit --hashlimit-up up 64kb / min --hashlimit- मोड srcip --hashlimit-srcmask 24 - हॅशलीमेट-आयमॅम्पॅटॅक -j ULOG --ulog-प्रत्यय IN_ICMP_FLOOD $ आयपीटी -ए आयसीएमपीएनपी -p आयसीएमपी -एम आयसीएमपी-एम u32!  --u32 "0x4 & 0x3fff = 0x0" -j ULOG --ulog-प्रत्यय IN_ICMP_ATTACK $ IPT -A आयसीएमपीएनपी -p आयसीएमपी -एम आयसीएमपी!  --icmp-प्रकार प्रतिध्वनि-विनंती -म राज्य - नवीन -j ULOG --ulog-प्रत्यय IN_ICMP.gVALID $ IPT -A ICMP_IN -p आयसीएमपी -एम आयसीएमपी --icmp- प्रकार प्रति-विनंती -j ULOG --ulog- उपसर्ग IN_ICMP $ आयपीटी-ए आयसीएमपीएनपी-पी आयसीएमपी -एम आयसीएमपी - आयसीपी-प्रकार प्रतिध्वनी-विनंती -एम मर्यादा - 1 ली / सेकंद - ललित-स्फोट 4 -जे एसीईपीटी-आयपीटी-ए आयसीएमपीएनपी-पी आयसीएमपी -एम आयसीएमपी --icmp-type प्रतिध्वनी-उत्तर -म मर्यादा - 2 ली / सेकंद - रिमिट-ब्रेस्ट 4 -j एसीसीपीटी $ आयपीटी -ए आयसीएमपीएनपी-पी आयसीएमपी-एम आयसीएमपी - आयसीपी-प्रकार गंतव्य-आवाक्याबाहेर -m मर्यादा - मर्यादा 2 / सेकंद --लिमिट-ब्रेस्ट 4 -जे एसीसीपीटी $ आयपीटी -ए आयसीएमपीएनपी -पी आयसीएमपी -एम आयसीएमपी - आयसीपी-प्रकार वेळ-ओलांड-मीटर मर्यादा - ललित 2 / सेकंद - ललित-ब्रेस्ट 4 -जे एसीसीपीटी $ आयपीटी -ए आयसीएमपीएनपी -पी आयसीएमपी -एम आयसीएमपी - आयसीएमपी-प्रकार पॅरामीटर-समस्या -एम मर्यादा - ललित 2 / सेकंद - ललित-स्फोट 4 -जे एसीसीपीटी $ आयपीटी-ए आयसीएमपीपीओ -जे परत करा $ आयपीटी-एन यूडीपीओपी $ आयपीटी -ए इनपुट!  -i लो-पी udp -j यूडीपीओ $ आयपीटी -ए यूडीपीपीओ!  -i लो!  -p udp -f -j ULOG --ulog-prefix IN_UDP_FRAGMENTED $ IPT -A UDP.g -p udp -m udp --sport 53 -m लांबी!  - लांबी 28: 576 -j ULOG --ulog-प्रत्यय IN_UDP_DNS_INVALIDSIZE $ IPT -A UDP_IN -p udp -m udp --dport 53 -m -state --state NEW -j ULOG --ulog-प्रत्यय IN_UDP_DNSREQUEST $ IPT - एक यूडीपीएनपी-पी यूडीपी-एम यूडीपी --dport -m-मी-स्टेट - स्टॅट नवीन -j नकार - आयरेक्ट-आयसीएमपी-पोर्ट-आवाक्याबाह्य-आयपीटी-ए यूडीपीपी -पी यूडीपी-एम यूडीपी!  --sport 53!  -s $ IPEXTBLK!  -d $ IPBCAST -m state --state NEW -j ULOG --ulog-prefix IN_UDP $ IPT -A UDPDP -p udp -m udp -m state --state ESTABLISHED, रिलेटेड -j ACCEPT $ IPT -A UDP) -j परतावा $ आयपीटी-एन टीसीपीएनपी $ आयपीटी -ए इनपुट!  -i लो-पी टीसीपी -j टीसीपीएनपी $ आयपीटी -ए टीसीपीपीओ!  -i लो!  -p tcp -f -j ULOG --ulog-prefix IN_TCP_FRAGMENTED $ IPT -A TCP) -p tcp -m tcp --sport 53 -m state --state ESTABLISHED, संबंधित-मीटर लांबी!  - लांबी 513: 1500 -j ULOG --ulog-प्रत्यय IN_TCP_DNS_INVALIDSIZE $ IPT -A TCP_IN -p tcp -m tcp --dport 53 -m state --state NEW -j ULOG --ulog-उपसर्ग IN_TCP_DNS $ IPT -A टीसीपीएनपी-पी टीसीपी-एम टीसीपी --dport 53-मी राज्य - नवीन -j नकार - आयरेक्ट-आयसीएमपी-पोर्ट-आवाक्याबाह्य-आयपीटी-ए टीसीपीएनपी -पी टीसीपी -एम टीसीपी -एम मल्टीपोर्ट!  --dport 80,443 -m state --state NEW -j ULOG --ulog-prefix IN_TCP $ IPT -A TCP_IN -p tcp -m tcp -m multiport --dport 80,443 -m state --state NEW -m hashlimit - / / सेकंद पर्यंत हॅशलिम-अप - हॅशलीमेट-ब्रेस्ट 4 - हॅशलिमिट-मोड एसआरसीपी - हॅशलीमेट-नाव नवरेक -j एसीसीपीटी $ आयपीटी -ए टीसीपीएनपी -पी टीसीपी-एम टीसीपी -एम मल्टीपोर्ट --डिपोर्ट्स ,०,16 -80,443-मीटर राज्य - राज्य स्थापित - मी अंतर्भूत!  --connlimit-वरील 16 -j ACCEPT $ IPT -A TCP_IN -p tcp -m tcp -m multiport! 

मागील कॉन्फिगरेशनसह, आमचे व्हीपीएस वाजवी प्रमाणात सुरक्षित केले जावे, परंतु जर आपली इच्छा असेल तर आम्ही त्यास थोडे अधिक सुरक्षित करू, ज्यासाठी आम्ही आणखी काही प्रगत नियम वापरू शकतो.

सर्व व्हीपीएस नेटफिल्टरसाठी अतिरिक्त मॉड्यूल्स बसविण्यास परवानगी देत ​​नाहीत, परंतु एक अतिशय उपयुक्त आहे psd, जे आपल्याला पोर्ट स्कॅन टाळण्यास अनुमती देते. दुर्दैवाने, हे मॉड्यूल डीफॉल्टनुसार नेटफिल्टरमध्ये एकत्रित केलेले नाही, म्हणून काही पॅकेजेस स्थापित करणे आणि नंतर मॉड्यूल तयार करणे आवश्यक आहे:

योग्यता -RvW स्थापित iptables-dev xtables-addons- स्रोत मॉड्यूल-सहाय्यक मॉड्यूल-सहाय्यक --verbose --टेक्स्ट-मोड ऑटो स्थापित

एकदा वरील गोष्टी पूर्ण झाल्यावर आम्ही याप्रमाणे नियम जोडू शकतो:

आयपटेबल्स -ए इनपुट-एमएसडी - पीएसडी-वेट-थ्रेशोल्ड 15 --पीएसडी-विलंब-उंबरा 2000 --पीएसडी-लो-पोर्ट-वजन 3 - पीएसडी-हाय-पोर्ट-वजन 1-जे यूएलओजी --ulog- उपसर्ग IN_PORTSCAN

वरील नियम मुळात याचा अर्थ असा आहे की आम्ही प्रत्येक वेळी 3 पेक्षा कमी बंदरावर प्रवेश करण्याचा प्रयत्न केला असता प्रत्येक वेळी 1024 ने वाढीव वाढीव काउंटर तयार केला जाईल आणि प्रत्येक वेळी 1 पेक्षा जास्त बंदरावर प्रवेश करण्याचा प्रयत्न केला जाईल आणि जेव्हा हा काउंटर 1023 मध्ये पोहोचला असेल २० सेकंदांपेक्षा कमी कालावधीत, पॅकेजेसद्वारे नोंदणी केली जाईल ulog पोर्टस्केन येथे प्रयत्न म्हणून. पॅकेट्स एकाच वेळी टाकून दिली जाऊ शकतात परंतु या प्रकरणात आम्ही वापरण्याचा विचार केला आहे असफल 2ban, जे आपण नंतर कॉन्फिगर करू.

एकदा नियम तयार झाल्यानंतर आम्ही त्यांना नियमित करण्यासाठी काही सावधगिरी बाळगणे आवश्यक आहे, अन्यथा सर्व्हर रीस्टार्ट झाल्यावर आम्ही त्या गमावू. हे साध्य करण्याचे बरेच मार्ग आहेत; या ट्यूटोरियल मध्ये आम्ही सुरुवातीला स्थापित केलेले इप्टेबल्स-पर्सिस्टंट पॅकेज वापरू, जे येथे नियम संग्रहित करते /etc/iptables/rules.v4 y /etc/iptables/rules.v6 आयपीव्ही 6 साठी.

iptables-save> /etc/iptables/rules.v4

खरं तर, क्युबामध्ये आयपीव्ही 6 चा वापर अद्याप व्यापक नसला तरीही आम्ही काही मूलभूत नियम तयार करू शकू.

आयपीटी = $ (जे आयपी t टॅबल्स) $ आयपीटी-पी इनपुट ड्रॉप $ आयपीटी-पी फॉरवर्ड ड्रॉप $ आयपीटी-पी आउटपुट प्रवेश $ आयपीटी-ए इनपुट-आय लो -j प्रवेश करा $ आयपीटी -ए इनपुट! -i लो-मी स्टेट - स्टेट एस्टेब्लिशेड, संबंधित -जे एसीसीपीटी अनसेट न केलेले आयपीटी

हे नियम देखील सक्तीचे केले जाऊ शकतात:

ip6tables-save> /etc/iptables/rules.v6

शेवटी, अधिक सुरक्षिततेसाठी आम्ही फायरवॉलची नोंदणी साफ करतो आणि सेवा पुन्हा सुरू करतो:

इको-एन> /var/log/firewall.log सर्व्हिस लॉगरोटेट रीस्टार्ट सर्व्हिस ulogd रीस्टार्ट सर्व्हिस iptables- पर्सिस्टंट रीस्टार्ट

Nginx

आम्ही वेब सर्व्हर म्हणून एनजीन्क्स वापरू, कारण व्हीपीएसमध्ये वास्तविक सर्व्हरच्या तुलनेत कमी प्रमाणात रॅम असते, त्यामुळे अपाचेपेक्षा हलके काहीतरी मिळणे सामान्यतः सोयीचे असते.

एनजीन्क्स कॉन्फिगर करण्यापूर्वी, आम्ही एचटीटीपीएस वर वापरण्यासाठी एक प्रमाणपत्र (संकेतशब्द नाही) तयार करू:

सीडी / इत्यादी / एनजीन्क्स ओपनस्ल जनरसा -डिसे 3 -आउट सर्टीट.की 4096 सीपी -व्ही सीआरटी.की प्रमाणपत्र.की.ओरिजिनल ओपनस्ल रेक्यू -न्यू -की सर्टी.की -आउट सर्टी.सीएसआर ओपनएसएल आरएसए -इन प्रमाणपत्र.की.ओरिजिनल - प्रमाणपत्र, की ओपनस्ल x509 -रेक-डेड्स 365 -इन प्रमाणपत्र-सीएसआर -सिग्की प्रमाणपत्र

एकदा हे पूर्ण झाल्यावर, आम्ही "एल्यूझारियो" वापरकर्त्यासाठी संकेतशब्द फाइल तयार करू:

htpasswd -c .htpasswd वापरकर्त्यास

पुढे आपण फाईलमध्ये बदल करू / etc / nginx / साइट-उपलब्ध / डिफॉल्ट डीफॉल्ट साइट प्राधान्ये सेट करण्यासाठी. हे यासारखे दिसू शकते:

सर्व्हर {सर्व्हर_नाव लोकलहोस्ट; अनुक्रमणिका अनुक्रमणिका. html अनुक्रमणिका. htm default.html default.htm; रूट / वार / www; स्थान / {# सत्यापन आणि पृष्ठ लोड करण्यासाठी क्रम सेट करा, जर यूआरआय आढळला नाही तर प्रयत्न_फाइल $ uri $ uri / /index.html; }} सर्व्हर {ऐका 127.0.0.1:443; सर्व्हर_नाव लोकलहोस्ट; अनुक्रमणिका अनुक्रमणिका. html अनुक्रमणिका. htm default.html default.htm; रूट / वार / www; एसएसएल चालू; ssl_certificate cert.crt; ssl_certificate_key cert.key; ssl_session_Toutout 5 मी; # केवळ टीएलएसवरच एचटीटीपीएस सक्षम करा (एसएसएलपेक्षा अधिक सुरक्षित) एसएसएल_प्रोटोकोल टीएलएसव्ही 1 टीएलएसव्ही 1.1 टीएलएसव्ही 1.2; # उच्च-सामर्थ्यास [HIGH] सायफरला प्राधान्य द्या, # मध्यम-सामर्थ्य [MEDIUM] सायफरला सूचीच्या शेवटी हलवा, # निम्न-सामर्थ्य अक्षम करा [LOW] सायफर (40 आणि 56 बिट) # अक्षम सिफरसह निर्यात अल्गोरिदम [EXP] # प्रमाणीकरण [अनुल], एसएसएल (आवृत्त्या 2 आणि 3) आणि डीएसएसशिवाय शून्य सिफर [ईएनयूएल] अक्षम करा, एसएसएल_सिफर उच्च: + मेडियम:! खालीः! एक्स्प: ! अनुभवी:! eNULL:! SSLv1024:! SSLv3:! डीएसएस; # सर्व्हरच्या कूटबद्धीकरण पद्धतींना प्राधान्य द्या (डीफॉल्टनुसार क्लायंट वापरल्या जातात) ssl_prefer_server_ciphers वर; स्थान / {# प्रमाणीकरण सक्षम करा "लॉग इन" auth_basic_user_file /etc/nginx/.htpasswd; # सत्यापन ऑर्डर आणि लोड करण्यासाठी पृष्ठ कोड सेट करा, जर यूआरआय प्रयत्न_फाइल load uri $ uri / = 2 आढळली नाहीत; # प्रमाणीकृत वापरकर्त्यांसाठी ऑटोइन्डेक्स चालू ठेवण्यासाठी अनुक्रमणिका तयार करण्याची परवानगी द्या; autoindex_exact_size बंद; autoindex_localtime चालू; }}

आम्ही कॉन्फिगरेशन योग्य असल्याचे तपासले आहे:

nginx -t

शेवटी, आम्ही सेवा पुन्हा सुरू करतो:

सेवा nginx रीस्टार्ट

Fail2Ban

Fail2Ban कॉन्फिगर करण्यापूर्वी, अधिक सुरक्षिततेसाठी आम्ही सेवा थांबवितो आणि रेजिस्ट्री साफ करतो:

अयशस्वी 2ban-क्लायंट स्टॉप प्रतिध्वनी </> /var/log/fail2ban.log

पुढे कॉन्फिगरेशन फाईल बनवू /etc/fail2ban/jail.local खालील सानुकूल सामग्रीसह:

# सानुकूल कॉन्फिगरेशन फाइल /etc/fail2ban/jail.local # [चूक] शोध वेळ = 43200; 12 तास बॅनटाइम = 86400; 1 दिवस मॅक्सरेट्री = 3; बंदी 4 व्या प्रयत्नांनंतर लागू होईल [एसएसएस] सक्षम = खोटी [एनजीन्क्स-ऑथ] सक्षम = सत्य फिल्टर = एनजिनएक्स-ऑथ क्रिया = iptables-multiport [नाव = NoAuthFailures, पोर्ट = "HTTP, https"] लॉगपाथ = / var / लॉग / एनजीन्क्स * / * त्रुटी * .लॉग [एनजिनएक्स-बॅडबॉट्स] सक्षम = सत्य फिल्टर = अपाचे-बॅडबॉट्स क्रिया = iptables-multiport [नाव = बॅडबॉट्स, पोर्ट = "HTTP, https"] लॉगपाथ = / var / लॉग / एनजीन्क्स * /*access*.log बॅनटाइम = 604800; 1 आठवड्याच्या मॅक्सरेट्री = 0 [एनजिनएक्स-लॉगिन] सक्षम = खरे फिल्टर = एनजिनएक्स-लॉगिन क्रिया = iptables-multiport [नाव = NoLoginFailures, पोर्ट = "http, https"] लॉगपाथ = / var / लॉग / nginx * / * प्रवेश *. लॉग बॅनटाइम = 1800; 30 मिनिटे [एनजीन्क्स-नॉस्क्रिप्ट] सक्षम = सत्य क्रिया = इप्टेबल्स-मल्टीपोर्ट [नाव = NoScript, पोर्ट = "HTTP, https"] फिल्टर = एनजिनएक्स-नॉस्क्रिप्ट लॉगपाथ = /var/log/nginx*/*access*.log मॅक्सरेट्री = 0 [एनजीन्क्स-प्रॉक्सी] सक्षम = सत्य क्रिया = इप्टेबल्स-मल्टीपोर्ट [नाव = नोप्रॉक्सी, पोर्ट = "HTTP, https"] फिल्टर = एनजिनएक्स-प्रॉक्सी लॉगपथ = /var/log/nginx*/*access*.log बॅनटाइम = 604800 ; 1 आठवड्यातील मॅक्सरेट्री = 0 [फायरवॉल] सक्षम = सत्य क्रिया = इप्टेबल्स-मल्टीपोर्ट [नाव = फायरवॉल] फिल्टर = फायरवॉल लॉगपथ = /var/log/firewall.log मॅक्सरेट्री = 0

एकदा हे पूर्ण झाल्यावर आपण डिरेक्टरीमध्ये तयार करू /etc/fail2ban/filters.d/ खालील फायली:

# /etc/fail2ban/filter.d/nginx-auth.conf # ऑथ फिल्टर # मूलभूत प्रमाणीकरण वापरून प्रमाणीकरण करण्यात अयशस्वी झालेले आयपी # [व्याख्या] अयशस्वी = मूलभूत प्रमाणीकरणासाठी वापरकर्ता / संकेतशब्द प्रदान केलेला नाही. * ग्राहक: वापरकर्ता. * आढळला नाही. * ग्राहक: वापरकर्ता. * संकेतशब्द जुळत नाही. * ग्राहक: दुर्लक्ष करणे =
# /etc/fail2ban/filter.d/nginx-login.co ] अयशस्वी = ^ -. * पोस्ट / सत्रे HTTP / 200 \ .. "1 दुर्लक्षरहित =
# /etc/fail2ban/filter.d/nginx-noscript.conf # Noscript फिल्टर # .php, .pl, .exe आणि इतर मजेदार स्क्रिप्ट्स सारख्या स्क्रिप्ट्स कार्यान्वित करण्याचा प्रयत्न करणारे आयपी अवरोधित करा. # जुळण्या उदा. # 192.168.1.1 - "GET /something.php # [व्याख्या] ফেলरेजेक्स = ^ -. * मिळवा. * (Ph. पीएचपी | \. एएसपी | ex. एक्से | p .पीएल | \ .सीजी | gi स्की) दुर्लक्ष करणे =
# /etc/fail2ban/filter.d/proxy.conf # प्रॉक्सी फिल्टर # प्रॉक्सी म्हणून सर्व्हर वापरण्याचा प्रयत्न करणारे आयपी अवरोधित करा. # सामने उदा. # 192.168.1.1 - - "मिळवा http://www.something.com/ # [व्याख्या] फेलरेजेक्स = ^ -. * Http मिळवा. * Ignoreregex =
# /etc/fail2ban/filter.d/firewall.conf # फायरवॉल फिल्टर # [परिभाषा] फेलरेजेक्स = ^. * IN_ (INVALID | पोर्टस्कॅन | यूडीपी | टीसीपी |). * एसआरसी = . * $ दुर्लक्ष करणे =

शेवटी, आम्ही सेवा सुरू करतो आणि कॉन्फिगरेशन लोड करतो:

अयशस्वी 2-क्लायंट रीलोड

पडताळणी

शेवटची पायरी म्हणून आम्ही यासह नोंदी पाहू शकतो शेपूट -f o मल्टीटाईल -फलो-ऑल. खरं तर, नंतरचा अ‍ॅप्लिकेशन आपल्याला एक संधी देते की तो आपल्याला एकाच वेळी एकाधिक फायली पाहण्याची परवानगी देतो आणि मूलभूत वाक्यरचना हायलाइटिंग प्रदान करतो.

व्हीपीएसमध्ये एखादे ईमेल खाते कॉन्फिगर केले नसल्यास, मल्टीटाईल प्रारंभ करताना दिसून येणारा चेतावणी संदेश अक्षम करण्याचा सल्ला देण्यात आला आहे, ज्यासाठी आम्ही पुढील आज्ञा अंमलात आणू:

एको "चेक_मेल: 0"> ~ / .multitailrc

शॉर्टकटसह नोंदी द्रुतपणे पाहण्यासाठी आम्ही उर्फ ​​(alias) चांगले बनवू शकतो, उदाहरणार्थ, "फ्लोग":

उर्फ फ्लोग = 'मल्टीटेल - फोलो-ऑल /var/log/firewall.log /var/log/fail2ban.log'

१) ही काल्पनिक मूल्ये आहेत.
२) एकदा सेवा कशा चालते हे आपल्याला समजल्यानंतर इतर सेवा सक्षम करणे सोपे आहे.
Details) अधिक माहितीसाठी मॅन सूडर चालवा.
)) वैकल्पिकरित्या ~ / .bash_aliases फाईलमध्ये जोडले जाऊ शकते


आपली टिप्पणी द्या

आपला ई-मेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित केले आहेत *

*

*

  1. डेटा जबाबदार: मिगुएल Áन्गल गॅटन
  2. डेटाचा उद्देशः नियंत्रण स्पॅम, टिप्पणी व्यवस्थापन.
  3. कायदे: आपली संमती
  4. डेटा संप्रेषण: कायदेशीर बंधन वगळता डेटा तृतीय पक्षास कळविला जाणार नाही.
  5. डेटा संग्रहण: ओकेन्टस नेटवर्क (EU) द्वारा होस्ट केलेला डेटाबेस
  6. अधिकारः कोणत्याही वेळी आपण आपली माहिती मर्यादित, पुनर्प्राप्त आणि हटवू शकता.

  1.   msx म्हणाले

    अशा काही मनोरंजक गोष्टी आहेत, +1

  2.   युकिटरू म्हणाले

    @ कॉन्फिगरेशनमध्ये ही लाइन ह्युगो करा:

    ssl_protocols SSLv3 TLSv1;

    मी त्यातून एसएसएलव्ही 3 घेईन कारण ते प्रोटोकॉल यापुढे सुरक्षित नाही, अगदी डेबियन जेसीमध्येही, त्या कारणास्तव तो प्रोटोकॉल वापरणे टाळण्यासाठी बर्‍याच सेवा कॉन्फिगर केल्या आहेत.

    विषयावरील माहिती येथेः

    https://www.linode.com/docs/security/security-patches/disabling-sslv3-for-poodle
    http://disablessl3.com/

    1.    ह्युगो म्हणाले

      एचटीटीपीएसवर मुख्य सेवा ऑफर करण्याची कल्पना खरोखर नव्हती, परंतु आवश्यक असल्यास एचटीटीपीएससाठी वापरण्याची शक्यता गमावल्याशिवाय एसएसएचसाठी पोर्ट 443 कसे वापरावे हे सांगण्यासाठी, परंतु चेतावणीबद्दल धन्यवाद.

      तरीही मी एनजीन्क्स कॉन्फिगरेशनमध्ये थोडेसे बदल करण्यासाठी लेख अद्यतनित केला आहे आणि एन्क्रिप्शन यंत्रणेसह या गोष्टींबद्दल अधिक स्पष्टीकरण देण्यासाठी आणि काही किरकोळ चुका दुरुस्त करण्यासाठी काही टिप्पण्या समाविष्ट केल्या आहेत.

  3.   डॅनियल पीझेड म्हणाले

    Muchas gracias por este estupendo tutorial, ahora lo pondré en practica! :D, Sigan así DesdeLinux, siempre me sorprenden, Saludos desde Perú.

  4.   Ekनडेकुएरा म्हणाले

    सामायिक केल्याबद्दल मनापासून धन्यवाद

  5.   फर्नांडो म्हणाले

    खूप चांगला मार्गदर्शक आणि मोत्यातून आता आला आहे की मी या ब्लॉगिंगपासून सुरुवात केली आहे परंतु आतापर्यंत मी माझे पहिले व्हीपीएस माउंट करणार आहे आणि बर्‍याच समस्यांसह पण या लेखाने मला अनेक शंका, आभार आणि शुभेच्छा यातून दूर केले आहे.