IPtables के साथ brute force ssh को ब्लॉक करने में विफल


9

मैं अपने sshd सर्वर पर ब्रूट बल के हमलों को रोकने (धीमा करने) की कोशिश कर रहा हूं। मैं इस गाइड का अनुसरण कर रहा हूं http://www.rackaid.com/resources/how-to-block-ssh-brute-force-attacks/ जो मूल रूप से कहता है कि मुझे बस नीचे 2 कमांड दर्ज करने की आवश्यकता है।

sudo iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
sudo iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent  --update --seconds 60 --hitcount 4 -j DROP

मेरा sshd पोर्ट 6622 है, इसलिए मैंने प्रविष्टियों को "22" से बदलकर "6622" कर दिया, और उन कमांड को अंदर डाल दिया। फिर मैंने बस नए iptables का परीक्षण करने का प्रयास किया। मैं दूसरे पीसी पर गया और उद्देश्यपूर्ण तरीके से कई बार गलत लॉगिन पासवर्ड डाला। दुर्भाग्य से, नए नियम मुझे जितना चाहें उतना कोशिश करने से नहीं रोक रहे हैं। नीचे सूचीबद्ध मेरे वर्तमान नियम हैं। मैं क्या गलत कर रहा हूं?

# iptables --list

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  anywhere             anywhere             tcp dpt:6622 state NEW recent: UPDATE seconds: 60 hit_count: 4 name: DEFAULT side: source
           tcp  --  anywhere             anywhere             tcp dpt:6622 state NEW recent: SET name: DEFAULT side: source

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain LOGDROP (0 references)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere             LOG level warning
DROP       all  --  anywhere             anywhere            

4
मैं विफलता 2B को अवरुद्ध करने वाले IP को संभालने की सलाह देता हूं जो क्रूर बल प्रयास दिखा रहा है। इसे स्थापित करना और कॉन्फ़िगर करना आसान है। मुझे पता है कि यह सीधे आपके सवाल का जवाब नहीं देता है, लेकिन यह आपको ड्राईवाल में कुछ छेद बचा सकता है।
बंजर

1
@Banjer के साथ कॉनकुर - उस रैकड लिंक को भूल जाओ, असफल 2ban सेट करें।
शादुर

किसी भी मौका tweaking की MaxStartupsओर से मदद कर सकता है?
पीटरफ

2
@peterph केवल यदि आप एक बल बल को तोड़ने की कोशिश को सेवा से वंचित करना चाहते हैं।
शादुर

इंटरनेट पर एक ssh सर्वर को क्यों उजागर करें, और फिर परिणामों को कम करने का प्रयास करें? या तो काम पर या घर पर, मैं ipsec वीपीएन के माध्यम से जाता हूं, इंटरनेट पर कोई भी ssh नहीं खुलता है।
रुई एफ रिबेरो

जवाबों:


5

जैसा कि @banjer ने अपनी टिप्पणी में बताया, आप अपनी वास्तविक समस्या के लिए गलत समाधान का प्रयास कर रहे हैं।

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


1

चीजों को धीमा करने के लिए मैं इस तरह के नियमों का उपयोग करता हूं:

iptables -A DDoS -m limit --limit 12/s --limit-burst 24 -j RETURN
iptables -A DDoS -j LOG --log-prefix "[DDos Attack?] "
iptables -A DDoS -j DROP

अन्य स्थानों पर मैं चीजों को इस तरह सीमित करता हूं:

LOGLIMIT="50/h"
LOGLIMITBURST="10"
iptables -A IANA -p tcp -m limit --limit $LOGLIMIT --limit-burst \
     $LOGLIMITBURST -j DROP

0

क्या आपने मैन पेज पढ़ा?

आदमी 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.
 MaxSessions
         Specifies the maximum number of open sessions permitted 
         per network connection.  The default is 10.
 MaxStartups
         Specifies the maximum number of concurrent unauthenticated
         connections to the SSH daemon.  Additional connections
         will be dropped until authentication succeeds or 
         the LoginGraceTime expires for a connection. The default is 10:30:100.

         Alternatively, random early drop can be enabled by specifying
         the three colon separated values “start:rate:full” (e.g.
         "10:30:60").  sshd(8) will refuse connection attempts with a
         probability of “rate/100” (30%) if there are currently “start”
         (10) unauthenticated connections.  The probability increases
         linearly and all connection attempts are refused if the 
         number of unauthenticated connections reaches “full” (60).

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

0

मैंने सिर्फ दो नियमों के समाधान की कोशिश की और जब मैंने जाँच की तो मेरे पास एक ही मुद्दा था। फिर, मैं टिप्पणी करता हूं कि प्रकाशित नियमों में -i eth0विकल्प हैं! मैंने इसे अच्छे नेटवर्क इंटरफेस में बदल दिया और आखिरकार इसने काम करना शुरू कर दिया।


0

अधिकांश ट्यूटोरियल -Aनियमों का अंत करने के लिए संलग्न करने के लिए उपयोग करते हैं । ओपी -Iसम्मिलित करते थे लेकिन एक सूचकांक के बिना, इसलिए नियम गलत क्रम में समाप्त हो गए।

Iptables नियमों को डीबग करने का एक मूल्यवान उपकरण है, iptables -vLजो प्रत्येक नियम को कितनी बार लागू किया गया है, इसकी गणना करता है। जब आपको 0 की अप्रत्याशित गिनती मिलती है तो यह आपको यह देखने में मदद कर सकता है कि क्या गलत है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.