Xóa an toàn một máy chủ linux từ xa không đầu


18

Tôi sắp chấm dứt mối quan hệ với nhà cung cấp dịch vụ lưu trữ trong nhiều năm, nhưng tôi muốn xóa sạch hộp trước khi thực hiện. Đây là một máy chủ chuyên dụng chạy Debian trên một ổ EXT3 duy nhất và mặc dù tôi có quyền truy cập root, tôi không thể khởi động phương tiện thay thế vì nó không có đầu trong một giá đỡ ở đâu đó.

Tôi không cần nhiều đường chuyền, nhưng tôi muốn xóa sạch không gian trống nếu có thể. Về cơ bản tôi muốn bỏ đi và đảm bảo rằng tôi không để lại bất kỳ dữ liệu cá nhân nào của mình. Tôi lo lắng rằng hộp có thể bị sập trước khi hoàn thành việc xóa / đồng bộ hóa hệ thống tập tin nếu tôi chỉ chạysrm -R -s /


imho, sử dụng dd (ở dưới cùng)
Một số Linux Nerd

Câu trả lời:


4

Tôi đã thành công trong suốt chặng đường rm -rf --no-preserve-root /mà không bị sập hệ thống trước, và không có bất cứ thứ gì bị bỏ lại trên ổ đĩa.


Tôi đã chạy srm trên các thư mục dữ liệu của mình, sau đó rm -rf --no-preserve-root /qua SSH để dọn dẹp phần còn lại. Nó đã ném một vài lỗi trong / dev và sau đó hoàn thành; Tôi không biết phải làm gì tại dấu nhắc bash. Nếu không có / bin / ls hoặc / sbin / shutdown, tôi không thể xác nhận thành công. Twas chống sốt rét; Tôi đã chuẩn bị tinh thần cho nó để sụp đổ, không phải là một phiên bản zombie và sshd.
báo

7
Điều này không an toàn. Dữ liệu không bị xóa và hoàn tác vẫn có thể. ddThay vào đó tốt hơn để đĩa.
qris

10

Trình cài đặt CentOS (anaconda) đi kèm với hình ảnh PXE bao gồm máy chủ VNC, do đó bạn có thể thay đổi cấu hình grub của mình để khởi động trình cài đặt CentOS, chuyển câu trả lời cho các câu hỏi của trình cài đặt giai đoạn 2 trên dòng grub, khởi động lại và sau đó là VNC để cài đặt.

Bây giờ, nếu bộ nhớ của tôi phục vụ cho tôi một cách chính xác, từ trong trình cài đặt đó, bạn sẽ có thể thả vào một vỏ, từ đó bạn có thể truy cập và phá hủy đĩa.

Sao chép các tệp vmlinuz và initrd từ thư mục PXE trong bản phân phối CentOS ( http://mirror.centos.org/centos/5/os/i386/images/pxeboot/ ) vào / boot và sửa đổi cấu hình grub của bạn:

mặc định 0
thời gian chờ 5
tiêu đề CentOS
root (hd0,0)
kernel /boot/vmlinuz.cent.pxe vnc vncpassword = PASSWORD không đầu ip = IP netmask = 255.255.255.0 gateway = GATEWAYIP dns = 8.8.8.8 ksdevice = eth0 method = http: //mirror.centos.org/centos / i386 / lang = en_US keymap = chúng tôi
initrd /boot/initrd.img.cent.pxe

Ngẫu nhiên, bất kỳ công ty lưu trữ phong nha nên được chuẩn bị để phá hủy đĩa của bạn cho bạn.


3
Họ không phải là một "công ty lưu trữ đàng hoàng" do đó tôi cần phải rời đi và xóa sạch các đĩa của mình.
báo

Tôi đã không sử dụng phương pháp này, nhưng sử dụng GRUB để khởi động một hình ảnh cứu hộ tối thiểu được cấu hình sẵn để kích hoạt vnc (hoặc thậm chí chỉ SSH) là hoàn toàn có thể thực hiện được. Nếu bạn gặp rắc rối, bạn có khả năng bị bỏ lại với một hệ thống yêu cầu can thiệp thủ công để khởi động lại đúng cách, vì vậy có lẽ đáng để thử nghiệm trong VM trước.
báo

1
Một từ theo thứ tự mà mọi thứ bị xóa có thể hữu ích. Bằng cách xóa sạch tất cả các phân vùng đầu tiên ngoại trừ phân vùng chứa /boot, bạn có thể bắt đầu lại trong trường hợp máy được khởi động lại giữa quá trình. Nếu /boottình cờ nằm trên /phân vùng, người ta có thể xóa tất cả các tệp bên ngoài /bootvà xóa sạch dung lượng trống trước khi xóa toàn bộ phân vùng. Điều này sẽ giảm thiểu lượng dữ liệu còn lại trên đĩa trong trường hợp nó được khởi động lại một khi bạn đã xóa quá nhiều, đến mức bạn không còn có thể khởi động nó.
kasperd

7

Trước khi phá hủy HĐH, bạn có thể xóa mọi thứ nhạy cảm và zerofill (sử dụng dd if = / dev / zero of = justabigfile).

Và tôi tin rằng hầu hết các hệ thống sẽ tồn tại một dd đến một hệ thống đang chạy đủ lâu để ghi đè lên toàn bộ đĩa. Không có cách nào trở lại nếu nó không, tất nhiên.


4
Nếu bạn xóa tất cả các tệp bạn quan tâm trước khi thực hiện việc này, hãy trao đổi phân vùng trao đổi của bạn, xóa phân vùng trao đổi (sử dụng lau hoặc dd), thì cách trên sẽ khá an toàn. Bạn sẽ cần làm điều đó với quyền root để vượt qua 5% dành riêng cho root và bạn có thể không xóa tất cả tên tệp, nhưng dữ liệu sẽ bị mất.
Slartibartfast

6

Giải pháp của tôi liên quan đến một cách tiếp cận nhiều bước thực hiện một số điều ở trên, nhưng cũng liên quan đến một chroot trong ram sẽ cho phép dd hoàn thành việc xóa hoàn toàn đĩa.

Trước tiên hãy xóa tất cả dữ liệu nhạy cảm của bạn, để lại các tệp cần thiết để chạy hệ điều hành. Sau đó, làm điều này (không phải trong một kịch bản, thực hiện một lệnh tại một thời điểm):

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

Điều đó sẽ chăm sóc nó!


1

Bạn chỉ có thể sử dụng ddđể ghi đè lên toàn bộ phân vùng / đĩa trên máy chủ đang chạy mà không phải lo lắng. Chúng tôi sử dụng nó tại nơi làm việc rất nhiều (khi khách hàng không muốn trả tiền cho việc phá hủy đĩa vật lý an toàn).

Bạn thực sự xóa sạch dữ liệu mà không cần hệ thống tập tin gắn kết, vì vậy hệ thống tập tin sẽ bắt đầu hoảng loạn vì siêu dữ liệu của nó bị mất, sau đó hệ điều hành sẽ bắt đầu "sụp đổ". Tuy nhiên những gì đã có trong bộ nhớ cache vẫn hoạt động. Vì vậy, bạn có thể theo dõi tiến trình thông qua bảng điều khiển từ xa hoặc KVM (không thử qua ssh). Hệ thống được tiếp tục chạy ngay cả sau khi ddkết thúc, tuy nhiên không có lệnh nào hoạt động và tất cả các trình tiện ích có thể đã chết.

Tôi sử dụng các lệnh này: dd if=/dev/zero of=/dev/sda bs=1M & và sau đó kill -HUP %1để theo dõi tiến trình (dd sẽ in ra tốc độ hiện tại và lượng dữ liệu được ghi). Đặt kích thước khối ( bs) là rất quan trọng để đạt được tốc độ ghi của ổ cứng seq dd.

Mỗi lần ddcó thể xóa sạch đĩa đến hết và tôi có thể đưa ra killlệnh (shell tích hợp) cho đến khi kết thúc. Nếu bạn có cuộc đột kích phần mềm, bạn có thể xóa mdchính thiết bị hoặc từng thiết bị thành phần.


Đồng nghiệp của tôi đã làm điều này và xwindows không thành công, nên chính xác là những gì người yêu cầu cần.
Một số Linux Nerd

1

Giao thức ATA có lệnh "xóa an toàn", như tên của nó chỉ ra, sẽ xóa sạch toàn bộ ổ cứng.

Xem bài viết wiki Kernel để biết chi tiết, nhưng hãy chú ý các cảnh báo ở trên cùng:

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


Cập nhật 2018: Tôi đã sử dụng thành công điều này trong một số trường hợp để xóa máy chủ từ xa, ngay cả khi chúng đang chạy khỏi hệ thống tệp bị xóa. Vì chương trình chỉ phát lệnh ATA và chờ phản hồi, nên không cần thực thi mã nào trên CPU trong quá trình xóa.
Vladimir Panteleev

0

Bạn có thể thử ghi dữ liệu ngẫu nhiên vào đĩa của bạn như thế này:

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

An toàn hơn so với sử dụng / dev / zero vì nó ghi dữ liệu ngẫu nhiên, nhưng nó cũng chậm hơn rất nhiều ..


Là một người không biết rõ hơn, tại sao mọi người lại bỏ phiếu này? Đây không phải là một thực hành tốt?
Luke Luke REINSTATE MONICA của Canada

@CanadianLuke Câu hỏi là về việc xóa an toàn một máy chủ đang chạy. Bạn không thể ghi vào một ổ đĩa được gắn kết như thế này, vì vậy nó sẽ không hoạt động.
longneck

@longneck Cảm ơn. Vì một số lý do, tôi nghĩ rằng root có thể làm điều đó ... Mặc dù tôi chưa bao giờ thử, vì vậy tôi sẽ tin bạn. Cám ơn giải thích mặc dù
Canada Luke Khôi phục MONICA

@longneck ya bạn có thể, thêm nhận xét ở trên nhưng tôi đã có một đồng nghiệp thực sự hoang tưởng làm điều đó. Trên thực tế, bạn hoàn toàn có thể rút ổ cứng và linux vẫn tiếp tục chạy mọi thứ trong bộ nhớ mà không có gì ngoài một loạt các thông báo lỗi ứng dụng.
Một số Linux Nerd

0

Dù bạn chọn làm gì, hãy đến nhà cung cấp khác và kiểm tra nó.

Lấy một phiên bản tương tự trên AWS (hoặc gcloud hoặc ...) và thử nó ở đó, giữ đĩa và sau đó gắn nó vào một phiên bản khác dưới dạng lưu trữ bổ sung và quét nó. dd nếu = sdb | hd

Chỉ cần về tất cả các tài liệu nhạy cảm của bạn nên có trong

/home
/opt
/var
/etc
/usr

Đây là tập tin cấu hình với mật khẩu nhúng làm phiền hầu hết mọi người. Nếu bạn biết chúng là gì, hãy tìm kiếm toàn bộ hệ thống tập tin để root chúng ra.

rm sẽ xóa các tập tin, nhưng một trình soạn thảo hex vẫn sẽ đọc đĩa. Vì vậy, số không sau đó. Có một cái nhìn vào shred. Bạn nên có một bản ghi các tập tin cấu hình của bạn và chúng ở đâu cho mục đích DR phải không? Đừng quên các tập tin crontab nếu bạn có mật khẩu trong đó.

Cài đặt CentOS hoặc bất kỳ giải pháp ramdisk nào là âm thanh. Nhân sẽ có trong bộ nhớ, bạn cần dd và một số nội dung bin. Nhưng nếu bạn khởi động lại trong chế độ phục hồi, bạn có thể không có kết nối mạng hoặc SSH và tự cắt đứt.

NB Kedare có một ý tưởng hay và nếu bạn đang chạy từ ram trong lần khởi động lại tiếp theo (ramdisk) thì điều này là rất khó, rất khó để phục hồi từ / dev / zero ghi để bắt đầu vì vậy nó không thực sự tăng thêm giá trị trừ khi cuộc sống của bạn phụ thuộc vào nó?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.