ฉันบังเอิญห้ามการเชื่อมต่อ SSH กับเซิร์ฟเวอร์ระยะไกล ... จะเกิดอะไรขึ้น


61

สมมติว่าอีกครั้งเราทุกคนทำผิดพลาดและฉันเพิ่งทำไป

ประวัติโดยย่อ: ฉันกำลังทำบางสิ่งใน VPS (Debian) ฉันกำลังเช่าเมื่อฉันสังเกตเห็นพฤติกรรมแปลก ๆ การใช้netstatคำสั่งฉันเห็นการเชื่อมต่อที่ไม่ได้รับอนุญาตผ่าน SSH ฉันไม่รู้จะทำอย่างไรฉันจึงตัดสินใจปิดการเชื่อมต่อโดยใช้iptables:

iptables -A INPUT -p tcp --dport ssh -s IP -j DROP

แต่ฉันเหนื่อยและฉันเขียน

iptables -A INPUT -p tcp --dport ssh -j DROP

และฉันก็เตะตัวเอง (และคนอื่น ๆ ) ออกไป ...

ฉันจะแก้ไขได้อย่างไร



1
ไม่เพราะเขาปิดกั้นแพ็กเก็ต ssh ทั้งหมดที่เครื่อง บนซับเน็ตที่กำหนดค่าผิดคุณเพียงแค่ tcpdump สำหรับที่อยู่ mac นั้นรับซับเน็ตที่มีการเปิดแล้วกำหนดค่านิคเสมือนกับซับเน็ตเดียวกันและพูดคุยกับมัน
jfalcon aka Don Fanning

50
อย่างน้อยคุณก็ลบการเข้าถึงสำหรับบุคคลที่ไม่ได้รับอนุญาตอย่างน้อย
CVn

2
สำหรับครั้งต่อไปบางทีการเปลี่ยนของคนตายจะเป็นประโยชน์
Wayne Conrad

2
ใครคือโฮสต์ของคุณ โฮสต์ VM จำนวนมากเสนอคอนโซลแบบอนุกรมที่ช่วยให้คุณ SSH ในกรณีที่คุณไม่สามารถไปจากสถานที่ห่างไกล
Jon

คำตอบ:


60

มีหลายทางเลือก:

  • ดูว่าพวกเขามีการเข้าถึง IPMI / "KVM" / คอนโซลไปยังเซิร์ฟเวอร์ซึ่งให้คุณควบคุมมันได้หรือไม่ถ้าคุณมีแป้นพิมพ์จริงเสียบอยู่
  • หากพวกเขาไม่เสนอให้ดูว่าคุณสามารถบูต VM ไปยังแผ่นซีดีการกู้คืน linux (ผู้ให้บริการบางรายเสนอสิ่งนี้) จากนั้นแก้ไขกฎไฟร์วอลล์ด้วยวิธีดังกล่าวแล้วบูตตามปกติ
  • หากคุณไม่มีสิทธิ์เข้าถึงคอนโซลก่อนที่คุณจะบูตเพื่อกู้คืนหรือแนบโวลุ่มกับ VM อื่น (เช่นในกรณีของ Amazon คำตอบเครดิตของผู้ใช้ 3550767) คุณสามารถลองคำตอบของการรีบูต Ankh2054 ก่อนหากคุณไม่ได้บันทึกกฎ ( เป็นไปได้ว่าคดีนี้เกิดขึ้นเพราะคุณเตะตัวเองออกไปก่อนที่คุณจะมีโอกาสบันทึก) ใช้แผงควบคุมหรือขอให้ใครบางคนเปิดปิดวงจรโดยใช้การรีเซ็ต / poweroff ที่ไม่สุภาพ (aka ฮาร์ดรีบูตหรือปิดระบบอย่างหนัก) ในกรณีที่สคริปต์ init บันทึกกฎโดยอัตโนมัติเมื่อรีบูทอย่างงดงาม (credit @jfalcon, @joshudson)

    ชั่งน้ำหนักข้อเสียของสิ่งนี้ (เช่นข้อมูลที่ถูกเขียนระหว่างการบู๊ตอาจจะหายไปและการตรวจสอบระบบไฟล์อาจต้องใช้ในการบู๊ตเพื่อให้บูตเครื่องได้นานขึ้น แต่การหน่วงนั้นอาจน้อยกว่าการบูทเครื่องจนถึงการกู้คืน)


1
ขึ้นอยู่กับเซิร์ฟเวอร์ vps อาจไม่มีการเข้าถึงระยะไกลที่เขาสามารถเข้าถึงได้ ระบบเช่น vmware, kvm, xen ฯลฯ มีคอนโซล แต่ไม่ได้ติดตั้งเพื่อการบริโภคสาธารณะ การปิดที่ทำให้รูปแบบการควบคุมสาธารณะแบบนี้เปิดได้
jfalcon aka Don Fanning

4
ที่กล่าวว่าถ้าอยู่ในพื้นที่ amazon / google เขาสามารถจับไดรฟ์และติดตั้งจากเครื่องเสมือนอื่นเพื่อทำการแก้ไข
jfalcon aka Don Fanning

47

หากคุณยังไม่ได้บันทึกกฎ IPtables คุณสามารถรีบูตเซิร์ฟเวอร์ใน VPS (ถ้ามี) และกฎควรหายไป


เว้นแต่ว่าสคริปต์ init จะบันทึก iptables ในระหว่างการปิดเครื่อง
jfalcon aka Don Fanning

3
@jfalcon: นั่นเป็นเหตุผลที่คุณสามารถขอให้พวกเขาดึงปลั๊กเสมือน
joshudson

22
@jfalcon นั่นเป็นเหตุผลที่มันเป็นความคิดที่ไม่ดีที่จะบันทึกอัตโนมัติเมื่อปิดเครื่อง ... ทำการบันทึกการตัดสินใจอย่างมีสติโดย sysadmin ไม่ใช่สิ่งที่ดำเนินการโดยสุ่มสี่สุ่มห้า
CVN

@ โจชัวสัน: คุณต้องบอกลิงรีบูตว่าจะทำอย่างไรและบังคับให้ปิด ไม่เพียงแค่เริ่มต้นการปิดระบบ
jfalcon aka Don Fanning

@ MichaelKjörling: ปรัชญานี้ผิดเช่นกัน นี่เป็น VPS ที่มีแนวโน้มว่าเขาจะแซนด์บ็อกซ์แอปพลิเคชั่นของเขาและเขาไม่สามารถควบคุมได้ว่าใครจะเป็นผู้เปิดสวิตช์ไฟ และคุณไม่รู้ว่า VPS โฮสติ้งกำหนดค่าการสร้างอย่างไร ไม่มีอะไรผิดปกติกับการบันทึกเมื่อปิดเครื่อง ความผิดพลาดของเขาคือความผิดพลาดของเขา การย้ายอย่างชาญฉลาดในตอนแรกนั้นคือการใส่ SSH ลงในพอร์ตที่ไม่ได้มาตรฐานหรือใช้ fail2ban แทนการทำปฏิกิริยากับปฏิกิริยาที่ตื่นตระหนก
jfalcon หรือที่รู้จักว่า Don Fanning

30

นี่คือสิ่งที่สายด่วนให้ความช่วยเหลือซึ่งมีพนักงานคอยดูแล โทรติดต่อผู้ให้บริการและมีหนึ่งในผู้ให้บริการของพวกเขาลบกฎสำหรับคุณ


3

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


2
เป็นจริงสำหรับ AWS VPSes; ไม่จริงโดยทั่วไป
MadHatter

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

โดยปกติแล้วพวกเขาทำได้โดยเสนอการเข้าถึงคอนโซลดังนั้นคุณสามารถบูตในโหมดผู้ใช้คนเดียวหรือจากสื่อกู้ภัย (ปกติจะเป็นแบบ ISO) ฉันยอมรับว่าในความเป็นจริงเป็นเรื่องปกติมากกว่าวิธีแปลก ๆ ของ AWS ในการจัดการปัญหาโดยที่ VPS ที่สองเป็นข้อกำหนดชั่วคราว
MadHatter

@ MadHatter วิธีใดในสองวิธีที่ดูแปลก ๆ อาจขึ้นอยู่กับสิ่งที่คุณคุ้นเคยที่สุด และวิธีการอย่างใดอย่างหนึ่งทำให้งานเสร็จ ซึ่งเป็นเรื่องธรรมดาที่สุดที่ฉันไม่สามารถแสดงความคิดเห็นได้จริง ๆ เพราะจนถึงตอนนี้ฉันต้องการเพียงการเข้าถึงดังกล่าวกับผู้ให้บริการ VPS รายเดียว
kasperd

@kasperd: ไม่ที่คุณใช้ขึ้นอยู่กับผู้ให้บริการ VPS ที่กำหนด มันไม่ใช่เรื่องของทางเลือก หากคุณใช้ AWS คุณจะเมานต์โวลุ่มบน VPS อื่น หากคุณใช้ผู้ให้บริการ VPS ปกติมากกว่าคุณจะบูตผู้ใช้คนเดียวหรือจากสื่อกู้ภัย ฉันไม่ได้ชี้ให้เห็นว่าเป็นสิ่งที่ดี (ไม่ใช่ทั้งหมด) แต่เพราะมันเป็นเรื่องสำคัญที่จะต้องรู้ว่าต้องรู้ว่าวิธีการที่ผู้ให้บริการสนับสนุนนั้นคืออะไรจากนั้นจึงใช้มัน การพยายามใช้วิธี AWS ด้วยพูดว่า Hetzner ไม่สามารถทำได้เพราะ Hetzner คนหนึ่งไม่สามารถมองเห็น FS (afaik) ของ FS อื่นได้
MadHatter

3

คำตอบอย่างเป็นทางการ: ไปที่แผงการจัดการ VPS รับการเข้าถึงในพื้นที่ (KVM เสมือน) หรือเรียกพวกเขา

คำอธิบายขั้นตอน / กฎเพื่อป้องกันการล้มอีกครั้ง:

  1. มีการเปลี่ยนแปลง ip, การกำหนดเส้นทางและกฎไฟร์วอลล์ที่อาจไม่ดีและปิดกั้นการเข้าถึงของคุณ
  2. และใช้กับการกำหนดค่าอุปกรณ์เครือข่ายเฉพาะเช่นกันไม่ได้เป็นเพียง VPS

ดังนั้นถ้าคุณเป็น 100% ว่าคุณสามารถกู้คืน .. ผมขอแนะนำเสมอให้วิธีการรีเซ็ตการตั้งค่าเครือข่ายไปสู่สถานะเดิมของมัน .. เหมือนเซสชั่นพื้นหลังเปิดกับอย่างใดอย่างหนึ่งscreen, nohupหรือtmuxแม้กระทั่งcronอาจทำงานนี้และเพิ่มiptables -Fหรือ วิธีอื่นที่ต้องการเพื่อรีเซ็ตสิ่งใด ๆ ให้อยู่ในสถานะก่อนหน้า

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