Theo thống kê thực tế, 70% các cuộc tấn công xuất phát từ các máy tính trong mạng nội bộ, 30% số còn lại đến từ các máy mạng bên ngoài. Vì vậy, việc giới hạn đ−ợc các máy tính trong mạng 'dòm ngó' những tài nguyên quan trọng và nhạy cảm trên máy chủ càng nhiều càng tốt. Module mod_access của Apache có khả năng xác định đ−ợc địa chỉ IP của máy trạm có yêu cầu sử dụng dịch vụ Web, dựa trên đó nó áp dụng các chính sách (policy) mà ng−ời quản trị đã khai báo để quyết định máy tính có địa chỉ IP đó có đ−ợc phép sử dụng dịch vụ hay không.
Việc khai báo các chính sách đ−ợc thực hiện bằng việc sửa đổi file cấu hình của Apache (mặc định sẽ đ−ợc l−u vào file /etc/httpd/conf/httpd.conf) và thêm vào các thẻ.
Để ngăn hay cho phép một địa chỉ, dải địa chỉ IP xác định, Apache có thẻ Allow và Deny. Cú pháp của hai thẻ này nh− sau:
Allow from host-or-network #Cho phép host hoặc một giải IP truy cập Deny from host-or-network # Cấm host hoặc một giải IP truy cập
host-or-network có thể là:
• Tên host hoặc tên domain (ví dụ: www.foo.com) • Một địa chỉ IP xác định (ví dụ: 10.0.0.2)
• Một địa chỉ IP và địa chỉ mạng con (ví dụ: 10.0.0.0/255.0.0.0 - xác định tất cả các máy tính có địa chỉ IP có byte đầu là 10, bất kể 3 byte sau là gì).
Với hai thẻ trên, Apache khuyến cáo sử dụng địa chỉ IP thay cho tên
Đồ án tốt nghiệp
từ domain name sang IP và sau đó mới áp dụng các chính sách giới hạn cho địa chỉ này. Việc này dẫn đến sự tiêu tốn tài nguyên của máy chủ.
Nếu muốn dùng cả hai thẻ Allow và Deny thì thứ tự của chúng đ−ợc xác định bằng thẻ Order.
Ví dụ: Để cấu hình chỉ cho các máy có địa chỉ IP có byte đầu tiên là 10 đ−ợc xem nội dung file .html thì khai báo nh− sau:
<Files phpinfor.php>
Order Deny,Allow #không có khoảng trống giữa hai từ khoá Deny from All
Allow from 10.0.0.0/255.0.0.0 </Files>
Sau khi thay đổi nội dung file cấu hình (/etc/httpd/conf/httpd.conf), để thay đổi này có hiệu lực phải khởi động lại dịch vụ Web (httpd) bằng lệnh:
[root@localhost root]# /etc/rc.d/init.d/httpd restart
Apache sẽ thực thi thẻ Deny tr−ớc và thẻ Allow sau. Cách làm này đ−ợc tiến hành t−ơng tự đối với th− mục.
Ví dụ: Có một diễn đàn (forum) đặt tại th− mục vật lý là
/var/www/html/forum . Và muốn giới hạn cho các máy tính thuộc dải địa chỉ từ 10.0.0.1 đến 10.0.0.15 , hoặc máy có địa chỉ 10.0.0.91 thì có thể khai báo nh− sau:
</Directory /var/www/html/forum > Order Deny,Allow
Deny from All
Allow from 10.0.0.1/ 28 Allow from 10.0.0.91
Đồ án tốt nghiệp
Khi đã khai báo nh− vậy thì chỉ có các máy tính có địa chỉ IP thoả mãn điều kiện trên mới có thể truy cập vào diễn đàn này. Tất cả các máy tính có địa chỉ
IP nằm ngoài dải trên sẽ nhận đ−ợc thông báo 'Access forbidden!' nh− hình d−ới đây.