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:
Một server FreeBSD 12 được cài đặt theo hướng dẫn này về Cách bắt đầu với FreeBSD .
Tường lửa được cài đặt theo phần Định cấu hình firewall trong bài viết Các bước được đề xuất cho Server FreeBSD 12.0 mới .
Đã cài đặt một ngăn xếp FAMP hoàn chỉnh theo Cách cài đặt một Ngăn xếp Apache, MySQL và PHP (FAMP) trên hướng dẫn FreeBSD 12.0 .
Chứng chỉ Let's Encrypt được cài đặt theo hướng dẫn Cách bảo mật Apache bằng Let's Encrypt trên FreeBSD .
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:
OutputStarting 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
:
Output226 #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:
. . . #ServerName www.example.com:80 ServerTokens Prod
Lưu và thoát file bằng :wq
và ENTER
.
Đặ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:
OutputStarting 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:
Output263 : 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:
. . . # Options -Indexes +FollowSymLinks # . . .
Lưu và thoát file bằng :wq
và ENTER
.
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.
<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:
# # Timeout: The number of seconds before receives and sends time out. # Timeout 30
Lưu và thoát file bằng :wq
và ENTER
.
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 :
. . . 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:
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:
. . . <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:
Outputheaders_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 đề:
. . . 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 :
. . . <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ờHttpOnly
vàSecure
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:
- Mẹo bảo mật HTTP của Apache
- Nguyên tắc bảo mật của Mozilla
- Đề xuất kiểm tra của Trung tâm bảo mật Internet cho Apache HTTP
Đố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 .
Các tin liên quan
Cách thiết lập server ảo Apache trên Ubuntu 18.042020-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