SQL Server Hardening
• SQL Server Hardening Considerations, page 1
• SQL Server 2008 R2 Security Considerations, page 3
SQL Server Hardening Considerations
Top SQL Hardening Considerations
Top SQL Hardening considerations:
1 Do not install SQL Server on an Active Directory Domain Controller.
2 In a multitier environment, run web logic and business logic on separate computers.
3 Install the latest applicable SQL Server service pack and security updates. Refer to the Unified CCE
Compatibility Matrix for the compatible service pack for your product.
4 Set a strong password for the sa account before installing ICM.
5 Always install SQL Server service to run using a least privilege account. Never install SQL Server to run
using the built-in Local System account. Instead, use the Network Services account.
See the Staging Guide for Cisco Unified ICM/Contact Center Enterprise & Hosted at http://www.cisco.com/
c/en/us/support/customer-collaboration/unified-contact-center-enterprise/
products-installation-and-configuration-guides-list.html for more information.
6 Enable SQL Server Agent Service and set to Automatic for database maintenance in Unified ICM.
Note Applying SQL Server security updates or hotfixes can require that you disable the SQL Server Agent
service. Reset this service to “disabled” before performing the update. When the update has completed,
stop the service and set it back to “enabled”.
7 Use NTFS directory security with EFS for SQL Server data directories. EFS must be set while logged in
under the account credentials that the SQL service runs under (for example, <domain>\SQLServiceAcct>).
Security Best Practices Guide for Cisco Unified ICM/Contact Center Enterprise & Hosted, Release 10.5(1)
1
SQL Server Hardening
SQL Server Users and Authentication
From the Local Policy editor, temporarily grant “logon locally” privileges to this account to enable EFS
then remove this right after signing out.
Only enable EFS if data theft is a concern; there is a performance impact.
Note To copy and send the data to other parties, back up the database to a different, unencrypted directory to
ensure that the receiving party can read the backup. You can do this backup from the SQL Server Enterprise
Manager.
8 Disable the SQL guest account.
9 Restrict sysadmin membership to your Unified ICM administrators.
10 Block TCP port 1433 and UDP port 1434 at the firewall, unless the Administration & Data Server is not
in the same security zone as the Logger.
11 Provide protection with good housekeeping:
a Run the KillPwd utility to remove password data from setup files. Detailed instructions on how to run
this utility can be found in the Microsoft article KB 263968.
b Delete or archive these setup files after installation:
• sqlstp.log
• sqlsp.log
• setup.iss
The files are in <systemdrive>:\Program Files\Microsoft SQL
Server\MSSQL\Install for a default installation or <systemdrive>:\Program
Files\Microsoft SQL Server\ MSSQL$<Instance Name>\Install for named
instances.
If the current system is an upgrade from SQL Server 7.0, delete the following files:
• setup.iss in %Windir%
• sqlsp.log in Windows Temp
12 Change the recovery actions of the Microsoft SQL Server service to restart after a failure.
13 Remove all sample databases.
14 Enable auditing for failed logins.
Related Topics
SQL Server Users and Authentication, on page 2
SQL Server Users and Authentication
When creating a user for the SQL Server account, create Windows accounts with the lowest possible privileges
for running SQL Server services. Create the accounts during the installation of SQL Server.
Security Best Practices Guide for Cisco Unified ICM/Contact Center Enterprise & Hosted, Release 10.5(1)
2
SQL Server Hardening
SQL Server 2008 R2 Security Considerations
During installation, SQL Server Database Engine is set to either Windows Authentication mode or SQL Server
and Windows Authentication mode. If Windows Authentication mode is selected during installation, the sa
login is disabled. If you later change authentication mode to SQL Server and Windows Authentication mode,
the sa login remains disabled. To enable the sa login, use the ALTER LOGIN statement. For more details,
see http://msdn.microsoft.com/en-us/library/ms188670.aspx.
The local user or the domain user account that is created for the SQL Server service account follows the
Windows or domain password policy respectively. Apply a strict password policy on this account. However,
do not set the password to expire. If the password expires, the SQL Server service ceases to function and the
Administration & Data Server fails.
Site requirements can govern the password and account settings. Consider minimum settings like the following:
Table 1: Password and Account Settings
Setting Value
Enforce Password History 24 passwords remembered
Minimum Password Length 12 characters
Password Complexity Enabled
Minimum Password Age 1 day
Account Lockout Duration 15 minutes
Account Lockout Threshold 3 invalid logon attempts
Reset Account Lockout Counter After 15 minutes
Note The service account password must explicitly be set to Not expire.
Mixed mode authentication is enforced through SQL Server 2008 R2 automated hardening.
During web setup, if the sa password is blank, a randomly generated strong password is generated and used
to secure the sa account.
Important This randomly generated sa password is displayed only once during the install. Make note of the password
because it is not presented again.
You can reset the sa account password after installation by logging on to the SQL Server using a Windows
Local Administrator account.
SQL Server 2008 R2 Security Considerations
Microsoft SQL Server 2008 R2 is far more secure by design, default, and deployment than prior versions.
Microsoft SQL Server 2008 R2 provides a much more granular access control and a new utility to manage
Security Best Practices Guide for Cisco Unified ICM/Contact Center Enterprise & Hosted, Release 10.5(1)
3
SQL Server Hardening
Automated SQL 2008 R2 Hardening
attack surface, and runs with lower privileges. When implementing Microsoft SQL Server 2008 R2 security
features, the database administrator must follow the guidelines in the following section.
Automated SQL 2008 R2 Hardening
The SQL Server Security Automated Hardening utility performs the following:
• Enforces Mixed Mode Authentication.
• Verifies that the Named Pipe (np) is listed before TCP/IP (tcp) in the SQL Server Client Network Protocol
Order.
• Disables SQLWriter, SQLBrowser, MSSQLServerADHelper100 Services.
• Forces SQL server user 'sa' password if found blank.
SQL Server Security Hardening Utility
The SQL Server Security Hardening utility allows you to harden or roll back the SQL Server security on
Logger and Administration & Data Server/HDS components. The Harden option disables unwanted services
and features. If the latest version of the security settings is already applied, then the Harden option does not
change anything. The Rollback option allows you to return to the state of SQL services and features that
existed before your applying the last hardening.
The SQL Server Security Hardening utility is launched via Setup, by default, to harden the SQL Server security.
However, you can run it manually.
Utility Location
The utility is located at:
%SYSTEMDRIVE%\CiscoUtils\SQLSecurity
Harden SQL Server
On the command line enter:
Perl ICMSQLSecurity.pl HARDEN
Note The current SQL Server configuration is backed up to
<ICMInstallDrive>:\CiscoUtils\SQLSecurity\ICMSQLSEcurity.bkp before the
utility applies the SQL Server hardening.
Roll Back SQL Server Security Hardening
The ROLLBACK command rolls back to the previous SQL Server configuration, if hardening was applied
before.
To roll back to the previous SQL Server configuration, enter the following command:
Security Best Practices Guide for Cisco Unified ICM/Contact Center Enterprise & Hosted, Release 10.5(1)
4
SQL Server Hardening
Manual SQL 2008 R2 Server Hardening
Perl ICMSQLSecurity.pl ROLLBACK
Note The following security hardening settings are not removed when:
1 SQL Server security mode is currently set to Windows Only Authentication.
2 SQL Server user “sa” is set to random password.
3 SQLVSSWriter, SQLBrowser, and MSSQLServerADHelper100 services are disabled.
You can roll back these settings manually using SQL Server Management Studio tool.
No Argument
If you use no argument with the command line, the help appears.
Output Log
All output logs are saved in the file:
%SYSTEMDRIVE%\CiscoUtils\SQLSecurity\Logs\ICMSQLSecurity.log
Manual SQL 2008 R2 Server Hardening
By default, SQL Server 2008 R2 disables VIA endpoint and limits the Dedicated Administrator Connection
(DAC) to local access. Also, by default, all logins have GRANT permission for CONNECT using Shared
Memory, Named Pipes, TCP/IP, and VIA endpoints. Unified ICM requires only Named Pipes and TCP/IP
endpoints.
• Enable both Named Pipes and TCP/IP endpoints during SQL Server 2008 R2 setup. Make sure that the
Named Pipes endpoint has a higher order of priority than TCP/IP.
Note The SQL Server Security Hardening utility checks for the availability and order of these endpoints.
• Disable access to all unrequired endpoints. For instance, deny connect permission to VIA endpoint for
all users/groups who have access to the database.
Security Best Practices Guide for Cisco Unified ICM/Contact Center Enterprise & Hosted, Release 10.5(1)
5
SQL Server Hardening
Manual SQL 2008 R2 Server Hardening
Security Best Practices Guide for Cisco Unified ICM/Contact Center Enterprise & Hosted, Release 10.5(1)
6