Bài viết mới nhất về "Security Apache"
Showing posts with label Security Apache. Show all posts

Giới Thiệu

Apache là một trong những Web Server được sử dụng rộng rãi và phổ biến nhất trên thế giới, nó cũng là một trong những web server an toàn nhất. Trong bài viết này, tôi sẽ hướng dẫn một số mẹo và thủ thuật để bảo mật Apache server.

Yêu Cầu

  • Máy chủ chạy CentOS 7 và đã cài đặt Apache
  • Trình duyệt Firefox đã cài add-on Firebug để test

Ẩn Phiên Bản Apache

Mở trình duyệt Firefox lên. Kích hoạt Firebug bằng cách nhấn vào biểu tượng Firebug ở phía trên bên phải, sau đó truy cập vào địa chỉ IP server của bạn.

Kiểm tra các kết quả trả về trong Firebug bạn sẽ thấy các phiên bản Apache cùng với tên hệ điều hành và phiên bản, như hình ở dưới đây

Một số phương pháp bảo mật Apache Web Server trên CentOS 7

Để giấu các thông tin này từ trình duyệt, bạn sẽ cần phải thực hiện một số thay đổi trong tập tin cấu hình chính của Apache.

Bạn có thể làm điều này bằng cách chỉnh sửa các httpd.conf tập tin:

sudo nano /etc/httpd/conf/httpd.conf

Thêm các dòng sau vào cuối file:

ServerSignature Off
ServerTokens Prod

Lưu lại và khởi động lại Apache để xác nhận lại thay đổi:

sudo apachectl restart

Bây giờ, bạn mở Firefox và truy cập vào máy chủ web của bạn. Kiểm tra các kết quả trả về trong Firebug, Bạn có thể thấy rằng việc thiết ServerSignature để Off đã loại bỏ các thông tin phiên bản từ máy chủ.

Một số phương pháp bảo mật Apache Web Server trên CentOS 7

Tắt danh sách thư mục

Danh sách thư muc nếu không có file index tập tin được kích hoạt theo mặc định trong Apache. Danh sách thư mục sẽ hiển thị tất cả các file từ thư mục gốc web Apache. Nếu điều này được kích hoạt, sau đó một hacker có thể dễ dàng xem bất kỳ tập tin, phân tích nó, và có được thông tin nhạy cảm về một ứng dụng của máy chủ Apache.

Dưới đây là một ví dụ về danh sách thư mục của thư mục gốc web Apache của bạn:

Một số phương pháp bảo mật Apache Web Server trên CentOS 7

Bạn có thể tắt tính năng này bằng cách sử dụng các Options chỉ thị trong tập tin cấu hình Apache cho một thư mục web cụ thể.

sudo nano /etc/httpd/conf/httpd.conf

Tìm phần bắt đầu với Directory /var/www/html và thêm -Indexes vào Options chỉ thị:

<Directory /var/www/html/>
    Options -Indexes
    AllowOverride None
    Require all granted
</Directory>

Lưu lại và khởi động lại Apache để xác nhận lại thay đổi:

sudo apachectl restart

Tiếp theo, hãy truy cập lại để xem kết quả. Bạn sẽ nhận được một lỗi "cấm" như thể hiện trong hình dưới đây.

Một số phương pháp bảo mật Apache Web Server trên CentOS 7

Vô hiệu hóa các module không cần thiết

Theo mặc định Apache đi kèm với rất nhiều các module cài đặt không cần thiết. Đây là một cách tốt để vô hiệu hóa bất kỳ các module không cần thiết mà không được sử dụng.

Bạn có thể liệt kê tất cả các module được kích hoạt trên máy chủ của bạn bằng cách sử dụng lệnh sau:

sudo grep LoadModule /etc/httpd/conf.modules.d/00-base.conf

Từ các mô-đun cho phép trong 00-base.conf tập tin, một số mô-đun như mod_infomod_userdirmod_autoindex được kích hoạt nhưng không cần thiết.

Bạn có thể vô hiệu hóa các module này bằng cách chỉnh sửa trong 00-base.conf:

sudo nano /etc/httpd/conf.modules.d/00-base.conf

Thêm # vào đầu những dòng sau để vô hiệu hóa các modules:

#LoadModule info_module modules/mod_info.so
#LoadModule userdir_module modules/mod_userdir.so

Lưu lại và khởi động lại Apache để xác nhận lại thay đổi:

Vô hiệu hóa FollowSymLinks của Apache

Theo mặc định Apache sau liên kết tượng trưng (symlink). Khuyến khích tắt chức năng này để bảo mật.

Để làm điều này, bạn cần phải chỉnh sửa file httpd.conf

sudo nano /etc/httpd/conf/httpd.conf

Tìm với Directory /var/www/html. Thêm -FollowSymLinks vào:

<Directory /var/www/html/>
    Options -Indexes -FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

Bây giờ khởi động lại Apache để xác nhận những thay đổi.

Bảo về Apache từ các cuộc tấn công Clickjacking

Clickjacking (còn được gọi là "UI redress attack") là một thuật ngữ diễn tả việc lừa người sử dụng click chuột vào một liên kết nhìn bề ngoài có vẻ "trong sạch" trong các trang web, tuy nhiên qua cú click chuột đó hacker có thể lấy được các thông tin bí mật của người sử dụng hay kiểm soát máy tính của họ.

Để tránh điều này, bạn cần sử dụng X-FRAME-OPTIONS để ngăn chặn trang web của bạn sử dụng clickjackers.

Bạn có thể làm điều này bằng cách chỉnh sửa file httpd.conf:

sudo nano /etc/httpd/conf/httpd.conf

Thêm dòng sau:

Header append X-FRAME-OPTIONS "SAMEORIGIN"

Lưu lại và khởi động lại Apache:

sudo apachectl restart

Bây giờ, bạn mở Firefox và truy cập trang web của bạn. Kiểm tra các kết quả trả về trong Firebug, bạn xem X-Frame-Options như hình dưới đây:

Một số phương pháp bảo mật Apache Web Server trên CentOS 7

Bảo về Apache từ các cuộc tấn công XSS

Cross-site Scripting (XSS) là lỗ hổng cho phép hacker có thể chèn những đoạn mã client-script (thường là Javascript hoặc HTML) vào trang web, khi người dùng vào những trên web này, mã độc sẽ được thực thi trên máy của người dùng.

Bạn có thể làm điều này bằng cách chỉnh sửa file httpd.conf:

sudo nano /etc/httpd/conf/httpd.conf

Thêm các dòng sau:

<IfModule mod_headers.c>
    Header set X-XSS-Protection "1; mode=block"
</IfModule>

Lưu lại và khởi động lại Apache để xác nhận lại thay đổi.

Bây giờ, bạn mở Firefox và truy cập trang web của bạn. Kiểm tra các kết quả trả về trong Firebug, bạn sẽ thấy rằng XSS được kích hoạt chế độ mode=block.

Một số phương pháp bảo mật Apache Web Server trên CentOS 7