Tôi nghĩ rằng việc tách mọi thứ thành các hệ thống tệp khác nhau thường không giúp/cải thiện bảo mật. Nếu ai đó đột nhập vào hệ thống khi nó đang chạy, thì dù sao thì mọi thứ đều được gắn kết và không có sự khác biệt logic nào khi có mọi thứ trong một hệ thống tệp. Những lý do đã được đưa ra trong các tài liệu bạn nghiên cứu?
Điều đó nói rằng, nó có thể hỗ trợ hiệu suất (các hệ thống tệp khác nhau hoặc phần cứng khác bên dưới các điểm gắn kết này) và rút ngắn thời gian khắc phục sự cố (ví dụ:nếu chỉ ổ SSD chứa /var bị hỏng, bạn chỉ phải khôi phục bản sao lưu đó và phần còn lại vẫn chạy).
Bạn đã hỏi về kích thước phân vùng được đề xuất:
- Vì
/
bạn tốt với 15-20 GB. Tôi chưa bao giờ cần nhiều hơn thế cho một máy chủ (chạy máy chủ web + máy chủ thư).
tráo đổi
Tôi thường đặt trên ổ đĩa/phân vùng riêng có cùng kích thước với RAM - đơn giản là để tính năng tạm dừng vào đĩa có thể hoạt động. Mọi người thường khuyên dùng kích thước 2xRAM, nhưng với kích thước RAM ngày nay, khi bạn gặp phải tình huống cần một lượng trao đổi nghiêm trọng, thì bạn vẫn gặp rắc rối. Bạn sẽ nhận thấy điều đó từ sự chậm chạp nghiêm trọng và sau đó bạn nên nhanh chóng tăng RAM khả dụng.
/khởi động
chỉ cần 500 MB, cung cấp không gian cho hơn 8 phiên bản kernel+initrd. Đảm bảo chạy apt autoremove
thường xuyên, để giữ cho nó được cắt bớt sau khi nâng cấp kernel.
- tôi sẽ giữ
/usr
và /opt
như thư mục trên /
, chỉ không thấy lợi ích khi chuyển chúng sang hệ thống tệp của riêng chúng.
- Như được mô tả trong hướng dẫn làm cứng này, có một khối lượng riêng cho
/tmp
có ý nghĩa, vì nó cho phép bạn làm cho thư mục có thể ghi trên thế giới đó bị hạn chế hơn - cả về dung lượng nó có thể sử dụng trong tổng dung lượng có sẵn và những gì có thể được thực hiện với các tệp được lưu trữ ở đó. Hướng dẫn khuyến nghị sử dụng các tùy chọn gật đầu, nosuid và noexec khi gắn hệ thống tệp. Hướng dẫn chỉ cung cấp các lệnh gắn kết để "sử dụng một lần". Dịch dòng này thành một dòng trong /etc/fstab có nghĩa là bạn đặt gật đầu, nosuid, noexec
vào cột (tùy chọn) thứ 4 của dòng nơi bạn gắn âm lượng /tmp chuyên dụng vào /tmp
.
- Điều đó để lại cho chúng tôi
/Trang Chủ
và /var
- đó thường là những thứ "quan trọng". Trên máy chủ của tôi /Trang Chủ
là khá nhiều trống rỗng, nhưng /var
giữ public_html, nhật ký, cơ sở dữ liệu, v.v. Vì vậy, tôi giữ /Trang Chủ
như một thư mục trên /
, nhưng /var
chắc chắn có khối lượng riêng và được sao lưu thường xuyên nhất. Cung cấp cho nó tất cả không gian còn lại sau khi thực hiện ở trên.
Sau đó, bạn hỏi làm thế nào để thực hiện quá trình chuyển đổi:
- Trong hệ thống đang chạy, nơi mọi thứ đang bật
/
, đính kèm đĩa mới (tệp VDI, ...), chuẩn bị nó bằng pvcreate, lvcreate và sau đó là các hệ thống tệp bạn chọn (ví dụ: mkfs.ext4).
- Sau đó, tạo các điểm gắn kết tạm thời trong/mnt, ví dụ: /mnt/newroot, /mnt/newvar, ... và gắn các hệ thống tệp vào đó.
- Sau đó sử dụng
rsync -xaP <nguồn>/ <đích>/
cho mỗi hệ thống tập tin của bạn. Tùy chọn '-x' sẽ ngăn rsync vượt qua các ranh giới của hệ thống tệp, tức là nếu bạn làm như vậy rsync -xaP / /mnt/newroot/
nó cũng sẽ không sao chép/var,/home hoặc thậm chí tất cả các hệ thống tệp mới được gắn trong/mnt. '-a' sẽ đảm bảo các quyền, v.v. sẽ được tiếp quản mà không cần sửa đổi và '-P' hiển thị tiến trình. Để biết chi tiết, vui lòng tham khảo người đàn ông rsync
.
Sau khi hoàn thành, hãy chỉnh sửa /mnt/newroot/etc/fstab
và đảm bảo rằng bạn liệt kê tất cả các hệ thống tệp tại các điểm gắn kết thích hợp. Nếu bạn đã đi xa đến mức đó, điều này sẽ không quá khó (vì bạn đã chọn tất cả các tên /dev/mapper/..., hệ thống tệp, v.v.).
Bạn cũng sẽ phải sử dụng grub-install và có thể update-grub để làm cho đĩa mới có khả năng khởi động, nhưng tôi không chắc lắm về quy trình chính xác. Với VM bạn có thể dễ dàng dùng thử và nếu không khởi động được thì gắn lại đĩa cũ và sửa.
Để tham khảo, đây là phiên shell cung cấp cho bạn một số lệnh cụ thể về phân vùng + LVM + định dạng + tham chiếu trong chủ đề fstab. Xin lưu ý rằng rất có thể bạn sẽ phải sửa đổi chúng, chẳng hạn nếu thiết bị của bạn không phải là /dev/sda, nếu bạn muốn các hệ thống tệp khác nhau, v.v. - đây chỉ là một ví dụ.
# Sau khi sử dụng fdisk để tạo một phân vùng bao phủ toàn bộ thiết bị,
# nó trông như thế này:
root@ubuntu:~# fdisk -l /dev/sda
Đĩa /dev/sda: 100 GiB, 107374182400 byte, 209715200 cung
Kiểu đĩa: VBOX HARDDISK
Đơn vị: cung từ 1 * 512 = 512 byte
Kích thước cung (logic/vật lý): 512 byte / 512 byte
Kích thước I/O (tối thiểu/tối ưu): 512 byte / 512 byte
Loại nhãn đĩa: gpt
Mã định danh đĩa: 18ACB4C9-3F33-7041-8BEB-D819F138A809
Thiết bị Bắt đầu Kết thúc Sector Kích thước Loại
/dev/sda1 2048 209715166 209713119 100G Linux LVM
# Tạo volume vật lý cho LVM
root@ubuntu:~# pvcreate /dev/sda1
Khối lượng vật lý "/dev/sda1" đã được tạo thành công.
# Tạo một nhóm âm lượng có tên "vg1" cho LVM sẽ
# giữ tất cả khối lượng logic của chúng tôi
root@ubuntu:~# vgcreate vg1 /dev/sda1
Đã tạo thành công nhóm âm lượng "vg1"
# Tạo các khối logic như mô tả ở trên
root@ubuntu:~# lvcreate --name root --size 20G vg1
Khối lượng logic "root" đã được tạo.
root@ubuntu:~# lvcreate --name swap --size 8G vg1
Khối lượng hợp lý "hoán đổi" được tạo ra.
root@ubuntu:~# lvcreate --name boot --size 500M vg1
Khối lượng logic "khởi động" đã được tạo.
root@ubuntu:~# lvcreate --name tmp --size 5G vg1
Khối lượng hợp lý "tmp" đã được tạo.
# Hãy nhìn vào khối lượng hợp lý
root@ubuntu:~# lvs
LV VG Attr LSize Pool Dữ liệu gốc % Meta% Nhật ký di chuyển Cpy%Sync Chuyển đổi
khởi động vg1 -wi-a----- 500,00m
gốc vg1 -wi-a----- 20,00g
trao đổi vg1 -wi-a----- 8,00g
tmp vg1 -wi-a----- 5,00g
# Hãy xem nhóm âm lượng và xem dung lượng còn lại là bao nhiêu
root@ubuntu:~# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 1 4 0 wz--n- <100,00g <66,51g
# Sử dụng không gian còn lại cho ổ đĩa logic cuối cùng, var
root@ubuntu:~# lvcreate --name var --size 66.5G vg1
Khối lượng logic "var" đã được tạo.
# Có một cái nhìn khác về các tập
root@ubuntu:~# lvs
LV VG Attr LSize Pool Dữ liệu gốc % Meta% Nhật ký di chuyển Cpy%Sync Chuyển đổi
khởi động vg1 -wi-a----- 500,00m
gốc vg1 -wi-a----- 20,00g
trao đổi vg1 -wi-a----- 8,00g
tmp vg1 -wi-a----- 5,00g
var vg1 -wi-a----- 66,50g
# Định dạng tất cả các ổ bằng hệ thống tệp ext4
cho tôi trong /dev/mapper/vg1-*; làm mkfs.ext4 $i; xong
# Biến vg1-swap thành không gian hoán đổi
mkswap /dev/mapper/vg1-hoán đổi
# Tạo các mục nhập fstab trông như thế này
/dev/mapper/vg1-root / ext4 mặc định 0 1
/dev/mapper/vg1-boot /boot ext4 mặc định 0 2
/dev/mapper/vg1-var /var ext4 mặc định 0 2
/dev/mapper/vg1-tmp /tmp ext4 nosuid,nodev,noexec 0 0
/dev/mapper/vg1-swap không trao đổi sw 0 0