LAMP वातावरण (yum द्वारा संस्थापित sshd) में अधिकतम लॉगिन प्रयासों को सेटअप करने का सबसे आसान तरीका क्या है? क्या कोई पैकेज या सरल फ़ायरवॉल नियम है?
LAMP वातावरण (yum द्वारा संस्थापित sshd) में अधिकतम लॉगिन प्रयासों को सेटअप करने का सबसे आसान तरीका क्या है? क्या कोई पैकेज या सरल फ़ायरवॉल नियम है?
जवाबों:
मैं Fail2ban का उपयोग करता हूं ; मैंने अतीत में Denyhosts का उपयोग किया है , और यह काफी अच्छी तरह से काम भी करता है। मैं अब Fail2ban का पक्ष लेता हूं क्योंकि यह अधिक कॉन्फ़िगर करने योग्य है, और कई अलग-अलग सेवाओं की निगरानी करने में अधिक सक्षम है - उदाहरण के लिए, आपके sshd और आप वेब ऐप के लॉगिन पृष्ठ पर एक साथ (बशर्ते कि आप लॉग इन विफल हों)।
एक अन्य विधि जिस पर आप विचार कर सकते हैं वह एक लिमिट नियम को लागू कर रहा है iptables
; जब तक आप Shorewall को स्थापित नहीं करना चाहते, तब तक मैं दुर्भाग्य से आपकी मदद नहीं कर सकता , और फिर मैं आपको उस साइट पर उत्कृष्ट प्रलेखन की ओर इंगित करता हूं कि कैसे एक LIMIT नियम को कॉन्फ़िगर करने के लिए, अच्छी तरह से, किसी को भंग करने की क्षमता को सीमित करें अपने सर्वर को लागू करें।
मैं किसी भी तीसरे पक्ष के उपकरण का उपयोग करना पसंद नहीं करता। इसलिए मैंने ssh कॉन्फ़िगरेशन और फ़ायरवॉल सेटिंग्स का एक संयोजन उपयोग किया। निम्नलिखित समाधान के साथ एक हमलावर को 2 मिनट में 3 गलती लॉगिन का उत्पादन करने की अनुमति है, या वह 120 सेकंड के लिए अवरुद्ध हो जाएगा।
1) निम्नलिखित पंक्ति को इसमें जोड़ें /etc/ssh/sshd_config
MaxAuthTries 1
यह प्रति कनेक्शन केवल 1 लॉगिन प्रयास की अनुमति देगा। Ssh सर्वर को पुनरारंभ करें।
2) निम्नलिखित फ़ायरवॉल नियम जोड़ें
एक नई श्रृंखला बनाएँ
iptables -N SSHATTACK
iptables -A SSHATTACK -j LOG --log-prefix "Possible SSH attack! " --log-level 7
iptables -A SSHATTACK -j DROP
प्रत्येक आईपी पते को 120 सेकंड के लिए ब्लॉक करें जो 120 सेकंड के भीतर तीन से अधिक कनेक्शन स्थापित करता है। चौथे कनेक्शन के प्रयास के मामले में, अनुरोध SSHATTACK
श्रृंखला को सौंप दिया जाता है , जो संभव ssh हमले को लॉग करने के लिए जिम्मेदार होता है और अंत में अनुरोध को छोड़ देता है।
iptables -A INPUT -i eth0 -p tcp -m state --dport 22 --state NEW -m recent --set
iptables -A INPUT -i eth0 -p tcp -m state --dport 22 --state NEW -m recent --update --seconds 120 --hitcount 4 -j SSHATTACK
3) संभावित ssh हमलों की लॉग प्रविष्टियाँ देखें /var/log/syslog
Dec 27 18:01:58 ubuntu kernel: [ 510.007570] Possible SSH attack! IN=eth0 OUT= MAC=01:2c:18:47:43:2d:10:c0:31:4d:11:ac:f8:01 SRC=192.168.203.129 DST=192.168.203.128 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=30948 DF PROTO=TCP SPT=53272 DPT=1785 WINDOW=14600 RES=0x00 SYN URGP=0
इसे सेट करने के लिए SSH से जुड़ा कोई विशिष्ट पैकेज नहीं है। हालाँकि आप CSF स्थापित कर सकते हैं जो कि विन्यासकर्ता और फ़ायरवॉल है।
मेरे द्वारा सुझाए गए दो कॉन्फ़िगरेशन परिवर्तन फ़ाइल में किए जाएंगे: / etc / ssh / sshd_config
असत्य कनेक्शन की अधिकतम संख्या को सीमित करें जो ssh सर्वर उसी समय संभाल लेगा। यह जितना छोटा होता है, उतनी ही कठिन होती है स्क्रिप्ट लिपि के लिए कई कनेक्शन के साथ समानांतर, समन्वित क्रैकिंग प्रयास। sshd_config को संपादित करें और मैक्सस्टार्टअप को "10" के डिफ़ॉल्ट से "3:50:10" में बदलें। बृहदान्त्र अलग किए गए मान ssh सर्वर को बताता है, "3 उपयोगकर्ताओं को एक ही समय में लॉगिंग का प्रयास करने की अनुमति देता है, और 3 और अधिकतम 10 के बीच बेतरतीब ढंग से और तेजी से ड्रॉप कनेक्शन के प्रयास"। नोट: यह उन सर्वरों पर बढ़ाया जाना चाहिए, जिनमें वैध ssh उपयोगकर्ताओं की पर्याप्त संख्या है।
डिस्कनेक्ट करने से पहले सफलतापूर्वक लॉगिन करने की अनुमति दी गई अधिकतम समय को कम करें। 2 मिनट का डिफॉल्ट बहुत समय के लिए एक अनधिकृत कनेक्शन के प्रयास को खोलने के लिए होता है (ऊपर देखें); लॉग इन करने के लिए 30 सेकंड का समय पर्याप्त है
मैं इसके लिए इन IPTables नियमों का उपयोग करता हूं:
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 300 --hitcount 4 --rttl --name SSH -j DROP
यह केवल 4 टीसीपी / एसवाईएन पैकेट को आईपी पते से 5 मिनट में 22 पोर्ट करने देगा। यदि यह अधिक प्रयास करता है तो दरवाजा 5 मिनट समाप्त होने तक बंद रहता है।
-A INPUT -p tcp -m tcp --dport 22 -m limit --limit 48/hour -j ACCEPT
।
एक विकल्प है जिसे आप सर्वर के लिए अपने sshd_config फ़ाइल में डाल सकते हैं:
MaxAuthTries
Specifies the maximum number of authentication attempts permitted per
connection. Once the number of failures reaches half this value, additional
failures are logged. The default is 6.