chroot lại quan trọng đến thế?" Ðối với những ai đã quen thuộc với cấu trúc filesystem trên một *nix nào đó, thì trả lời cho câu hỏi này khá dễ dàng.. Tuy nhiên, đối với những ai chưa nắ
Trang 1chroot lại quan trọng đến thế?"
Ðối với những ai đã quen thuộc với cấu trúc filesystem trên một *nix nào đó, thì trả lời cho câu hỏi này khá dễ dàng Tuy nhiên, đối với những ai chưa nắm rõ cấu trúc này thì hơi khó hơn một tí Từ câu nói ở trên "Tổng thể mà nói, thủ thuật
"chrooting" có nghĩa là tạo một cấu trúc nguồn thư mục mới, dời chuyển các hồ sơ daemon vào đó và chạy các daemon thích ứng trong môi trường mới này Nhờ vào
đó, daemon (và cái process con) chỉ sẽ truy dụng đến cấu trúc thư mục mới." có thể diễn giải như sau:
- 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
Trang 2- 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:
# =================================================
Trang 3# 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
Trang 4ServerSignature Off
HostnameLookups Off
ServerTokens Prod
<IfModule mod_dir.c>
DirectoryIndex index.html
</IfModule>
DocumentRoot "/www/vhosts"
# ================================================= # Access control
# ================================================= <Directory />
Options None
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory "/www/vhosts/www.ebank.lab">
Order allow,deny
Allow from all
</Directory>
<Directory "/www/vhosts/www.test.lab">
Order allow,deny
Allow from all
</Directory>
# ================================================= # MIME encoding
# ================================================= <IfModule mod_mime.c>
TypesConfig /usr/local/apache/conf/mime.types
</IfModule>
DefaultType text/plain
<IfModule mod_mime.c>
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
AddType application/x-tar tgz
</IfModule>
# =================================================
Trang 5# 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 *
<VirtualHost *>
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
</VirtualHost>
<VirtualHost *>
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
</VirtualHost>
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
Trang 6Nội dung của các Web site trên được chứa trong các thư mục: