SSH / SSHD - मैं अधिकतम लॉगिन प्रयास कैसे सेट करूं?


17

LAMP वातावरण (yum द्वारा संस्थापित sshd) में अधिकतम लॉगिन प्रयासों को सेटअप करने का सबसे आसान तरीका क्या है? क्या कोई पैकेज या सरल फ़ायरवॉल नियम है?



@ हैप्पी थैंक्स, मैंने खोज करने की कोशिश की लेकिन दुर्भाग्य से कई खराब नाम वाले सवाल / सूत्र हैं।
जॉन हिममेलमैन

जवाबों:


11

मैं Fail2ban का उपयोग करता हूं ; मैंने अतीत में Denyhosts का उपयोग किया है , और यह काफी अच्छी तरह से काम भी करता है। मैं अब Fail2ban का पक्ष लेता हूं क्योंकि यह अधिक कॉन्फ़िगर करने योग्य है, और कई अलग-अलग सेवाओं की निगरानी करने में अधिक सक्षम है - उदाहरण के लिए, आपके sshd और आप वेब ऐप के लॉगिन पृष्ठ पर एक साथ (बशर्ते कि आप लॉग इन विफल हों)।

एक अन्य विधि जिस पर आप विचार कर सकते हैं वह एक लिमिट नियम को लागू कर रहा है iptables; जब तक आप Shorewall को स्थापित नहीं करना चाहते, तब तक मैं दुर्भाग्य से आपकी मदद नहीं कर सकता , और फिर मैं आपको उस साइट पर उत्कृष्ट प्रलेखन की ओर इंगित करता हूं कि कैसे एक LIMIT नियम को कॉन्फ़िगर करने के लिए, अच्छी तरह से, किसी को भंग करने की क्षमता को सीमित करें अपने सर्वर को लागू करें।


मुझे यह जोड़ना चाहिए कि Fail2ban कई डिस्ट्रोस रिपॉजिटरी में उपलब्ध है, इसलिए इसे स्थापित करना एक हवा है; मैंने किसी भी समय Denyhosts को नहीं देखा है, लेकिन इसका मतलब यह नहीं है कि यह कुछ में नहीं है, और न ही यह कि पिछली बार जब मैंने जाँच की थी तब से इसे जोड़ा नहीं गया है।
Kromey

मैंने उस समस्या का सामना किया है जो v2.8.14 के विफल 2 आईपबल-मल्टीपॉर्ट कमांड के साथ सही ढंग से काम नहीं करती है। और यह ताजा संस्करणों में हल की गई विफलता 2ban उपयोगिता के साथ ज्ञात समस्या है ... यहाँ वर्णन है: github.com/fail2ban/fail2ban/issues/798 तो मेरा मानना ​​है कि केवल सुरक्षा तंत्र में सर्वर सॉफ़्टवेयर में विकसित किया गया है, न ही 3 पार्टी उपयोगिताओं ...
जॉर्ज गॉल

44

मैं किसी भी तीसरे पक्ष के उपकरण का उपयोग करना पसंद नहीं करता। इसलिए मैंने 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

2
बहुत बढ़िया! लेकिन मुझे एक समस्या है, फ्रांस में कुछ लोग / बॉट ने अपने हैकर टूल्स को सही तरीके से कॉन्फ़िगर नहीं किया है, इसलिए वह लॉग इन करता रहता है, भले ही उसका ट्रैफिक गिरा हो। परिणाम, मेरे लॉग इस आदमी से हर सेकंड डेटा से भरे हुए हैं। इसके आसपास कोई रास्ता?
Smarties89

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

4

इसे सेट करने के लिए SSH से जुड़ा कोई विशिष्ट पैकेज नहीं है। हालाँकि आप CSF स्थापित कर सकते हैं जो कि विन्यासकर्ता और फ़ायरवॉल है।

सीएसएफ

मेरे द्वारा सुझाए गए दो कॉन्फ़िगरेशन परिवर्तन फ़ाइल में किए जाएंगे: / etc / ssh / sshd_config

असत्य कनेक्शन की अधिकतम संख्या को सीमित करें जो ssh सर्वर उसी समय संभाल लेगा। यह जितना छोटा होता है, उतनी ही कठिन होती है स्क्रिप्ट लिपि के लिए कई कनेक्शन के साथ समानांतर, समन्वित क्रैकिंग प्रयास। sshd_config को संपादित करें और मैक्सस्टार्टअप को "10" के डिफ़ॉल्ट से "3:50:10" में बदलें। बृहदान्त्र अलग किए गए मान ssh सर्वर को बताता है, "3 उपयोगकर्ताओं को एक ही समय में लॉगिंग का प्रयास करने की अनुमति देता है, और 3 और अधिकतम 10 के बीच बेतरतीब ढंग से और तेजी से ड्रॉप कनेक्शन के प्रयास"। नोट: यह उन सर्वरों पर बढ़ाया जाना चाहिए, जिनमें वैध ssh उपयोगकर्ताओं की पर्याप्त संख्या है।

  • डिफ़ॉल्ट : मैक्सस्टार्टअप्स 10
  • मैक्सस्टार्टअप 3:50:10

डिस्कनेक्ट करने से पहले सफलतापूर्वक लॉगिन करने की अनुमति दी गई अधिकतम समय को कम करें। 2 मिनट का डिफॉल्ट बहुत समय के लिए एक अनधिकृत कनेक्शन के प्रयास को खोलने के लिए होता है (ऊपर देखें); लॉग इन करने के लिए 30 सेकंड का समय पर्याप्त है

  • डिफ़ॉल्ट : LoginGraceTime 2 मी
  • LoginGraceTime 30

3

मैं इसके लिए इन 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
एलिक्स एक्सल

मैंने डेबियन जेसी में इन दो iptables कमांड्स को बनाया, लेकिन फिर भी एक ही IP पते से प्रत्येक 2 सेकंड में SSH लॉगिन प्रयास देख सकते हैं। कोई विचार?
एलेक्सी ओज़ेरोव

1

एक विकल्प है जिसे आप सर्वर के लिए अपने 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.

उपयोगी (विशेष रूप से जब पहले से किए गए अन्य सुझावों के साथ संयुक्त), लेकिन वास्तव में अपने दम पर समस्या को हल नहीं करता है क्योंकि यह किसी के लिए केवल पुन: कनेक्ट करने के लिए तुच्छ है।
क्रोमाई
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.