เราจะ จำกัด ผลกระทบของโพรบ ssh ได้อย่างไร?


13

เว็บเซิร์ฟเวอร์ของฉันถูกโจมตีโดยที่อยู่ IP หลายแห่งอย่างต่อเนื่อง พวกเขาลองห้ารหัสผ่านแล้วเปลี่ยนที่อยู่ IP

ฉันทำการล็อคหลายครั้งเช่นการใช้ ssh-keys และไม่อนุญาตให้ใช้รหัสผ่านและไม่อนุญาตให้เข้าสู่ระบบจากระยะไกล

มีสิ่งที่ฉันสามารถทำได้เพื่อกำจัดความพยายามโจมตีเหล่านี้หรือไม่ ความล้มเหลวนั้นมีการป้องกันที่เฉพาะเจาะจงที่ฉันควรวางไว้หรือไม่?


1
การตั้งค่าสถานะสำหรับการโยกย้ายไปที่ security.se อยู่ที่ไหนในหัวข้ออื่น ๆ อีกเล็กน้อย
Rory Alsop

1
@Rory มีความแตกต่างระหว่าง "อีกเล็กน้อยในหัวข้อคนอื่น" และ "off-topic ที่นี่" - มันดูเหมือนค่อนข้างชัดเจนในหัวข้อที่นี่
Michael Mrozek

ไม่ต้องกังวล @Michael มีปิงจาก Gilles มาดูที่มันอาจจะไม่น่าสนใจที่นี่
Rory Alsop

@Rory ตกลงฉันจะถามเขาเกี่ยวกับเรื่องนี้; เขามักจะเชื่อฉันในสิ่งที่ฉันคิดว่าเป็นหัวข้อ {off, on} จริง ๆ แล้ว {on, off} หัวข้อ
Michael Mrozek

1
คำถามของฉันดูเหมือนว่าจะเปลี่ยนไปจนจำไม่ได้ ในคำถามเดิมของฉันฉันพยายามค้นหาว่ามันเป็นเรื่องธรรมดาหรือเปล่าสำหรับทุก ๆไซต์ที่จะประสบกับการโจมตีที่ดุร้าย - นั่นคือความจริงของชีวิต ตอบโดย Matteo ว่า "เป็นความจริงของชีวิต" ส่วนที่สองของคำถามที่ถูกถามสิ่งที่ฉันจะทำเพื่อแข็งขันหยุดการโจมตีเหล่านี้นอกเหนือจากการวางขึ้นป้องกัน นี่จะเป็นคำถามรองที่เกี่ยวข้องถ้ามีเพียงบางไซต์ที่ได้รับความทุกข์ทรมานจากการโจมตีด้วยกำลังดุร้าย บรูซตอบด้วยความคิดของเขา ฉันไม่ได้ขอเคล็ดลับการป้องกันจริงๆ
JW01

คำตอบ:


14

มันเป็นความจริงของชีวิต คุณสามารถติดตั้งเครื่องมือเพื่อกรองโฮสต์ที่โจมตีคุณหลังจากความพยายามที่ล้มเหลวสองสามครั้ง

DenyHostsวิเคราะห์ไฟล์บันทึกของคุณและเพิ่มผู้โจมตีลงใน/etc/hosts.denyไฟล์ของคุณโดยอัตโนมัติ

ตรวจสอบเอกสารเกี่ยวกับวิธีกำหนดค่าตามความต้องการของคุณ

อัปเดต : บางประเด็นที่แนะนำในความคิดเห็น

  • ตรวจสอบให้แน่ใจว่าได้กำหนดค่าเครื่องมืออย่างถูกต้องเป็น DenyHosts เนื่องจากคุณสามารถล็อคตัวเองได้ (เช่นคุณสามารถกำหนดค่าเครื่องหรือเครือข่ายที่ไม่เคยถูกกรอง)

  • DenyHosts ไม่ได้เพิ่มการรักษาความปลอดภัยระบบของคุณ: มันเพียงกรองการโจมตีที่ระดับ IP (มันอาจลดภาระในเครื่องขนาดเล็กและลดขนาดของไฟล์บันทึก แต่ไม่มีอะไรเพิ่มเติม)


1
Aaah ฉันเริ่มคิดว่าฉันเป็นคนพิเศษ ขอบคุณที่ทำให้ฉันตรง
JW01

เมื่อถึง Matteo คำถามของคุณจะถูกตอบเกือบจะเหมือนกันว่าrefs Q1.3 denyhosts.sourceforge.net/faq.html#1_0
whoami

@whoami ขอบคุณสำหรับลิงค์สรุปที่ดี แม้ว่าสิ่งหนึ่งที่มักจะเกิดขึ้นในใจของฉันเมื่อฉันเห็นการใช้พอร์ตเคล็ดลับที่แตกต่างกันคือ ' คุณจะรู้ได้อย่างไรว่าพอร์ตอื่นที่คุณเลือกไม่ได้ใช้อย่างอื่นอยู่แล้ว? '
JW01

1
ระวังด้วย DenyHosts และเครื่องมือที่คล้ายกันเนื่องจากพวกมันมีความซับซ้อนเพิ่มเติมเช่นพวกเขาอาจสร้างปัญหาด้านความปลอดภัยด้วยตัวเอง cf ความคิดเห็นที่ 2 บนunix.stackexchange.com/questions/2942/…
maxschlepzig

1
ระวัง DenyHosts ด้วยเพราะคุณอาจล็อคตัวเองออกจากเครื่อง ง่าย ๆapt-get install denyhostsให้ฉันล็อคเครื่องของฉัน
Naftuli Kay

15

ฉันทำตามคำแนะนำเหล่านี้เพื่อเพิ่มความล่าช้า 7 วินาทีในการพยายามลงชื่อเข้าใช้ SSH ผิดรหัสผ่านแต่ละครั้ง ฉันทำให้ sshd เป็น "tarpit" สำหรับสแกนเนอร์ที่กำลังดุร้าย

ฉันควรเพิ่มว่าฉันมีการปรับเปลี่ยนของฉัน tarpit sshd บันทึกรหัสผ่านที่ล้มเหลว สิ่งนี้อาจไม่ถูกต้องตามหลักจริยธรรมเนื่องจากทำให้ผู้ใช้รูทดูว่าผู้ใช้ทั่วไปพิมพ์รหัสผ่านของตนเองผิดประเภทใด แต่เนื่องจากฉันเป็นผู้ใช้ "จริง" เพียงคนเดียวฉันคิดว่าไม่เป็นไร

ฉันไม่ได้ทำงานบนพอร์ตที่ไม่ได้มาตรฐานเพราะมุมมอง "tarpit" จะไม่เสียเวลาของใครเลย


นอกจากนี้ให้ใช้พอร์ตที่ไม่ได้มาตรฐานและใช้กุญแจแทนรหัสผ่าน จากนั้นพวกเขาก็แทบจะไม่มีความหวัง (หากพวกเขาไม่ได้รับกุญแจซึ่งควรใช้รหัสผ่านอยู่ดี)
Callum Rogers

นี่เป็นคำตอบที่ดีเพราะมันมีวิธีการที่ 'ก้าวร้าว' มากกว่าที่จะเป็น'การป้องกันอย่างหมดจด'ซึ่งฉันคิดว่าเป็นการเพิ่มคุณธรรม
JW01

9

ถ้ามีคนจำนวนไม่มากที่ต้องใช้ SSH ในระบบให้พิจารณาย้าย SSH ไปยังพอร์ตที่ไม่ได้มาตรฐาน (เช่น 6422, 8080 เป็นต้น) การลดความพยายามในการเข้าสู่ระบบเพียงอย่างเดียวจะช่วยลดจำนวนครั้งในการเข้าสู่ระบบได้อย่างมาก SSH หาประโยชน์จากเวิร์มบนพื้นฐานตัวอย่างเช่น)


3
+1 ค่อนข้างมีประโยชน์เนื่องจากมัน จำกัด การก่อกวน แต่อย่าเข้าใจผิดว่าเป็นมาตรการรักษาความปลอดภัยนี่เป็นประตูหน้าจอที่ใกล้เคียงกับยุงมากกว่าล็อคความปลอดภัย
Piskvor ออกจากอาคาร

1
+1 นี่เป็นการประหยัดทรัพยากรเซิร์ฟเวอร์ด้วย
Xeoncross

6

เห็นด้วยกับคำตอบของ @ Matteo; สิ่งที่คุณเห็นคือระบบ zombie'd เป็นพัน ๆ ที่ดำเนินการโจมตีแบบเดรัจฉานบังคับบนเซิร์ฟเวอร์ของคุณเพราะมีเว็บไซต์ที่ทำงานอยู่ซึ่งหมายความว่าอาจมีผู้ใช้ที่อาจมีบัญชีเข้าสู่ระบบซึ่งอาจจะเดาได้ ความพยายามเพียงเล็กน้อยในส่วนของสคริปต์ตัวเล็ก - เขามีโปรแกรมที่สั่งให้ซอมบี้หลายพันตัวทำการโจมตีอย่างโหดร้ายในโฮสต์เว็บไซต์สองสามร้อยครั้งและรวบรวมรายการผลตอบแทนที่ประสบความสำเร็จ

ในทำนองเดียวกันบางครั้งคุณอาจเห็นการเปลี่ยนแปลงจำนวนมากของ "http://your.web.host/phpmyadmin/" ใน/var/log/apache2/access.logไฟล์ของคุณ นี่คือการสแกนอัตโนมัติสำหรับวิธีที่พบได้บ่อยที่สุดในการตั้งค่า PHPMyAdmin และจะพยายามหาช่องโหว่ที่รู้จักถ้าพบ (สิ่งนี้โดยบังเอิญคือสาเหตุที่ฉันเริ่มบอกลูกค้าให้ใช้ไซต์ PMA ที่ฉันตั้งค่าเองและ อัพเดทอยู่เสมอแทนที่จะติดตั้งเวอร์ชั่นของตัวเองและลืมที่จะอัพเดทอยู่เสมอ แต่ตอนนี้พวกเราปิดการใช้งานแทนเจนต์)

นอกเหนือจากการส่งคำสั่งดั้งเดิมมันไม่ได้ทำให้เขาเสียเวลาหรือแบนด์วิดท์ มันเป็นไฟและลืม

อีกซอฟต์แวร์ที่มีประโยชน์มากสำหรับสถานการณ์เช่นนี้คือfail2banซึ่งใช้ iptables เพื่อบล็อกความพยายามในการเชื่อมต่อหลังจากการเข้าสู่ระบบที่ผิดพลาดหลายครั้งอย่างชัดเจนหรือพยายามหาช่องโหว่อื่น ๆ


4

พยายามที่จะกำหนดค่าfail2ban มันมีวิธีที่ยืดหยุ่นมากในการค้นหาความพยายามที่ล้มเหลวและมีแม่แบบสำหรับ SSH, HTTP และบริการทั่วไป

Fail2ban จะอัปเดตiptablesตามการกระทำของคุณ .. ฉันชอบมาก


3

คุณสามารถใช้IPTABLES เพื่อหยุดการรับส่งข้อมูลโดยไม่ต้องใช้ daemon เช่น Fail2Ban หรือ DenyHosts

#  Allows SSH connections (only 4 attempts by an IP every 3 minutes, drop the rest to prevent SSH attacks)
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 4 --name DEFAULT --rsource -j DROP
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

2

หากคุณสามารถจัดการได้ฉันหาวิธีที่ดีที่สุดในการจัดการกับสิ่งต่าง ๆ เช่นนี้คือการใช้ VPN ด้วยวิธีนี้สิ่งเดียวที่พวกเขาสามารถกำหนดเป้าหมายได้คือ VPN ไม่ควรมีบริการใด ๆ ที่เปิดให้คนทั่วโลกยกเว้นบริการที่จำเป็นสำหรับ "ทุกคน" ในการเข้าถึงเช่นเว็บเซิร์ฟเวอร์ของคุณ ทุกอย่างอื่นควรถูกบล็อกโดยไฟร์วอลล์ ตอนนี้สิ่งเดียวที่คุณต้องกังวลเกี่ยวกับการรักษาความปลอดภัยคือ VPN ของคุณ หากทำได้ให้รับ IP แบบคงที่สำหรับคอมพิวเตอร์ที่คุณจัดการเซิร์ฟเวอร์ของคุณจากนั้นล็อก VPN ของคุณลงไปยังที่อยู่ IP นั้น นี่เป็นวิธีเดียวที่จะหยุดคนไม่ให้พยายามใช้รหัสผ่านที่ดุร้าย


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