เช็ดเซิร์ฟเวอร์ระยะไกลแบบลินุกซ์อย่างปลอดภัย


18

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

ฉันไม่ต้องการผ่านหลายรอบ แต่ฉันต้องการล้างพื้นที่ว่างถ้าเป็นไปได้ โดยทั่วไปฉันต้องการเดินไปและทำให้แน่ใจว่าฉันจะไม่ทิ้งข้อมูลส่วนตัวของฉันไว้เบื้องหลัง ฉันกังวลว่ากล่องอาจมีปัญหาก่อนที่มันจะเสร็จสิ้นการเช็ด / ซิงค์ระบบไฟล์ถ้าฉันเพิ่งเรียกใช้srm -R -s /


imho, ใช้ dd (ที่ด้านล่าง)
Linux Nerd บาง

คำตอบ:


4

ฉันประสบความสำเร็จตลอดทางrm -rf --no-preserve-root /โดยที่ระบบล้มเหลวก่อนและไม่มีอะไรเหลืออยู่บนไดรฟ์


ฉันรัน srm ในไดเรกทอรีข้อมูลของฉันจากนั้นrm -rf --no-preserve-root /ผ่าน SSH เพื่อล้างข้อมูลส่วนที่เหลือ มันโยนข้อผิดพลาดสองสามใน / dev แล้วเสร็จ; ฉันไม่ทราบว่าจะต้องทำอะไรบ้าง หากไม่มี / bin / ls หรือ / sbin / ปิดระบบฉันไม่สามารถยืนยันความสำเร็จได้ การลดภาวะ Twas ฉันถูกเตรียมใจให้มันพังไม่ใช่เคอร์เนลซอมบี้และเซสชั่น sshd
notpeter

7
สิ่งนี้ไม่ปลอดภัย ข้อมูลไม่ถูกลบและการลบยังคงเป็นไปได้ ดีกว่าไปddที่ดิสก์แทน
qris

10

ตัวติดตั้ง CentOS (แอนาคอนดา) ที่มาพร้อมกับอิมเมจ PXE รวมถึงเซิร์ฟเวอร์ VNC ดังนั้นคุณสามารถเปลี่ยนการตั้งค่า grub เพื่อบู๊ตตัวติดตั้ง CentOS ผ่านคำตอบของคำถามตัวติดตั้งขั้นตอนที่ 2 บนบรรทัดด้วงรีบูตแล้ว VNC เพื่อติดตั้ง

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

คัดลอกไฟล์ vmlinuz และ initrd จาก PXE dir ใน CentOS distro ( http://mirror.centos.org/centos/5/os/i386/images/pxeboot/ ) ไปที่ / boot และปรับแต่ง grub ของคุณ:

ค่าเริ่มต้น 0
หมดเวลา 5
CentOS ชื่อ
รูท (hd0,0)
เคอร์เนล /boot/vmlinuz.cent.pxe vnc vpasspass = รหัสผ่าน IP หัวขาด = IP netmask = 255.255.255.0 เกตเวย์ = เกตเวย์ GATEWAYIP DNS = 8.8.8.8 ksdevice = วิธีการ eth0 = http: //mirror.centos.org/centos/5/os / i386 / lang = en_US keymap = us
initrd /boot/initrd.img.cent.pxe

อนึ่ง บริษัท โฮสติ้งที่ดีควรเตรียมทำลายดิสก์ให้คุณ


3
พวกเขาไม่ได้เป็น 'บริษัท โฮสติ้งที่ดี' ดังนั้นฉันจึงต้องจากไปและเช็ดดิสก์ของฉัน
notpeter

ฉันไม่ได้ใช้วิธีนี้ แต่การใช้ GRUB เพื่อบูตอิมเมจการช่วยเหลือขั้นต่ำที่กำหนดค่าไว้ล่วงหน้าเพื่อเปิดใช้ vnc (หรือแม้แต่แค่ SSH) สามารถทำได้โดยสิ้นเชิง หากคุณเกิดความสับสนคุณอาจจะเหลือระบบที่ต้องการการขัดจังหวะโดยผู้ใช้ในการบู๊ตอย่างถูกต้องอีกครั้งดังนั้นจึงควรลองใช้ VM ก่อน
notpeter

1
คำในลำดับที่สิ่งต่าง ๆ ถูกเช็ดอาจมีประโยชน์ โดยการลบพาร์ติชั่นทั้งหมดยกเว้นพาร์ติชั่นที่มีอยู่/boot, คุณจะสามารถเริ่มต้นใหม่ได้ในกรณีที่เครื่องรีบูทในระหว่างกระบวนการ. หาก/bootเกิดขึ้นใน/พาร์ติชันหนึ่งสามารถลบไฟล์ทั้งหมดนอก/bootและเช็ดพื้นที่ว่างก่อนที่จะเช็ดพาร์ทิชันทั้งหมดในที่สุด นี่จะลดจำนวนข้อมูลที่เหลือบนดิสก์ในกรณีที่มีการรีบูทเมื่อคุณเช็ดมากจนคุณไม่สามารถบูตได้อีกต่อไป
kasperd

7

ก่อนที่คุณจะทำลายระบบปฏิบัติการคุณสามารถลบสิ่งที่ละเอียดอ่อนและ zerofill (ใช้ dd if = / dev / zero of = justabigfile)

และฉันเชื่อว่าระบบส่วนใหญ่จะเอาตัวรอดจาก dd ไปยังระบบที่ใช้งานได้นานพอที่จะเขียนทับดิสก์ทั้งหมด ไม่มีทางที่จะกลับมาถ้ามันไม่แน่นอน


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

6

วิธีการแก้ปัญหาของฉันเกี่ยวข้องกับวิธีการหลายขั้นตอนที่ทำข้างต้น แต่ยังเกี่ยวข้องกับ chroot ใน ram ที่ควรอนุญาตให้ dd เสร็จสิ้นการล้างดิสก์อย่างสมบูรณ์

ขั้นแรกให้ลบข้อมูลที่สำคัญทั้งหมดของคุณทิ้งไฟล์ที่จำเป็นสำหรับการเรียกใช้ระบบปฏิบัติการ จากนั้นให้ทำสิ่งนี้ (ไม่ใช่สคริปต์ให้ทำทีละคำสั่ง):

mkdir /root/tmpfs/
mount -t tmpfs tmpfs /root/tmpfs/
debootstrap --variant=buildd --arch amd64 precise /root/tmpfs/
mkdir /root/tmpfs/mainroot
mount --bind / /root/tmpfs/mainroot
mount --bind /dev /root/tmpfs/dev
chroot /root/tmpfs/

# fill mainroot partition to wipe previously deleted data files
dd if=/dev/zero of=/mainroot/root/bigfile; rm /mainroot/root/bigfile
# now clobber the entire partition, probably won't be able to stay connected to ssh after starting this
# obviously change '/dev/md1' to the device that needs cleared
nohup dd if=/dev/zero of=/dev/md1 >/dev/null 2>&1

ที่ควรดูแลมัน!


1

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

คุณล้างข้อมูลโดยไม่ต้องติดตั้งระบบแฟ้มที่รู้ดังนั้นระบบไฟล์จะเริ่มประหลาดเพราะเมตาดาต้ากำลังจะสูญหายไปจากนั้นระบบปฏิบัติการของตัวเองจะเริ่ม "ยุบ" อย่างไรก็ตามสิ่งที่มีอยู่ในแคชยังคงใช้ได้อยู่ ดังนั้นคุณสามารถตรวจสอบความคืบหน้าผ่านรีโมทคอนโซลหรือ KVM (ไม่ได้ลองผ่าน ssh) ระบบยังคงทำงานต่อไปแม้ddจะเสร็จสิ้นแล้วอย่างไรก็ตามไม่มีคำสั่งใดที่จะทำงานได้และ daemons ทั้งหมดอาจตายไปแล้ว

ฉันใช้คำสั่งเหล่านี้: dd if=/dev/zero of=/dev/sda bs=1M & จากนั้นkill -HUP %1เพื่อติดตามความคืบหน้า (dd จะพิมพ์ความเร็วปัจจุบันและจำนวนข้อมูลที่เขียน) การตั้งค่าบล็อกขนาด ( bs) เป็นสิ่งสำคัญมากในการบรรลุ HDD seq ddความเร็วในการเขียนด้วย

แต่ละครั้งddก็สามารถล้างดิสก์จนถึงจุดสิ้นสุดและฉันก็สามารถออกkillคำสั่ง (เชลล์ในตัว) จนจบ หากคุณมีซอฟต์แวร์บุกคุณสามารถล้างmdอุปกรณ์เองหรืออุปกรณ์แต่ละชิ้นแยกกัน


เพื่อนร่วมงานของฉันทำสิ่งนี้และ xwindows ล้มเหลวควรเป็นสิ่งที่ผู้ร้องขอต้องการ
Linux Nerd บาง

1

โพรโทคอล ATA มีคำสั่ง "การลบที่ปลอดภัย" ซึ่งตามชื่อระบุควรล้าง HDD ทั้งหมดอย่างปลอดภัย

ดูบทความวิกิเคอร์เนลสำหรับรายละเอียด แต่ระวังคำเตือนที่ด้านบน:

https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase


อัปเดตในปี 2018: ฉันใช้มันสำเร็จหลายครั้งเพื่อล้างเซิร์ฟเวอร์จากระยะไกลแม้ในขณะที่ระบบไฟล์กำลังถูกลบ เนื่องจากโปรแกรมเพิ่งออกคำสั่ง ATA และรอการตอบกลับจึงไม่จำเป็นต้องเรียกใช้รหัสบน CPU ระหว่างกระบวนการลบ
Vladimir Panteleev

0

คุณสามารถลองเขียนข้อมูลสุ่มบนดิสก์ของคุณเช่นนี้:

dd if=/dev/urandom of=/dev/sda

ปลอดภัยกว่าการใช้ / dev / ศูนย์เพราะเขียนข้อมูลแบบสุ่ม แต่ก็ช้ากว่ามาก ..


ในฐานะที่เป็นคนที่ไม่รู้จักดีกว่าเหตุใดผู้คนจึงลงคะแนนในเรื่องนี้ นี่ไม่ใช่การฝึกฝนที่ดีใช่ไหม
Canadian Luke ติดตั้ง MONICA ใหม่

@CanadianLuke คำถามนี้เกี่ยวกับการลบเซิร์ฟเวอร์ที่รันอยู่แล้วอย่างปลอดภัย คุณไม่สามารถเขียนไปยังไดรฟ์ที่ติดตั้งแบบนี้ดังนั้นมันจะไม่ทำงาน
longneck

@ longneck ขอบคุณ ด้วยเหตุผลบางอย่างฉันคิดว่ารูทสามารถทำเช่นนั้นได้ ... แม้ว่าฉันจะไม่เคยลองเลย ขอขอบคุณที่อธิบายว่า
Canadian Luke ติดตั้ง MONICA ใหม่

@ longneck ya คุณทำได้เพิ่มความคิดเห็นข้างต้น แต่ฉันมีเพื่อนร่วมงานที่หวาดระแวงจริงๆทำเช่นนั้น ที่จริงแล้วคุณสามารถถอดฮาร์ดไดรฟ์ของคุณออกได้อย่างสมบูรณ์และ linux จะยังคงใช้งานทุกอย่างในหน่วยความจำได้โดยไม่ต้องมีอะไรมากไปกว่าข้อความแสดงข้อผิดพลาดของแอปพลิเคชัน
Linux Nerd บาง

0

ไม่ว่าคุณจะเลือกทำอะไรไปหาผู้ให้บริการรายอื่นแล้วทำการทดสอบ

รับอินสแตนซ์ที่คล้ายกันบน AWS (หรือ gcloud หรือ ... ) แล้วลองที่นั่นเก็บดิสก์แล้วแนบกับอินสแตนซ์อื่นเพื่อเป็นที่เก็บข้อมูลเพิ่มเติมและทำการสแกน dd if = sdb | HD

เนื้อหาที่ละเอียดอ่อนทั้งหมดของคุณควรอยู่ใน

/home
/opt
/var
/etc
/usr

มันเป็นไฟล์ปรับแต่งที่มีรหัสผ่านฝังที่รบกวนคนส่วนใหญ่ หากคุณรู้ว่าพวกมันคืออะไรให้ค้นหาทั้งระบบไฟล์เพื่อรูทพวกเขา

rm จะลบไฟล์ แต่ตัวแก้ไข hex จะยังอ่านดิสก์ ดังนั้นหลังจากนั้นศูนย์ ดูที่ฉีก คุณควรมีบันทึกของไฟล์ปรับแต่งของคุณและพวกมันอยู่ที่ไหนเพื่อจุดประสงค์ DR อย่าลืมไฟล์ crontab หากคุณมีรหัสผ่านอยู่

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

NB Kedare มีความคิดที่ดีและถ้าคุณกำลังเรียกใช้จาก ram ในการรีบูทครั้งถัดไป (ramdisk) มันเป็นไปได้ยากมากที่จะกู้คืนจาก / dev / ศูนย์เขียนเพื่อเริ่มต้นด้วยดังนั้นมันจึงไม่เพิ่มคุณค่าเว้นแต่ชีวิตของคุณ ขึ้นอยู่กับมัน?

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