Thiết lập chính xác máy chủ ảo apache với nhiều người dùng


15

Cảm ơn trước cho bất kỳ sự giúp đỡ bạn có thể cung cấp. Tôi đã tự học bằng cách sử dụng linux (ubfox), apache, máy chủ ảo và một vài bit liên quan đến bảo mật, mặc dù tôi vẫn chưa kết hợp tất cả những thứ này lại với nhau một cách liền mạch.

Tôi cũng đã học được cách khó khăn từ những sai lầm trong quá khứ liên quan đến việc không thiết lập chính xác tài khoản người dùng và trang web / virtualhost. Tôi ssh vào máy chủ với quyền root (tôi biết, rất tệ) và tạo tất cả các máy chủ và tệp ảo theo cách thủ công, do đó tất cả đều được sở hữu bởi root. Tôi đã có một phiên bản cũ của j Joomla khai thác và mã spam độc hại được chèn trong tất cả các máy chủ ảo khác của tôi.

Tôi đang trong quá trình chuyển sang một máy chủ mới và đang tìm kiếm các bước chính xác để thực hiện liên quan đến việc thiết lập máy chủ ảo và tài khoản người dùng có thể truy cập chúng. Vì chúng tôi sử dụng phần mềm của bên thứ 3, nên đôi khi chúng tôi cần một người khác truy cập vào trang web để điều tra các tệp trang web của họ.

Máy chủ hiện tại của chúng tôi là phiên bản 10.04, tuy nhiên máy chủ mới là phiên bản 12.04. Tất cả các tệp trang web được thiết lập dưới

/home/www/site1.com

/home/www/site2.com

/home/www/site3.com

Vân vân

Nói tóm lại, tôi đoán đây là những gì tôi đang theo đuổi.

  1. Làm cách nào để tôi thiết lập chính xác máy chủ ảo và người dùng, để nó chỉ có quyền truy cập vào các tệp của chính nó chứ không phải bất kỳ máy chủ ảo nào khác trên máy chủ. Ví dụ: nếu trang web đó bị khai thác bằng mã độc, nó không thể lây nhiễm các trang web khác trên máy chủ

  2. Làm cách nào tôi có thể thiết lập người dùng để họ chỉ có thể truy cập vào các tệp đã cho và không truy cập bất kỳ trang web nào khác.

Như đã đề cập trước đây, có rất nhiều bài viết chi tiết cách thực hiện bất kỳ một trong những bước này, nhưng không có gì mang chúng liền mạch với nhau.

Thực sự đánh giá cao sự giúp đỡ bất cứ ai có thể cung cấp. Xin vui lòng yêu cầu bất kỳ thông tin bổ sung mà bạn có thể cần đưa ra lời khuyên. Tôi hiện đang theo hướng dẫn để thiết lập chroot, tuy nhiên tôi sợ rằng tôi không làm điều này một cách chính xác vì tôi đã nhặt được một vài mâu thuẫn trên đường đi. Am cũng đang điều tra jailkit.

Câu trả lời:


6

Vì câu hỏi là kết quả tìm kiếm hàng đầu trong google khi được hỏi "người dùng riêng biệt máy chủ ảo apache", tôi muốn đưa ra một câu trả lời phức tạp hơn dựa trên câu trả lời này . Câu trả lời của tôi không bao gồm usecase của PHP và CGI (bạn sẽ sử dụng suPHP). Nó tập trung vào PHP khi được sử dụng như một mô-đun apache.

Bạn có thể sử dụng mô-đun apache apache2-mpm-itk . Nó có sẵn cho phiên bản hiện tại của apache 2.4. Nó đi kèm với chỉ thị AssignUserID. Lệnh này xác định người dùng và nhóm yêu cầu của máy chủ ảo được xử lý. Đây là một ví dụ về cấu hình trang apache mà tôi đã kết thúc bằng:

<VirtualHost *:80>
ServerName www.site1.com
DocumentRoot /home/www/site1.com
AssignUserID site1 www-data
php_admin_value open_basedir /home/www/site1.com
...
</VirtualHost>

Tất nhiên, điều này chỉ cải thiện bảo mật miễn là các DocumentRoots riêng lẻ được sở hữu bởi người dùng tương ứng của họ và không phải là nhóm có thể truy cập được. Để bảo mật hơn nữa liên quan đến PHP, các tập lệnh bị bỏ tù DocumentRootvới hạn chế open_basingir. Đối với truy cập tập tin phụ trợ, tôi thích SFTP hơn với chroot .

Lưu ý: apache2-mpm-itk hiện không tương thích với mô-đun http2 của Apache.


1

Tôi không coi đây là một câu trả lời cho câu hỏi của bạn. Nhưng vì tôi chưa thể bình luận, tôi phải viết trong khu vực "trả lời". Tôi quản lý web theo mùa, một cách để tôi kiểm tra và thử mọi thứ một cách an toàn là thiết lập môi trường kiểm tra trong máy ảo (ví dụ VirtualBox) hoặc máy tính để bàn "cũ". Một trong những vấn đề rất phổ biến của quản trị viên máy chủ web newbie là hiểu cách các chương trình máy chủ web hoạt động. Trong trường hợp này, tôi giả sử bạn cần hiểu cách thức hoạt động của Apache và ít nhất là hiểu các tệp cấu hình. Tôi thấy rằng Webmin là một công cụ rất hữu ích - cho một người mới - để quản lý Apache và các dịch vụ khác. Bạn phải dành một chút thời gian để thử mọi thứ trong môi trường thử nghiệm để mọi thứ trở nên rõ ràng hơn cho bạn.

Quay trở lại câu hỏi của bạn, tôi nghĩ rằng câu trả lời cũng có thể là một bài viết hướng dẫn hoặc một cuốn sách nhỏ. Kiểm tra các bài viết này để bắt đầu:

https://www.digitalocean.com/community/articles/how-to-set-up-apache-virtual-hosts-on-ub Ubuntu-12-04-lts

http://www.servermom.org/build-ubfox-server-a-complete-guide/


Cảm ơn biocyberman. Đây là khá nhiều các bước cơ bản tôi làm theo và khá quen thuộc. Sự khác biệt duy nhất là tôi chưa từng chọn từng trang web cho một người dùng khác nhau, đây là điều tôi sẽ thử tiếp theo, tuy nhiên điều này có bảo mật các thư mục virtualhosts với nhau không? Jailkit dường như là một phần của giải pháp, nhưng tôi không chắc chắn 100%. Tôi đã chơi với webmin trong quá khứ vì vậy sẽ xem lại nó và xem liệu nó có giúp được với bất kỳ câu hỏi nào tôi có không.
dùng249729
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.