ไม่สามารถบล็อก brute force ssh ด้วย iptables


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
ฉันแนะนำfail2banเพื่อจัดการการบล็อก IP ที่แสดงความพยายามอย่างโหดร้าย ติดตั้งและกำหนดค่าได้ง่าย ฉันรู้ว่ามันไม่ได้ตอบคำถามของคุณโดยตรง แต่มันอาจช่วยให้คุณประหยัดได้ไม่กี่หลุมใน drywall
Banjer

1
เห็นด้วยกับ @Banjer - ลืมลิงค์ที่ติดแร็กเน็ทตั้งค่า fail2ban
Shadur

มีโอกาสในการปรับแต่งใด ๆ ที่MaxStartupsอาจช่วยในด้านภูต?
เตอร์

2
@ peterph เฉพาะในกรณีที่คุณต้องการเปลี่ยนแรงเดรัจฉานให้กลายเป็นการปฏิเสธการบริการ
Shadur

ทำไมเซิร์ฟเวอร์ ssh ถึงอินเทอร์เน็ตและพยายามลดผลกระทบให้น้อยที่สุด? ไม่ว่าจะที่ทำงานหรือที่บ้านฉันไปผ่าน ipsec VPN ไม่มี ssh เปิดให้อินเทอร์เน็ตเลย
Rui F Ribeiro

คำตอบ:


5

@banjer ชี้ให้เห็นในความคิดเห็นของเขาว่าคุณกำลังพยายามแก้ปัญหาที่ไม่ถูกต้องสำหรับปัญหาที่แท้จริงของคุณ

สิ่งที่คุณต้องทำคือการตั้งค่า fail2ban มันใช้ iptables ในพื้นหลังเพื่อบล็อกความพยายามเชื่อมต่อจากโฮสต์ที่สร้างความพยายามในการเข้าถึงที่ล้มเหลวจากแหล่งต่าง ๆ โดยอัตโนมัติ มันมีความหลากหลายอย่างไม่น่าเชื่อและช่วยให้คุณเพิ่มและแก้ไข tresholds รูปแบบที่แตกต่างกันเพื่อค้นหาและห้ามแบน คุณจะต้องปรับแต่งค่าเริ่มต้น 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

คุณอ่าน man page ไหม?

ผู้ชาย 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
ไม่ช่วย การโจมตีแบบ bruteforce ของ SSH มีแนวโน้มที่จะถูกใช้โดยเครือข่ายบอทที่กระจายอยู่ทุกวันนี้ดังนั้นการเชื่อมต่อแต่ละครั้งจะใช้ความพยายามเพียงสามหรือสี่ครั้ง
Shadur

0

ฉันเพิ่งลองวิธีแก้ปัญหากฎสองข้อและมีปัญหาเดียวกันเมื่อฉันตรวจสอบ จากนั้นฉันสังเกตว่ากฎที่เผยแพร่มี-i eth0ตัวเลือก! ฉันเปลี่ยนเป็นอินเตอร์เฟสเครือข่ายที่ดีและในที่สุดก็เริ่มทำงานได้


0

บทช่วยสอนส่วนใหญ่ใช้-Aเพื่อผนวกท้ายชุดกฎ OP ใช้-Iเพื่อแทรก แต่ไม่มีดัชนีดังนั้นกฎจึงเรียงลำดับผิด

เครื่องมือที่มีค่าสำหรับการดีบักกฎ iptables คือiptables -vLรายการกฎที่มีการนับจำนวนครั้งที่แต่ละกฎถูกนำไปใช้ เมื่อคุณได้จำนวนที่ไม่คาดคิดเป็น 0 จะช่วยให้คุณเห็นว่ามีอะไรผิดปกติ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.