mod_security is a Web Application Firewall (WAF) that filters and blocks known malicious HTTP requests. Blocked HTTP requests include many, but not all forms of Brute Force, Cross-Site Scripting (XSS), Remote File Inclusion (RFI) , Remote Execution, and SQL injection (SQLi) attacks.
DreamHost enables mod_security for free by default. You can enable/disable this feature using the 'Extra Web Security' option in the panel.
Where to enable this feature?
There are two sections in the panel this can be added:
- On the Manage Domains page
- When editing SSL settings
Enabling mod_security on the 'Manage Domains' page
- Navigate to the Manage Domains page.
- Click the Edit button under the Web Hosting column.
- The Manage Domains page appears:
- Under the Web Options section, the checkbox titled Extra Web Security? is enabled by default.
- If you wish to disable mod_security, un-check this box and save the change(s).
The Extra Web Security option enables the use of a special security module for your website. Many common attacks that can compromise your website are blocked by this option, but there are no guarantees that all attacks will be prevented. With Extra Web Security enabled, DreamHost proactively ensures that the most commonly known attacks are prevented.
DreamHost uses the HTTP response code 418. If you see 418 response codes in your access.log files, it means that the request was blocked by mod_security. However, this may not mean a specific visitor was blocked, but rather a request to your website. You need to read your log entries to determine what caused the 418 error.
Further details related to the block are often in the corresponding date stamped error.log entry. If you are having trouble deciphering why you are getting a 418 error in your log files, please don’t hesitate to contact support at Contact Support.
DreamHost mod_security rules
While a majority of DreamHost’s mod_security rule set is custom created as threats emerge, the base of DreamHost’s mod_security rule set comes from the OWASP mod_security Core Rules Set.
'Unused' error message
When a 418 error response is triggered by a user visiting your site, the following error message appears:
Unused. The server encountered an internal error or misconfiguration and was unable to complete your request.
The 418 error indicates that there is a temporary ban by mod_security on the server. Most often, this is triggered by multiple failed login attempts to a WordPress site. Once triggered, the message appears after any subsequent attempts to access the login page.
DreamHost support is unable to remove this ban once it has been triggered. In order for the ban to expire, the user must stop accessing the server for 10 minutes.
An important note about modifying .htaccess mod_security rules
Disabling and modifying of mod_security rules via .htaccess is not supported at this time.