से दोस्तों से नमस्कार DesdeLinux, lo prometido es deuda y aquí va un post de कैसे लिनक्स सिस्टम की सुरक्षा को अधिकतम करने के लिए और इस तरह से रहो सुरक्षित है घुसपैठियों से और साथ ही अपने सर्वर, पीसी या लैपटॉप की जानकारी की रक्षा करने के लिए !!!!
शुरू करने
Fail2ban: एक प्रणाली में घुसपैठ को रोकने के लिए पायथन में लिखा गया एक आवेदन है, जो क्रूर कनेक्शन तक पहुँचने का प्रयास करने वाले दूरस्थ कनेक्शनों को दंडित या अवरुद्ध करके कार्य करता है।
स्थापना:
फेडोरा, RHEL, CentOS:
yum install fail2ban
डेबियन, उबंटू:
apt-get install fail2ban
स्थापना:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local नैनो /etc/fail2ban/jail.local
[DEFAULT] नामक भाग में हम #bantime = 3600 को इस तरह से छोड़ते और संशोधित करते हैं:
# बंटाईम = 3600 बंटाइम = 604800
[Sshd] भाग में हम इस तरह से इसे छोड़ने में सक्षम = सही परिचय देते हैं:
# सक्षम = सत्य सक्षम = सत्य
हम CTRL + O के साथ सेव करते हैं और CTRL + X के साथ बंद होते हैं
हम सेवा शुरू करते हैं:
फेडोरा, RHEL, CentOS:
systemctl enable2.service को प्रारंभ करने में सक्षम करता है
डेबियन, उबंटू:
सेवा विफल 2 बटन प्रारंभ
Ssh का उपयोग करते हुए अस्वीकृत रूट एक्सेस:
अपनी मशीन की सुरक्षा के लिए हम मूल उपयोगकर्ता के माध्यम से ssh को अस्वीकार करने जा रहे हैं। ऐसा करने के लिए, हम / etc / ssh / sshd_config फ़ाइल को निम्नानुसार संपादित करते हैं:
cp sshd_config sshd_config.bck नैनो / etc / ssh / sshd_config
हम असहजता और बदलते हैं
#Protocol 2 प्रोटोकॉल 2
हम असहजता और बदलते हैं
#PermitRootLogin हाँ PermitRootLogin no
हम CTRL + O के साथ सेव करते हैं और CTRL + X के साथ बंद होते हैं
हम सेवा शुरू करते हैं:
फेडोरा, RHEL, CentOS:
systemctl सक्षम sshd.service systemctl प्रारंभ sshd.service
डेबियन, उबंटू:
सेवा sshd प्रारंभ
पासवर्ड का उपयोग करके ssh सर्वर तक पहुँच से इनकार करें और केवल RSA कुंजियों के साथ ssh की अनुमति दें
अगर हम PC1 को Server1 से जोड़ना चाहते हैं, तो सबसे पहली बात यह है कि PC1 पर हमारी कुंजी तैयार की जाए। हमारे उपयोगकर्ता के साथ और PC1 पर रूट के बिना हम निष्पादित करते हैं:
ssh-keygen -t rsa -b 8192 (यह 1024 से 2048 तक की चाबियाँ आमतौर पर उपयोग की जाने वाली सुरक्षित कुंजी से अधिक उत्पन्न करता है)
एक बार जब हमारे पास हमारा पासवर्ड होता है, तो हम इसे सर्वर 1 पर अपलोड करते हैं:
ssh-copy-id user @ server_ip
एक बार यह हो जाने के बाद, हम अपने Server1 से जुड़ने जा रहे हैं और नैनो / etc / ssh / sshd_config फ़ाइल को रूट अनुमतियों के साथ संशोधित कर रहे हैं:
ssh उपयोगकर्ता @ Server1 नैनो / आदि / ssh / sshd_config
हम उस पंक्ति को बदलते हैं जो #PasswordAuthentication को हां कहती है:
#PasswordAuthentication हाँ
PasswordAuthentication सं
हम CTRL + O के साथ सेव करते हैं और CTRL + X के साथ बंद होते हैं
हम ssh सेवा को पुनः आरंभ करते हैं:
फेडोरा, RHEL, CentOS:
systemctl पुनरारंभ sshd.service
डेबियन, उबंटू:
सेवा sshd पुनरारंभ
बदल ssh सुन बंदरगाह
फिर से हम / etc / ssh / sshd_config को संपादित करते हैं और जिस हिस्से में हम इसे छोड़ते हैं, उस पोर्ट के संदर्भ में:
# पोर्ट 22 पोर्ट 2000 (या 2000 से अधिक कोई अन्य संख्या। हमारे उदाहरणों में हम इसका उपयोग करेंगे।)
हम CTRL + O के साथ सेव करते हैं और CTRL + X के साथ बंद होते हैं
हम ssh सेवा को पुनः आरंभ करते हैं:
फेडोरा, RHEL, CentOS:
systemctl पुनरारंभ sshd.service
डेबियन, उबंटू:
सेवा sshd पुनरारंभ
यदि वे fail2ban का उपयोग करते हैं, तो पोर्ट को समायोजित करने वाले sshd के बारे में कॉन्फ़िगरेशन को बदलना आवश्यक है।
nano /etc/fail2ban/jail.local [sshd] port = ssh, 2000 [sshd-ddos] port = ssh, 2000 [dropbear] port = ssh, 2000 [selinux-ssh] port = ssh, 2000
हम CTRL + O के साथ सेव करते हैं और CTRL + X के साथ बंद होते हैं
हम सेवा को नवीनीकृत करते हैं:
फेडोरा, RHEL, CentOS:
systemctl पुनरारंभ करें विफल 2ban.service
डेबियन, उबंटू:
सेवा विफल 2ban पुनः आरंभ
फ़ायरवॉल
फेडोरा, RHEL, CentOS:
सेलिनक्स और Iptables इन प्रणालियों पर डिफ़ॉल्ट रूप से सक्रिय होते हैं और मेरी सलाह है कि आप इस तरह से जारी रखें। Iptables के साथ एक पोर्ट कैसे खोलें? आइए देखें कि हम पहले बदले गए ssh पोर्ट के नए पोर्ट 2000 को कैसे खोलें:
खुला हुआ:
नैनो / आदि / sysconfig / iptables
और हम डिफ़ॉल्ट ssh पोर्ट 22 का संदर्भ देते हुए लाइन को संशोधित करते हैं और इसे इस तरह छोड़ते हैं:
# -एक INPUT -m राज्य
हम CTRL + O के साथ सेव करते हैं और CTRL + X के साथ बंद होते हैं
हम सेवा को फिर से शुरू करते हैं:
systemctl iptables को पुनरारंभ करें
डेबियन, उबंटू:
डेबियन या उबंटू और डेरिवेटिव में हमारे पास एक यूएफडब्ल्यू फ़ायरवॉल है जो हमारे जीवन को आसान बना देगा क्योंकि यह नेटफिल्टर को बहुत आसान बनाता है।
स्थापना:
apt-get install ufw ufw enable
हमारे द्वारा निष्पादित किए जाने वाले खुले बंदरगाहों की स्थिति देखने के लिए:
ufw स्थिति
एक पोर्ट खोलने के लिए (हमारे उदाहरण में यह नया ssh पोर्ट 2000 होगा):
ufw 2000 की अनुमति दें
किसी पोर्ट को अस्वीकार करने के लिए (हमारे मामले में यह ssh का डिफ़ॉल्ट पोर्ट 22 होगा):
ufw deny 22 ufw deny 22 हटाएं
और तैयार दोस्तों। इस तरह वे आपकी मशीनों को सुरक्षित रखेंगे। टिप्पणी करना न भूलें और अगली बार तक: डी।
और एक एन्क्रिप्शन प्रणाली जैसे: https://www.dyne.org/software/tomb/
और यदि उपयोगकर्ता tty के माध्यम से जुड़ते हैं तो उन्हें उनके घर में ही बंद कर दें:
http://olivier.sessink.nl/jailkit/index.html#intro
https://operativoslinux.wordpress.com/2015/02/21/enjaular-usuarios-en-linux/ (आसान तरीका)
संपूर्ण फ़ाइल सिस्टम को एन्क्रिप्ट करना कहीं अधिक बेहतर और सुरक्षित है।
लिनक्स में सुरक्षा के संबंध में अगले ट्यूटोरियल के लिए मैं इसे ध्यान में रखूंगा :D.
Sysctl के माध्यम से कर्नेल को सख्त करने के बारे में बात करना भी अच्छा होगा, गुठली में यादृच्छिक हीप और Exec- शील्ड को सक्रिय करना, जो इसका समर्थन करता है, dmesg और / proc फाइल सिस्टम तक पहुंच को सक्षम करता है, एक ऑडिट नीमन चला रहा है, टीसीपी सुरक्षा SYN को प्रतिबंधित करता है / देव / मेम तक पहुंच, टीसीपी / आईपी स्टैक विकल्पों को अक्षम करें जो खतरनाक हो सकते हैं या सिस्टम को असुरक्षित कर सकते हैं (रीडायरेक्ट, इको, सोर्स रूटिंग), उपयोगकर्ताओं के लिए मजबूत पासवर्ड उत्पन्न करने के लिए pam_cracklib का उपयोग करें, टॉमोयो, AppArmor के लिए मैक सिस्टम के उपयोग का महत्व और SELinux।
बहुत उपयोगी!!!! बस वही जो मैं ढूंढ रहा था धन्यवाद 🙂
तुम्हारा स्वागत है दोस्त :)।
यदि अपाचे का उपयोग किया जाता है, तो बॉट्स से बचने के लिए mod_rewrite के साथ नियम जोड़ने में कोई हर्ज नहीं है। बहुत उपयोगी
http://perishablepress.com/eight-ways-to-blacklist-with-apaches-mod_rewrite/
और nginx के लिए क्या कोई ट्रिक या कॉन्फ़िगरेशन है?
डेबियन 8 में / etc / ssh / sshd_config फ़ाइल में पहले से ही प्रोटोकॉल 2 सक्रिय है और PermitRootLogin फ़ंक्शन बिना पासवर्ड के विकल्प के साथ है (आप केवल प्रमाणीकरण कुंजी और निजी कुंजी वाले कंप्यूटर से रूट दर्ज कर सकते हैं)
डेबियन 8 फ़ायरवॉल में पीएस आ गया है जो यूएफडब्ल्यू को छोटा कर देता है
क्या आपने फ़र्म देखा है? मुझे यह पसंद है कि नियमों को कैसे परिभाषित किया जाता है।
http://ferm.foo-projects.org/download/examples/webserver.ferm
खैर, मुझे खुशी है कि डेबियन 8 फ़ायरवॉल का उपयोग करता है क्योंकि यह बहुत, बहुत, बहुत अच्छा है...
Fail2ban से सावधान रहें, एक हमलावर स्थानीय पीसी के आईपी के साथ पैकेट बनाता है और DOS को बहुत आसान बनाता है।
यार, स्थानीय पीसी आईपी और लूपबैक को Fail2ban सूची से बाहर रखा गया है।
अन्यथा, हमारे पास गलत सकारात्मक परिणाम हो सकते हैं।
सर्वर वातावरण में अच्छी और बहुत प्रभावी सिफारिशें ... यदि हम एक वेबसाइट की मेजबानी कर रहे हैं, तो इसमें अतिरिक्त कदम शामिल हैं ...। वर्तमान में हम JackTheStripper नामक एक परियोजना को बनाए रखते हैं, जो एक bash Script से अधिक कुछ नहीं है जो वेब अनुप्रयोगों के लिए GNU / Linux के साथ एक सर्वर को तैयार करता है और उसका सबसे अच्छा सुरक्षा अभ्यास करता है ... आप इस परियोजना को जान सकते हैं http://www.jsitech.com/jackthestripper ....
अच्छी स्क्रिप्ट है, हालाँकि मैं कर्नेल.रैंडमाइज़_वा_स्पेस = 2 का मान रखना चाहता हूँ
अच्छी बात यह है कि इसे चलाने से पहले आप इसमें अपनी ज़रूरत के हिसाब से थोड़ा बदलाव कर सकते हैं... नमस्कार...
नमस्कार, निश्चित रूप से मेरी पोस्ट एक बीमाकृत आधार के साथ काम करती है और प्रत्येक को अपने सिस्टम में LAMP या FTP, SFTP, BIND और एक लंबी वगैरह:) जैसी सेवाओं के आधार पर खुद को कम या ज्यादा सुरक्षित रखना चाहिए ...
सुरक्षा पर अगली पोस्ट में मैं इन मुद्दों पर बात करूंगा।
सकारात्मक राय के लिए धन्यवाद :).
@petercheco, आपके मार्गदर्शक उत्कृष्ट हैं, यह FreeeBSD सिस्टम के लिए एक एन्क्रिप्शन गाइड अच्छा होगा, मुझे नहीं पता कि आप कब FreeBSD के बारे में दूसरा भाग करने जा रहे हैं, डेस्कटॉप के कॉन्फ़िगरेशन और अनुकूलन के बारे में, फ़ायरवॉल के बारे में, बनाने और बनाने के बारे में वायरलेस नेटवर्क कॉन्फ़िगर करना।
नमस्ते दोस्त,
मैं थोड़ा व्यस्त हूं जैसा कि कम रिलीज से पता चलता है, लेकिन मैं फ्रीबीएसडी के लिए अगली पोस्ट के लिए इसे ध्यान में रखूंगा।
अभिनंदन :)।
टिप्पणियाँ कितनी स्तरीय हैं, मुझे नहीं पता कि आप किस बारे में बात कर रहे हैं, कोई भी xD नहीं
बढ़िया लेख!
इस सुरक्षा कार्रवाई में कंप्यूटर को किसी तरह से सीमित करना शामिल है ??
नहीं... सिस्टम का सामान्य उपयोग किसी भी तरह से सीमित नहीं है।
और मजेदार (दुखद) बात यह है कि, जैसा कि हमने अभी लेनोवो मशीनों के साथ देखा था, अगर बायोस फर्मवेयर में मैलवेयर के साथ छेड़छाड़ की जाती है, तो आप कुछ भी नहीं करते हैं।
जब तक आप निर्माता द्वारा पूर्व-स्थापित विंडोज़ का उपयोग करते हैं...
त्रुटि: याद रखें कि उन्होंने इसे बायोस फर्मवेयर में स्थापित किया है, अर्थात्, यह सिस्टम को प्रत्येक पुनरारंभ पर शुरू करता है, ऑपरेटिंग सिस्टम से पहले, राक्षसों से पहले, सबसे पहले, और यह आपको इसके खिलाफ कुछ भी नहीं करने देता है। किया जा सकता है, यही कारण है कि uefi विचार सिद्धांत में अच्छा है।
दिलचस्प लेख, मैं आज दोपहर इसे और अधिक ध्यान से पढ़ूंगा। धन्यवाद।
आपका स्वागत है :)। मुझे खुशी है।
उत्कृष्ट लेख, मैंने इसे पढ़कर पूरी दोपहर अपना मनोरंजन किया। मैं हर बात को बहुत ध्यान से समझाने में आपके द्वारा दिए गए समय की सराहना करता हूँ,
चिली की ओर से शुभकामनाएँ
कार्लोस
हैलो कार्लोस,
बहुत बहुत धन्यवाद :)।
लेनोवो मशीनों, अगर बायोस फर्मवेयर मालवेयर के साथ हस्तक्षेप करने लगता है, तो मशीन (लैपटॉप पीसी-डेस्कटॉप कंप्यूटर) हमेशा निर्माता द्वारा विंडोज के साथ स्थापित होता है, उपरोक्त के मद्देनजर ... पोस्ट करता है।
यह सब किए बिना भी यह काम करता है, क्योंकि मैलवेयर विंडोज़ के लिए बनाया गया है, लिनक्स के लिए नहीं।
Iptables से बहुत सी चीजें और ट्रिक्स गायब हैं, जैसे कि चक्कर आना, ताकि सभी खुले पोर्ट्स, झूठ बोलें कि यह ttl और विंडो साइज़, स्कैनलॉग, अपाचे मॉड सिक्योरिटी, grsec, सेलाइनक्स या ऐसा कुछ का उपयोग करके एक विंडोज़ पीसी है । एफ़टीपी से एफटीपी को बदलें, एक्स पोर्ट में प्रत्येक सेवा के लिए आईपी प्रति कनेक्शन की संख्या को सीमित करें ताकि बचने के लिए डीडीओएस से पहले वे हमें बिना सेवाओं के छोड़ दें, साथ ही आईपी को ब्लॉक करें जो इतने सारे यूडीपी को इतने सेकंड के लिए भेजते हैं।
आपके द्वारा प्रस्तुत किए गए उदाहरणों के साथ, एक नया उपयोगकर्ता इसे पढ़ने के लिए पागल हो जाएगा ... आप एक पोस्ट में सब कुछ नहीं डाल सकते। मैं कई प्रविष्टियाँ करूंगा :)।
प्रारंभ सेवा देते समय इस बिंदु पर मुझे आर्चलिनक्स में एक त्रुटि मिलती है, मैं इसे स्थिति देता हूं और यह सामने आता है:
sudo systemctl स्टेटस fail2ban
● fail2ban.service - Fail2Ban सेवा
लोड किया गया: लोड किया गया (/usr/lib/systemd/system/fail2ban.service; सक्षम; विक्रेता प्रीसेट: अक्षम)
सक्रिय: विफल (परिणाम: प्रारंभ-सीमा) शुक्र 2015-03-20 01:10:01 सीएलएसटी से; 1 सेकंड पहले
दस्तावेज़: man:fail2ban(1)
प्रक्रिया: 1695 ExecStart=/usr/bin/fail2ban-client -x प्रारंभ (कोड=बाहर निकला, स्थिति=255)
मंगलवार 20 01:10:01 गुंडम सिस्टमड[1]: Fail2Ban सेवा प्रारंभ करने में विफल।
मार्च 20 01:10:01 गुंडम सिस्टमडी[1]: यूनिट फेल2बैन.सर्विस विफल स्थिति में प्रवेश कर गई।
मंगल 20 01:10:01 गुंडम सिस्टमडी[1]: असफल2बान.सेवा विफल।
मार्च 20 01:10:01 गुंडम सिस्टमड[1]: फ़ेल2बैन के लिए प्रारंभ अनुरोध बहुत तेज़ी से दोहराया गया...आइस
मंगलवार 20 01:10:01 गुंडम सिस्टमड[1]: Fail2Ban सेवा प्रारंभ करने में विफल।
मार्च 20 01:10:01 गुंडम सिस्टमडी[1]: यूनिट फेल2बैन.सर्विस विफल स्थिति में प्रवेश कर गई।
मंगल 20 01:10:01 गुंडम सिस्टमडी[1]: असफल2बान.सेवा विफल।
संकेत: कुछ पंक्तियाँ दीर्घवृत्ताकार थीं, पूर्ण रूप से दिखाने के लिए -l का उपयोग करें।
कुछ मदद? D:
नमस्ते, अगर आपने system2l के साथ fail2ban को enable2ban.service को इनेबल किया और systemctl को startXNUMXban.service को शुरू किया, तो समस्या आपके द्वारा किए गए जेल कॉन्फ़िगरेशन में होगी। कृपया अपनी जेल की जाँच करें और सत्यापित करें कि सब कुछ ठीक है।
एक ग्रीटिंग
पेटेरचेको
सबसे पहले अच्छा ट्यूटोरियल. कई चीजें छूट गई हैं लेकिन आपने बुनियादी बातों पर ध्यान केंद्रित किया है।
शिनी-किरे, अपना /var/log/fail2ban.log जांचें
नमस्ते.
धन्यवाद @मेकेल फ्रेंको :)।
अच्छा है,
Fail2ban को होम पीसी पर स्थापित किया जाना चाहिए या यह सर्वर के लिए अधिक है???
शुक्रिया.
बल्कि सर्वर के लिए, लेकिन यदि आप वाई-फ़ाई पर हैं जिस तक आपसे अधिक लोग पहुंच सकते हैं तो यह अच्छा है...
हेलो फ्रेंड, मुझे लगता है कि यह Gnu / Linux डिस्ट्रोस में एक छोटी सी आग के हिस्से में एक अच्छा सुरक्षा पोस्ट है, मैं यह टिप्पणी इसलिए लिख रहा हूं क्योंकि मैं इसे Ubuntu 14.04 वितरण में कर रहा हूं यह जानते हुए कि यह 15.04 में पहले से ही होता है क्या होता है निम्नलिखित समस्या मैं nano /etc/fail2ban/jail.local को रूट के रूप में दर्ज करता हूं और मुझे sshd भाग में कोई विज़ुअलाइज़ेशन नहीं है और मैं [DEFAULT] नामक भाग में सहेजता हूं, हम #bantime - 3600 और को संशोधित करते हैं
[sshd] भाग में हम इसे इस तरह छोड़कर सक्षम = सत्य दर्ज करते हैं:
# समर्थ = सत्य
सक्षम = सत्य
एसएसएचडी के बारे में वह बात सामने नहीं आई है, ऐसा इसलिए हो सकता है क्योंकि मैं पिछले संस्करण पर काम कर रहा हूं, धन्यवाद