Chạy một máy chủ web với một hệ thống tệp được mã hóa (tất cả hoặc một phần của nó)


6

Tôi cần một máy chủ web (LAMP) chạy bên trong một máy ảo (# 1) chạy dưới dạng dịch vụ (# 2) ở chế độ không đầu (# 3) với một phần hoặc toàn bộ hệ thống tệp được mã hóa (# 4).

Máy ảo sẽ được khởi động mà không có sự can thiệp của người dùng và cung cấp quyền truy cập vào một ứng dụng web cho người dùng trong máy chủ. Các điểm # 1, # 2 và # 3 được kiểm tra và được chứng minh là hoạt động tốt với Sun VirtualBox, vì vậy câu hỏi của tôi là dành cho # 4:

Tôi có thể mã hóa tất cả hệ thống tệp và vẫn truy cập vào máy chủ web (sử dụng trình duyệt) hay GRUB sẽ hỏi tôi mật khẩu không?

Nếu mã hóa tất cả hệ thống tệp không phải là một tùy chọn, tôi chỉ có thể mã hóa /home/var/www? Apache / PHP có thể sử dụng các tệp trong /home hoặc là /var/www mà không yêu cầu mật khẩu hoặc gắn các phân vùng này bằng tay?


tại sao bạn muốn làm việc này?
akira

gửi hình ảnh cho khách hàng với dữ liệu hợp lý - khách hàng của chúng tôi muốn dữ liệu này chỉ có thể được truy cập thông qua trình duyệt web

Bạn cũng có thể muốn xem xét mã hóa khu vực của hệ thống tệp nơi lưu trữ cơ sở dữ liệu trang web của bạn. Tất nhiên, tôi giả sử rằng trang web của bạn sử dụng cơ sở dữ liệu, như nhiều loại khác, ví dụ: Wordpress, Drupal và khung / cms khác. Quá trình cơ sở dữ liệu, ví dụ: từ mysql hoặc maria sẽ lưu trữ db trong hệ thống tệp dưới dạng tệp ở đâu đó. +1 Câu hỏi hay.
therobyouknow

Bạn cũng có thể muốn xem xét mã hóa trao đổi của mình. Đây là một ví dụ: Askubfox.com/questions/463661/
therobyouknow

Câu trả lời:


11

Nếu bạn muốn mã hóa toàn bộ đĩa, bạn phải nhập mật khẩu trong quá trình bootphase, đây có thể không phải là điều bạn muốn. Tôi khuyên bạn nên tạo một phân vùng được mã hóa bằng cách sử dụng luks và đặt tất cả dữ liệu hợp lý vào phân vùng đó. Sau khi máy đã khởi động, bạn có thể ssh vào hộp và mở khóa phân vùng.

Về cách thực hiện mã hóa, nó rất dễ dàng:

  • Tạo phân vùng theo ý muốn
  • Định dạng phân vùng với luks:

    cryptsetup -c twofish -y luksFormat /dev/sda4
    
  • Mở khóa phân vùng bằng luks:

    cryptsetup luksOpen /dev/sda4 encwww
    
  • Định dạng phân vùng được mã hóa với fs bạn chọn:

    mkfs.ext3 /dev/mapper/encwww
    
  • Bạn đã hoàn thành và bây giờ có thể gắn kết /dev/mapper/encwww

Để mở khóa phân vùng một lần nữa sau khi khởi động lại, bạn cần làm:

cryptsetup luksOpen /dev/sda4 encwww

và sau đó gắn kết phân vùng.


Dựa trên câu trả lời của bạn, tôi không thấy điều gì ngăn cản quá trình lừa đảo đã giành được quyền truy cập root từ việc chạy các lệnh đó và xem dữ liệu nhạy cảm của bạn. Bạn có thể giải thích?
trusktr

3
@trusktr không có quá trình sẽ không, vì nó không biết mật khẩu. Nhưng sau khi bạn nhập mật khẩu, nó sẽ có thể đọc tất cả các tệp. Nếu bạn có rootkit trên máy tính, tất nhiên bạn sẽ có nhiều vấn đề hơn.
Tim Schumacher

+1 Câu trả lời hay, tôi sẽ áp dụng điều đó cho nhu cầu của riêng tôi. Tôi cũng sẽ xem xét cách mã hóa khu vực lưu trữ cơ sở dữ liệu và phản hồi nếu tôi có thể. Vấn đề này có vẻ như sẽ trở nên phù hợp hơn với luật GDPR sắp tới.
therobyouknow

1
@TimSchumacher Vì vậy, mỗi khi máy chủ cần khởi động lại, mật khẩu sudo là cần thiết để gắn kết hoặc giải mã nội dung, phải không?
SaidbakR

1

cryptsetup và dm-crypt không có sẵn trên các bản phân phối linux-linux và nó là một giải pháp khá kỳ lạ, bạn nên thử làm theo cách thông thường:

modprobe loop
modprobe cryptoloop
modprobe aes

dd if=/dev/urandom of=/yourContainerFile bs=`expr 1024 \* 1024 \* 1024` count=yourSizeInGigaBytes

losetup -e aes-256 /dev/loop0 /yourContainerFile

mkfs.ext3 /dev/loop0

Bây giờ bạn đã sẵn sàng để gắn kết / dev / loop0 bất cứ nơi nào bạn muốn - mã hóa mạnh mẽ, được thực hiện chính xác; bạn thậm chí có thể định cấu hình fstab của mình theo cách cho phép đọc khóa mã hóa từ thanh USB phải được cắm vào @ boot ... cách linh hoạt và an toàn hơn - & gt; Không bao giờ làm theo các hướng dẫn sử dụng "twofish" hoặc một cái gì đó tương tự như mã hóa ... thuật toán này chưa được phân tích đầy đủ, không ai biết liệu nó có an toàn không.

Oh và: nếu bạn muốn bảo mật vượt quá phạm vi và sức mạnh của các cơ quan bí mật: sử dụng

/dev/random

thay thế. Trình nền thu thập entropy của Linux cung cấp các giá trị "tốt" về mặt thống kê, nhưng nó rất chậm.

Và nếu bạn thực sự hoang tưởng, hãy mua cho mình một thiết bị có thể nhận & amp; đo bức xạ nền vũ trụ, kết nối nó với máy tính của bạn và để cho nó viết đến / dev / ngẫu nhiên :-D


1
Theo vi.wikipedia.org/wiki/Cryptoloop , dm-crypt ngăn chặn một lỗ hổng nhất định (watermarking) được nhìn thấy với cryptoloop. suy nghĩ của bạn về điều đó là gì?
trusktr
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.