Hướng dẫn bảo mật Apache trên hệ điều hành Centos

huong-dan-bao-mat-apache-tren-dieu-hanh-centos-logoApache là một phần mềm mã nguồn mở miễn phí được cài đặt trên các máy chủ web server (phần cứng) để xử lý các yêu cầu gửi tới máy chủ dưới giao thức HTTP. Ngoài việc bảo mật cho OS , code web thì việc bảo mật cho Apache cũng là việc hết sức cần thiết. 

 

 

Hướng dẫn cấu hình bảo mật hệ điều hành Centos

1) Cài đặt phiên bản Apache mới nhất

  • Đảm bảo phiên bản Apache không bị mắc lỗi bảo mật bằng cách thường xuyên update phiên bản mới nhất. Tham khảo http://httpd.apache.org/download.cgi . Kiểm tra version bằng lệnh : httpd -v
  • Thực hiện cài đặt từng thành phần WebServer. Khuyến cáo không sử dụng các bộ tích hợp cài đặt như : appserver , wampp , xampp

2) Gỡ bỏ hoặc tắt các thành phần mặc định của Apache

  • Gỡ bỏ thư mục , trang mặc định trong /var/www/html
  • Tắt Module/Extension không sử dụng bằng cách :

Bước 1 : Kiểm tra Modules load trong Apache

Câu lệnh :
#/usr/sbin/httpd -M hoặc # grep LoadModule /etc/httpd/conf/httpd.conf

Bước 2 : Tắt các Modules không cần thiết

Truy cập :

#vi /etc/httpd/conf/httpd.conf

Thêm # vào các modules không sử dụng. Ví dụ như : mod_info, mod_status, mod_version, mod_autoindex, mod_dav

Bước 3 : Khởi động lại Apache

#service httpd restart

3 ) Thay đổi thành phần mặc định trong Apache ( Error Page , Banner , Phương thức mặc định )

  • Đối với Error Page :

Tạo file error.html tại thư mục gốc của website và thêm nội dung file sau trong httpd.conf :

ErrorDocument 400 /error.html
ErrorDocument 401 /error.html
ErrorDocument 402 /error.html
ErrorDocument 403 /error.html
ErrorDocument 404 /error.html
ErrorDocument 500 /error.html
ErrorDocument 501 /error.html
ErrorDocument 502 /error.html

  • Đối với Banner

Cấu hình này giúp ẩn thông tin version của OS , Apache. Truy cập httpd.conf  và thêm thành phần sau :

ServerSignature Off
ServerTokens Prod

  • Chỉ cho phép thực thi GEST , POST , HEAD

Truy cập httpd.conf . Thêm thuộc tính LimitExcept như sau :

<Directory “/var/www/web”>
<LimitExcept GET POST HEAD>
Deny from all
</LimitExcept>

</Directory>

4 ) Cấu hình giới hạn truy cập

  • Giới hạn địa chỉ  IP có thể truy cập các trang quản trị website bằng app web hoặc iptables
  • Vi dụ  sử dụng 1 port riêng cho trang quản trị. Giới hạn truy cập website bằng port đó bằng cách thêm -s IP/subnet trong iptables

5 ) Chặn liệt kê file , thư mục

Trong httpd.conf . Thêm thuộc tính -Indexes :

<Directory “/var/www/html”>
Options -Indexes
</Directory>

 6 ) Phân quyền ứng dụng

  • Gán quyền user thực thi giành riêng cho Apache :

Bước 1 : Tạo tài khoản www-data

#useradd –M www-data –s /bin/false
hoặc #useradd –d /dev/null –s /bin/false www-data

#passwd –l www-data

Bước 2 : Phân quyền chỉnh sửa website đối với user

#chown -R www-data: www-data /var/www
#find /var/www -type d | xargs chmod -R 755
#find /var/www -type f | xargs chmod -R 644
#chown -R www-data:www-data [Đường_dẫn_tuyệt_đối_cache/session]

Bước 3 : Thay đổi tài khoản mặc định trong httpd.conf

User www-data
Group www-data

Bước 4 : Không cho phép thực thi các câu lệnh CGI , SSI

Truy cập httpd.conf và thêm thuộc tính -ExecCGI như sau :

<Directory /var/www/html>
Options –ExecCGI -Includes
</Directory>

Bước 5 : Khởi động lại Apache

#service httpd restart

7 ) Thiết lập cơ chế mã hóa an toàn

  • Sử dụng phiên bản thư viện OpenSSL mới nhất
  • Không sử dụng SSL version 2 .0 , SSL version 3.0

Kiểm tra version SSL :
#grep –i –r ”SSLProtocol” /etc/httpd

Đối với thông tin hiển thị SSLv2 hoặc SSLv3. Tiến hành sửa file httpd.conf như sau :

SSLProtocol all –SSLv2 –SSLv3

Thiết lập SSLCipherSuite cho Apache . Chỉ sử dụng các cipher an toàn

SSLCipherSuite          ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK:!SSLv3:!SSLv2

#service httpd restart

8 ) Cấu hình Log cho Apache

  • Truy cập httpd.conf . Định nghĩa thêm LogFormat như sau :

LogFormat “%h %{X-Forwarded-For}i %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-agent}i\”” vt_combined

#service httpd restart

  • Bật chế độ ghi log , ghi luân phiên / xoay vòng log theo ngày trong httpd.conf

CustomLog “|/path/to/rotatelogs /path/to/log/httpd/<Tên_APP>%Y-%m-%d.log 86400″ vt_combined
ErrorLog “|/path/to/rotatelogs /path/to/log/httpd/<Tên_APP>_error
%Y-%m-%d.log 86400″

  • Cấu hình lưu trữ log tối thiểu 3 tháng

Chúc các bạn thành công!

Ads

https://vnitnews.com

Leave a Reply

Email của bạn sẽ không được hiển thị công khai.