Cách đặt Ditribution Linux để tự hủy (để xóa mọi thứ khỏi phân vùng hệ thống) thông qua tập lệnh


11

Tôi sẽ giúp tạo điều kiện cho một khóa học sử dụng phần mềm được cấp phép. Phần mềm này hơi đắt và chỉ cho phép một số lượng cài đặt đồng thời hạn chế, vì vậy những gì tôi sẽ làm là cài đặt một phiên bản trên Đĩa ảo được mã hóa với Ubuntu (hoặc một số hương vị khác của linux) được cài đặt. Để giảm bớt khả năng xảy ra bất kỳ vi phạm bản quyền không cần thiết nào, tôi dự định lên lịch (sử dụng cron) một kịch bản tự hủy để chạy ngay sau ngày cuối cùng của khóa học. (Hoặc muộn nhất, trong lần khởi động đầu tiên sau ngày cuối cùng.)

Tôi yêu thích các phần mềm miễn phí và các dự án nguồn mở (và tìm nguồn cung ứng đám đông nói chung), tôi cũng rất tôn trọng phần mềm thương mại và thời gian và công sức mà các nhà phát triển đã đưa ra để có một sản phẩm tốt - Tôi không muốn kết thúc một cách vô tình góp phần vào việc vi phạm bản quyền máu, mồ hôi và nước mắt của họ.

Sẽ đánh giá cao bất kỳ ý tưởng nào về cách triển khai tập lệnh tự hủy này trên máy Linux.


2
Tôi không chắc tại sao điều này đã bị hạ cấp. Đó là một câu hỏi chính đáng với giá trị hợp pháp.
BinaryMisfit

Câu hỏi hay. Cảm ơn đã tìm kiếm các nhà phát triển phần mềm. +1
D'Arvit

Tôi không chắc chắn điều này sẽ thực sự tiến xa hơn đến mục tiêu của bạn. Nếu họ có kế hoạch đánh cắp phần mềm, có lẽ họ sẽ lấy một bản sao của VM trong suốt khóa học. Họ sẽ có thể xoay sở với nó lúc rảnh rỗi. Họ luôn có thể khởi động VM từ một đĩa CD trực tiếp để kiểm tra thứ để tìm ra những gì bạn đã làm.
Michael Kohne

Cảm ơn tất cả mọi người đã trả lời, tôi rất biết ơn về đầu vào. :)
techTechmo

Câu trả lời:


3

Như đã đề cập nhiều lần, xóa hình ảnh được mã hóa là quá đủ. Một cách tiếp cận khác là cài đặt ứng dụng trên phân vùng riêng và xóa sạch nó sau đó bằng dd.

dd if=/dev/zero of=/dev/TARGETPARTITION bs=1M

Điều này sẽ ghi đè lên mọi thứ bằng 0, đủ để xóa dữ liệu ngoài phục hồi.


Vì vậy, chỉ cần làm rõ, một khi tập lệnh thực thi, hệ thống sẽ tự xóa khỏi phân vùng (trong trường hợp này là ảo) và không hủy bỏ? Điều này nghe có vẻ như những gì tôi dự định làm. :) Điều gì sẽ xảy ra nếu, ví dụ tôi bảo máy ảo tắt nguồn chỉ sau vài giây, lệnh thực thi? Mặc dù hệ thống có thể truy cập được, nhưng về mặt lý thuyết vẫn có thể gắn các phần không bị xóa của đĩa phải không? Có lẽ bước đầu tiên của tập lệnh nên là gỡ bỏ phần mềm trước, sau đó chạy tập lệnh tự hủy?
techTechmo

Chà, nếu người dùng đăng nhập như một người dùng có quyền thích hợp, VÀ nếu họ biết chuyện gì đang xảy ra, thì về mặt lý thuyết, họ có thể giết lệnh 'dd', nhưng không phải trước khi nó gây ra nhiều thiệt hại (các bảng phân vùng gần mặt trước của đĩa chẳng hạn).
Michael Kohne

6

Để phá hủy mọi thứ dường như là một chút quá mức, làm thế nào để chỉ xóa / hủy cài đặt chương trình của bạn.

rm -rf /path/to/your/program/ 

Hoặc làm thế nào về việc bạn triển khai một máy chủ cấp phép bình thường mà chương trình phải liên hệ trước khi có thể bắt đầu?


Cập nhật : Là một câu hỏi mở, bạn có kế hoạch hủy dữ liệu người dùng cũng như chương trình của bạn không? Hoặc là dữ liệu người dùng được lưu trữ ở nơi khác?

Và có lẽ người dùng sẽ nhận được một số thông báo nagware rằng bạn có kế hoạch phá hủy mọi thứ! Cái gì đó như

- "Phần mềm này sẽ tự hủy nếu bạn không trả nhiều tiền hơn, bạn còn X ngày nữa."

Là một người dùng, tôi sẽ rất buồn nếu bạn vừa phá hủy thứ gì đó trong máy tính của tôi mà không hề nói với tôi rằng điều này sắp xảy ra (vì vậy tôi ít nhất cũng có cơ hội ảnh hưởng đến kết quả).

Thật là tồi tệ cho công ty của bạn nếu tất cả những người trả giá của bạn sẽ ghét bạn.


Như tôi đã đề cập, phần mềm sẽ nằm trong một ổ đĩa ảo được tạo riêng cho khóa học. Đó là một môi trường biệt lập mà không có bất kỳ tệp người dùng nào có nghĩa là đặc biệt để cho phép người tham gia được đào tạo với một phần mềm. Một điều tôi muốn bảo vệ là ai đó sao chép Virtual Drive vào, giả sử, ổ USB và cuối cùng là vi phạm bản quyền phần mềm bên trong. Vì vậy, tôi cố tình muốn thiết lập hệ thống tự hủy ngay sau khóa học để giảm thiểu khả năng xảy ra điều tương tự. Tất nhiên mối quan tâm của bạn là hợp lệ, cảm ơn vì đã chia sẻ. :)
techtechmo

Bằng cách này, họ không phải là người mua giấy phép sử dụng phần mềm. Và xem xét việc vi phạm bản quyền khét tiếng ở khu vực của tôi trên thế giới như thế nào, tôi thà chuẩn bị cho điều tồi tệ nhất, nhưng làm việc tốt nhất. :)
techTechmo

2

Một chút cũ nhưng ok. Theo thiết lập đó, tôi thực sự muốn mã hóa hệ thống tập tin VM và trong các phiên (giả sử chúng được nối mạng), bạn sẽ đăng nhập từ xa. Nếu họ sao chép VM, họ sẽ phải xác nhận lại mật khẩu, hầu như không phải người dùng của bạn nên làm gì :)

tức là nếu bạn không phiền, bạn có thể mã hóa điểm gắn kết: Lưu ý: hệ thống bảo vệ này là bất hợp pháp rõ ràng ở một số quốc gia / tiểu bang? (cũng ở Mỹ nhưng bạn dường như đến từ Anh?):

Thiết lập một mã hóa, mật khẩu gắn kết:

dd if=/dev/urandom of=/home/user/virtualfolder bs=16065b count=100  
modprobe loop  
modprobe cryptoloop  
modprobe aes  
losetup -e aes /dev/loop1 ./virtualfolder  
password: <enter your password here which you don't show to the users>  
mkreiserfs /dev/loop1  
mkdir /theprogram  
mount -o loop,encryption=aes,acl ./virtualdrive /theprogram  
password:<enter the same passy>

Bây giờ cài đặt / di chuyển chương trình của bạn vào / chương trình

(Mỗi lần bạn muốn truy cập / chương trình lại làm):

gắn

mount -o loop,encryption=aes,acl ./virtualdrive /theprogram  
password:<enter the same passy>

không đếm được

umount /theprogram  
losetup -d /dev/loop1  
rmmod aes  
rmmod cryptoloop  
rmmod loop 

Khi hoàn tất, làm cho thư mục phần mềm trông giống như một tệp byte ngẫu nhiên.

Bạn cũng có thể đảm bảo tài khoản người dùng họ sử dụng trong phiên VM không có suquyền trong trường hợp họ sao chép toàn bộ.


0

Tôi không biết thiết lập của bạn là gì, nhưng nếu bạn có thể yêu cầu người dùng của mình trực tuyến, thì bạn có thể muốn thực hiện một chiến thuật khác - hãy thử tải phần mềm qua kết nối mạng bất cứ khi nào họ chạy nó. Điều này chỉ khả thi và nó phụ thuộc vào việc bạn có thể cấp một số loại id cho từng người dùng. Bạn sẽ có một sơ khai trên VM và sơ khai sẽ tự động gắn kết một máy chủ từ xa và chạy nhị phân từ đó. Không có gì mà họ không thể làm được với một chút công việc, nhưng ít nhất sẽ khó hơn việc tự động phá hủy.

Thay phiên, bạn có thể yêu cầu máy chủ từ xa phản hồi bằng các khóa và giữ phiên bản mã hóa của chương trình trên đĩa - cuống truy vấn máy chủ để tìm khóa, giải mã và chạy chương trình, xóa nhị phân được giải mã khi thích hợp. Điều này cũng sẽ khó khăn hơn để đi lại, nhưng một lần nữa yêu cầu id người dùng duy nhất (điều này có thể không phù hợp với bạn).


Ý tưởng hay, nhưng tôi nghĩ một cái gì đó như thế này sẽ đòi hỏi một số kinh nghiệm và sự thoải mái khi thực hiện hệ thống mà bạn đã mô tả - thật không may, tôi không có sự xa xỉ đó. :) Việc thực hành với phần mềm sẽ được thực hiện trong phòng mà tôi sẽ tạo điều kiện, tuy nhiên tôi không muốn phải nhìn qua vai mình. Nhận xét của bạn trong câu hỏi chính xác là những gì tôi dự đoán - ngay cả khi họ lấy một bản sao của VM, lần tiếp theo họ khởi động nó, VM sẽ tự xóa sạch mọi thứ. (Tất nhiên tôi thậm chí sẽ không đề cập đến sự tồn tại của tập lệnh xóa mọi thứ.)
techTechmo

Vấn đề là một khi họ thấy VM tự hủy, họ sẽ lấy một bản sao khác từ thẻ USB của họ, khởi động VM từ đĩa CD trực tiếp và bắt đầu chọc ngoáy cho đến khi họ tìm ra cách để tự giết mình. Miễn là bạn cảm thấy thoải mái với thực tế là một người dùng có đủ động lực có thể vượt qua nó, thì bạn là vàng. Sau đó, tất cả những gì bạn phải làm là cập nhật hình ảnh VM trước mỗi lớp ...
Michael Kohne

Tôi sẽ mã hóa hệ thống tập tin VM khi cài đặt (hy vọng - đây sẽ là lần đầu tiên tôi thử làm như vậy), vì vậy đó là một cách khác để can ngăn kẻ trộm. Như tôi đã nói, tất cả những rắc rối này có thể sẽ là quá mức cần thiết - người dùng trung bình có thể không nghĩ rằng nó đáng để gặp rắc rối khi tiếp tục chọc ngoáy. Nhưng dù sao thì tôi thực sự muốn giả định điều tồi tệ nhất - vi phạm bản quyền là tiêu chuẩn ở đây. Phần mềm tôi sẽ sử dụng có nguồn gốc từ Windows: điều tốt là nó hoạt động trên Linux thông qua Wine. Và tôi thà chuẩn bị mọi thứ trên Linux bởi vì thành thật mà nói, việc sao chép phần mềm từ đó sẽ khó hơn nhiều. Cảm ơn một lần nữa!
techTechmo
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.