Trao đổi với tôi

http://www.buidao.com

6/12/10

[Net] (Home server) Chương 5: Bảo mật Webserver từ hệ điều hành hỗ trợ

Cấu hình HomeServer :
1.Chương 00: Domain Hosting là gì
2.
Chương 01: Thiết lập homeserver (phần ngoại mạng)
3.Chương 02: Thiết lập homeserver (phần nội mạng)
4.Chương 03: Cài đặt Webserver theo Apache, MySQL, PHPMyAdmin
5.Chương 04: Cài đặt Server theo IIS – PHP5
6.Chương 05: Bảo mật Webserver từ hệ điều hành hỗ trợ
7.Chương 06: Cấu hình ALIAS cho liên kết thư mục
8.Chương 07: Cấu hình ALIAS cho nhiều Domain thật
9.Chương 08: Cấu hình ALIAS cho Subdomain thật
10.Chương 09: Cấu hình SSL cho HomeServer chạy Domain thật
11.Chương 10: Cấu hình Mod Rewrite và Set Rule
12.Chương 11: Cấu hình Mod Security và Set Rule

Chương 5: Bảo mật Webserver từ hệ điều hành hỗ trợ

.:: Sử dụng hệ điều hành Windows để cấu hình bảo mật Apache ::.

1. Vào Control Panel tạo 1 limited account vd là ’sibachao’, set pass. Mặc định account này sẽ nằm chung trong group “Users“.

2. Start > Run > cmd
C:\WINDOWS\system32>net localgroup users sibachao /del
>> remove ’sibachao’ ra khỏi group Users, mục đích là để mình có thể apply ACL (Access Control List) cho sibachao mà ko ảnh hưởng tới các users khác.

Bi giờ config lại Apache service run dưới quyền sibachao:
Start > Run > services.msc
Chọn Apache service property, chọn tab ‘Log On‘ set service logon as sibachao, enter passwd > OK. Stop Apache service lại.


OK, tui dùng winsp sp2, apache bundle là xampp mặc định sẽ cài vào C:\Program Files\xampp, htdocs là xampp\htdocs, apache path là xampp\apache\bin\apache.exe. Mấy bundle khác bạn dùng thì thay path tương tự.

Bi giờ để change ACLs trong win có 2 cách:
- GUI: right click 1 folder, chọn property, nếu có tab ‘Security’ thì nó cho phép config ACL, nếu ko có thì vào Explorer > Tools > Folder Options, scroll xuống dưới uncheck cái box Simple File Sharing sẽ hiện đc tab Security trong win.
- cmd line: cacls.exe có sẵn là 1 program để view/change ACLs.
Start > Run > cmd.

Nói thêm ở đây là do mình đã remove ’sibachao’ ra khỏi group Users nên nó ko còn inherite (kế thừa) perm (quyền) từ Users nữa.

Kể từ bước dưới đây, LUÔN LUÔN thêm switch /E vào để edit ACL có sẵn thay vì replace nó, nếu ko là reinstall win.

C:\>cacls . /C /T /E /R sibachao

>> revoke quyền của sibachao trên toàn C:\ và subfiles, subfolders, cái này ko cần thiết nhưng just 2 make sure

C:\>cacls “C:\Program Files\xampp\” /C /T /E /P sibachao:R
>> ‘R’ access to xampp path, để apache có thể read perl, php nhưng ko cho phép change, vd change php.ini file(Read trong win = view + execute binary file” )

C:\>cacls “C:\Program Files\xampp\apache\bin” /C /T /E /P sibachao:R
>> set ‘R’ access cho apache bin files để start service

Ai hơn nữa có thể set Read only access to .conf file
C:\cacls “C:\Program Files\xampp\apache\conf” /C /T /E /P sibachao:R

C:\>cacls “C:\Program Files\xampp\htdocs” /C /T /E /P sibachao:F
>>set full permission cho webroot

C:\cacls C:\WINDOWS /E /D sibachao
>> deny access của user ’sibachao’ tới winroot

C:\>cacls C:\windows\system32\*.exe /C /E /D sibachao
>> deny access tới system tools

C:\cacls . /C /E /D sibachao
deny access tới C:\ và các file ở root drive.

Tới đây là cũng 70% script-kid drop rùi. Ai muốn config thêm gì thì config

1 số thứ về cacls và permission:
R: R trong win là Generic_read, nghĩa là read, list folder content và execute binary files nhưng ko đc ghi
W: ghi
N: no access
F: full access, read write, browse, change, create ….

Deny > Allow nên trước hết set Allow priv trước, Deny sau.

VD ở trên, nếu ai đó allow full access tới \apache trước, read-only access tới .conf file sau thì quyền ‘not allowed to write’ ở file .conf sẽ có precedence > quyền full allow tới .conf file đc inherit từ parent folder là \apache.

Ai muốn làm home hosting thì viết batch script dùng cacls apply permision vào user folder, add batch script thành logon script cho mỗi user.

apache service user

không cho ping hoặc execute \system32 binary files:

không cho change file trong xampp root

không cho change file bất kỳ

Không cho browser c:\windows và subfolders