Saturday, October 26, 2013

Xây dựng web apache(bảo mật web )




FOLOW SITE
http://www.tecmint.com/apache-security-tips/

Cấu hình bảo mật Webserver Apache



·         Thư mục đường dẫn nơi lưu trữ trang web :
 /var/www/html  hoặc /var/www
·         Cấu hình chính apache tại /etc/httpd/conf/httpd.conf (RHEL/CentOS/Fedora) and/etc/apache/apache2.conf (Debian/Ubuntu).
  • Default HTTP Port: 80 TCP
  • Default HTTPS Port: 443 TCP
·         Xem file log của apache tại 2 file
1.       Xem file log truy cập tại /var/log/httpd/access_log
2.     Xem file log lỗi tại  /var/log/httpd/error_log
Tiếp theo ngoài việc xây dựng hệ thống web với apache chạy tốt, một điều kiện cũng khá bắt buộc đó là bảo mật hệ thống web server apache.Dưới đây là một trong những bước giúp hoàn thiện cho hệ thống web apache.

1.    Không hiển thị các lỗi show version của apache và hệ điều hành khi truy cập bị lỗi.
-          Theo đường dẫn /etc/httpd/conf/httpd.conf ta sửa lại các default như sau
ServerSignature“(line 536) mặc đinh nó là On chúng ta sữa lại Off và chỉnh sửa  ServerTokens Prod” (line 44)nó dấu version cho chúng ta


   2.      Disable chức năng hiển thị danh sách trong các thư mục
Mặc định apache hiển thị hết tất cả các file có trông thư mục root như bên dưới.

Chúng ta có thể disable chức năng này bằng cách cấu hình trong  đường dẫn đặc biệt mà không muốn show các file trong đó bằng cách:
<Directory /var/www/html>
    Options -Indexes
</Directory>

3.    Dữ apache luôn được update bản mới nhất
Muốn xem version hiện tại của apache chúng ta đánh lệnh như sau:
Httpd –v
# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Aug 13 2013 17:29:28

Muốn update apache chúng ta đánh lệnh sau
Yum update apache
4.    Disable những module không cần thiết 
Để hạn chế rủi ro cho web server chúng ta nên loại bỏ bớt một số module không cần thiết.
Lệnh sau giúp chúng ta xem các module ta đang có:
grep LoadModule /etc/httpd/conf/httpd.conf
chúng ta có thể loại bớt  một phần module, hầu như chúng ta không dùng đến, trong đó chúng ta chú ý tới các module thường chúng ta không cần đến. mod_imap,mod_include, mod_info, mod_userdir, mod_autoindex
chỉ việc thêm dấu # trước mỗi module chúng ta cần bỏ
5.      Disable tính năng Symboliclinks
Mặc định apache cho phép tính năng symbolic chúng ta có thể tắc tính nắng FollowSymLinks  với Options directive. Chúng ta cấu hình chúng trong file httpd.conf
Options -FollowSymLinks
Nếu có User hay website nào cần sử dụng chức năng FollowSymLinks . chúng ta đơn giản viết 1 rule trong file .htaccess từ web site đó
# Enable symbolic links
Options +FollowSymLinks
Chú ý: ta enable chứng năng Rewrite thì chúng ta cấu hình trong file httpd.conf là AllowOverride All 
6.    Tắt chức năng server side include và CGI execution
Chúng ta cũng tắt các chức năng server side include (mod_include) and CGI execution trong thư mục gốc
Options -Includes
Options -ExecCGI
                Trong các trang web con chúng ta cũng cấu hính tương tự
 <Directory "/var/www/html/web1">
Options -Includes -ExecCGI
</Directory>


7.    Giới hạn kích thước REQUEST
Mặc định apache không giới hạn kích thướt request HTTP , khi chúng ta không giới hạn có thẻ trở thành nạn nhân của tấn công  DDOS. Chúng ta cần giới hạn kích thước thư mục LimitRequestBody” .
 Chúng ta có thể giới hạn gia trị từ  0 ( không giới hạn) tới 2147483647 (2GB) cho phép request body . Bạn có thể thiết lập giới hạn này theo nhu cầu trang web của bạn, Giả sử bạn có một trang web mà bạn cho phép cập nhật và bạn muốn giới hạn kích thước tải lên một thư mục cụ thể.
Đây trong ví dụ này, user_uploads là một thư mục chứa các tập tin tải lên bởi người sử dụng. Chúng tôi đang đặt một giới hạn của 500K cho việc này.

<Directory "/var/www/myweb1/user_uploads">
   LimitRequestBody 512000
</Directory>


8.    Bảo vệ tấn công DDOS
Chúng ta không thể bảo vệ chống lại tấn công DDOS hoàn toàn mà chỉ hạn chế 1 phần nào đó thôi,
·         TimeOut :  thời gian máy chủ chờ một kết nối, mặc định 300  giây, tốt hơn nên để giá trị này nhỏ để hạn chế tấn công DDOS
·         MaxClients :  giới hạn số lượng kết nối  phục vụ cùng lúc, quá số lượng này sẽ phải sếp hàng đợi
·         KeepAliveTimeout:   thời gian đợi đóng một kết nối,  mặc định là 5 giây
·         LimitRequestFields:   giới hạn số  lượng HTTP Request  header  đượ chấp nhận bởi  client, mặc định là 100 , chúng ta nên để giá tri thấp hơn
·         LimitRequestFieldSize:  giới hạn kích thước của HTTP request header
9.    Enable log web server .
Apache cho phép chúng ta xem 2 file log như trên, nhưng nếu host có nhiều site thì chúng ta phải có file log riêng cho từng site để tránh nhầm lẫn.
<VirtualHost *:80>
DocumentRoot /var/www/html/example.com/
ServerName www.example.com
DirectoryIndex index.htm index.html index.php
ServerAlias example.com
ErrorDocument 404 /story.php
ErrorLog /var/log/httpd/example.com_error_log
CustomLog /var/log/httpd/example.com_access_log combined
</VirtualHost>

10.     Cài đặt thêm mod.
Cài thêm các mod để gia tăng sự bảo mật, Mod không thể thiếu là  mod_security. Bài tiếp theo có TUT về mod này  

No comments:

Post a Comment