Những khuyến nghị này nằm ngoài đỉnh đầu của tôi và không có ý định toàn diện.
Hãy xem Bastille, đó là một loạt các kịch bản thực hiện các thực tiễn tốt nhất trong Linux.
Không gửi dữ liệu xác thực qua các giao thức văn bản gốc. Ví dụ: vô hiệu hóa FTP. Nếu bạn gửi dữ liệu xác thực qua Apache, hãy sử dụng SSL.
Vô hiệu hóa và loại bỏ bất kỳ phần mềm không cần thiết bao gồm giao diện GUI.
Kiểm tra bất kỳ tệp nào với bit SUID được đặt và xóa. (Điều này sẽ hạn chế nghiêm trọng các khả năng không phải là root. Hiểu được ý nghĩa của từng thay đổi riêng lẻ.)
Kiểm tra các thư mục có thể ghi công khai và loại bỏ bit có thể ghi. (Để / tmp một mình.)
Tránh chạy bất kỳ trình nền nào như root.
Nghiên cứu tất cả các phần mềm đa người dùng lắng nghe chi tiết về các ổ cắm để biết các thực tiễn tốt nhất về bảo mật.
Tránh thêm người dùng vào hệ thống là một trong những cách tiếp cận tốt nhất. Hệ thống nhiều người dùng đòi hỏi sự chú ý nhiều hơn đến chi tiết.
Thực thi các tiêu chuẩn mật khẩu. Ví dụ: tối thiểu 10 ký tự, ký tự không chữ và số, sử dụng chữ cái và số. Điều này là để làm cho vũ phu buộc khó khăn hơn trong trường hợp thỏa hiệp tập tin mật khẩu. Thực thi điều này thông qua hệ thống.
Khóa người dùng sau 5 lần xác thực thất bại với khóa tối thiểu 10 phút. Duy trì lịch sử mật khẩu để người dùng không thể sử dụng 5 mật khẩu trước đây.
Nếu bạn có môi trường rộng hơn, sử dụng phân tách mạng với nhiều mạng con để cách ly rủi ro là một yêu cầu tuyệt đối. Nếu một môi trường nhỏ hơn, chạy tường lửa trên hệ thống cục bộ để hạn chế phơi nhiễm được khuyến nghị. Ví dụ: chỉ cho phép SSH vào IP của bạn. tcpwrappers cũng có thể được sử dụng cho một lớp thêm. (/etc/hosts.allow, /etc/hosts.deny)
Và, tất nhiên, giữ cho tất cả các phần mềm cập nhật. Đặc biệt là daemon công cộng.
Với SSH:
- Vô hiệu hóa giao thức SSH 1
- Chỉ cho phép xác thực root
without-password
(chỉ khóa)
Với Apache:
- Vô hiệu hóa bất kỳ mô-đun không cần thiết
- Vô hiệu hóa .htaccess và thư mục công cộng
- Vô hiệu hóa FollowSymlink và mọi tùy chọn không cần thiết
- Không cài đặt PHP nếu bạn không cần nó.
Với MySQL:
- Vô hiệu hóa người dùng mặc định.
- Đừng sử dụng máy chủ ký tự đại diện.
- Hãy chắc chắn để đặt máy chủ duy nhất cho mọi người dùng.
- Đừng nghe trên tcp trừ khi cần thiết. (Không thể tránh khỏi bất thường.)
- Hạn chế đặc quyền người dùng ứng dụng càng nhiều càng tốt. (CHỌN, CHERTN, CẬP NHẬT, XÓA lý tưởng để viết và CHỌN để đọc)
Tôi khuyên bạn nên nghiên cứu điều chỉnh php.ini để bảo mật cụ thể. Đây là phần mềm rủi ro hơn theo mặc định.
Bastille