Thứ tư, 12/02/2020 | 00:00 GMT+7

Các bước được đề xuất để ngăn chặn HTTP Apache trên FreeBSD 12.0

Mặc dù cài đặt mặc định của server Apache HTTP đã an toàn để sử dụng, nhưng cấu hình của nó có thể được cải thiện đáng kể với một vài sửa đổi. Bạn có thể bổ sung các cơ chế bảo mật đã có sẵn, ví dụ: bằng cách cài đặt các biện pháp bảo vệ xung quanh cookie và tiêu đề, vì vậy các kết nối không thể bị giả mạo ở cấp client của user . Bằng cách này, bạn có thể giảm đáng kể khả năng xảy ra của một số phương pháp tấn công, chẳng hạn như tấn công Cross-Site Scripting ( còn gọi là XSS). Bạn cũng có thể ngăn chặn các loại tấn công khác, chẳng hạn như Truy vấn Yêu cầu Chéo Trang web hoặc chiếm quyền điều khiển phiên, cũng như các cuộc tấn công Từ chối Dịch vụ.

Trong hướng dẫn này, bạn sẽ thực hiện một số bước được đề xuất để giảm lượng thông tin trên server của bạn bị lộ. Bạn sẽ xác minh danh sách folder và vô hiệu hóa lập index để kiểm tra quyền truy cập vào tài nguyên. Bạn cũng sẽ thay đổi giá trị mặc định của chỉ thị timeout để giúp giảm thiểu kiểu tấn công Từ chối Dịch vụ. Hơn nữa, bạn sẽ vô hiệu hóa phương thức TRACE để các phiên không thể bị đảo ngược và bị tấn công. Cuối cùng, bạn sẽ bảo mật các tiêu đề và cookie.

Hầu hết các cài đặt cấu hình sẽ được áp dụng cho file cấu hình chính Apache HTTP tại /usr/local/etc/apache24/httpd.conf .

Yêu cầu

Trước khi bắt đầu hướng dẫn này, bạn cần những thứ sau:

Với các yêu cầu , bạn có một hệ thống FreeBSD với một ngăn xếp ở trên cùng có thể phân phát nội dung web bằng bất kỳ thứ gì được viết bằng PHP, chẳng hạn như phần mềm CMS chính. Hơn nữa, bạn đã mã hóa các kết nối an toàn thông qua Let's Encrypt.

Giảm thông tin server

Biểu ngữ hệ điều hành là một phương pháp được sử dụng bởi các máy tính, server và thiết bị thuộc mọi loại để thể hiện mình thành mạng. Các tác nhân độc hại có thể sử dụng thông tin này để khai thác các hệ thống có liên quan. Trong phần này, bạn sẽ giảm lượng thông tin được xuất bản bởi biểu ngữ này.

Bộ lệnh kiểm soát cách thông tin này được hiển thị. Vì mục đích này, chỉ thị ServerTokens là quan trọng; theo mặc định, nó hiển thị tất cả các chi tiết về hệ điều hành và các module đã biên dịch cho client đang kết nối với nó.

Bạn sẽ sử dụng một công cụ để quét mạng để kiểm tra thông tin nào hiện được tiết lộ trước khi áp dụng bất kỳ thay đổi nào. Để cài đặt nmap chạy lệnh sau:

  • sudo pkg install nmap

Để lấy địa chỉ IP của server , bạn có thể chạy lệnh sau:

  • ifconfig vtnet0 | awk '/inet / {print $2}'

Bạn có thể kiểm tra phản hồi của web server bằng cách sử dụng lệnh sau:

  • nmap -sV -p 80 your-server-ip

Bạn gọi nmap để thực hiện quét (do đó có cờ -s ), để hiển thị version (cờ -V ) trên cổng 80 (cờ -p ) trên IP hoặc domain nhất định.

Bạn sẽ nhận được thông tin về web server của bạn , tương tự như sau:

Output
Starting Nmap 7.80 ( https://nmap.org ) at 2020-01-22 00:30 CET Nmap scan report for 206.189.123.232 Host is up (0.054s latency). PORT STATE SERVICE VERSION 80/tcp open http Apache httpd 2.4.41 ((FreeBSD) OpenSSL/1.1.1d-freebsd Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 7.59 seconds

Kết quả này cho thấy rằng thông tin như hệ điều hành, version Apache HTTP và OpenSSL được hiển thị. Điều này có thể hữu ích cho những kẻ tấn công để có được thông tin về server và chọn các công cụ phù hợp để khai thác, ví dụ, một lỗ hổng trong phần mềm chạy trên server .

Bạn sẽ đặt chỉ thị ServerTokens trong file cấu hình chính vì nó không được cấu hình theo mặc định. Việc thiếu cấu hình này làm cho Apache HTTP hiển thị đầy đủ thông tin về server như tài liệu hướng dẫn. Để hạn chế thông tin được tiết lộ về server và cấu hình của bạn, bạn sẽ đặt lệnh ServerTokens bên trong file cấu hình chính.

Bạn sẽ đặt chỉ thị này sau mục nhập ServerName trong file cấu hình. Chạy lệnh sau để tìm chỉ thị

  • grep -n 'ServerName' /usr/local/etc/apache24/httpd.conf

Bạn sẽ tìm thấy số dòng mà sau đó bạn có thể tìm kiếm bằng vi :

Output
226 #ServerName www.example.com:80

Chạy lệnh sau:

  • sudo vi +226 /usr/local/etc/apache24/httpd.conf

Thêm dòng được đánh dấu sau:

/usr/local/etc/apache24/httpd.conf
. . . #ServerName www.example.com:80 ServerTokens Prod 

Lưu và thoát file bằng :wqENTER .

Đặt chỉ thị ServerTokens thành Prod sẽ làm cho nó chỉ hiển thị rằng đây là một web server Apache.

Để điều này có hiệu lực, hãy khởi động lại server Apache HTTP:

  • sudo apachectl restart

Để kiểm tra các thay đổi, hãy chạy lệnh sau:

  • nmap -sV -p 80 your-server-ip

Bạn sẽ thấy kết quả giống như sau với thông tin tối thiểu hơn trên web server Apache của bạn:

Output
Starting Nmap 7.80 ( https://nmap.org ) at 2020-01-22 00:58 CET Nmap scan report for WPressBSD (206.189.123.232) Host is up (0.056s latency). PORT STATE SERVICE VERSION 80/tcp open http Apache httpd Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 7.59 seconds

Bạn đã thấy thông tin mà server thông báo trước khi thay đổi và hiện bạn đã giảm điều này xuống mức tối thiểu. Với điều này, bạn đang cung cấp ít manh mối hơn về server của bạn cho tác nhân bên ngoài. Trong bước tiếp theo, bạn sẽ quản lý danh sách folder cho web server của bạn .

Quản lý danh sách folder

Trong bước này, bạn sẽ đảm bảo danh sách folder được cấu hình chính xác, do đó các phần phù hợp của hệ thống được công khai như dự kiến, trong khi phần còn lại được bảo vệ.

Lưu ý: Khi một đối số được khai báo thì nó đang hoạt động, nhưng dấu + có thể củng cố trực quan thì nó trên thực tế đã được bật. Khi một dấu trừ - được đặt, đối số sẽ bị từ chối, ví dụ, Options -Indexes .

Đối số có + và / hoặc - không thể trộn lẫn, nó được coi là cú pháp sai trong Apache HTTP và nó có thể bị từ chối khi khởi động.

Thêm câu lệnh Options -Indexes sẽ đặt nội dung bên trong đường dẫn dữ liệu /usr/local/www/apache24/data để không tự động lập index ( đọc được liệt kê ) nếu file .html không tồn tại và không hiển thị nếu URL ánh xạ điều này danh mục. Điều này cũng sẽ áp dụng khi sử dụng cấu hình server ảo, chẳng hạn như cấu hình được sử dụng cho hướng dẫn yêu cầu cho certificate Let's Encrypt.

Bạn sẽ đặt chỉ thị Options với đối số -Indexes và với chỉ thị +FollowSymLinks , sẽ cho phép các softlink được tuân theo. Bạn sẽ sử dụng biểu tượng + để tuân theo các quy ước HTTP của Apache.

Chạy lệnh sau để tìm dòng cần chỉnh sửa trong file cấu hình:

  • grep -n 'Options Indexes FollowSymLinks' /usr/local/etc/apache24/httpd.conf

Bạn sẽ thấy kết quả tương tự như sau:

Output
263 : Options Indexes FollowSymLinks

Chạy lệnh này để truy cập trực tiếp vào dòng để chỉnh sửa:

  • sudo vi +263 /usr/local/etc/apache24/httpd.conf

Bây giờ hãy chỉnh sửa dòng theo cấu hình:

/usr/local/etc/apache24/httpd.conf
. . . # Options -Indexes +FollowSymLinks  # . . . 

Lưu và thoát file bằng :wqENTER .

Khởi động lại Apache HTTP để áp dụng các thay đổi này:

  • sudo apachectl restart

Tại domain của bạn trong trình duyệt, bạn sẽ thấy thông báo truy cập bị cấm, còn gọi là lỗi 403. Điều này là do những thay đổi bạn đã áp dụng. Việc đặt -Indexes vào chỉ thị Options đã vô hiệu hóa khả năng tự động lập index của Apache HTTP và do đó không có index.html bên trong đường dẫn dữ liệu.

Bạn có thể giải quyết vấn đề này bằng cách đặt index.html bên trong VirtualHost mà bạn đã bật trong hướng dẫn yêu cầu cho certificate Let's Encrypt. Bạn sẽ sử dụng khối mặc định trong Apache HTTP và đặt nó trong cùng một folder với DocumentRoot mà bạn đã khai báo trong server ảo.

/usr/local/etc/apache24/extra/httpd-vhosts.conf
<VirtualHost *:80>     ServerAdmin your_email@your_domain.com     DocumentRoot "/usr/local/www/apache24/data/your_domain.com"     ServerName your_domain.com     ServerAlias www.your_domain.com     ErrorLog "/var/log/your_domain.com-error_log"     CustomLog "/var/log/your_domain.com-access_log" common </VirtualHost> 

Sử dụng lệnh sau để thực hiện việc này:

  • sudo cp /usr/local/www/apache24/data/index.html /usr/local/www/apache24/data/your_domain.com/index.html

Đến đây bạn sẽ thấy nó hoạt động! khi truy cập domain của bạn.

Trong phần này, bạn đã đặt các hạn chế đối với Indexes thị Indexes để không tự động nhập và hiển thị nội dung khác với những gì bạn dự định. Bây giờ nếu không có index.html bên trong đường dẫn dữ liệu, Apache HTTP sẽ không tự động tạo index nội dung. Trong bước tiếp theo, bạn sẽ vượt ra ngoài việc che khuất thông tin và tùy chỉnh các chỉ thị khác nhau.

Giảm giá trị chỉ thị về thời gian chờ

Lệnh Timeout đặt giới hạn thời gian Apache HTTP sẽ đợi đầu vào / kết quả mới trước khi yêu cầu kết nối không thành công. Lỗi này có thể xảy ra do các trường hợp khác nhau chẳng hạn như các gói không đến server hoặc dữ liệu không được xác nhận bởi client .

Theo mặc định, thời gian chờ được đặt thành 60 giây. Trong môi trường mà dịch vụ internet chậm, giá trị mặc định này có thể hợp lý, nhưng một phút là một khoảng thời gian khá dài, đặc biệt nếu server đang nhắm đến là user có dịch vụ internet nhanh hơn. Hơn nữa, trong thời gian server không đóng kết nối có thể bị lạm dụng để thực hiện các cuộc tấn công Từ chối Dịch vụ (DoS). Nếu một loạt các kết nối độc hại này xảy ra, server sẽ gặp trục trặc và có thể trở nên bão hòa và thiếu trách nhiệm.

Để thay đổi giá trị, bạn sẽ tìm thấy các mục Timeout trong file httpd-default.conf :

  • grep -n 'Timeout' /usr/local/etc/apache24/extra/httpd-default.conf

Bạn sẽ thấy kết quả tương tự cho:

Output
8 # Timeout: The number of seconds before receives and sends time out. 10 Timeout 60 26 # KeepAliveTimeout: Number of seconds to wait for the next request from the 29 KeepAliveTimeout 5 89 RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500

Trong dòng kết quả 10 đặt giá trị chỉ thị Timeout . Để truy cập trực tiếp vào dòng này, hãy chạy lệnh sau:

  • sudo vi +10 /usr/local/etc/apache24/extra/httpd-default.conf

Ví dụ: bạn sẽ thay đổi nó thành 30 giây, như sau:

/usr/local/etc/apache24/extra/httpd-default.conf
# # Timeout: The number of seconds before receives and sends time out. # Timeout 30 

Lưu và thoát file bằng :wqENTER .

Giá trị của chỉ thị Timeout phải cân bằng một phạm vi thời gian đủ lớn cho các sự kiện đó để cho phép kết nối hợp lệ và thành công xảy ra, nhưng đủ ngắn để ngăn các nỗ lực kết nối không mong muốn.

Lưu ý: Các cuộc tấn công từ chối dịch vụ có thể tiêu hao tài nguyên của server khá hiệu quả. Một biện pháp bộ đếm bổ sung và rất có khả năng là sử dụng MPM phân stream để có được hiệu suất tốt nhất từ cách Apache HTTP xử lý các kết nối và quy trình. Trong hướng dẫn này Cách cấu hình Apache HTTP với Sự kiện MPM và PHP-FPM trên FreeBSD 12.0, có các bước để bật khả năng này.

Để thay đổi này có hiệu lực, hãy khởi động lại server Apache HTTP:

  • sudo apachectl restart

Bạn đã thay đổi giá trị mặc định của chỉ thị Timeout để giảm thiểu một phần các cuộc tấn công DoS.

Tắt phương thức TRACE

Giao thức truyền tải siêu văn bản được phát triển theo mô hình client - server và như vậy, giao thức có các phương thức yêu cầu để truy xuất hoặc đặt thông tin từ / đến server . Server cần hiểu các bộ phương pháp này và sự tương tác giữa chúng. Trong bước này, bạn sẽ cấu hình các phương thức cần thiết tối thiểu.

Phương thức TRACE , được coi là vô hại, đã được tận dụng để thực hiện các cuộc tấn công Truy tìm trang web chéo . Các kiểu tấn công này cho phép các tác nhân độc hại đánh cắp phiên của user thông qua phương pháp đó. Phương pháp này được thiết kế cho mục đích gỡ lỗi bởi server trả về cùng một yêu cầu do client gửi ban đầu. Bởi vì cookie từ phiên của trình duyệt được gửi đến server , nó sẽ được gửi lại . Tuy nhiên, điều này có thể bị chặn bởi một tác nhân độc hại, kẻ này sau đó có thể chuyển hướng kết nối của trình duyệt đến một trang web do họ kiểm soát chứ không phải đến server root .

Do khả năng sử dụng sai phương thức TRACE, nên chỉ sử dụng nó để gỡ lỗi và không sử dụng trong production . Trong phần này, bạn sẽ tắt phương pháp này.

Chỉnh sửa file httpd.conf bằng lệnh sau và sau đó nhấn G để đến cuối file :

  • sudo vi /usr/local/etc/apache24/httpd.conf

Thêm đường dẫn nhập sau vào cuối file :

/usr/local/etc/apache24/httpd.conf
. . . TraceEnable off 

Một phương pháp hay là chỉ xác định các phương thức bạn sẽ sử dụng trong web server Apache HTTP của bạn . Điều này sẽ giúp hạn chế các điểm xâm nhập tiềm ẩn cho các tác nhân độc hại.

LimitExcept có thể hữu ích cho mục đích này vì nó sẽ không cho phép bất kỳ phương thức nào khác với những phương thức được khai báo trong đó. Ví dụ, một cấu hình có thể được cài đặt như sau:

/usr/local/etc/apache24/httpd.conf
DocumentRoot "/usr/local/www/apache24/data" <Directory "/usr/local/www/apache24/data">     Options -Indexes +FollowSymLinks -Includes     AllowOverride none      <LimitExcept GET POST HEAD>        deny from all     </LimitExcept>     Require all granted </Directory> 

Như đã khai báo trong chỉ thị LimitExcept chỉ cho phép các phương thức GET, POST và HEAD trong cấu hình.

  • Phương thức GET là một phần của giao thức HTTP và nó được sử dụng để truy xuất dữ liệu.
  • Phương thức POST cũng là một phần của giao thức HTTP và được sử dụng để gửi dữ liệu đến server .
  • Phương thức HEAD tương tự như GET , tuy nhiên phương thức này không có phần thân phản hồi.

Bạn sẽ sử dụng lệnh sau và đặt khối LimitExcept bên trong file :

  • sudo vi +272 /usr/local/etc/apache24/httpd.conf

Để đặt cấu hình này, bạn sẽ đặt khối sau vào mục nhập chỉ thị DocumentRoot nơi nội dung sẽ được đọc từ đó, cụ thể hơn là bên trong mục nhập Directory mục:

/usr/local/etc/apache24/httpd.conf
. . . <LimitExcept GET POST HEAD>    deny from all </LimitExcept> . . . 

Để áp dụng các thay đổi, hãy khởi động lại Apache HTTP:

  • sudo apachectl restart

Chỉ thị mới hơn AllowedMethods cung cấp chức năng tương tự, mặc dù trạng thái của nó vẫn là thử nghiệm.

Bạn đã biết các phương thức HTTP là gì, cách sử dụng và cách bảo vệ mà chúng cung cấp khỏi hoạt động độc hại tận dụng phương thức TRACE cũng như cách khai báo các phương thức sẽ sử dụng. Tiếp theo, bạn sẽ làm việc với các biện pháp bảo vệ khác dành riêng cho tiêu đề HTTP và cookie.

Bảo mật Tiêu đề và Cookie

Trong bước này, bạn sẽ đặt các lệnh cụ thể để bảo vệ các phiên mà client sẽ mở khi truy cập web server Apache HTTP của bạn. Bằng cách này, server của bạn sẽ không tải nội dung không mong muốn, mã hóa sẽ không bị hạ cấp và bạn sẽ tránh bị đánh cắp nội dung .

Tiêu đề là thành phần của các phương thức yêu cầu. Có các tiêu đề để điều chỉnh xác thực, giao tiếp giữa server và client , bộ nhớ đệm, thương lượng nội dung, v.v.

Cookie là các bit thông tin do server gửi đến trình duyệt. Các bit này cho phép server nhận ra trình duyệt client từ máy tính này sang máy tính khác. Chúng cũng cho phép server nhận ra phiên của user . Ví dụ: họ có thể theo dõi giỏ hàng của user đã đăng nhập, thông tin thanh toán, lịch sử, v.v. Cookie được sử dụng và lưu giữ trong trình duyệt web của khách hàng vì HTTP là một giao thức không trạng thái, nghĩa là khi kết nối đóng, server sẽ không nhớ yêu cầu được gửi bởi một ứng dụng client hoặc một ứng dụng khác.

Điều quan trọng là phải bảo vệ các tiêu đề cũng như cookie vì chúng cung cấp thông tin liên lạc giữa client trình duyệt web và web server .

Mô-đun headers được kích hoạt theo mặc định. Để kiểm tra xem nó đã được tải chưa, bạn sẽ sử dụng lệnh sau:

  • sudo apachectl -M | grep 'headers'

Bạn sẽ thấy kết quả sau:

Output
headers_module (shared)

Nếu bạn không thấy bất kỳ kết quả nào, hãy kiểm tra xem module đã được kích hoạt bên trong file httpd.conf của Apache hay chưa:

  • grep -n 'mod_headers' /usr/local/etc/apache24/httpd.conf

Khi kết quả , bạn sẽ thấy một dòng không chú thích đề cập đến module cụ thể cho tiêu đề:

/usr/local/etc/apache24/httpd.conf
. . . 122  LoadModule headers_module libexec/apache24/mod_headers.so . . . 

Xóa thẻ bắt đầu bằng # ở đầu dòng mod_headers.so , nếu có, để kích hoạt lệnh.

Bằng cách sử dụng các chỉ thị Apache HTTP sau đây, bạn sẽ bảo vệ tiêu đề và cookie khỏi hoạt động độc hại để giảm rủi ro cho client và server .

Đến đây bạn sẽ đặt bảo vệ tiêu đề. Bạn sẽ đặt tất cả các giá trị tiêu đề này trong một khối. Bạn có thể chọn áp dụng các giá trị này theo ý muốn, nhưng tất cả đều được khuyến khích .

Chỉnh sửa file httpd.conf bằng lệnh sau và sau đó nhấn G để đến cuối file :

  • sudo vi /usr/local/etc/apache24/httpd.conf

Đặt khối sau vào cuối file :

/usr/local/etc/apache24/httpd.conf
. . . <IfModule mod_headers.c>   # Add security and privacy related headers   Header set Content-Security-Policy "default-src 'self'; upgrade-insecure-requests;"   Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"   Header always edit Set-Cookie (.*) "$1; HttpOnly; Secure"   Header set X-Content-Type-Options "nosniff"   Header set X-XSS-Protection "1; mode=block"   Header set Referrer-Policy "strict-origin"   Header set X-Frame-Options: "deny"   SetEnv modHeadersAvailable true </IfModule> 
  • Header set Strict-Transport-Security "max-age=31536000; includeSubDomains" : Bảo mật Truyền tải Nghiêm ngặt HTTP (HTSTS) là cơ chế dành cho web server và client (chủ yếu là trình duyệt) để cài đặt liên lạc chỉ sử dụng HTTPS. Bằng cách triển khai điều này, bạn sẽ tránh được các cuộc tấn công man-in-the-middle, nơi một bên thứ ba ở giữa giao tiếp có thể truy cập các bit, nhưng cũng có thể giả mạo chúng.

  • Header always edit Set-Cookie (.*) "$1; HttpOnly; Secure" : Cờ HttpOnlySecure trên tiêu đề giúp ngăn chặn các cuộc tấn công tập lệnh trên nhiều trang web, còn gọi là XSS. Những kẻ tấn công có thể lạm dụng cookie để đóng giả là khách truy cập hợp lệ tự giới thiệu mình với quyền là người khác ( đánh cắp danh tính ) hoặc bị giả mạo.

  • Header set Referrer-Policy "strict-origin" : Tiêu đề Liên kết giới thiệu-Chính sách đặt thông tin nào được đưa vào làm thông tin liên kết giới thiệu trong trường tiêu đề.

  • Header set Content-Security-Policy "default-src 'self'; upgrade-insecure-requests;" : Tiêu đề Nội dung-Bảo mật-Chính sách (CSP) sẽ ngăn chặn hoàn toàn việc tải nội dung không được chỉ định trong các tham số, điều này rất hữu ích để ngăn chặn các cuộc tấn công tập lệnh chéo trang web ( XSS ). Có nhiều tham số có thể có để cấu hình policy cho tiêu đề này. Điểm mấu chốt là cấu hình nó để tải nội dung từ cùng một trang web và nâng cấp bất kỳ nội dung nào có nguồn root HTTP.

  • Header set X-XSS-Protection "1; mode=block" : Điều này hỗ trợ các trình duyệt cũ hơn không tuân theo các tiêu đề Content-Security-Policy . Tiêu đề 'X-XSS-Protection' cung cấp khả năng bảo vệ chống lại các cuộc tấn công Cross-Site Scripting. Bạn không cần đặt tiêu đề này trừ khi bạn cần hỗ trợ các version trình duyệt cũ, điều này rất hiếm.

  • Header set X-Frame-Options: "deny" : Điều này ngăn chặn các cuộc tấn công clickjacking . Tiêu đề 'X-Frame-Options' cho trình duyệt biết liệu một trang có thể được hiển thị trong <frame> , <iframe> , <embed> hoặc <object> . Bằng cách này, nội dung từ các trang khác không thể được nhúng vào các trang khác, ngăn chặn các cuộc tấn công bằng clickjacking. Ở đây bạn đang từ chối tất cả kết xuất khung hình để trang web không thể được nhúng vào bất kỳ nơi nào khác, ngay cả bên trong cùng một trang web. Bạn có thể điều chỉnh điều này cho phù hợp với nhu cầu của bạn , ví dụ: nếu bạn phải cho phép hiển thị một số trang vì chúng là quảng cáo hoặc cộng tác với các trang web cụ thể.

  • Header set X-Content-Type-Options "nosniff" : Tiêu đề 'X-Content-Type-Options' kiểm soát các loại MIME để chúng không bị thay đổi và tuân theo. Loại MIME là tiêu chuẩn định dạng file ; chúng hoạt động cho văn bản, âm thanh, video, hình ảnh, v.v. Tiêu đề này chặn các tác nhân độc hại đánh hơi nội dung các file đó và cố gắng thay đổi các loại file .

Bây giờ khởi động lại Apache để các thay đổi có hiệu lực:

  • sudo apachectl restart

Để kiểm tra mức độ bảo mật của cài đặt cấu hình của bạn, hãy truy cập trang web tiêu đề bảo mật . Làm theo các bước trong hướng dẫn này, domain của bạn sẽ đạt điểm A.

Lưu ý: Nếu bạn kiểm tra tiêu đề của bạn bằng cách truy cập https://securityheaders.com/ và đạt điểm F thì có thể là do không có index.html bên trong DocumentRoot của trang web như hướng dẫn ở cuối Bước 2 . Nếu kiểm tra các tiêu đề của bạn, bạn nhận được điểm khác với điểm A hoặc F , hãy kiểm tra từng dòng Header set tìm bất kỳ lỗi chính tả nào có thể gây ra việc hạ cấp.

Trong bước này, bạn đã làm việc với tối đa bảy cài đặt để cải thiện tính bảo mật của tiêu đề và cookie của bạn . Những điều này sẽ giúp ngăn chặn việc tạo kịch bản, clickjacking và các kiểu tấn công khác.

Kết luận

Trong hướng dẫn này, bạn đã đề cập đến một số khía cạnh bảo mật, từ tiết lộ thông tin, đến bảo vệ phiên, thông qua việc cài đặt cài đặt cấu hình thay thế cho chức năng quan trọng.

Để có thêm tài nguyên về cách củng cố Apache, đây là một số tài liệu tham khảo khác:

Đối với các công cụ bổ sung để bảo vệ Apache HTTP:

  • mod_evasive là một công cụ hữu ích giúp giảm thiểu các cuộc tấn công DoS. Bạn có thể tìm thêm thông tin chi tiết trong hướng dẫn Cách bảo vệ chống DoS và DDoS với mod_evasive cho Apache .

  • fail2ban là một phần mềm ngăn chặn xâm nhập hữu ích để chặn các nỗ lực đăng nhập lặp lại từ những user không được ủy quyền. Bạn có thể đọc thêm trong hướng dẫn Cách bảo vệ server Apache bằng Fail2Ban .

  • ModSecurity là một Tường lửa Ứng dụng Web (hoặc WAF) và do đó nó cung cấp nhiều khả năng dựa trên các luật được định nghĩa do SpyderLabs và các thành viên cộng đồng viết. Bạn có thể đọc thêm về điều này trong hướng dẫn Cách cài đặt ModSecurity với Apache .


Tags:

Các tin liên quan

Cách thiết lập server ảo Apache trên Ubuntu 18.04
2020-02-10
Cách thiết lập xác thực mật khẩu với Apache trên Ubuntu 18.04 [Quickstart]
2020-02-04
Cách thiết lập xác thực mật khẩu với Apache trên Ubuntu 18.04
2020-02-03
Cách cài đặt Apache Kafka trên Debian 10
2019-12-20
Cách sử dụng Ansible để cài đặt và thiết lập Apache trên Ubuntu 18.04
2019-12-06
Cách bảo mật Apache bằng Let's Encrypt trên FreeBSD 12.0
2019-11-08
Cách cài đặt Apache Tomcat 9 trên Debian 10
2019-10-24
Cách cấu hình báo cáo MTA-STS và TLS cho miền của bạn bằng Apache trên Ubuntu 18.04
2019-09-06
Cách viết lại URL bằng mod_rewrite cho Apache trên Debian 10
2019-08-22
Cách tạo chứng chỉ SSL tự ký cho Apache trong Debian 10
2019-07-22