การบล็อกการโจมตี SSH Brute Force บน IPv6


10

ฉันเพิ่งต้องทำงานกับเซิร์ฟเวอร์บางตัวที่มีการเชื่อมต่อ IPv6 และฉันรู้สึกประหลาดใจที่พบว่า fail2ban ไม่มีการสนับสนุน IPv6 และไม่ได้รับการปฏิเสธ ค้นหาใน google ฉันพบว่าคนทั่วไปแนะนำ:

  • การยกเลิกการล็อกอิน ssh ผ่าน IPv6 (ไม่ใช่วิธีแก้ปัญหาสำหรับฉัน)
  • ใช้การพิสูจน์ตัวตนคีย์ส่วนตัว / สาธารณะบนเซิร์ฟเวอร์โดยไม่มีการพิสูจน์ตัวตนด้วยรหัสผ่าน (ใช้งานได้ แต่การโจมตีจำนวนมากอาจทำให้เซิร์ฟเวอร์ต้องใช้กำลังการประมวลผลจำนวนมากหรืออาจทำให้ DDoS ไม่สามารถใช้งานได้)
  • ใช้ ip6tables เพื่อป้องกันการโจมตีต่อเนื่องจาก IP เดียวกัน
  • ใช้ sshguard ซึ่งรองรับ IPv6

จากสิ่งที่ฉันรวบรวมมาแล้วการห้ามที่อยู่ใน IPv6 นั้นแตกต่างจาก IPv4 เล็กน้อยเนื่องจาก ISP ไม่ให้ที่อยู่เดียวกับผู้ใช้ (/ 128) แต่เป็นซับเน็ตทั้งหมด (ฉันมี / 48) ดังนั้นการห้ามที่อยู่ IPv6 เดียวจะไม่มีประสิทธิภาพต่อการโจมตี ฉันค้นหาสูงและต่ำในเรื่องของ ip6tables และ sshguard ที่บล็อก subnets ในการตรวจจับการโจมตี แต่ฉันไม่ได้จัดการเพื่อค้นหาข้อมูลใด ๆ

ไม่มีใครทราบว่า sshguard แบนแบนย่อยในการโจมตี IPv6 หรือไม่
ไม่มีใครรู้วิธีการกำหนดค่า ip6tables สำหรับการห้ามซับเน็ตบนการโจมตี IPv6 หรือไม่?
หรือใครรู้วิธีที่ดีกว่าในการบรรเทาการโจมตีกว่าสิ่งที่ฉันได้พบแล้ว?

PS: ฉันใช้ CentOS 7 บนระบบ


3
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ fail2ban เพิ่มการสนับสนุน IPv6: github.com/fail2ban/fail2ban/issues/39 ดูเหมือนว่าพวกเขากำลังประสบปัญหากับการบล็อกซับเน็ตซึ่งทำให้การติดตั้งล่าช้า (ดูเหมือนว่าจะไกลออกไปจากเราจริง ๆ ... )
John WH Smith

ให้คะแนนกฎที่ จำกัด / แบนใน iptables เปลี่ยนคำถามของคุณสำหรับสิ่งนั้นและตัวแทนหญิงสาวสองคนควรตอบอย่างแม่นยำ

นี่เป็นปัญหาสมมุติฐานหรือไม่? ฉันได้ดูบันทึกของการพยายามบังคับเดรัจฉานจากเซิร์ฟเวอร์ไม่กี่แห่งและทุกคนก็พยายามผ่าน IPv4 และฉันไม่เคยเห็นเซิร์ฟเวอร์ใดที่มีภาระมากเกินไปเนื่องจากความพยายามดังกล่าวเมื่อการตรวจสอบรหัสผ่านถูกปิดใช้งานทางฝั่งเซิร์ฟเวอร์
kasperd

1
@kasperd ฉันได้ลองใช้ IPv6 สองพันครั้งต่อวันดังนั้นไม่มันไม่ใช่ปัญหาสมมุติฐาน ที่อยู่เซิร์ฟเวอร์นั้นเป็นสาธารณะเพราะเป็นโฮสต์ของไซต์ดังนั้นจึงเป็นปัญหาที่แท้จริงมาก
DarthRevan13

@ user123418 ฉันจะปล่อยให้ชื่อของคำถามตามที่เป็นอยู่ตอนนี้ฉันอยากจะชอบ sshguard มากขึ้นเพราะการควบคุมมันกับกฎใน ip6tables หากไม่มีใครตอบในสัปดาห์ต่อไปฉันจะเปลี่ยนคำถาม
DarthRevan13

คำตอบ:


4

ในการโจมตีเซิร์ฟเวอร์ผู้โจมตีจะต้องรู้ที่อยู่ IP ของตนก่อน ด้วย IPv6 คุณจะมีที่อยู่มากมายให้เลือกซึ่งเป็นไปไม่ได้ที่จะหาที่อยู่ที่ถูกต้องโดยการสแกนช่วง IP

ซึ่งหมายความว่าคุณสามารถกำหนดที่อยู่ IPv6 ที่แตกต่างกันสองรายการให้กับอินเทอร์เฟซ คุณให้ชื่อโดเมนของไซต์ของคุณชี้ไปยังที่อยู่ IP เดิมเสมอและคุณปล่อยให้ sshd ฟังบนที่อยู่ IP ที่กำหนดใหม่เท่านั้น

หลังจากนั้นการรู้ชื่อโดเมนและที่อยู่ IP ของไซต์ของคุณจะไม่ทำให้ผู้โจมตีเข้าถึง sshd ของคุณได้

แน่นอนคุณจะต้องใช้ชื่อโฮสต์รองที่จะใช้เมื่อเชื่อมต่อโดยใช้ ssh ชื่อโฮสต์นั้นมีเอนโทรปีมากกว่าที่อยู่ IPv6 บางคนเดาชื่อโฮสต์สำหรับ ssh เป็นไปไม่ได้ถ้าคุณใช้ตัวอักษรและตัวเลข 63 ตัว

หากใครบางคนค้นหาที่อยู่ IPv6 ที่ใช้สำหรับ sshd คุณเพียงแค่ย้าย sshd ไปยังที่อยู่ IPv6 ใหม่และอัปเดตระเบียน AAAA จากนั้นพวกเขาจะต้องเริ่มต้นใหม่ทั้งหมด

หากคุณกังวลว่าผู้ใช้ ssh ที่ถูกกฎหมายอาจรั่วชื่อโฮสต์และ / หรือที่อยู่ IP คุณสามารถสร้างชื่อโฮสต์ที่แตกต่างกันเพื่อให้ผู้ใช้แต่ละคนเข้าถึงด้วย ssh ตอนแรกฉันต้องการ CNAME ทั้งหมดของพวกเขาเป็นชื่อโฮสต์เดียวซึ่งมีเพียงระเบียน AAAA เดียวที่จะอัปเดต


ฟังดูดีกว่าที่ฉันมีอยู่ในขณะนี้ แต่ก็ไม่ใช่สิ่งที่ฉันกำลังมองหา ขอบคุณอยู่ดี
DarthRevan13

0

ข่าวดีก็คือว่าfail2banเปิดตัวรองรับ IPv6 เมื่อเร็ว ๆ นี้

สำหรับเซิร์ฟเวอร์ Debian IPv6 ฉันอยากจะแนะนำให้ทำตามบทช่วยสอนนี้

สำหรับเซิร์ฟเวอร์ CentOS IPv6 ฉันอยากจะแนะนำให้ดาวน์โหลดได้ที่นี่จากนั้นดำเนินการคำสั่งเหล่านี้แทนหมายเลขเวอร์ชั่นตาม:

tar xvfj fail2ban-0.11.0.tar.bz2
cd fail2ban-0.11.0
python setup.py install

ตรวจสอบให้แน่ใจว่าเปิดใช้งานคุกสำหรับ sshd ใน/etc/fail2ban/jail.localเช่น:

[sshd]
enabled=1

1
แม้ว่าฉันจะชื่นชมสิ่งที่พวกเขาทำเมื่อล้มเหลว 2 แบน แต่ก็ยังไม่พอ! คุณสมบัติทั้งหมดที่ไม่ได้รับการสนับสนุนโดยโปรโตคอล IPv6 ตามการเปลี่ยนแปลงของพวกเขาgithub.com/fail2ban/fail2ban/blob/0.10/ChangeLogและยังมีการสนับสนุนสำหรับการห้ามเครือข่ายย่อยgithub.com/fail2ban/fail2ban/issues/927ซึ่งเป็นสิ่งสำคัญสำหรับ IPv6 เนื่องจาก ISP ใด ๆ จะไม่เสนอที่อยู่ IPv6 เพียงแห่งเดียวให้กับลูกค้า แต่เป็นเครือข่ายย่อยทั้งหมด ตราบใดที่เรื่องนี้ยังคงเป็นจริงเครื่องไม่ควรใช้ fail2ban ในตอนนี้! โปรดเปลี่ยนคำตอบของคุณเพื่อสะท้อนสิ่งนี้เนื่องจากมีผู้คนจำนวนมากเข้าชมหน้านี้
DarthRevan13
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.