Trong đó / (root của filesystem) chứa các thư mục khác và trong các thư mục này chứa các loại software, công cụ, thông tin, cấu hình... cho cả một *nix system
Hacking Security Sites part 17
AMBIENT/
Chủ đề:
Nội dung Text: Hacking Security Sites part 17
- - cấu trúc filesystem của *nix nói chung (có những điểm tương đồng và dị biệt, nhưng ở
đây chỉ đề cập đến những điểm khái quát mà thôi), root của filesystem là điểm khởi đầu
của một cấu trúc "cây" (tree hierachy):
Code:
/
|--bin
|--boot
|--dev
|--etc
|--lib
|--mnt
|--opt
|--sbin
|--tmp
|--usr
|--var
|......
trong đó / (root của filesystem) chứa các thư mục khác và trong các thư mục này chứa các
loại software, công cụ, thông tin, cấu hình... cho cả một *nix system.
- nếu một user có quyền truy cập đến / (root của filesystem) thì user ấy có cơ hội truy
dụng các thông tin và công cụ trong những thư mục thuộc /. Ðể giảm thiểu và quản lý
quyền truy cập của một user như Apache ở trên là điều rất khó kiện toàn cho nên "chroot"
là phương tiện để ép người dùng chỉ được quyền truy cập và hoạt động trong một vùng
nhất định nào đó, loại bỏ các trường hợp thiếu sót trong cơ chế quản lý quyền truy dụng.
- sau khi áp đặt "chroot" cho user Apache, thay vì "hắn" có thể thấy và truy cập vào các
thư mục thuộc loại "cấm kị", "hắn" chỉ có thể làm việc trong khuôn khổ:
Code:
/apache-root
|--httpd
|--dev
|--etc
|--var
| |--run
|--usr
| |--lib
| |--libexec
| |--local
- | | |--apache
| | | |--bin
| | | |--logs
| | | |--conf
|--www
như quá trình xác định trong phần bài viết trên. User Apache không có cơ hội truy cập
vào các thư mục quan trọng như /etc, /bin, /sbin... sau khi đã được "chroot". User Apache
chỉ có thể xử dụng những thông tin nào cần thiết và vừa đủ để web server này hoạt động
mà thôi. Thủ thuật "chroot" đôi khi còn được gọi là "jail" (cầm tù) theo đúng tinh thần
chroot.
Mọi góp ý xin gởi lên Diễn Đàn Tin Học - VNInformatics.
Hẹn gặp lại các bạn!
1. "Phiên bản mới nhất" được tính vào thời điểm bài viết được đăng.
Kiện Toàn Bảo Mật Cho Apache - Phần 2
Chỉnh lý Apache
Bước đầu tiên là tháo bỏ hồ sơ /chroot/httpd/usr/local/apache/conf/httpd.conf và tạo
một hồ sơ mới thay thế vào với nội dung tương tự như sau:
Code:
# =================================================
# Basic settings
# =================================================
ServerType standalone
ServerRoot "/usr/local/apache"
PidFile /usr/local/apache/logs/httpd.pid
ScoreBoardFile /usr/local/apache/logs/httpd.scoreboard
ResourceConfig /dev/null
AccessConfig /dev/null
# =================================================
# Performance settings
# =================================================
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MinSpareServers 5
MaxSpareServers 10
- StartServers 5
MaxClients 150
MaxRequestsPerChild 0
# =================================================
# Apache's modules
# =================================================
ClearModuleList
AddModule mod_log_config.c
AddModule mod_mime.c
AddModule mod_dir.c
AddModule mod_access.c
AddModule mod_auth.c
# =================================================
# General settings
# =================================================
Port 80
User apache
Group apache
ServerAdmin Webmaster@www.ebank.lab
UseCanonicalName Off
ServerSignature Off
HostnameLookups Off
ServerTokens Prod
DirectoryIndex index.html
DocumentRoot "/www/vhosts"
# =================================================
# Access control
# =================================================
Options None
AllowOverride None
Order deny,allow
Deny from all
Order allow,deny
Allow from all
-
Order allow,deny
Allow from all
# =================================================
# MIME encoding
# =================================================
TypesConfig /usr/local/apache/conf/mime.types
DefaultType text/plain
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
AddType application/x-tar .tgz
# =================================================
# Logs
# =================================================
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
ErrorLog /usr/local/apache/logs/error_log
CustomLog /usr/local/apache/logs/access_log combined
# =================================================
# Virtual hosts
# =================================================
NameVirtualHost *
DocumentRoot "/www/vhosts/www.ebank.lab"
ServerName "www.ebank.lab"
ServerAlias "www.e-bank.lab"
ErrorLog logs/www.ebank.lab/error_log
CustomLog logs/www.ebank.lab/access_log combined
DocumentRoot "/www/vhosts/www.test.lab"
- ServerName "www.test.lab"
ErrorLog logs/www.test.lab/error_log
CustomLog logs/www.test.lab/access_log combined
Cấu hình trên chỉ có những lệnh cần thiết để thoả mãn chức năng hoạt động và các trù bị
bảo mật. Trong cấu hình đưa ra ở trên có hai hosts ảo được Web server hỗ trợ:
- www.ebank.lab (www.e-bank.lab)
- www.test.lab
Nội dung của các Web site trên được chứa trong các thư mục:
- /chroot/httpd/www/vhosts/www.ebank.lab
- /chroot/httpd/www/vhosts/www.test.lab
Mỗi Web site có riêng log files được chứa trong các thư mục:
- /chroot/httpd/usr/local/apache/logs/www.ebank.lab
- /chroot/httpd/usr/local/apache/logs/www.test.lab
Các thư mục trên phải được tạo ra trước khi Apache hoạt động lần đầu tiên - nếu không
Apache sẽ không làm việc đúng mức. Chủ nhân của các thư mục trên nên là root:sys, và
chủ quyền nên chỉnh thành 0755.
So sánh với hồ sơ cấu hình mặc định của Apache, có những thay đổi sau:
* Số modules được ứng động đã giảm thiểu đáng kể,
* Apache không tiết lộ thông tin version number (phiên bản) (dùng các directives:
ServerTokens, ServerSignature),
*
Các process của Apache (ngoại trừ process của root) được chỉnh định bằng chủ quyền
riêng biệt của user/group bình thường (dùng các directives: User, Group),
*
Apache chỉ cho phép truy cập vào các thư mục, các thư mục con và các hồ sơ đã được
- quy định cụ thể trong hồ sơ cấu hình (dùng các directives: Directory, Allow); mọi
requests khác đều bị từ chối theo mặc định,
*
Apache sẽ log nhiều thông tin hơn với các HTTP requests.