Setting up iThemes Security
Adding iThemes to your site is a great way to add basic security measures and reduce the risk of automated attacks crippling your website. Here we'll run through the steps to set up a basic installation.
1) Install iThemes Security Pro - while in the plugins section click 'License' under iThemes Security Pro and sign in to the account that was used to purchased the license, then navigate to Security > Settings, then click the 'All' filter at the top of the screen to begin setup
2) Temporarily whitelist your IP to prevent lockout
3) Global Settings:
- Allow Write to Files
- Add your emails as the Notification Email
- Skip over Send Digest Email and Backup Delivery Email
- Set Host Lockout Message to "Your IP has been blocked due to too many 404 errors"
- Skip over User Lockout Message and Community Lockout Message
- Enable Blacklist Repeat Offender
- Blacklist Threshold should be 5 Lockouts
- Blacklist Lookback Period should be 3 days
- Lockout Period should be 15 minutes
- Add your current IP to Whitelist to avoid ever being banned
- Skip the rest of Global Settings
- Save settings
4) 404 Detection:
- Enable 404 detections
- Minutes to Remember 404 Error (Check Period) should be 5 minutes
- Error Threshold should be 10
- Skip the Rest of 404 Detection
- Save settings
5) Away Mode - Skip enitrely
6) Ban Users:
- Enable the Default Blacklist
- Enable Ban Users
- Skip the rest of Ban Users
- Save settings
7) Brute Force Protection:
- Get iThemes Brute Force Protection API Key
- Enable iThemes Brute Force Network Protection
- Enable local brute force protection
- Max Login Attempts Per Host should be 5 Attempts
- Max Login Attempts Per User should be 10 Attempts
- Minutes to Remember Bad Login (check period) should be 5 Minutes
- Check Automatically ban "admin" user
- Save settings
8) Database Backups - Skip entirely
9) File Change Detection:
- Enable File Change Detection
- Split File Scanning into chunks
- Enable Email File Change Notifications
- Enable Display File Change Admin Warning
- Enable Compare Files Online
- Save settings
10) Hide Login Area:
- Enable Hide Backend
- Login Slug should be changed from the suggested wplogin to a unique one
- Enable Theme Compatibility
- Theme Compatibility Slug should be not_found
- Save settings
11) Malware Scanning:
- Enable Send email notifications when an issue is found
- Select Administrative users that receive motification emails
- Save settings
12) Secure Socket Layers (SSL) - Skip entirely
13) Strong Password:
- Enable Strong Passwords
- Select Role for Strong Passwords should be Subscriber
- Select Refuse Compromised Passwords and minimum role Subscriber.
- Save settings
14) System Tweaks:
- Enable System Files protection
- Disable Directory Browsing
- Enable Filter Request Methods
- Enable Filter Suspicious Query Strings in URL
- Enable Filter Non-English Characters
- Enable Filter Long URL Strings (Only disable if it creates interferance with other plugins such as S2 Member)
- Enable Remove File Writting Permissions
- Enable Disable PHP in uploads
- Skip disable PHP in plugins, and disable PHP in themes
- Save settings
15) WordPress Tweaks:
- Remove Windows Live Writer Header and EditURI Header
- Remove the RSD (Really Simple Discovery) header
- Enable Comment Spam reduction
- Disable File Editor
- Set XML-RPC to Disable XML-RPC (recommended)
- Set Multiple Authentication Attempts per XML-RPC Request to Block (recommended)
- Restrict access to Rest API
- Enable Replace jQuery With a Safe Version
- Disable Login Error Messages
- Enable Force Unique Nickname
- Disable Extra User Archives
- Enable Protect against tabnapping
- Save settings
16) WordPress Salts:
- Enable, and click Change WordPress Salts
- Save settings
(Note: WordPress salts should only be changed when first setting up a site, or after cleaning up, or restoring a site that has been compromised with malware.)
17) Change Database Table Prefix:
- It is important that you create a database backup before changing the table prefix in the event that something goes wrong
- Under Change Prefix, select 'Yes' from the dropdown menu
- Save settings
(Note: Database Table Prefix should only be changed when first setting up a site, or after cleaning up, or restoring a site that has been compromised with malware.)
18) reCAPTCHA: (note: disable for login only if users are having issues logging in)
- Click "Google reCAPTCHA" link and add site's URL to your reCAPTCHA account, you don't have an account, log in with your Google account and create one
- Copy Site Key from google and paste it into the respect field in iThemes
- Copy Secret Key from google and paste it into the respect field in iThemes
- Enable Use reCAPTCHA for user login
- Enable Use reCAPTCHA for user registration
- Enable Use reCAPTCHA for new comments
- Leave the rest as default
- Save settings
19) Bonus: Two-Factor Authentication (For added layer of security, but not necessary for most sites as it adds unnecessary burden to the login process)
- Under Authentication Methods Available to Users select "All Methods" from the drop-down
- Check all boxes under Select Available Methods
- Under Select Roles to Protect check all roles you'd like to protect, at minimum select Administrator
- Leave the rest as default
- Save settings
The Latest iThemes updates
Notifications and other features have been added to iThemes, so please update the following items
20) Notifications: The main section for all notifications for selected options above.
- Leave the From Email text field alone. It will pull in the admin email as the main notifications email.
- Select only main (AWD) emails as the default receipents
- The only main features that you want checked and to have notifications sent out, and that you have enabled, are Malware Scan Results, Hide Backend, and 2-factor Authentication.
You're all set!