ฉันสามารถใช้ `dd 'เพื่อล้างระบบไฟล์รูทบนเซิร์ฟเวอร์ Linux ที่ทำงานอยู่ได้อย่างน่าเชื่อถือหรือไม่


2

ฉันมีเซิร์ฟเวอร์ระยะไกล (ทางกายภาพ) ฉันต้องการทำลายอย่างปลอดภัย น่าเสียดายที่ดิสก์นั้นถูกแบ่งพาร์ติชันด้วยพาร์ติชั่นรูทขนาดใหญ่และไม่มีอะไรอื่น ฉันสามารถใช้อย่างน่าเชื่อถือ dd การล้างอุปกรณ์ที่มีระบบไฟล์รูท

บางสิ่งที่เรียบง่ายเช่น:

$ sudo nohup dd if=/dev/urandom of=/dev/sda bs=1024

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

ฉันใคร่ครวญความเป็นไปได้อื่น ๆ แต่ฉันจะถามเกี่ยวกับคำถามเหล่านั้นแยกกัน

คำตอบ:


1

ในสภาพแวดล้อมขององค์กรคุณต้องมีการจัดการนอกวงเช่น IPMI, iDRAC หรือโซลูชัน KVM ระยะไกลอื่น คุณจะใช้ระบบนั้นเพื่อบู๊ตเป็น liveCD ซึ่งสามารถทำการลบและยืนยันได้ หากเป้าหมายของคุณปลอดภัยลบแล้วคุณจะต้องตรวจสอบการดำเนินงาน คุณไม่สามารถพูดว่า "ก็น่าจะทำงานได้" เพราะแม้ว่ามันควรจะทำงานที่ไม่ได้หมายความว่ามันทำ ระบบ IPMI บางระบบอนุญาตให้คุณบูตจากระยะไกลจาก ISO ที่คุณอยู่จากระยะไกล คุณสามารถใช้สิ่งที่ง่ายเหมือนภาพ DBAN


ฉันได้ลองทำสิ่งนี้ด้วยระบบปฏิบัติการที่บู๊ตแล้วและล้มเหลว การทำโดยไม่ต้องบูตระบบปฏิบัติการหรือด้วยระบบปฏิบัติการที่เรียกใช้จาก ramdisk ดูเหมือนจะเป็นทางออก ตั้งแต่ที่คุณพูดถึงมันเป็นเซิร์ฟเวอร์ฉันคิดว่าการจัดการแบนด์วิดท์มีอยู่ทำให้ Hackslash ตอบคำถามได้ดี +1
Hennes

แม้ว่าจะขอบคุณคำตอบของคุณสำหรับมัน ความจริง มันไม่ได้ตอบคำถามจริงของฉัน
Christopher Schultz

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

1

ใช่ , นี่คือ อย่างแน่นอน เป็นไปได้ แต่มันต้องมีงาน

คำตอบส่วนใหญ่มีอยู่ใน StackExchange แต่ฉันจะสรุปที่นี่พร้อมลิงก์ไปยังแหล่งที่มีรายละเอียดมากขึ้นและสมควรได้รับเครดิตสำหรับข้อมูลที่ดีเยี่ยม

  1. สร้างสภาพแวดล้อม Linux พื้นฐานในหน่วยความจำและเปลี่ยนเป็นใช้ pivot_root.
  2. ให้แน่ใจว่าคุณสามารถเข้าถึงเซิร์ฟเวอร์จากภายนอกโดยใช้ ssh.
  3. เช็ดอุปกรณ์รูท

    # nohup dd if=/dev/urandom of=/dev/sda bs=512 > wipe.log &

  4. อย่าลังเลที่จะตรวจสอบความคืบหน้าของ ddเนื่องจากโดยปกติแล้วมันจะไม่ให้ความคืบหน้าใด ๆ แก่คุณ

    # kill -USR1 [ddpid]

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

  6. ตัดสินใจว่าจะทำอย่างไรต่อไป

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

    สิ่งที่ฉันตัดสินใจที่จะทำต่อไปคือลองทำสิ่งที่ฉันไม่เคยทำมาก่อน: สร้างระบบฐาน Linux จากระยะไกล ดังนั้นฉันจึง:

  7. ใช้ fdisk เพื่อแบ่งพาร์ติชันอุปกรณ์รูทใหม่ตามต้องการและใช้งาน mkfs เพื่อสร้างระบบไฟล์บนพาร์ติชันเหล่านั้น

  8. ใช้ debootstrap ไปยัง ติดตั้งสภาพแวดล้อม Debian ฐาน บนระบบไฟล์รูท (ในอนาคต)
  9. chroot ในสภาพแวดล้อมพื้นฐานใหม่ให้ติดตั้งแพคเกจเพิ่มเติม (เช่น sshd ) เคอร์เนลและ bootloader (เช่น grub - ตรวจสอบให้แน่ใจว่าบูตโหลดเดอร์ได้รับการติดตั้งลงในอุปกรณ์แล้วอย่าเพิ่งติดตั้งแพ็คเกจ)
  10. ใช้ root_pivot เพื่อเปลี่ยนเป็นสภาพแวดล้อมใหม่ในแบบเดียวกับที่คุณทำในขั้นตอนที่ 1 ข้างต้น นำบริการทั้งหมดมาใช้ (เช่น sshd ) เพื่อให้แน่ใจว่าคุณจะสามารถเข้าถึงเซิร์ฟเวอร์ได้เช่น ตลอด ssh.
  11. Reboot ระบบปฏิบัติการใหม่ของคุณควรพร้อมใช้งานแล้ว
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.