Một điều cần lưu ý khi bố trí các phân vùng của bạn là các chế độ thất bại. Thông thường câu hỏi đó có dạng: "Điều gì xảy ra khi phân vùng x đầy?" Voretaq7 thân yêu đã đưa ra tình huống đầy đủ /
gây ra bất kỳ số lượng các vấn đề khó chẩn đoán. Hãy xem xét một số tình huống cụ thể hơn.
Điều gì xảy ra nếu phân vùng lưu trữ nhật ký của bạn đã đầy? Bạn mất dữ liệu kiểm toán / báo cáo và đôi khi bị kẻ tấn công sử dụng để che giấu hoạt động của họ. Trong một số trường hợp, hệ thống của bạn sẽ không xác thực người dùng mới nếu hệ thống không thể ghi lại sự kiện đăng nhập của họ.
Điều gì xảy ra trên một hệ thống dựa trên RPM khi đã /var
đầy? Trình quản lý gói sẽ không cài đặt hoặc cập nhật các gói và tùy thuộc vào cấu hình của bạn, có thể bị lỗi âm thầm.
Việc lấp đầy một phân vùng rất dễ dàng, đặc biệt là khi người dùng có khả năng viết thư cho nó. Để giải trí, hãy chạy lệnh này và xem bạn có thể tạo một tệp khá lớn nhanh như thế nào : cat /dev/zero > zerofile
.
Nó cũng vượt ra ngoài việc lấp đầy các phân vùng, khi bạn đặt các vị trí trên các điểm gắn kết khác nhau, bạn cũng có thể tùy chỉnh các tùy chọn gắn kết của chúng.
Điều gì xảy ra khi /dev/
không được gắn kết với noexec
? Do /dev
thường được cho là được duy trì bởi HĐH và chỉ chứa các thiết bị nên nó thường được sử dụng để che giấu các chương trình độc hại. Rời khỏi noexec
cho phép bạn thực hiện khởi chạy nhị phân được lưu trữ ở đó.
Vì tất cả những lý do này và hơn thế nữa, nhiều hướng dẫn cứng sẽ thảo luận về phân vùng là một trong những bước đầu tiên được thực hiện. Trong thực tế, nếu bạn đang xây dựng một máy chủ mới, làm thế nào để phân vùng đĩa gần như chính xác là điều đầu tiên bạn phải quyết định và thường là khó khăn nhất để thay đổi sau này. Tồn tại một nhóm được gọi là Trung tâm bảo mật Internet tạo ra các hướng dẫn cấu hình dễ đọc. Bạn có thể tìm thấy một hướng dẫn cho Hệ điều hành cụ thể của bạn và xem bất kỳ chi tiết cụ thể nào họ có thể nói.
Nếu chúng ta xem RedHat Enterprise Linux 6, sơ đồ phân vùng được đề xuất là:
# Mount point Mount options
/tmp nodev,nosuid,noexec
/var
/var/tmp bind (/tmp)
/var/log
/var/log/audit
/home nodev
/dev/shm nodev,nosuid,noexec
Nguyên tắc đằng sau tất cả những thay đổi này là để ngăn chặn chúng tác động lẫn nhau và / hoặc để hạn chế những gì có thể được thực hiện trên một phân vùng cụ thể. Lấy các tùy chọn /tmp
cho ví dụ. Điều đó nói rằng không có nút thiết bị nào có thể được tạo ở đó, không có chương trình nào có thể được thực thi từ đó và bit set-uid không thể được đặt trên bất cứ thứ gì. Về bản chất, /tmp
hầu như luôn luôn có thể ghi trên thế giới và thường là một loại hệ thống tập tin đặc biệt chỉ tồn tại trong bộ nhớ. Điều này có nghĩa là kẻ tấn công có thể sử dụng nó như một điểm dễ dàng để thả và thực thi mã độc, sau đó đánh sập (hoặc đơn giản là khởi động lại) hệ thống sẽ xóa sạch tất cả các bằng chứng. Vì chức năng của /tmp
không yêu cầu bất kỳ chức năng nào, chúng tôi có thể dễ dàng vô hiệu hóa các tính năng và ngăn chặn tình huống đó.
Các vị trí lưu trữ nhật ký /var/log
và /var/log/audit
được khắc lên để giúp chúng thoát khỏi tình trạng cạn kiệt tài nguyên. Ngoài ra, Audd có thể thực hiện một số điều đặc biệt (thường là trong môi trường bảo mật cao hơn) khi bộ lưu trữ nhật ký của nó bắt đầu đầy. Bằng cách đặt nó trên phân vùng của nó, phát hiện tài nguyên này thực hiện tốt hơn.
Để dài dòng hơn và trích dẫn mount(8)
, đây chính xác là những tùy chọn được sử dụng ở trên:
noexec Không cho phép thực thi trực tiếp bất kỳ nhị phân nào trên hệ thống tệp được gắn. (Cho đến gần đây, dù sao cũng có thể chạy nhị phân bằng cách sử dụng một lệnh như /lib/ld*.so / mnt / binary. Thủ thuật này thất bại kể từ Linux 2.4.25 / 2.6.0.)
gật đầu Không giải thích ký tự hoặc chặn các thiết bị đặc biệt trên hệ thống tệp.
nosuid Không cho phép các bit định danh người dùng tập hợp hoặc bit định danh nhóm tập hợp có hiệu lực. (Điều này có vẻ an toàn, nhưng thực tế là không an toàn nếu bạn đã cài đặt suidperl (1).)
Từ góc độ bảo mật, đây là những lựa chọn rất tốt để biết vì chúng sẽ cho phép bạn đặt các biện pháp bảo vệ trên chính hệ thống tập tin. Trong một môi trường an toàn cao, bạn thậm chí có thể thêm noexec
tùy chọn vào /home
. Người dùng tiêu chuẩn của bạn sẽ khó viết các tập lệnh shell để xử lý dữ liệu, phân tích các tệp nhật ký, nhưng điều đó cũng sẽ ngăn họ thực thi một tệp nhị phân sẽ nâng cao các đặc quyền.
Ngoài ra, hãy nhớ rằng thư mục gốc mặc định của người dùng gốc là /root
. Điều này có nghĩa là nó sẽ nằm trong /
hệ thống tập tin chứ không phải trong /home
.
Chính xác số tiền bạn cung cấp cho mỗi phân vùng có thể thay đổi rất nhiều tùy thuộc vào khối lượng công việc của hệ thống. Một máy chủ điển hình mà tôi đã quản lý sẽ hiếm khi yêu cầu tương tác giữa người với người và như vậy /home
phân vùng không cần phải quá lớn. Điều tương tự cũng áp dụng /var
vì nó có xu hướng lưu trữ dữ liệu khá phù du được tạo và xóa thường xuyên. Tuy nhiên, một máy chủ web thường sử dụng /var/www
làm sân chơi của nó, có nghĩa là hoặc cũng cần phải nằm trên một phân vùng riêng hoặc /var/
cần phải được làm lớn.
Trong quá khứ tôi đã đề nghị những điều sau đây là đường cơ sở.
# Mount Point Min Size (MB) Max Size (MB)
/ 4000 8000
/home 1000 4000
/tmp 1000 2000
/var 2000 4000
swap 1000 2000
/var/log/audit 250
Chúng cần được xem xét và điều chỉnh theo mục đích của hệ thống và cách môi trường của bạn hoạt động. Tôi cũng sẽ khuyên bạn nên sử dụng LVM và không phân bổ toàn bộ đĩa. Điều này sẽ cho phép bạn dễ dàng phát triển hoặc thêm các phân vùng nếu những thứ đó là bắt buộc.