Difference between revisions of "Further Security Steps"

From WHMCS Documentation

Line 1: Line 1:
The guide below describes various extra steps you can take to further secure your WHMCS system.
+
WHMCS has many features built-in to help keep your data safe, but here are several simple extra steps you can take to secure your WHMCS installation even further.
 +
 
 +
==Change your WHMCS Admin Folder Name==
 +
 
 +
Malicious users who visit your site and recognise a WHMCS install will know that they can try logging into your admin area @ /admin/  To protect against this, you can '''rename the admin folder''' to something else.  You then must tell WHMCS what the name of that folder is for things to work by adding the following line to the configuration.php file:<br />
 +
 
 +
$customadminpath = "custom_admin_folder_name_goes_here";
 +
 
 +
Please note that if you have already created a cron job, or one has been created for you, you will need to update the path on the cron as well. eg. php -q /home/mylogin/public_html/secure/'''myfoldername'''/cron.php
 +
 
 +
==Password Protect the Admin Directory==
 +
 
 +
Add a second layer of protection to the admin directory by setting up '''.htaccess password protection'''. Most users can do this via the Password Protect Directories option in cPanel. Remember to keep your .htaccess username/password distinct and unique. You can use the Random Password Generation feature in cPanel to help.
  
 
==Move the attachments, downloads & templates_c folders==
 
==Move the attachments, downloads & templates_c folders==
  
The three folders "attachments", "downloads" and "templates_c" need to be writeable by WHMCS and therefore require the permissions 777 (writeable by all).  When folders have this permission level it is safer to place the folders outside of the public accessible folder tree on your website.  WHMCS allows you to do this.  If you do move the folders, then you must tell WHMCS where they have been moved to by adding the following lines to your configuration.php file:
+
The three folders "attachments", "downloads" and "templates_c" need to be writeable by WHMCS and therefore require the permissions 777 (writeable by all).  When folders have this permission level it is safer to place the folders outside of the public accessible folder tree on your website.  WHMCS allows you to do this.  If you do move the folders, then you must tell WHMCS where they have been moved to by adding the following lines to the configuration.php file:
  
 
  $templates_compiledir = "/home/username/templates_c/";
 
  $templates_compiledir = "/home/username/templates_c/";
Line 12: Line 24:
  
 
Note that if you are running suphp or phpsuexec you should not make the mode changes as the folders will already be writeable. In fact, you cannot set folder or file permissions to be 777 when running suphp or phpsuexec - the highest permissions are 755 for both folders and files.
 
Note that if you are running suphp or phpsuexec you should not make the mode changes as the folders will already be writeable. In fact, you cannot set folder or file permissions to be 777 when running suphp or phpsuexec - the highest permissions are 755 for both folders and files.
 
==Change your WHMCS Admin Folder name==
 
 
Malicious users who visit your site and recognise a WHMCS install will know that they can try logging into your admin area via the admin folder.  To protect against this, you can rename the admin folder name to any name you like.  You cannot move the folder - only rename it.  You can then tell WHMCS what the name of that folder is for the links in admin notification emails by adding the following line to your configuration.php file:<br />
 
 
$customadminpath = "myfoldername";
 
 
Replace "myfoldername" above with the new name you just gave to your admin folder.
 
 
Please note that if you have already created a cron job, or one has been created for you, you will need to update the path on the cron as well.
 
 
Example: php -q /home/mylogin/public_html/secure/'''myfoldername'''/cron.php
 
  
 
==Restrict Access by IP==
 
==Restrict Access by IP==

Revision as of 10:28, 25 May 2012

WHMCS has many features built-in to help keep your data safe, but here are several simple extra steps you can take to secure your WHMCS installation even further.

Change your WHMCS Admin Folder Name

Malicious users who visit your site and recognise a WHMCS install will know that they can try logging into your admin area @ /admin/ To protect against this, you can rename the admin folder to something else. You then must tell WHMCS what the name of that folder is for things to work by adding the following line to the configuration.php file:

$customadminpath = "custom_admin_folder_name_goes_here";

Please note that if you have already created a cron job, or one has been created for you, you will need to update the path on the cron as well. eg. php -q /home/mylogin/public_html/secure/myfoldername/cron.php

Password Protect the Admin Directory

Add a second layer of protection to the admin directory by setting up .htaccess password protection. Most users can do this via the Password Protect Directories option in cPanel. Remember to keep your .htaccess username/password distinct and unique. You can use the Random Password Generation feature in cPanel to help.

Move the attachments, downloads & templates_c folders

The three folders "attachments", "downloads" and "templates_c" need to be writeable by WHMCS and therefore require the permissions 777 (writeable by all). When folders have this permission level it is safer to place the folders outside of the public accessible folder tree on your website. WHMCS allows you to do this. If you do move the folders, then you must tell WHMCS where they have been moved to by adding the following lines to the configuration.php file:

$templates_compiledir = "/home/username/templates_c/";
$attachments_dir = "/home/username/attachments/";
$downloads_dir = "/home/username/downloads/";

In the above example, "username" is the cpanel username and so the 3 folders are located in the home directory, above public_html.

Note that if you are running suphp or phpsuexec you should not make the mode changes as the folders will already be writeable. In fact, you cannot set folder or file permissions to be 777 when running suphp or phpsuexec - the highest permissions are 755 for both folders and files.

Restrict Access by IP

For added security, if your staff use fixed IP addresses, you can add even more protection to your admin area by restricting access to a specific set of IPs. This is done by creating a file with the name .htaccess within your WHMCS admin directory, with the following content:

order deny,allow
allow from 12.34.5.67
allow from 98.76.54.32
deny from all

You can specify as many different allow from lines as you require. Or you can even allow entire IP subnet's by specifying just the first part of an IP, for example: "12.34.". This is called Htaccess IP Restriction.

<< Back to Installation Overview