Implementation of Recommendations
This section describes the software installation procedures and the process of securing the SC with the Solaris Security Toolkit.
The security recommendations to secure the Sun Fire 15K SC involves the installation of four software packages. These packages are:
- Solaris Security Toolkit
- FixModes
- OpenSSH
- MD5
NOTE
Of the four packages described in this section, only the use of the Solaris Security Toolkit, FixModes, and MD5 are required. The use of OpenSSH, while being strongly recommended, is not required. A commercial version of SSH, available from http://www.ssh.com or http://www.fsecure.com, may be substituted for OpenSSH.
Software Installation
The first step in securing the SC is to install the required software. This section describes how each of the software packages should be installed.
Solaris Security Toolkit Installation
First, the Solaris Security Toolkit software must be downloaded and installed on the SC. The Toolkit will be used to automate the Solaris OE hardening tasks described later in this section.
The instructions included use filenames which are only correct for this release of the Toolkit. Use the following procedure to download and install the Toolkit:
Download the source file (SUNWjass-0.3.2.pkg.Z).
The source file is located at:
- http://www.sun.com/security/jass
Extract the source file into a directory on the server using the uncompress command as shown:
# uncompress SUNWjass-0.3.2.pkg.Z
Install the Toolkit onto the server using the pkgadd command as shown:
# pkgadd -d SUNWjass-0.3.2.pkg SUNWjass
Executing this command creates the SUNWjass directory in /opt. This subdirectory will contain all the Toolkit directories and associated files. The script make-pkg, included in Toolkit releases since version 0.3 allows administrators to create custom packages using a different installation directory.
FixModes
This section describes how to download and install the FixModes software into the appropriate Solaris Security Toolkit directory so it can be used to tighten file permissions during the installation of the Toolkit. Selectively modifying system permissions makes it more difficult for malicious users to gain additional privileges on the system.
NOTE
A new version of FixModes supporting the Sun Fire 15K SC was created, tested, and released in parallel with the publication of this article. This new version of FixModes must be used to modify the permissions on the SC. The download instructions below must be followed to access this latest FixModes version. The use of any previous FixModes releases on the SC will adversely impact the performance of the SMS software running on the SC. The correct FixModes version must have secure-modes.c version 1.41 and exempt-pkgs.h version 1.1. Newer versions of either file are also acceptable. Earlier versions of FixModes must not be used to secure the SC.
Follow the following instructions to download FixModes:
Download the FixModes pre-compiled binaries from:
http://www.Sun.COM/blueprints/tools/FixModes_license.html
The FixModes software is distributed as a precompiled and compressed tar file format called FixModes.tar.Z.
Save the file, FixModes.tar.Z, to the Solaris Security Toolkit Packages directory in /opt/SUNWjass/Packages.
NOTE
The compressed tar archive should not be uncompressed.
OpenSSH
In any secured environment the use of encryption, in combination with strong authentication, is highly recommended. At a minimum, user interactive sessions should be encrypted. The tool most commonly used to implement this is some implementation of Secure Shell, whether commercially purchased or the freeware version.
The use of some Secure Shell variant is strongly recommended when implementing all the security modifications performed by the Solaris Security Toolkit software. The Toolkit will disable all non-encrypted user-interactive services and daemons on the system, in particular services such as in.telnetd and in.ftpd are all disabled. Access to the system can be gained with Secure Shell in a similar fashion to what was provided by RSH, TELNET, and FTP. It is strongly recommended that Secure Shell be installed and configured before executing a Toolkit run.
A Sun BluePrints OnLine article discussing how to compile and deploy OpenSSH titled: Building and Deploying OpenSSH on the Solaris Operating Environment (July 2001) is available at:
Information on where to obtain the commercial versions of SSH is provided in the References section.
NOTE
The Sun BluePrints OnLine article mentioned above provides recommendations on how to compile OpenSSH. However, OpenSSH should not be compiled on the SC itself nor should the compilers be installed on the SC. Instead a separate Solaris system, running the same Solaris OE version, architecture, and mode (i.e., 64 bit) should be used to compile OpenSSH. If a commercial version of SSH is used then this issue is avoided.
MD5
This section describes how to download and install the MD5 software used to validate MD5 digital fingerprints on the Sun Fire 15K SC. This ability to validate the integrity of Solaris OE binaries provides a robust mechanism to detect system binaries which may have been altered by unauthorized users of the system. By modifying system binaries, attackers can provide themselves with back-door access onto the system.
To Install the MD5 Program ( Intel and SPARC_ Architecture):
Download the MD5 binaries from:
- http://sunsolve.Sun.COM/md5/md5.tar.Z
- The MD5 programs are distributed in compressed tar file format.
Save the file to a directory (for example /usr/local or /opt).
Unpack the archive with the following command:
# zcat md5.tar.Z | tar xvf -
The archive contents are extracted into a newly created directory called md5. The programs for Intel and SPARC architecture hardware platforms are placed in this directory.
The owner and group of the extracted files must also be modified to correspond to a system defined user and group ID. Due to the sensitivity of the operations being performed by the md5 programs, they should be owned by the root user and the root group. The following demonstrates performing this on the md5 programs:
# chown -R root:root /opt/md5 # ls -l total 94 -rw------- 1 root root 23892 Apr 5 2000 md5-sparc -rw------- 1 root root 23452 Apr 5 2000 md5-x86
The file permissions on the extracted files must be modified before they can be executed. The following command will permit only root to read, write, and execute the md5 programs:
# chmod -R 700 /opt/md5 # ls -l total 94 -rwx------ 1 root root 23892 Apr 5 2000 md5-sparc -rwx------ 1 root root 23452 Apr 5 2000 md5-x86
Once installed, the Solaris Fingerprint Database can be used to verify the integrity of the executables included in the package itself. More information on the Solaris Fingerprint Database can be found in the Sun BluePrints OnLine article titled The Solaris™ Fingerprint Database - A Security Tool for Solaris Software and Files and available from the following URL:
http://www.sun.com/blueprints/0501/Fingerprint.pdf
Two additional tools are described in the above Sun BluePrints OnLine article that simplify the process of validating system binaries against the database of MD5 checksums maintained by Sun at SunSolve OnlineSM Web site. These tools are called Solaris Fingerprint Database Companion and Solaris Fingerprint Database Sidekick.
It is strongly recommended to install these two tools in this section, in combination with the MD5 software, and use the tools frequently to validate the integrity of the Solaris OE binaries and files on the main and spare SC.
Securing the SC with the Solaris Security Toolkit Software
Now that all the software is installed, the Solaris OE image running on the Sun Fire 15K SC can be secured.
NOTE
Before implementing the security recommendations in this section, it should be understood that all non-encrypted access mechanisms to the SC will be disabled, such as TELNET, RSH, and FTP. The hardening steps will not disable console serial access over the SC serial port.
Solaris Security Toolkit Software Execution
The Solaris Security Toolkit provides specific drivers to automate the hardening of the Sun Fire 15K SC. This section steps through the process by which the Solaris Security Toolkit software is used to harden a Sun Fire 15K SC.
The Toolkit is executed in the following manner:
# cd /opt/SUNWjass # ./jass-execute -d sunfire_15k_sc-secure.driver ./jass-execute: NOTICE: Executing driver, sunfire_15k_sc-secure.driver ============================================================ sunfire_15k_sc-secure.driver: Driver started. ============================================================ [...] |
By executing the sunfire_15k_sc-secure.driver script, all of the security modifications included in that script will be made on the system. The current release of this driver script, as implemented in this article, includes over one hundred security modifications on the SC.
NOTE
The sunfire_15k_sc-secure.driver will automatically execute the FixModes program to tighten filesystem permissions on the system.
In addition to displaying the output to the console, a log file is created in the /var/opt/SUNWjass/run directory. Each Solaris Security Toolkit run will create another run directory in /var/opt/SUNWjass/run. The names of these directories are based on the date and time the run was begun.
NOTE
The contents of the /var/opt/SUNWjass/run directories should not be modified under any circumstances. User modification of the files contained in those directories may corrupt the contents and cause unexpected errors when using Solaris Security Toolkit software features such as undo.
The files stored in the /var/opt/SUNWjass/run directory are used not only to track what modifications were performed on the system, but are also used for the jass-execute "undo" functionality. A run, or series of runs, can be undone with the jass-execute -u command. For example, on a system where seven separate Toolkit runs had been performed, they would all be undone with the following command:
# pwd /opt/SUNWjass # ./jass-execute -u Please select from one of these backups to restore to 1. September 25, 2001 at 06:28:12 (//var/opt/SUNWjass/run/20010925062812) 2. April 10, 2001 at 19:04:36 (//var/opt/SUNWjass/run/20010410190436) 3. Restore from all of them Choice? 3 ./jass-execute: NOTICE: Restoring to previous run //var/opt/SUNWjass/run/20010925062812 =============================================================== undo.driver: Driver started. =============================================================== [...] |
Additional documentation on the Solaris Security Toolkit software is available in the /opt/SUNWjass/Documentation directory or online at the following URL:
http://www.sun.com/security/jass
Verification of SC Hardening
Once the SC has been hardened and all hardening processes are completed, the SC should be rebooted and its configuration verified by having it assume the main SC role. This must be done before hardening the spare SC.
NOTE
Do not harden the spare SC until the hardened configuration of the main SC has been verified to function properly in your environment.
Once the hardened SC has taken control of the frame, and SMS control of the platform has been verified, then the spare SC can be hardened. The spare SC (sc1) must not be hardened until the main SC (sc0) has been verified. After the main SC is verified, the entire software installation and hardening process described above should be performed on the spare SC.
NOTE
It is recommended that the failover be disabled before hardening any of the SCs. Once each SC is hardened it should be manually defined as the main SC and its functionality verified. Only after both SCs have been hardened and tested should failover be re-enabled.
Hardening Results
After the above hardening steps are completed the number of daemons and services running on the SC is significantly lower.
The SC on which these recommendations were tested, the number of TCP IPv4 services listed by netstat went from 31, prior to the Toolkit run, to six. Similarly, the number of UDP IPv4 services listed by netstat went from 57 to five. By reducing the number of services available, the exposure points of this system are reduced significantly:
# netstat -a UDP: IPv4 Local Address Remote Address State -------------------- -------------------- ------- *.sunrpc Idle *.32771 Idle *.32773 Idle *.syslog Idle *.32776 Idle *.* Unbound TCP: IPv4 Local Address Remote Address Swind Send-Q Rwind Recv-Q State -------------------- -------------------- ----- ------ ----- ------ ----- *.sunrpc *.* 0 0 24576 0 LISTEN *.32771 *.* 0 0 24576 0 LISTEN *.sun-dr *.* 0 0 24576 0 LISTEN *.32772 *.* 0 0 24576 0 LISTEN *.32773 *.* 0 0 24576 0 LISTEN *.22 *.* 0 0 24576 0 LISTEN *.* *.* 0 0 24576 0 IDLE |