<?xml 
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
>

<channel xml:lang="fr">
	<title>Bienvenue sur le site admin-sys</title>
	<link>http://www.admin-sys.org/</link>
	<description>Bienvenu sur le site admin-sys.</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net (Sarka-SPIP)</generator>

	<image>
		<title>Bienvenue sur le site admin-sys</title>
		<url>https://admin-sys.org/local/cache-vignettes/L144xH55/siteon0-02f93.png?1694605449</url>
		<link>http://www.admin-sys.org/</link>
		<height>55</height>
		<width>144</width>
	</image>



 
	<item xml:lang="fr">
		<title>Suppression des services r&#233;seaux &#034;inutiles&#034; en Solaris 10</title>
		<link>https://admin-sys.org/?suppression-des-services-reseaux</link>
		<guid isPermaLink="true">https://admin-sys.org/?suppression-des-services-reseaux</guid>
		<dc:date>2011-03-29T21:04:52Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jerome ROBERT</dc:creator>



		<description>
&lt;p&gt;Un certain nombre de services r&#233;seaux peuvent &#234;tre d&#233;sactiv&#233;s afin de renforcer la s&#233;curit&#233; du syst&#232;me solaris 10
&lt;br class='autobr' /&gt;
svcadm disable ftp
&lt;br class='autobr' /&gt;
svcadm disable telnet
&lt;br class='autobr' /&gt;
svcadm disable rlogin
&lt;br class='autobr' /&gt;
svcadm disable svc :/network/shell:kshell
&lt;br class='autobr' /&gt;
svcadm disable svc :/network/shell:default
&lt;br class='autobr' /&gt;
svcadm disable finger
&lt;br class='autobr' /&gt;
svcadm disable svc :/network/rpc/mdcomm:default
&lt;br class='autobr' /&gt;
svcadm disable svc :/network/rpc/metamed:default
&lt;br class='autobr' /&gt;
svcadm disable svc :/network/rpc/metamh:default
&lt;br class='autobr' /&gt;
svcadm disable svc :/network/rpc/meta:default
&lt;br class='autobr' /&gt;
svcadm (&#8230;)&lt;/p&gt;


-
&lt;a href="https://admin-sys.org/?-securite-63-" rel="directory"&gt;S&#233;curit&#233;&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Un certain nombre de services r&#233;seaux peuvent &#234;tre d&#233;sactiv&#233;s afin de renforcer la s&#233;curit&#233; du syst&#232;me solaris 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
svcadm disable ftp&lt;br /&gt;
svcadm disable telnet&lt;br /&gt;
svcadm disable rlogin&lt;br /&gt;
svcadm disable svc :/network/shell:kshell&lt;br /&gt;
svcadm disable svc :/network/shell:default&lt;br /&gt;
svcadm disable finger&lt;br /&gt;
svcadm disable svc :/network/rpc/mdcomm:default&lt;br /&gt;
svcadm disable svc :/network/rpc/metamed:default&lt;br /&gt;
svcadm disable svc :/network/rpc/metamh:default&lt;br /&gt;
svcadm disable svc :/network/rpc/meta:default&lt;br /&gt;
svcadm disable svc :/network/stdiscover:default&lt;br /&gt;
svcadm disable svc :/network/stlisten:default&lt;br /&gt;
svcadm disable svc :/network/cde-spc:default&lt;br /&gt;
svcadm disable svc :/network/rpc/cde-ttdbserver:tcp&lt;br /&gt;
svcadm disable svc :/network/rpc/rstat:default&lt;br /&gt;
svcadm disable svc :/network/nfs/cbd:default&lt;br /&gt;
svcadm disable svc :/network/rpc/rusers:default&lt;br /&gt;
svcadm disable svc :/application/x11/xfs:default&lt;br /&gt; &lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>JASS</title>
		<link>https://admin-sys.org/?jass</link>
		<guid isPermaLink="true">https://admin-sys.org/?jass</guid>
		<dc:date>2009-04-22T15:27:51Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jerome ROBERT</dc:creator>



		<description>
&lt;p&gt;Pour s&#195;&#169;curit&#195;&#169; votre syst&#195;&#168;me Solaris. &lt;br class='autobr' /&gt;
JASS est un ensemble de scripts qui permet de s&#195;&#169;curiser votre syst&#195;&#168;me &lt;br class='autobr' /&gt;
Solaris. &lt;br class='autobr' /&gt;
Il y a deux modes : standalone jumpstart &lt;br class='autobr' /&gt; Le mode 'standalone' permet l'application des r&#195;&#168;gles de s&#195;&#169;curit&#195;&#169;s sur un &lt;br class='autobr' /&gt;
syst&#195;&#168;me d&#195;&#169;j&#195; installer. &lt;br class='autobr' /&gt;
Le mode 'jumstart' permet d'appliquer les r&#195;&#168;gles de s&#195;&#169;curit&#195;&#169; lors de &lt;br class='autobr' /&gt;
l'installation du serveur. &lt;br class='autobr' /&gt; &lt;br class='autobr' /&gt;
Pour en savoir plus : &lt;br class='autobr' /&gt;
JumpStart Architecture and Security Scripts (JASS) toolkit : (&#8230;)&lt;/p&gt;


-
&lt;a href="https://admin-sys.org/?-securite-63-" rel="directory"&gt;S&#233;curit&#233;&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;br&gt;
&lt;p&gt;Pour s&#195;&#169;curit&#195;&#169; votre syst&#195;&#168;me Solaris.&lt;/p&gt;
&lt;p&gt;JASS est un ensemble de scripts qui permet de s&#195;&#169;curiser votre syst&#195;&#168;me &lt;br class='autobr' /&gt;
Solaris.&lt;/p&gt;
&lt;p&gt;Il y a deux modes :&lt;/p&gt;
&lt;ul&gt; &lt;li&gt;standalone&lt;/li&gt; &lt;li&gt;jumpstart&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Le mode 'standalone' permet l'application des r&#195;&#168;gles de s&#195;&#169;curit&#195;&#169;s sur un &lt;br class='autobr' /&gt;
syst&#195;&#168;me d&#195;&#169;j&#195; installer.&lt;/p&gt;
&lt;p&gt;Le mode 'jumstart' permet d'appliquer les r&#195;&#168;gles de s&#195;&#169;curit&#195;&#169; lors de &lt;br class='autobr' /&gt;
l'installation du serveur.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Pour en savoir plus :&lt;/p&gt;
&lt;p&gt;&lt;b&gt;JumpStart Architecture and Security Scripts (JASS) toolkit :&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;http://www.sun.com/software/security/jass/&#034; target=_blank&gt;&lt;br class='autobr' /&gt;
http://www.sun.com/software/security/jass/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;De la documentation pour s&#195;&#169;curiser votre SOLARIS pr&#195;&#169;f&#195;&#169;r&#195;&#169;.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;http://www.sun.com/software/security/blueprints/index.html&#034; target=_blank&gt;&lt;br class='autobr' /&gt;
http://www.sun.com/software/security/blueprints/index.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Securing a Solaris 8 Server : guide 2</title>
		<link>https://admin-sys.org/?securing-a-solaris-8-server-guide-157</link>
		<guid isPermaLink="true">https://admin-sys.org/?securing-a-solaris-8-server-guide-157</guid>
		<dc:date>2009-04-22T15:22:59Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jerome ROBERT</dc:creator>



		<description>
&lt;p&gt;guide2
&lt;br class='autobr' /&gt; Solaris Security Guide &lt;br class='autobr' /&gt; This document provides a list of configuration changes which enhance the security of a Sun SolarisTM (SunOS 5.X) system. &lt;br class='autobr' /&gt; Auditing &lt;br class='autobr' /&gt;
Enable the Basic Security Module (BSM) : /etc/security/bsmconv &lt;br class='autobr' /&gt;
Configure the classes of events to log in /etc/security/audit_control : dir :/var/audit flags:lo,ad,pc,fc,fd,fm naflags:lo,ad # # lo - login/logout events # ad - administrative actions : mount, exportfs, etc. # pc - (&#8230;)&lt;/p&gt;


-
&lt;a href="https://admin-sys.org/?-securite-63-" rel="directory"&gt;S&#233;curit&#233;&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p align=right&gt;&lt;b&gt;guide2&lt;/b&gt;&lt;/p&gt; &lt;TABLE WIDTH=350 CELLSPACING=0 CELLPADDING=0 BORDER=0&gt; &lt;TR&gt; &lt;TD&gt; &lt;BR&gt; &lt;FONT SIZE=&#034;+2&#034;&gt;Solaris Security Guide&lt;/font&gt; &lt;BR&gt; &lt;hr size=&#034;1&#034; color=&#034;#90A0D9&#034;&gt; &lt;/TD&gt; &lt;/TR&gt; &lt;/TABLE&gt; &lt;TABLE border=0 width=620 topmargin=0 leftmargin=0 marginwidth=0 marginheight=0&gt; &lt;TR&gt;&lt;TD&gt; &lt;BR&gt; &lt;P&gt;This document provides a list of configuration changes which enhance the security of a Sun Solaris&lt;sup&gt;&lt;small&gt;TM&lt;/small&gt;&lt;/sup&gt; (SunOS 5.X) system.&lt;/P&gt; &lt;CENTER&gt; | &lt;A href=&#034;#auditing&#034;&gt;Auditing&lt;/A&gt; | &lt;A href=&#034;#bootFiles&#034;&gt;Boot Files&lt;/a&gt; | &lt;A href=&#034;#networkServices&#034;&gt;Network Services&lt;/A&gt; | &lt;A href=&#034;#accessControls&#034;&gt;Access Controls&lt;/a&gt; | &lt;A href=&#034;#timeSync&#034;&gt;Time Synchronization&lt;/a&gt; | &lt;a href=&#034;#tools&#034;&gt;Recommended Tools&lt;/a&gt; | &lt;a href=&#034;#install&#034;&gt;Installing Solaris&lt;/a&gt; | &lt;/CENTER&gt; &lt;BR&gt; &lt;BR&gt;&lt;P&gt;&lt;A name=auditing&gt;&lt;B&gt;Auditing&lt;/B&gt;&lt;/A&gt;&lt;/P&gt; &lt;OL&gt; &lt;LI&gt;Enable the Basic Security Module (BSM): &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt;/etc/security/bsmconv&lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; &lt;P&gt;&lt;/LI&gt; &lt;LI&gt;Configure the classes of events to log in /etc/security/audit_control: &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; dir:/var/audit flags:lo,ad,pc,fc,fd,fm naflags:lo,ad # # lo - login/logout events # ad - administrative actions: mount, exportfs, etc. # pc - process operations: fork, exec, exit, etc. # fc - file creation # fd - file deletion # fm - change of object attributes: chown, flock, etc. # &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt;&lt;P&gt; &lt;LI&gt;Create /etc/security/newauditlog.sh: &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; #!/sbin/sh # # newauditlog.sh - Start a new audit file and expire the old logs # AUDIT_EXPIRE=30 AUDIT_DIR=&#034;/var/audit&#034; /usr/sbin/audit -n cd $AUDIT_DIR # in case it is a link /usr/bin/find . $AUDIT_DIR -type f -mtime +$AUDIT_EXPIRE \ -exec rm {} &gt; /dev/null 2&gt;&amp;1 \; &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt;&lt;P&gt; &lt;LI&gt;Run the script nightly from cron: &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; chmod 500 /etc/security/newauditlog.sh /usr/bin/crontab -e root 0 0 * * * /etc/security/newauditlog.sh &lt;/PRE&gt; &lt;/DD&gt;&lt;/DL&gt; &lt;LI&gt;The audit files generated are not human readable. The praudit(1M) command can be used to convert audit data into several ASCII formats. &lt;/OL&gt; &lt;BR&gt;&lt;P&gt;&lt;A name=&#034;bootFiles&#034;&gt;&lt;B&gt;Boot Files&lt;/B&gt;&lt;/A&gt;&lt;/P&gt; &lt;OL&gt; &lt;LI&gt;&lt;P&gt;Disable all startup files for services that are not needed from /etc/rc2.d and /etc/rc3.d. Services may be disabled by changing the capital 'S' in the name of the script to a lowercase 's'. The following startup files should &lt;B&gt;not&lt;/B&gt; be disabled: &lt;DL&gt;&lt;DD&gt; &lt;PRE&gt; S01MOUNTFSYS S69inet S72inetsvc S74xntpd S80PRESERVE S05RMTMPFILES S71rpc S74autofs S75cron S88utmpd S20sysetup S71sysid.sys S74syslog S75savecore S99audit S30sysid.net &lt;/PRE&gt; &lt;/DD&gt;&lt;/DL&gt; &lt;LI&gt;&lt;P&gt;In order to ensure that all of the startup scripts run with the proper umask, execute the following script: &lt;/P&gt; &lt;DL&gt;&lt;DD&gt; &lt;PRE&gt; umask 022 # make sure umask.sh gets created with the proper mode echo &#034;umask 022&#034; &gt; /etc/init.d/umask.sh chmod 544 /etc/init.d/umask.sh for d in /etc/rc?.d do ln /etc/init.d/umask.sh $d/S00umask.sh done &lt;/PRE&gt; &lt;/DD&gt;&lt;/DL&gt; &lt;/LI&gt; &lt;LI&gt;&lt;P&gt;In order to log as much information as possible, add the following lines to your /etc/syslog.conf: &lt;DL&gt;&lt;DD&gt; &lt;PRE&gt; mail.debug /var/log/syslog *.info;mail.none /var/adm/messages &lt;/PRE&gt; &lt;/DD&gt;&lt;/DL&gt; &lt;P&gt;Note: Tabs &lt;b&gt;must&lt;/b&gt; be used to separate the fields.&lt;/P&gt; This will log mail entries to /var/log/syslog and everything else to /var/adm/messages.&lt;/P&gt;&lt;/LI&gt; &lt;LI&gt;&lt;P&gt;Log failed login attempts by creating the /var/adm/loginlog file: &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; touch /var/adm/loginlog chown root /var/adm/loginlog chgrp sys /var/adm/loginlog &lt;/DL&gt;&lt;/DD&gt;&lt;/PRE&gt; &lt;LI&gt;&lt;P&gt;Set the permissions on the log files as follows: &lt;DL&gt;&lt;DD&gt; &lt;PRE&gt; chmod 600 /var/adm/messages /var/log/syslog /var/adm/loginlog &lt;/PRE&gt; &lt;/DD&gt;&lt;/DL&gt; &lt;/LI&gt; &lt;LI&gt;&lt;P&gt;Configure syslogd to not listen on port 514/udp by specifiing the &lt;tt&gt;-t&lt;/tt&gt; flag in /etc/rc2.d/S74syslog (Solaris &gt;= 8): &lt;DL&gt;&lt;DD&gt; &lt;PRE&gt; /usr/sbin/syslogd -t &gt; /dev/msglog 2&gt;&amp;1 &lt;/PRE&gt; &lt;/DD&gt;&lt;/DL&gt; &lt;/LI&gt; &lt;LI&gt;&lt;P&gt;Configure logs files to be rotated daily archiving old versions for 30 dain /etc/logadm.conf (Solaris &gt;= 9): &lt;DL&gt;&lt;DD&gt; &lt;PRE&gt; /var/log/syslog -A 30d -p 1d -z 1 -a 'kill -HUP &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cat /var/run/syslog.pid&lt;/code&gt;' /var/adm/messages -A 30d -p 1d -z 1 -a 'kill -HUP &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cat /var/run/syslog.pid&lt;/code&gt;; \ logger -t logadm Begin new logfile' &lt;/PRE&gt; &lt;/DD&gt;&lt;/DL&gt; &lt;/LI&gt; &lt;LI&gt;Enable hardware protection for buffer overflow exploits in /etc/system (sun4u, sun4d, and sun4m systems only). &lt;DL&gt;&lt;DD&gt; &lt;PRE&gt; * Foil certain classes of bug exploits set noexec_user_stack = 1 * Log attempted exploits set noexec_user_stack_log = 1 &lt;/PRE&gt; &lt;/DD&gt;&lt;/DL&gt; &lt;/OL&gt; &lt;BR&gt;&lt;P&gt;&lt;A name=&#034;networkServices&#034;&gt;&lt;B&gt;Network Services&lt;/B&gt;&lt;/A&gt;&lt;/P&gt; &lt;OL&gt; &lt;LI&gt;&lt;P&gt;Because the &lt;tt&gt;/usr/lib/sendmail&lt;/tt&gt; daemon is not running, you should add the following line to root's crontab file: &lt;DL&gt;&lt;DD&gt; &lt;PRE&gt; 0 * * * * /usr/lib/sendmail -q &lt;/PRE&gt; &lt;/DD&gt;&lt;/DL&gt; &lt;/LI&gt; &lt;LI&gt;&lt;P&gt;Replace &lt;tt&gt;/etc/mail/sendmail.cf&lt;/tt&gt; with the following: &lt;DL&gt;&lt;DD&gt; &lt;PRE&gt; # Minimal client sendmail.cf ### Defined macros # The name of the mail hub DRmailhost # Define version V8 # Whom errors should appear to be from DnMailer-Daemon # Formatting of the UNIX from line DlFrom $g $d # Separators Do.:%@!^=/[] # From of the sender's address Dq&lt;$g&gt; # Spool directory OQ/usr/spool/mqueue ### Mailer Delivery Agents # Mailer to forward mail to the hub machine Mhub, P=[IPC], S=0, R=0, F=mDFMuCX, A=IPC $h # Sendmail requires these, but are not used Mlocal, P=/bin/mail, F=rlsDFMmnuP, S=0, R=0, A=mail -d $u Mprog, P=/bin/sh, F=lsDFMeuP, S=0, R=0, A=sh -c $u ### Rule sets S0 R@$+ $#error $: Missing user name R$+ $#hub $@$R $:$1 forward to hub S3 R$*&lt;&gt;$* $n handle &lt;&gt; error address R$*&lt;$*&gt;$* $2 basic RFC822 parsing &lt;/PRE&gt; &lt;/DD&gt;&lt;/DL&gt; &lt;P&gt;This configuration should be sufficient for servers where no local mail delivery is required.&lt;/P&gt; &lt;/LI&gt; &lt;LI&gt;&lt;P&gt;Create /etc/init.d/nddconfig and create a link to /etc/rc2.d/S70nddconfig. &lt;DL&gt;&lt;DD&gt; &lt;PRE&gt; touch /etc/init.d/nddconfig ln /etc/init.d/nddconfig /etc/rc2.d/S70nddconfig chmod 544 /etc/init.d/nddconfig &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; Add the following lines to the /etc/init.d/nddconfig file:&lt;/P&gt; &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; #!/bin/sh # # /etc/init.d/nddconfig # # Fix for broadcast ping bug /usr/sbin/ndd -set /dev/ip ip_respond_to_echo_broadcast 0 # Block directed broadcast packets /usr/sbin/ndd -set /dev/ip ip_forward_directed_broadcasts 0 # Prevent spoofing /usr/sbin/ndd -set /dev/ip ip_strict_dst_multihoming 1 /usr/sbin/ndd -set /dev/ip ip_ignore_redirect 1 # No IP forwarding /usr/sbin/ndd -set /dev/ip ip_forwarding 0 # Drop source routed packets /usr/sbin/ndd -set /dev/ip ip_forward_src_routed 0 # Shorten ARP expiration to one minute to minimize ARP spoofing/hijacking # [Source: Titan adjust-arp-timers module] /usr/sbin/ndd -set /dev/ip ip_ire_flush_interval 60000 /usr/sbin/ndd -set /dev/arp arp_cleanup_interval 60 # -- # # The following tweaks are from 'Tuning Solaris for FireWall-1' by # Rob Thomas (http://www.enteract.com/~robt # # Do not respond to queries for our netmask /usr/sbin/ndd -set /dev/ip ip_respond_to_address_mask_broadcast 0 # # Do not issue redirects -- fix the routing table instead /usr/sbin/ndd -set /dev/ip ip_send_redirects 0 # # Increase our defense against SYN floods. # The &#034;q&#034; queue is the completed socket holding pen where sockets # remain until the application issues accept(). /usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q 1280 # The &#034;q0&#034; queue is the half-open socket queue. /usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q0 10240 # # -- &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; A sample nddconfig file can also be found on the Sun BluePrints site at &lt;a href=&#034;http://www.sun.com/blueprints/tools/nddconfig.tar&#034;&gt;http://www.sun.com/blueprints/tools/&lt;/a&gt; &lt;/LI&gt; &lt;LI&gt;&lt;P&gt;Deny services executed by inetd(3) the ability to create core files and enable logging for all TCP services by editing the /etc/rc2.d/S72inetsvc: &lt;DL&gt;&lt;DD&gt; &lt;PRE&gt; # Run inetd in &#034;standalone&#034; mode (-s flag) so it doesn't have # to submit to the will of SAF. Why did we ever let them change inetd? ulimit -c 0 /usr/sbin/inetd -s -t&amp; &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; &lt;/LI&gt; &lt;LI&gt;&lt;P&gt;Configure RFC 1948 TCP sequence number generation in /etc/default/inetinit: &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; TCP_STRONG_ISS=2 &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; &lt;/LI&gt; &lt;LI&gt;&lt;P&gt;Comment out or remove all unnecessary services in the /etc/inet/inetd.conf file including the following:&lt;/P&gt; &lt;DL&gt;&lt;DD&gt; &lt;PRE&gt; shell login exec comsat talk uucp tftp finger sysstat netstat time echo discard daytime chargen rquotad sprayd walld rexd rpc.ttdbserverd ufsd printer dtspc rpc.cmsd &lt;/PRE&gt; &lt;/DD&gt;&lt;/DL&gt; &lt;LI&gt;Create /etc/rc3.d/S79tmpfix so that upon boot the /tmp directory will always have the sticky bit set mode 1777. &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; #!/bin/sh #ident &#034;@(#)tmpfix 1.0 95/09/14&#034; if [ -d /tmp ] then /usr/bin/chmod 1777 /tmp /usr/bin/chgrp sys /tmp /usr/bin/chown sys /tmp fi &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; [Source: Titan psfix module] &lt;/OL&gt; &lt;BR&gt;&lt;P&gt;&lt;A name=&#034;accessControls&#034;&gt;&lt;B&gt;Access Controls&lt;/B&gt;&lt;/A&gt;&lt;/P&gt; &lt;OL&gt; &lt;LI&gt;&lt;P&gt;Disable network root logins by enabling the &#034;CONSOLE&#034; line in /etc/default/login.&lt;/P&gt;&lt;/LI&gt; &lt;LI&gt;&lt;P&gt;Remove, lock, or comment out unnecessary accounts, including &#034;sys&#034;, &#034;uucp&#034;, &#034;nuucp&#034;, and &#034;listen&#034;. The cleanest way to shut them down is to put &#034;NP&#034; in the password field of the /etc/shadow file.&lt;/P&gt;&lt;/LI&gt; &lt;LI&gt;&lt;P&gt;Require authentication for remote commands by commenting out the following line in /etc/pam.conf: &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; #rlogin auth sufficient /usr/lib/security/pam_rhosts_auth.so.1 &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; and changing the rsh line to read: &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; rsh auth required /usr/lib/security/pam_unix.so.1 &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; [Source: Titan pam-rhosts module]&lt;P&gt; &lt;LI&gt;&lt;P&gt;Only add accounts for users who require access to the system. If using NIS, use the compat mode by editing the /etc/nsswitch.conf file: &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; passwd: compat &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; Add each user to the /etc/passwd file &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; +nis_user:x::::/home_dir:/bin/sh &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; and the /etc/shadow file &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; +nis_user::10626:::::: &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; &lt;/P&gt; &lt;LI&gt;&lt;P&gt;Create an /etc/issue file to display the following warning banner: &lt;DL&gt;&lt;DD&gt; &lt;PRE&gt; WARNING: To protect the system from unauthorized use and to ensure that the system is functioning properly, activities on this system are monitored and recorded and subject to audit. Use of this system is expressed consent to such monitoring and recording. Any unauthorized access or use of this Automated Information System is prohibited and could be subject to criminal and civil penalties. &lt;/PRE&gt; &lt;dd&gt;&lt;font size=-1&gt;Source: &lt;A href=&#034;http://ciac.llnl.gov/ciac/documents/CIAC-2317_Windows_NT_Managers_Guide.pdf&#034;&gt;CIAC-2317 Windows NT Network Security: A Manager's Guide&lt;/a&gt;&lt;/font&gt;&lt;P&gt; &lt;/DD&gt;&lt;/DL&gt; Add the banner to the /etc/motd file: &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; cp /etc/motd /etc/motd.orig cat /etc/issue /etc/motd.orig &gt; /etc/motd &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; &lt;P&gt; &lt;LI&gt;The Automated Security Enhancement Tool (ASET) checks the settings and contents of system files. Many of the setuid and setgid programs on Solaris are used only by root, or by the user or group-id to which they are set. &lt;P&gt;Run aset using the highest security level and review the report files that are generated in &lt;tt&gt;/usr/aset/reports&lt;/tt&gt;.&lt;/P&gt; &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; /usr/aset/aset -l high &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; Use of the &lt;i&gt;FixModes&lt;/i&gt; program available from the Sun BluePrints site at &lt;a href=&#034;http://www.sun.com/blueprints/tools/&#034;&gt;http://www.sun.com/blueprints/tools&lt;/a&gt; is recommended. &lt;/LI&gt; &lt;LI&gt;&lt;P&gt;Create a master list of the remaining setuid/setgid programs on your system and check that the list remains static over time. &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; /bin/find / -type f \( -perm -4000 -o -perm -2000 \) \ -exec ls -ldb {} \; &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; &lt;P&gt;&lt;/LI&gt; &lt;LI&gt;Execution of the su(1M) command can be controlled by adding and configuring a wheel group such as that found on most BSD derived systems. &lt;DL&gt;&lt;DD&gt; &lt;PRE&gt; /usr/sbin/groupadd -g 13 wheel /usr/bin/chgrp wheel /usr/bin/su /sbin/su.static /usr/bin/chmod 4550 /usr/bin/su /sbin/su.static &lt;/PRE&gt; &lt;/DD&gt;&lt;/DL&gt; &lt;P&gt;The GID for the wheel group does not need to be 13, any valid GID can be used. You will need to edit /etc/group to add users to the wheel group. &lt;P&gt; &lt;LI&gt;Create an /etc/ftpusers file: &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; cat /etc/passwd | cut -f1 -d: &gt; /etc/ftpusers chown root /etc/ftpusers chmod 600 /etc/ftpusers &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; Remove any users that require ftp access from the /etc/ftpusers file. &lt;P&gt; &lt;LI&gt;Set the default umask so that it does not include world access. Add &#034;umask 027&#034; to the following files: &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; /etc/.login /etc/profile /etc/skel/local.cshrc /etc/skel/local.login /etc/skel/local.profile &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; Enable the &#034;UMASK&#034; line in the /etc/default/login file and set the value to 027 &lt;/P&gt; &lt;LI&gt;The files in /etc/cron.d control which users can use the cron(1M) and at(1) facilities.&lt;P&gt; &lt;DL&gt;&lt;DD&gt; Create an /etc/cron.d/cron.allow file: &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; echo &#034;root&#034; &gt; /etc/cron.d/cron.allow chown root /etc/cron.d/cron.allow chmod 600 /etc/cron.d/cron.allow &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; Create an /etc/cron.d/at.allow file: &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; cp -p /etc/cron.d/cron.allow /etc/cron.d/at.allow &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; Create an /etc/cron.d/cron.deny file: &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; cat /etc/passwd | cut -f1 -d: | grep -v root &gt; /etc/cron.d/cron.deny chown root /etc/cron.d/cron.deny chmod 600 /etc/cron.d/cron.deny &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; Create an /etc/cron.d/at.deny file: &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; cp -p /etc/cron.d/cron.deny /etc/cron.d/at.deny &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; &lt;/DD&gt;&lt;/DL&gt; &lt;LI&gt;&lt;P&gt;If CDE is installed, replace the default CDE &#034;Welcome&#034; greeting. If the /etc/dt/config/C directory does not exist, create the directory structure and copy the default configuration file: &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; mkdir -p /etc/dt/config/C chmod -R a+rX /etc/dt/config cp -p /usr/dt/config/C/Xresources /etc/dt/config/C &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; Add the following lines to /etc/dt/config/C/Xresources: &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; Dtlogin*greeting.labelString: %LocalHost% Dtlogin*greeting.persLabelString: login: %s &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; &lt;LI&gt;&lt;P&gt;If CDE is installed, disable XDMCP connection access by creating or replacing the /etc/dt/config/Xaccess file: &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; # # Xaccess - disable all XDMCP connections # !* &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; Set the permissions on /etc/dt/config/Xaccess to 444: &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; chmod 444 /etc/dt/config/Xaccess &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; &lt;/OL&gt; &lt;BR&gt;&lt;P&gt;&lt;A name=&#034;timeSync&#034;&gt;&lt;B&gt;Time Synchronization&lt;/B&gt;&lt;/A&gt;&lt;/P&gt; &lt;DL&gt;&lt;DD&gt; Edit the /etc/inet/ntp.conf file: &lt;DL&gt;&lt;DD&gt;&lt;PRE&gt; # # /etc/inet/ntp.client # # An example file that could be copied over to /etc/inet/ntp.conf; it # provides a configuration for an ntp server that uses three public sources # with an internal fallback (127.127.1.0). # # A simple NTP clilent would specify one or more network servers in your # organization: # # server ntp.example.com # # Public NTP Server list: http://www.eecis.udel.edu/~mills/ntp/clock1.htm # server 192.5.41.40 # tick.usno.navy.mil server 192.5.5.250 # clock.isc.org server 128.9.176.30 # timekeeper.isi.edu server 127.127.1.0 # internal clock fudge 127.127.1.0 stratum 10 &lt;/PRE&gt;&lt;/DD&gt;&lt;/DL&gt; &lt;/DD&gt;&lt;/DL&gt; &lt;BR&gt;&lt;P&gt;&lt;A name=&#034;tools&#034;&gt;&lt;B&gt;Recommended Tools&lt;/B&gt;&lt;/A&gt;&lt;/P&gt; &lt;DL&gt;&lt;DD&gt; &lt;A href=&#034;http://www.sun.com/blueprints/tools/FixModes.tar.Z&#034;&gt;FixModes&lt;/a&gt; &lt;DL&gt;&lt;DD&gt;FixModes is a script that tries to make Solaris file modes more secure. &lt;/DD&gt;&lt;/DL&gt; &lt;P&gt; &lt;A href=&#034;http://www.courtesan.com/sudo/&#034;&gt;Sudo&lt;/A&gt; &lt;DL&gt;&lt;DD&gt;Sudo (superuser do) allows a system administrator to give certain users (or groups of users) the ability to run some (or all) commands as root while logging all commands and arguments. &lt;/DD&gt;&lt;/DL&gt; &lt;P&gt; &lt;A href=&#034;http://www.sun.com/software/securenet/lite/download.html&#034;&gt;SunScreen&lt;/a&gt; &lt;DL&gt;&lt;DD&gt;SunScreen is a host-based firewall product that is packaged with Solaris 8 and later. See also &lt;a href=&#034;http://www.sun.com/blueprints/0901/sunscreenlite.pdf&#034;&gt;Securing Systems with Host-Based Firewalls&lt;/a&gt;&lt;/DD&gt;&lt;/DL&gt; &lt;P&gt; &lt;A href=&#034;ftp://ftp.cert.org/pub/tools/tcp_wrappers/&#034;&gt;TCP Wrappers&lt;/A&gt; &lt;DL&gt;&lt;DD&gt;With this package you can monitor and filter incoming requests for the SYSTAT, FINGER, FTP, TELNET, RLOGIN, RSH, EXEC, TFTP, TALK, and other network services. TCP Wrappers is included in Solaris 9.&lt;/DD&gt;&lt;/DL&gt; &lt;P&gt; &lt;A href=&#034;ftp://ftp.gw.com/pub/unix/ssh&#034;&gt;Secure Shell&lt;/A&gt; (ssh) &lt;DL&gt;&lt;DD&gt; Ssh is a program to log into another computer over a network, to execute commands in a remote machine, and to move files from one machine to another. It provides strong authentication and secure communications over unsecure channels. It is intended as a replacement for rlogin, rsh, and rcp. &lt;/DD&gt;&lt;/DL&gt; &lt;P&gt; &lt;A href=&#034;http://www.fish.com/titan/&#034;&gt;Titan&lt;/A&gt; &lt;DL&gt;&lt;DD&gt;Titan is a collection of programs, each of which either fixes or tightens one or more potential security problems with a particular aspect in the setup or configuration of a Unix system. &lt;/DD&gt;&lt;/DL&gt; &lt;P&gt; &lt;A href=&#034;http://www.sabernet.net/software/&#034;&gt;Logcheck&lt;/A&gt; &lt;DL&gt;&lt;DD&gt;Logcheck is a perl script that monitors system logs for unusual activity.&lt;/DD&gt;&lt;/DL&gt; &lt;/DD&gt;&lt;/DL&gt; &lt;BR&gt; &lt;BR&gt;&lt;P&gt;&lt;A name=&#034;install&#034;&gt;&lt;B&gt;Installing Solaris&lt;/B&gt;&lt;/a&gt;&lt;/P&gt; &lt;DL&gt;&lt;DD&gt; &lt;P&gt;This section describes the steps necessary to install Solaris with the smallest OS image possible.&lt;P&gt; &lt;OL&gt; &lt;LI&gt;Remove any network connections from the machine before installing the OS.&lt;P&gt;&lt;/LI&gt; &lt;LI&gt;Boot the machine from the OS install CD-ROM&lt;P&gt;&lt;/LI&gt; &lt;LI&gt;Answer the installation questions as they pertain to this instance. You will want to mark the machine as being networked and give the machine an IP address even though it is not connected to the network.&lt;P&gt;&lt;/LI&gt; &lt;LI&gt;In the Solaris install program, select the &lt;i&gt;Core SPARC&lt;/i&gt; cluster. Then select &lt;i&gt;Customize&lt;/i&gt;. The following is a list of all the clusters that should be selected. For clusters that have subparts, select only the subparts listed, not the entire cluster.&lt;/P&gt; &lt;tt&gt; &lt;UL&gt; &lt;LI&gt;AutoFS&lt;/LI&gt; &lt;LI&gt;Automated Security Enhancement Tools&lt;/LI&gt; &lt;LI&gt;Federated Naming System&lt;/LI&gt; &lt;LI&gt;FrameBuffer Device Drivers &lt;UL&gt;&lt;LI&gt;Dumb frame buffer device drivers&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt; &lt;LI&gt;&lt;font color=red&gt;FTP Server, (Root)&lt;/font&gt;&lt;/LI&gt; &lt;LI&gt;&lt;font color=red&gt;FTP Server, (Usr)&lt;/font&gt;&lt;/LI&gt; &lt;LI&gt;GX (cg6) OS support files &lt;UL&gt;&lt;LI&gt;GX (cg6) device drivers&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt; &lt;LI&gt;&lt;font color=red&gt;Install and Patch Utilities&lt;/font&gt;&lt;/LI&gt; &lt;LI&gt;Interprocess Communication&lt;/LI&gt; &lt;LI&gt;Keyboard configuration tables&lt;/LI&gt; &lt;LI&gt;Motif Runtime Kit&lt;/LI&gt; &lt;LI&gt;Network Information System (NIS)&lt;/LI&gt; &lt;LI&gt;Openwindows Version 3 &lt;UL&gt;&lt;LI&gt;Openwindows kernel modules&lt;/LI&gt; &lt;LI&gt;X Window system window drivers&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt; &lt;LI&gt;PCMCIA Support&lt;/LI&gt; &lt;LI&gt;&lt;FONT color=cyan&gt;Patch utilities&lt;/FONT&gt;&lt;/LI&gt; &lt;LI&gt;Platform Support, OS Functionality (Usr)&lt;/LI&gt; &lt;LI&gt;&lt;FONT color=red&gt;Portable layout services for Complex Text Layout support&lt;/FONT&gt;&lt;/LI&gt; &lt;LI&gt;Programming tools and libraries&lt;/LI&gt; &lt;UL&gt;&lt;LI&gt;Sun workshop bundled shared libm&lt;/LI&gt;&lt;/UL&gt; &lt;LI&gt;SPARCompilers bundled libc&lt;/LI&gt; &lt;LI&gt;Static utilities&lt;/LI&gt; &lt;LI&gt;Solaris desktop /usr/dt filesystem anchor&lt;/LI&gt; &lt;LI&gt;Solaris Naming Enabler&lt;/LI&gt; &lt;LI&gt;SunFastEthernet/FastWideSCSI-2 Adaptor Drivers&lt;/LI&gt; &lt;UL&gt;&lt;LI&gt;SunSwift SBus Adaptor Drivers&lt;/LI&gt;&lt;/UL&gt; &lt;LI&gt;System Accounting&lt;/LI&gt; &lt;LI&gt;System and Network Administration&lt;/LI&gt; &lt;LI&gt;Terminal Information&lt;/LI&gt; &lt;/UL&gt; &lt;/tt&gt; &lt;P&gt;&lt;DL&gt;&lt;DD&gt;&lt;FONT size=-1&gt;&lt;B&gt;Color Legend:&lt;/B&gt; | Solaris 2.6 &amp; 7 | &lt;font color=cyan&gt;Solaris 2.6&lt;/font&gt; | &lt;font color=red&gt;Solaris &gt;=7&lt;/font&gt;&lt;/font&gt; |&lt;/DD&gt;&lt;/DL&gt; &lt;P&gt;&lt;B&gt;&lt;I&gt;Be sure to install any device drivers specific to your hardware!&lt;/B&gt;&lt;/I&gt;&lt;/P&gt; &lt;P&gt;&lt;font color=red&gt;Solaris &gt;=7&lt;/font&gt;: 64-bit package versions should also be selected if 64-bit support has been enabled.&lt;/P&gt; &lt;P&gt;If you need printer support, select the following:&lt;/P&gt; &lt;tt&gt; &lt;UL&gt; &lt;LI&gt;Line Printer Support&lt;/LI&gt; &lt;LI&gt;Tooltalk end user &lt;UL&gt;&lt;LI&gt;Tooltalk runtime&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt; &lt;/UL&gt; &lt;/tt&gt; &lt;P&gt;For remote Motif/X support, select the following:&lt;/P&gt; &lt;tt&gt; &lt;UL&gt; &lt;LI&gt;Font Server Cluster&lt;UL&gt; &lt;LI&gt;X Window System common (not required) fonts&lt;/LI&gt; &lt;LI&gt;X Window System optional fonts&lt;/LI&gt; &lt;LI&gt;X Window System platform required fonts&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt; &lt;LI&gt;OpenWindows Version 3&lt;UL&gt; &lt;LI&gt;ICE components&lt;/LI&gt; &lt;LI&gt;X Window System platform software&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt; &lt;LI&gt;Tooltalk end user &lt;UL&gt;&lt;LI&gt;Tooltalk runtime&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt; &lt;LI&gt;XIL Runtime Environment&lt;/LI&gt; &lt;/UL&gt; &lt;/tt&gt; &lt;P&gt;The following is required for FireWall-1:&lt;/P&gt; &lt;tt&gt; &lt;UL&gt; &lt;LI&gt;Source compatibilty support&lt;UL&gt; &lt;LI&gt;Source Compatibilty, (Usr)&lt;/LI&gt;&lt;/UL&gt; &lt;/LI&gt; &lt;/UL&gt; &lt;/tt&gt; &lt;P&gt; &lt;/LI&gt; &lt;LI&gt;The &lt;I&gt;Core SPARC&lt;/I&gt; cluster requires much less disk space than most types of Solaris installs. The following partition table is appropriate for machines loaded with the &lt;I&gt;Core SPARC&lt;/I&gt; cluster: &lt;/P&gt; &lt;PRE&gt; s0: / 250 megabytes s1: swap 1 gigabyte s2: overlap s3: 8 megabytes (for metadb) s4: /usr 500 megabytes s5: /var 2 gigabytes s6: /opt (rest of disk) &lt;/PRE&gt;&lt;/LI&gt; &lt;P&gt;The &lt;tt&gt;/var&lt;/tt&gt; partition is large to accommodate extra logging and auditing information. You may wish to scale the swap space as appropriate for your hardware, but extra swap helps prevent &#034;denial-of-service&#034; attacks. &lt;/P&gt;&lt;/LI&gt; &lt;LI&gt;&lt;P&gt;The &lt;I&gt;Core SPARC&lt;/I&gt; cluster, even with the most recent patches, provides many services which are unnecessary. &lt;DL&gt; &lt;DD&gt;&lt;P&gt;Execute &lt;tt&gt;pkginfo&lt;/tt&gt;. The results should match the following: &lt;PRE&gt; % pkginfo system SUNWaccr System Accounting, (Root) system SUNWaccu System Accounting, (Usr) system SUNWadmap System administration applications system SUNWadmc System administration core libraries system SUNWadmfw System &amp; Network Administration Framework system SUNWadmr System &amp; Network Administration Root system SUNWast Automated Security Enhancement Tools system SUNWatfsr AutoFS, (Root) system SUNWatfsu AutoFS, (Usr) system SUNWcar Core Architecture, (Root) system SUNWcg6 GX (cg6) Device Driver system SUNWcsd Core Solaris Devices system SUNWcsr Core Solaris, (Root) system SUNWcsu Core Solaris, (Usr) &lt;font color=red&gt;CTL SUNWctpls Portable layout services for Complex Text Layout support&lt;/font&gt; system SUNWdfb Dumb Frame Buffer Device Drivers system SUNWdtcor Solaris Desktop /usr/dt filesystem anchor system SUNWesu Extended System Utilities system SUNWfns Federated Naming System &lt;font color=red&gt;system SUNWftpr FTP Server, (Root) system SUNWftpu FTP Server, (Usr)&lt;/font&gt; system SUNWhmd SunSwift SBus Adapter Drivers system SUNWipc Interprocess Communications system SUNWkey Keyboard configuration tables system SUNWkvm Core Architecture, (Kvm) system SUNWlibC SPARCompilers Bundled libC system SUNWlibms Sun WorkShop Bundled shared libm system SUNWmfrun Motif RunTime Kit system SUNWnisr Network Information System, (Root) system SUNWnisu Network Information System, (Usr) system SUNWos86u Platform Support, OS Functionality (Usr) system SUNWpcelx 3COM EtherLink III PCMCIA Ethernet Driver system SUNWpcmci PCMCIA Card Services, (Root) system SUNWpcmcu PCMCIA Card Services, (Usr) system SUNWpcmem PCMCIA memory card driver system SUNWpcser PCMCIA serial card driver system SUNWpsdpr PCMCIA ATA card driver system SUNWsolnm Solaris Naming Enabler system SUNWsutl Static Utilities &lt;font color=cyan&gt;system SUNWswmt Patch Utilities&lt;/font&gt; &lt;font color=red&gt;system SUNWswmt Install and Patch Utilities&lt;/font&gt; system SUNWter Terminal Information system SUNWxwdv X Windows System Window Drivers system SUNWxwmod OpenWindows kernel modules &lt;/PRE&gt; &lt;P&gt;&lt;font color=red&gt;Solaris &gt;=7&lt;/font&gt;: 64-bit package versions will also be listed if 64-bit support has been enabled.&lt;/P&gt; &lt;P&gt;Use the &lt;tt&gt;pkgrm&lt;/tt&gt; command to remove any non-essential packages that are not listed above.&lt;/P&gt;&lt;/DD&gt; &lt;/DL&gt; &lt;/LI&gt; &lt;/OL&gt; &lt;/DD&gt;&lt;/DL&gt; &lt;BR&gt; &lt;BR&gt;&lt;P&gt;&lt;B&gt;Resources&lt;/B&gt;&lt;/P&gt; &lt;DL&gt;&lt;DD&gt; &lt;A href=&#034;http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access&#034; &gt;Sun Recommended &amp; Security Patches&lt;/A&gt;&lt;P&gt; &lt;A href=&#034;http://sunsolve.sun.com/pub-cgi/secBulletin.pl&#034;&gt;Sun Security Bulletins&lt;/A&gt;&lt;P&gt; &lt;A href=&#034;http://www.sunworld.com/sunworldonline/common/security-faq.html&#034; &gt;The Solaris Security FAQ&lt;/A&gt;&lt;P&gt; &lt;A href=&#034;http://www.sans.org&#034;&gt;SANS Solaris Security: Step-by-Step&lt;/A&gt;&lt;P&gt; &lt;A href=&#034;http://www.securityfocus.com/focus/sun/articles/bsmaudit1.html&#034;&gt;Solaris BSM Auditing&lt;/a&gt;&lt;P&gt; &lt;A href=&#034;http://www.enteract.com/~robt/Docs/Articles/tuning-solaris-checkpoint.txt&#034;&gt;Tuning Solaris for FireWall-1&lt;/a&gt; by Rob Thomas&lt;P&gt; &lt;/DD&gt;&lt;/DL&gt; &lt;BR&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt; &lt;font size=-1&gt;&lt;A href=&#034;http://www.sabernet.net/&#034;&gt;jrr&lt;/A&gt;&lt;/font&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Securing a Solaris 8 Server : guide 1</title>
		<link>https://admin-sys.org/?securing-a-solaris-8-server-guide</link>
		<guid isPermaLink="true">https://admin-sys.org/?securing-a-solaris-8-server-guide</guid>
		<dc:date>2009-04-22T15:20:37Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jerome ROBERT</dc:creator>



		<description>
&lt;p&gt;guide1 Version 1.4 &lt;br class='autobr' /&gt; Securing a Solaris 8 Server This web page is a merging of the published security suggestions of several people. These people include Lance Spitzner, Keith Watson and Alex Noordergraaf, among others. It combines, and extends, their ideas using the paranoia I've learned through 22 years of working in the computer field. More information on the source papers can be found in the bibliography. In addition, several people at the San Diego Supercomputer Center (&#8230;)&lt;/p&gt;


-
&lt;a href="https://admin-sys.org/?-securite-63-" rel="directory"&gt;S&#233;curit&#233;&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p align=right&gt;&lt;b&gt;guide1&lt;/b&gt;&lt;/p&gt; &lt;TABLE BORDER=0 CELLPADDING=6 CELLSPACING=0&gt; &lt;TR&gt; &lt;TD ALIGN=&#034;LEFT&#034; COLSPAN=&#034;2&#034;&gt; &lt;TR&gt; &lt;TD VALIGN=&#034;top&#034;&gt; &lt;TD VALIGN=&#034;top&#034;&gt; &lt;P&gt; &lt;CENTER&gt; Version 1.4&lt;br&gt; &lt;/CENTER&gt; &lt;P&gt; &lt;H1&gt;Securing a Solaris 8 Server&lt;/H1&gt; &lt;P&gt; This web page is a merging of the published security suggestions of several people. These people include Lance Spitzner, Keith Watson and Alex Noordergraaf, among others. It combines, and extends, their ideas using the paranoia I've learned through 22 years of working in the computer field. More information on the source papers can be found in the &lt;a href=&#034;#Bibliography&#034;&gt;bibliography&lt;/a&gt;. &lt;P&gt; In addition, several people at the San Diego Supercomputer Center (&lt;a href='http://www.sdsc.edu'&gt;SDSC&lt;/a&gt;) assisted me with this web page. That help included: a) Pointing me to additional reference papers, b) Helping with some of the more esoteric technical issues, and c) Proofreading to find glaring technical errors. &lt;P&gt; Finally, Stephanie Gates of The Scripps Research Institute (&lt;a href='http://www.scripps.edu'&gt;TSRI&lt;/a&gt;) was of enormous assistance in the final editing. &lt;p&gt; This web page was written specifically for the initial release of Solaris 8. Most of the functions performed here will also work on other versions of Solaris, but the exact procedure (file names and variables) may change. Additionally, many of the topics covered in this web page are applicable to other versions of UNIX, and to non-Server systems. &lt;P&gt; &lt;H2&gt;Table of Contents:&lt;/H2&gt; &lt;ol&gt;&lt;ol&gt; &lt;li&gt;&lt;a href=&#034;#Introduction&#034; &gt;Introduction&lt;/a&gt; &lt;li&gt;&lt;a href=&#034;#History&#034;&gt;History of this Web Page&lt;/a&gt; &lt;li&gt;&lt;a href=&#034;#Overview&#034;&gt;Overview&lt;/a&gt; &lt;li&gt;&lt;a href=&#034;#Network&#034;&gt;Network Topology&lt;/a&gt; &lt;li&gt;&lt;a href=&#034;#Hardware&#034;&gt;System Hardware Configuration&lt;/a&gt; &lt;li&gt;&lt;a href=&#034;#Installation&#034;&gt;Initial Installation&lt;/a&gt; &lt;li&gt;&lt;a href=&#034;#Min_Solaris&#034;&gt;Minimizing Solaris&lt;/a&gt; &lt;li&gt;&lt;a href=&#034;#Min_Network&#034;&gt;Minimizing Network Services&lt;/a&gt; &lt;li&gt;&lt;a href=&#034;#Clean&#034;&gt;Remove the Solaris Installation Leftovers&lt;/a&gt; &lt;li&gt;&lt;a href=&#034;#Third-Party&#034;&gt;Install Necessary Third Party Packages&lt;/a&gt; &lt;li&gt;&lt;a href=&#034;#Close&#034;&gt;Close the Doors&lt;/a&gt; &lt;li&gt;&lt;a href=&#034;#Obscure&#034;&gt;Obscure the Tracks&lt;/a&gt; &lt;li&gt;&lt;a href=&#034;#Warnings&#034;&gt;Post the Warnings&lt;/a&gt; &lt;li&gt;&lt;a href=&#034;#Backup&#034;&gt;Perform System Backups&lt;/a&gt; &lt;li&gt;&lt;a href=&#034;#Watch&#034;&gt;Watch for Changes&lt;/a&gt; &lt;li&gt;&lt;a href=&#034;#Tools&#034;&gt;Sources of Tools&lt;/a&gt; &lt;/ol&gt;&lt;/ol&gt; &lt;/TABLE&gt; &lt;P&gt; &lt;CENTER&gt;&lt;IMG ALT=&#034;----------------&#034; src='https://admin-sys.org/img18.gif' width='6' height='350'&gt;&lt;/center&gt; &lt;h1&gt;&lt;a NAME=&#034;Introduction&#034;&gt;&lt;/a&gt;1. Introduction&lt;/h1&gt; I have 22 years experience in the computer field. Three of these were as a computer operator, and nineteen as a programmer. The last six years, I've also had to do hardware work. I guess that makes me a programmer with a screwdriver. Scary, isn't it? &lt;p&gt; I used to be employed by &lt;a href=&#034;http://www.cray.com&#034;&gt;Cray, Inc.&lt;/a&gt; as a Customer Engineer for the &lt;a href=&#034;http://www.sdsc.edu&#034;&gt;San Diego Supercomputer Center&lt;/a&gt; (SDSC). Before that, I worked for the Atlantic Research Corporation (now a part of &lt;a href=&#034;http://www.csc.com&#034;&gt;Computer Sciences Corporation&lt;/a&gt;) and Logicon (now a part of &lt;a href=&#034;http://www.northgrum.com&#034;&gt;Northrop-Grumman&lt;/a&gt;). &lt;p&gt; I was first introduced to the concept of computer security in 1980, when I worked for the government as a computer operator. In 1983, I worked for Logicon developing a Multilevel Secure Operating System. In 1987, I worked for Atlantic Research Corporation developing a B1 secure DBMS command and data filtering system (TruData). &lt;p&gt; Since 1990, I've worked for Cray. The average Cray customer pays quite a bit for their computer, and they expect to get the full capabilities of what they bought. They do not expect to have it stolen by a resource thief. As part of my job, I've been asked, on occasion, to help ensure that the systems I worked on were appropriately secure. &lt;h1&gt;&lt;a NAME=&#034;History&#034;&gt;&lt;/a&gt;2. History of this Web Page&lt;/h1&gt; I have several computers that the SDSC is kind enough to allow me to place directly on the Internet. One of the policies they have is that if a system is broken into, it will be confiscated for investigation. In order to keep this from occurring, I researched how to secure them. Since there were multiple systems (same operating system), I documented what I had done, so that I could do it again. Tom Perrine, SDSC's senior computer security expert, saw what I had done, and suggested that I give a presentation on it. &lt;p&gt; Instead of a presentation, I decided to create a paper. This web page is that paper. &lt;h1&gt;&lt;a NAME=&#034;Overview&#034;&gt;&lt;/a&gt;3. Overview&lt;/h1&gt; The goal of this web page is to demonstrate how to secure a Solaris Server. This demonstration is based on actual experience, not just on theory. &lt;P&gt; Before going any further, I think I should describe what I mean when I say that a system needs to be &lt;B&gt;secured&lt;/B&gt;, and why it needs to be done. &lt;P&gt; When we &lt;B&gt;secure&lt;/B&gt; a server, we take measures to ensure that only those people with a legitimate reason to be on a computer, actually have access to it. We also make sure that those users that do have access to the computer, only have access to their information, and have the ability to allow, or restrict, such access for others. &lt;P&gt; We are interested in securing servers to keep one person's information from being improperly available to another. We also secure servers to ensure that the disk space, network bandwidth, and CPU resources are available for the intended users. &lt;P&gt; There are three general classes of people that we're securing the server against. The one thing that people in these classes all have in common is that they're criminals. &lt;DL&gt; &lt;P&gt; &lt;DT&gt;&#034;&lt;I&gt;Children&lt;/I&gt;&#034; Playing &lt;DD&gt; This class of person compromises more computers than any of the other classes discussed here. Often, it's just a game, to see who can break into the most computers. The most common forms this game takes are Denial Of Service (DOS) attacks, web page defacement, and general vandalism. Sometimes the participants are too young to know that what they're doing is unlawful, but not always. &lt;P&gt; &lt;DT&gt;Resource Thieves &lt;DD&gt; These people want to use the server's resources without paying for it. This use includes using the computer to break into other computers, using it to store information, or using it to send large amounts of E-mail to people who would rather not see it. &lt;P&gt; &lt;DT&gt;Data Thieves &lt;DD&gt; These people are looking for information. Sometimes, they're looking for specific information; other times, they're looking for anything that they find interesting. These people will often use the information they get for their own personal gain, which may include selling it to a competitor. &lt;P&gt; An extreme version of this type of person might modify the data on your server. This might be done to discredit a person or organization, or to cause incorrect/invalid results or conclusions. &lt;P&gt; These people are separate and distinct from the commonly found web page defacers and vandals, due to their motivation. The motivation of this group is usually either money or revenge. This motivation tends to create a determination that is not normally found in the other groups. &lt;/DL&gt; Here is a list of the various security philosophies whose implementation I discuss in this web page: &lt;dl&gt; &lt;dt&gt;Defense in Depth &lt;dd&gt; Defense in Depth is the single most useful concept that I cover here. When used with computer security, it means that you &lt;b&gt;never&lt;/b&gt; depend on a single security measure (like a firewall) to keep your system secure. You assume that there's a hole in any security measure you put in place, and provide for it's being broken through. &lt;P&gt; The goal here is to either have enough security doors blocking the intruder that they give up, and move on, or they run into a door that they don't know how to get through. From the security standpoint, both of these can be considered a win, or at least a draw. &lt;p&gt; This concept should also be applied to the physical security of a server, and will be discussed in greater depth in the section on &lt;a href=&#034;#Hardware&#034;&gt;System Hardware Configuration&lt;/a&gt;. &lt;P&gt; &lt;dt&gt;Less is Better &lt;dd&gt; Less is Better means that the less there is on a system, the more secure the system can be made. It refers to less software, fewer daemons, fewer users logging in, and fewer services being offered. &lt;p&gt; This concept is why large organizations have dedicated name servers, NFS servers, web servers, time servers, etc.. &lt;P&gt; &lt;DT&gt;Strong Configuration Management &lt;DD&gt; Strong configuration management is critical to properly securing a server in the long term. This measure is accomplished by the use of a properly configured change detection system (i.e. Tripwire), and/or a centralized configuration management system (i.e. cfengine). These two tools can be used independently, or together. &lt;P&gt; The purpose of an intrusion detection system is to inform a system administrator when a possible intrusion has occurred. This detection is often done by looking at the fingerprints of critical system files. &lt;P&gt; The purpose of a centralized configuration management system is to ensure that each system has the correct configuration at all times. The system should report when a discrepancy is found. &lt;P&gt; If you wish to run both of these tools, then the intrusion detection system should finish running prior to starting the centralized configuration management system, so that it can properly identify any changes that may have been made. &lt;P&gt; &lt;DT&gt;Hazard Awareness &lt;DD&gt; A system administrator should always be aware of the hazards that come with operating a computer connected to the Internet, and protect against them. Usually, there are multiple ways to secure a service. The system administrator should be aware of the hazards that may arise because one or more of these actions is not performed. Making an informed decision to not close a particular security door is not necessarily bad; not monitoring it is. &lt;P&gt; Also, there are several security oriented E-mail lists, whose purpose is to keep administrators informed about current security issues. Among these are CERT, Bugtraq (from SecurityFocus) and SANS. URLs for these organizations may be found in the section on &lt;a href=&#034;#Tools&#034;&gt;Sources of Tools&lt;/a&gt;. &lt;P&gt; &lt;dt&gt;Security Through Obscurity &lt;dd&gt; This form of security is done by providing a minimal amount of information on the software configuration, software version, hardware configuration, or even the hardware vendor. Wherever it's possible to NOT provide information, don't provide it. In general, if someone has a legitimate need to know about what's on a system, they'll ask. The reasoning behind this is to &lt;B&gt;never&lt;/B&gt; give the intruder a free ride. As an example, if you don't advertise that your web server has PHP, most intruders won't try the PHP exploits. &lt;p&gt; It should be noted that this security philosophy only serves to muddle the playing field. It is &lt;b&gt;not&lt;/b&gt; sufficient, without the support of the other security philosophies described here. The Code Red worm is an example of why this security philosophy is inadequate. It didn't look or ask, it just hit. &lt;P&gt; &lt;dt&gt;Give a warning shot to the chest &lt;dd&gt; This philosophy means that every feasible path into the system should get a warning message, and these messages should be plain, direct and to the point. Don't worry about being excessively polite. On the other hand, don't be excessively abusive. &lt;p&gt; These messages are not very useful against intrusion, but they may improve your legal position, if an intrusion occurs. &lt;P&gt; &lt;/dl&gt; &lt;h1&gt;&lt;a NAME=&#034;Network&#034;&gt;&lt;/a&gt;4. Network Topology&lt;/h1&gt; This web page is about securing a solaris server, not about creating a secure network infrastructure. It should be used as a rough guide, for the purposes of establishing the level of threat that a system faces. &lt;P&gt; For most people, the network topology that they use is already set. This section is to help them to understand the strengths and weaknesses of the topology they have to work with. The network administrator should be able to provide further assistance and clarification. &lt;P&gt; For the lucky few who are building a network from scratch, there's enough information here to give you a general idea of what you want to do, but probably not enough to actually do it. I suggest that you work with your network people, your ISP, a good vendor representative, or a reputable consultant, as this will greatly improve your chances of creating a functional network. &lt;P&gt; The O'Reilly book &lt;u&gt;Building Internet Firewalls&lt;/u&gt; (&lt;a href=&#034;#1&#034;&gt;1&lt;/a&gt;) has additional information on network topologies. &lt;P&gt; The general network topology that I've assumed in the rest of this web page, is a server with one or more network interfaces that are connected to the Internet, without any filters. &lt;p&gt; If your border router is performing packet level filtering, or if your server is behind a firewall, your server will be more secure from outside attacks. It will &lt;b&gt;not&lt;/b&gt; be any more secure from inside attacks. Unfortunately, most disastrous intrusions occur due to inside attacks. &lt;P&gt; Several general network topologies are available. I have created diagrams of three network topologies that show, in general, how most networks are configured. Each of these will be briefly discussed. &lt;DL&gt; &lt;DT&gt;Co-located Server &lt;DD&gt; &lt;IMG ALT=&#034;No network&#034; src='https://admin-sys.org/NoNet.gif' style='max-width: 500px;max-width: min(100%,500px); max-height: 10000px'&gt; &lt;P&gt; In this topology, you either own, or rent, a server and place it at an ISP. There is a direct connection from the ISP's router (or switch) to your system, usually over a 100 MegaBit connection. This topology places the highest possible security demands on your server, as it is fully and directly accessible from the Internet. The high speed of the connection will also allow large amounts of data to be transferred if an intrusion occurs. &lt;P&gt; &lt;DT&gt;Flat Network &lt;DD&gt; &lt;IMG ALT=&#034;SOHO Network&#034; src='https://admin-sys.org/SOHONet.gif' style='max-width: 500px;max-width: min(100%,500px); max-height: 10000px'&gt; &lt;P&gt; In this topology, the router is not performing packet filtering. Typically, the decision to not filter packets would be made because the router doesn't have enough CPU power to perform packet filtering. The decision could also be made because the configuration management for the router tables would get too complex, or because a political decision has been made that no packet filtering will be performed. Often, the router will be a DSL or Cable modem. This topology is often used in a Small Office/Home Office (SOHO) network. &lt;P&gt; Many educational institutions also use this topology, even though they often use leased lines, with several MegaBits per second bandwidth, coupled with powerful routers and switches, and is an example of a political decision to use this topology. &lt;P&gt; With this topology, all systems on your network are fully and directly accessible from the Internet. The security demands on each system on your network are similar to those for a Co-located Server. The only improvement over the Co-located Server is that the bandwidth through which a compromised system can be exploited is usually lower. In most cases, this network topology is acceptable, only if there are a very small number of systems on your network. &lt;P&gt; Careful configuration of network routes can improve the security of this topology, but it's a complex task. &lt;P&gt; VPN connections are possible with this network configuration. &lt;P&gt; &lt;DT&gt;Medium Office Network &lt;DD&gt; This network has the same topology as is shown for the SOHO Network. The primary difference (as far as security is concerned) is that with a Medium Office Network, packet level filtering is being performed in the Border Router. This network topology can be made almost as secure as the Partitioned Network topology. Usually, VLANs are being used in the switch(es), to simplify communications configuration. &lt;P&gt; The Mac and PC desktops are kept in separate subnets from the rest of the systems, as these systems send more broadcasts. Also, PC systems running Windows are more difficult to secure than UNIX systems. &lt;P&gt; The Authentication Server and the Internal File Server should both be connected to dedicated switch ports. Both systems should not have &lt;B&gt;any&lt;/B&gt; direct communications with external systems. &lt;P&gt; Properly authenticated users (login and password) of the Dial-in Server should be allowed connections to external systems, in a manner similar to the internal desktop systems, and should receive the same degree of protection. File sharing should only be done to dial-in systems that are appropriately authorized (a separate issue from authentication). Optimally, only secured connections (ssh) to the internal systems should be allowed. &lt;P&gt; &lt;DT&gt;Partitioned Network &lt;DD&gt; &lt;IMG ALT=&#034;Partitioned Network&#034; src='https://admin-sys.org/ComNet.gif' style='max-width: 500px;max-width: min(100%,500px); max-height: 10000px'&gt; &lt;P&gt; This network topology is capable of being very secure. Both the border router and the main router are performing packet filtering. If a firewall is not used, the Medium Office Network configuration can be used, as the second router provides little additional security. &lt;P&gt; The Firewall system should be capable of monitoring the state of the connection. This monitoring gives a high assurance that connections aren't being made to unprotected internal ports. &lt;P&gt; Some people feel that a Firewall system gives a false sense of security, and that it's better to not use them, and make sure that all the systems are properly secured. Other people feel that nothing can replace a properly configured Firewall. I fall between these two camps. I feel that a Firewall is useful in adding to the security of a network, but that it should not be relied upon to give complete security. &lt;P&gt; If additional protection of, and from, the Dial-in Server is desired, it could be connected to a port on the Firewall, thus providing additional protection for both the internal network, and the dial-up user. This may be useful if a user password becomes compromised. &lt;P&gt; If there exists a portion of the network, where there is external access to the switching and/or communication fabric, then that network should also be connected through the firewall. This lack of security is most often found with wireless networks. &lt;P&gt; If VPN is used in this configuration, it should be done in the border router. A connection request should not be allowed to enter the border router from the ISP, unless it's for one of the external servers, or for the Firewall. Also, no RPC or UDP requests should be accepted from the ISP, unless they're for one of the external servers that's supposed to receive them, or responses to DNS or NTP requests. &lt;P&gt; In theory, the capabilities of both the Border Router and the Main Router can be combined into a single router, but this complicates the configuration. &lt;/DL&gt; &lt;h1&gt;&lt;a NAME=&#034;Hardware&#034;&gt;&lt;/a&gt;5. System Hardware Configuration&lt;/h1&gt; &lt;h3&gt;System Placement&lt;/h3&gt; The first thing to consider is the physical placement of the server. If you have a location with 24 hour staffing, and adequate power, cooling and connectivity, that's the ideal place to put a server. This would typically be a staffed computer room, or a security office. &lt;p&gt; If there is no available location that's staffed continuously, then a lockable room (or ventilated cabinet) should be used. Only a minimum number of people should have access to this space. There should be adequate power, cooling (may be difficult for a lockable ventilated cabinet), and network connectivity. &lt;h3&gt;Disk Layout&lt;/h3&gt; Most of this subject has little bearing on security, but now is the proper time to consider it. I've searched for information on this topic, but found very little. Due to lack of information, I've assembled some background information, and a few suggestions, based on my experience. &lt;P&gt; This section does not cover file-system mount options, which does have an impact on security. Those options are covered &lt;A HREF=&#034;#MountOptions&#034;&gt;later in this paper&lt;/a&gt;. &lt;h4&gt;Disk Channels&lt;/h4&gt; Disks are connected to a computer over channels. The most commonly used types of channels are IDE, SCSI and Fiber Channel. If your server is performing disk intensive operations, then an attempt should be made to maximize the number of channels available. &lt;h4&gt;Channel Contention&lt;/h4&gt; &lt;h5&gt;IDE Channels&lt;/h5&gt; IDE disks are relatively inexpensive, in comparison to SCSI or Fiber, because they are produced in much larger quantities, and because the electronics on the disk is simpler. The drawback is that IDE drives exhibit quite a bit of channel contention. If at all possible, use only one disk per IDE channel. If it's necessary to put a second disk on the channel, one of the disks should have relatively low I/O requirements. No more than two disks can be placed on an IDE channel. &lt;h5&gt;SCSI Channels&lt;/h5&gt; SCSI disks usually have a faster access time than IDE disks, and a faster data transfer rate to/from the platter. With UNIX, the actual bus speed has little effect on I/O throughput, as long as it's greater than the platter data speed, because of the buffering that UNIX performs. &lt;p&gt; SCSI disks are usually priced between two and three times as high &lt;b&gt;per GigaByte&lt;/b&gt; as IDE disks. Once the disk I/O requirements exceed what IDE can deliver, it becomes necessary to move to SCSI. SCSI disks have little channel contention, until the bus is saturated with data. With a limit of 15 disk drives (more if Logical Unit Numbers are used), it is not a difficult task to saturate a SCSI bus on a busy system. &lt;h5&gt;Fiber Channels&lt;/h5&gt; Fibre channel disks (also spelled &lt;I&gt;fiber&lt;/I&gt;) are normally built using the HDA (Head Disk Assembly), and most of the drive electronics of a SCSI drive. Only the physical interface, and a little bit of the microcode (the software that runs on the actual disk drive) needs to be changed. The primary advantage of Fibre disks over SCSI disks is the number of devices that can be put on a single channel (127 vs. 15). Another advantage is that the disks can be located farther from the system. &lt;P&gt; Fibre channel computer interfaces are available with either copper of optical connections. The copper interconnect cable is less expensive than the optical cable, but the optical interconnect cable is immune to electrical interference, and can be used on longer runs. In any case, the interface to the disk drive is always copper, with any necessary conversion being done in the chassis. &lt;p&gt; The pricing for Fibre disks is similar to the pricing for SCSI disks. The main reason for the price similarity is that the HDA for a given SCSI disk is normally also used in a Fibre disk, with different interface electronics. &lt;h4&gt;Drive Contention&lt;/h4&gt; When there is activity on a single disk drive from multiple sources, this is called drive contention. Proper file-system layout can minimize this, but it usually requires a significant amount of knowledge about the I/O patterns of each file-system. The knowledge to lay out file-systems to minimize drive contention is usually gained from painful experience, and is difficult to put clearly into words. &lt;H4&gt;File-system Layout&lt;/H4&gt; As part of the Solaris installation, you will be given a choice between a &lt;B&gt;Custom&lt;/B&gt; and an &lt;B&gt;Automatic&lt;/B&gt; (default) file-system layout. If you select &lt;B&gt;Custom&lt;/B&gt;, you will be asked to enter the information about the file-system layout that you want. The following should be kept in mind when the file-system layout is entered. &lt;OL&gt; &lt;LI&gt; It is necessary to have both a &lt;tt&gt;root&lt;/tt&gt; and a &lt;tt&gt;swap&lt;/tt&gt; partition. In fact, multiple &lt;tt&gt;swap&lt;/tt&gt; partitions are supported, and, under some circumstances, might be appropriate. Additional information on the &lt;tt&gt;swap&lt;/tt&gt; partition(s) is located near the end of this section. &lt;P&gt; &lt;LI&gt; It is possible to have a separate &lt;tt&gt;/usr&lt;/tt&gt; file-system. On desktop workstations, this may be a good idea, but I don't suggest that it be done on a server. One of the problems is that the only way to check the &lt;tt&gt;/usr&lt;/tt&gt; file-system is to boot from an external source (CDROM or Network). &lt;P&gt; &lt;LI&gt; I suggest that you establish a separate &lt;tt&gt;/var&lt;/tt&gt; file-system. This is the file-system that is used to spool information to be processed, or that has been processed and is waiting to be returned to the user, and to store logs. It is also the file-system that is used by Solaris to store information on the packages and patches that have been installed. If you do not create a separate &lt;tt&gt;/var&lt;/tt&gt; file-system, then an action that generates large amounts of data for the &lt;tt&gt;/var&lt;/tt&gt; directory tree could easily fill the &lt;tt&gt;root&lt;/tt&gt; file-system, causing the system to exhibit erratic behavior. &lt;P&gt; Additionally, if the system is a mail server, then it is often appropriate to have a separate &lt;tt&gt;/var/spool/mail&lt;/tt&gt; file-system. The partition for this file-system should be made significantly larger that you expect will be needed. Other examples of the &lt;tt&gt;/var&lt;/tt&gt; file-system needing to be further subdivided are &lt;tt&gt;/var/log&lt;/tt&gt; on a log server, &lt;tt&gt;/var/adm&lt;/tt&gt; on an accounting server, &lt;tt&gt;/var/spool/mqueue&lt;/tt&gt; on an outgoing mail server, and &lt;tt&gt;/var/spool/lpd&lt;/tt&gt; for a print server. &lt;P&gt; &lt;LI&gt; Many of the SUN optional packages, and third-party binary packages, are installed under the &lt;tt&gt;/opt&lt;/tt&gt; directory tree. If you use many of these, it might be a good idea to have a separate &lt;tt&gt;/opt&lt;/tt&gt; file-system. As with the &lt;tt&gt;/var&lt;/tt&gt; file-system, the goal is to keep the &lt;tt&gt;root&lt;/tt&gt; file-system from filling up. Again, the partition for this file-system should be made significantly larger that you expect will be needed. &lt;P&gt; &lt;LI&gt; Many of the freeware and source (i.e. GNU) packages are normally installed under the &lt;tt&gt;/usr/local&lt;/tt&gt; directory tree. If there are more than just a few of these, I suggest that you have a separate &lt;tt&gt;/usr/local&lt;/tt&gt; file-system. This will help to keep the &lt;tt&gt;/usr&lt;/tt&gt; file-system (or the &lt;tt&gt;root&lt;/tt&gt; file-system where there is no &lt;tt&gt;/usr&lt;/tt&gt; file-system) from filling up. Again, the partition for this file-system should be made significantly larger that you expect will be needed. &lt;P&gt; &lt;LI&gt; The &lt;tt&gt;/tmp&lt;/tt&gt; and &lt;tt&gt;/var/run&lt;/tt&gt; directories are, by default, mounted on top of the &lt;tt&gt;swap&lt;/tt&gt; partition (file-system type of &lt;tt&gt;tmpfs&lt;/tt&gt;). This means that they use the same disk space as the &lt;tt&gt;swap&lt;/tt&gt; partition. It is possible that this could cause a server to run out of swap space, or &lt;tt&gt;/tmp&lt;/tt&gt; space (space in &lt;tt&gt;/var/run&lt;/tt&gt; shouldn't be a problem). If either of these problems arises, or is expected to arise because of an expected heavy load on the &lt;tt&gt;/tmp&lt;/tt&gt; file-system, then it is suggested that a separate partition be allocated for the &lt;tt&gt;/tmp&lt;/tt&gt; file-system. Alternatively, it might be appropriate to allocate more space to the &lt;tt&gt;swap&lt;/tt&gt; partition(s). &lt;B&gt;Never&lt;/B&gt; allow the &lt;tt&gt;/tmp&lt;/tt&gt; directory to be left in the &lt;tt&gt;root&lt;/tt&gt; partition. &lt;P&gt; This is a tradeoff between speed (&lt;tt&gt;tmpfs&lt;/tt&gt; is very fast, because it's heavily buffered in memory) and contention (is memory to be used for &lt;tt&gt;tmpfs&lt;/tt&gt; or programs). This sort of decision often requires benchmarking to determine the best solution. &lt;/OL&gt; &lt;H4&gt;Swap&lt;/H4&gt; First, it should be noted that calling anything on a Solaris system &lt;tt&gt;swap&lt;/tt&gt; is a misnomer. In reality, the &lt;tt&gt;swap&lt;/tt&gt; partition is used for paging. The name is a carryover from the earlier days of UNIX, when paging wasn't supported, and entire programs had to be moved from memory to disk (swapped). &lt;P&gt; The &lt;tt&gt;swap&lt;/tt&gt; space on a Solaris system functions as an extension of the memory on the system. Disk space that is used in this manner is referred to as &lt;tt&gt;virtual memory&lt;/tt&gt;. When &lt;tt&gt;real memory&lt;/tt&gt; (the RAM in a system) becomes full, the operating system will move portions of programs (called pages; usually 4096 bytes per page) onto &lt;tt&gt;virtual memory&lt;/tt&gt;. The act of moving pages between &lt;tt&gt;real memory&lt;/tt&gt; and &lt;tt&gt;virtual memory&lt;/tt&gt; is called paging. &lt;P&gt; Keeping track of these &lt;tt&gt;virtual memory&lt;/tt&gt; pages isn't significantly more complex then keeping track of &lt;tt&gt;real memory&lt;/tt&gt; pages. The problem is that paging from &lt;tt&gt;virtual memory&lt;/tt&gt; back into &lt;tt&gt;real memory&lt;/tt&gt; can be a time consuming task. &lt;P&gt; When determining the amount of disk space to allocate for &lt;tt&gt;swap&lt;/tt&gt;, you need to consider the maximum possible system memory usage. The sum of &lt;tt&gt;real memory&lt;/tt&gt; and &lt;tt&gt;virtual memory&lt;/tt&gt; (swap space) should be well in excess of the maximum possible system memory usage. This is primarily because applications have a tendency to grow, and users always seem to find something new to run on a system. Although it is theoretically possible to run a Solaris system with no &lt;tt&gt;swap&lt;/tt&gt; space, only an expert should attempt to do so. &lt;P&gt; Also, when Solaris performs a crash dump, it places the dump into the &lt;tt&gt;swap&lt;/tt&gt; area. As part of the reboot, this dump is read into the &lt;tt&gt;/var/crash&lt;/tt&gt; directory (if dumps are enabled; they are by default). If there is not adequate space in &lt;tt&gt;swap&lt;/tt&gt; to store the dump, then it will be lost. For this reason, it is advised that the swap space be at least as large as &lt;tt&gt;real memory&lt;/tt&gt;. The operation of crash dumps can be altered with the &lt;tt&gt;dumpadm&lt;/tt&gt; command. &lt;P&gt; Finally, the file-system type of &lt;tt&gt;tmpfs&lt;/tt&gt; uses both &lt;tt&gt;real&lt;/tt&gt; and &lt;tt&gt;virtual&lt;/tt&gt; memory. This creates a very fast file-system, as much of the file-system structure resides in memory. Unfortunately, this file-system format is also transient in nature, as it is lost each time the system is rebooted. By default, the &lt;tt&gt;/tmp&lt;/tt&gt; and &lt;tt&gt;/var/run&lt;/tt&gt; file-systems are mounted as type &lt;tt&gt;tmpfs&lt;/tt&gt;. There are several kernel tuning parameters that adjust the functionality of &lt;tt&gt;tmpfs&lt;/tt&gt;. These are discussed in the Solaris Tunable Parameters Reference Manual (&lt;a href=&#034;#9&#034;&gt;9&lt;/a&gt;). &lt;h3&gt;Network Connectivity&lt;/h3&gt; When you install a system, you should have a good idea as to how much network connectivity the system will need. If the system is placed in a location where the network connections need to be run, it would be a good idea to make sure that the number of connections run to that location is at least twice the number needed. Allowing for growth will increase the amount of time until additional or replacement network connections need to be run. &lt;p&gt; Additionally, a server should never be connected to a hub. If possible, a server should receive a dedicated switch port to maximize the bandwidth actually available to the server. &lt;h1&gt;&lt;a NAME=&#034;Installation&#034;&gt;&lt;/a&gt;6. Initial Installation&lt;/h1&gt; Before installing a Solaris server, disconnect all network interfaces to ensure that there are no intrusion attempts while the installation is occurring, before the system can be properly secured. To transfer data (patches, 3rd party packages and source) to the system being installed, use either CDROM, or tape (or any other non-networked, physically connected device). &lt;P&gt; Some of the newer SUN systems have neither a CDROM, nor an external SCSI connector. For these systems, you will need to perform the installation from the network. The best way to do this would be to use JumpStart on a fully isolated build network. Additionally, there are several papers on the &lt;A HREF=&#034;#links&#034;&gt;SUN BluePrints&lt;/a&gt; website that cover the JumpStart procedure. &lt;p&gt; When installing Solaris for a server, it is normally not necessary to start with more than the &lt;b&gt;CORE&lt;/b&gt; installation. The current Solaris installation is on two CDROMs. Unfortunately, the installation script isn't smart enough to request the second CDROM, unless Java is installed, and Java isn't part of the &lt;B&gt;CORE&lt;/B&gt; installation. For this reason, any additional packages should be installed manually, at a later time. Fortunately, the entire &lt;b&gt;CORE&lt;/b&gt; installation resides on the first CDROM. &lt;DL&gt; &lt;DT&gt;Set minimum password length &lt;DD&gt; In the &lt;tt&gt;/etc/default/passwd&lt;/tt&gt; file, set the &lt;tt&gt;PASSLENGTH&lt;/tt&gt; variable to &lt;tt&gt;8&lt;/tt&gt;. This will require that passwords be eight characters long. It should be noted that, with the default password methodology, any portion of the password beyond eight characters is ignored. &lt;P&gt; &lt;DT&gt;Set default password changing parameters &lt;DD&gt; In the &lt;tt&gt;/etc/default/passwd&lt;/tt&gt; file, set the &lt;tt&gt;MAXWEEKS&lt;/tt&gt; variable to the maximum number of weeks that can pass, before a user must change their password. If &lt;tt&gt;MAXWEEKS&lt;/tt&gt; is too short, users will have a tendency to cycle through a list of passwords. This value is normally not set to less than &lt;tt&gt;13&lt;/tt&gt; (3 months). &lt;P&gt; Also, set the &lt;tt&gt;MINWEEKS&lt;/tt&gt; variable to the minimum number of weeks that must pass before a user is allowed to change their password. The purpose of this variable is to lessen the likelyhood that a user will cycle through a password list, or change their password, then change it right back. For this reason, the &lt;tt&gt;MINWEEKS&lt;/tt&gt; variable should not be set too small. On the other hand, if it is set too large, a user might not be able to change their own password, if it were to become compromised. I feel that a value between &lt;tt&gt;2&lt;/tt&gt; and &lt;tt&gt;4&lt;/tt&gt; is appropriate for this variable. &lt;P&gt; Finally, set the &lt;tt&gt;WARNWEEKS&lt;/tt&gt; variable to the number of weeks that must pass since the last password change, before a user will receive password change warnings. This number should be slightly shorter than the value the &lt;tt&gt;MAXWEEKS&lt;/tt&gt; variable was set to. If the difference between &lt;tt&gt;MAXWEEKS&lt;/tt&gt; and &lt;tt&gt;WARNWEEKS&lt;/tt&gt; is too small, users might return from a vacation, and find that they can't log in. I feel that the difference should be at least three weeks. &lt;P&gt; &lt;DT&gt;Add critical hosts &lt;DD&gt; The critical hosts should be added to the &lt;tt&gt;/etc/hosts&lt;/tt&gt; file. A critical host is one that is explicitly referenced in one of the other configuration files. Also, all the names for this host should be in the &lt;tt&gt;/etc/hosts&lt;/tt&gt; file. This is done so that system critical issues do not need to have DNS or NIS functioning. Non-critical hosts can be retrieved through DNS. &lt;P&gt; If your network is small enough, and you don't need to log the host name of external hosts, or connect to external hosts by name, you might be able to use only the &lt;tt&gt;/etc/hosts&lt;/tt&gt; file (preferable, if it can be done). &lt;P&gt; &lt;DT&gt;Add network names &lt;DD&gt; Add the local networks to the &lt;tt&gt;/etc/networks&lt;/tt&gt; file. Typically, you'd only be concerned about those networks you're directly connected to. This makes some of the &lt;tt&gt;netstat&lt;/tt&gt; outputs easier to read and understand. &lt;P&gt; &lt;DT&gt;Configure DNS &lt;DD&gt; Put the appropriate information into the &lt;tt&gt;/etc/resolv.conf&lt;/tt&gt; file (only needed if you're running DNS). &lt;P&gt; &lt;DT&gt;Set hostname lookup &lt;DD&gt; The &lt;tt&gt;/etc/nsswitch.conf&lt;/tt&gt; file needs to be updated. The &lt;tt&gt;hosts&lt;/tt&gt; line should have &lt;tt&gt;files&lt;/tt&gt; as the first entry. Also, the &lt;tt&gt;networks&lt;/tt&gt; line should have &lt;tt&gt;files&lt;/tt&gt; as the only entry. Any references to &lt;TT&gt;NIS&lt;/TT&gt; or &lt;TT&gt;NIS+&lt;/TT&gt; should be removed from the &lt;tt&gt;hosts&lt;/tt&gt; line. &lt;P&gt; &lt;DT&gt;Update the login scripts &lt;DD&gt; The files &lt;tt&gt;/etc/.login&lt;/tt&gt;, &lt;tt&gt;/etc/cshrc&lt;/tt&gt; and &lt;tt&gt;/etc/profile&lt;/tt&gt; should be updated, as appropriate for your installation. These are the login script for the C-shell, and the startup scripts for the C-shell and the Bourne-shell, respectively. &lt;P&gt; &lt;DT&gt;Set available shells &lt;DD&gt; The file &lt;tt&gt;/etc/shells&lt;/tt&gt; should be updated to list all the commands that will be allowed to be used as shells by various system utilities. These utilities include &lt;tt&gt;ftp&lt;/tt&gt; and &lt;tt&gt;sendmail&lt;/tt&gt;. &lt;P&gt; &lt;DT&gt;Verify console settings &lt;DD&gt; In the file &lt;tt&gt;/etc/default/login&lt;/tt&gt;, ensure that the value for &lt;tt&gt;CONSOLE&lt;/tt&gt; is set to &lt;tt&gt;/dev/console&lt;/tt&gt;, allowing root logins only from the physical console. Solaris should make &lt;tt&gt;/dev/console&lt;/tt&gt; the default, but it needs to be checked. &lt;P&gt; &lt;DT&gt;Use Journalling file systems &lt;DD&gt; In the file &lt;tt&gt;/etc/vfstab&lt;/tt&gt;, add the mount option &lt;tt&gt;logging&lt;/tt&gt; on all mountable local file-systems. In case of a crash, use of a journalled file-system will minimize the corruption; very important for log files. &lt;P&gt; &lt;DT&gt;Install the patches &lt;DD&gt; SUN comes out with a new recommended patch cluster about twice a month. In general, these should be installed as soon as possible after they come out. This is a task that never ends. &lt;P&gt; When performing the first patch install, the patches should come from a CDROM, or a tape because your network connection is still not connected; an important consideration, as Solaris (as delivered) is not well configured for security. &lt;/DL&gt; &lt;h1&gt;&lt;a NAME=&#034;Min_Solaris&#034;&gt;&lt;/a&gt;7. Minimizing Solaris&lt;/h1&gt; The &lt;b&gt;CORE&lt;/b&gt; installation loads many packages that are not needed for a server to function. Among them are several X11 and OpenWindows packages. Alex Noordergraaf wrote a good paper on how to minimize Solaris (&lt;a href=&#034;#2&#034;&gt;2&lt;/a&gt;). &lt;P&gt; Minimizing Solaris is a simple way of removing potential security issues. As an example, if a hacker knew of a security hole in a specific daemon that's not running, they might try to get it started. If it's not there, then they'd have to find another way in. &lt;P&gt; The most important thing to consider is that you don't want to remove any packages that are critical to your system. A great amount of care should be taken in removing driver packages. Also, you should have a good understanding of the needs of your application. If a package is needed by your application, it shouldn't be removed. &lt;B&gt;When in doubt, leave it&lt;/B&gt;. &lt;p&gt; The drivers for some of the less frequently encountered hardware may not be include in the &lt;b&gt;CORE&lt;/b&gt; installation. If you have hardware in your system that doesn't seem to work, please make sure that the package containing the driver has been installed. &lt;P&gt; As an example, I have a PC with Solaris 8 installed. The almost minimized package list is as follows (I didn't take the time to try to minimize further): &lt;blockquote&gt;&lt;blockquote&gt;&lt;pre&gt; NCRos86r	NCR Platform Support, OS Functionality (Root) SUNWadmr	System &amp; Network Administration Root SUNWadp Adaptec 29xx/39/xx/78xx Family of SCSI HBA SUNWcar Core Architecture, (Root) SUNWcsd Core Solaris Devices SUNWcsl Core Solaris, (Shared Libs) SUNWcsr Core Solaris, (Root) SUNWcsu Core Solaris, (Usr) SUNWdfb Dumb Frame Buffer Device Drivers (deprecated) SUNWesu Extended System Utilities SUNWkey Keyboard configuration tables SUNWkvm Core Architecture, (Kvm) SUNWlibms	Sun WorkShop Bundled shared libm SUNWloc System Localization SUNWnamos	Northern America OS Support SUNWos86r	Platform Support, OS Functionality (Root) SUNWos86u	Platform Support, OS Functionality (Usr) SUNWpsdcr	Platform Support, Bus-independent Device Drivers (Root) SUNWpsdir	Platform Support, ISA Bus Device Drivers, (Root) SUNWrmodr	Realmode Modules, (Root) SUNWrmodu	Realmode Modules, (Usr) SUNWswmt	Install and Patch Utilities &lt;/pre&gt;&lt;/blockquote&gt;&lt;/blockquote&gt; I also have a SPARCstation LX with Solaris 8 installed. The almost minimized package list is as follows (again, I didn't take the time to minimize further): &lt;blockquote&gt;&lt;blockquote&gt;&lt;pre&gt; SUNWadmr	System &amp; Network Administration Root SUNWcar Core Architecture, (Root) SUNWcg6 GX (cg6) Device Driver SUNWcsd Core Solaris Devices SUNWcsl Core Solaris, (Shared Libs) SUNWcsr Core Solaris, (Root) SUNWcsu Core Solaris, (Usr) SUNWdfb Dumb Frame Buffer Device Drivers SUNWesu Extended System Utilities SUNWkey Keyboard configuration tables SUNWkvm Core Architecture, (Kvm) SUNWlibms	Sun WorkShop Bundled shared libm SUNWloc System Localization SUNWnamos	Northern America OS Support SUNWrmodu	Realmode Modules, (Usr) SUNWswmt	Install and Patch Utilities &lt;/pre&gt;&lt;/blockquote&gt;&lt;/blockquote&gt; Install the minimum number of Solaris packages necessary to perform the required tasks. I added the following packages. Installation of other Solaris or third-party packages may require additional Solaris operating system packages to be installed. &lt;BLOCKQUOTE&gt; On-line manual pages &lt;blockquote&gt;&lt;pre&gt; SUNWdoc Documentation Tools SUNWlibC	Sun Workshop Compilers Bundled libC SUNWman On-Line Manual Pages &lt;/pre&gt;&lt;/blockquote&gt; Network Time Protocol &lt;blockquote&gt;&lt;pre&gt; SUNWntpr	NTP, (Root) SUNWntpu	NTP, (Usr) &lt;/pre&gt;&lt;/blockquote&gt; GNU tools &lt;blockquote&gt;&lt;pre&gt; SUNWbash	GNU Bourne-Again shell (bash) SUNWgpch	The GNU Patch utility SUNWgzip	The GNU Zip (gzip) compression utility SUNWless	The GNU pager (less) &lt;/pre&gt;&lt;/blockquote&gt; Various shells &lt;blockquote&gt;&lt;pre&gt; SUNWtcsh	Tenex C-shell (tcsh) SUNWzsh Z shell (zsh) &lt;/pre&gt;&lt;/blockquote&gt; Needed to build many source packages &lt;blockquote&gt;&lt;pre&gt; SUNWarc Archive Libraries SUNWbtool	CCS tools bundled with SunOS SUNWhea SunOS Header Files SUNWsprot	Solaris Bundled tools SUNWtoo Programming Tools SUNWxcu4	XCU4 Utilities SUNWxcu4t	XCU4 make and sccs utilities &lt;/pre&gt;&lt;/blockquote&gt; Needed to build Bind &lt;blockquote&gt;&lt;pre&gt; SUNWscpu	Source Compatibility, (Usr) &lt;/pre&gt;&lt;/blockquote&gt; Needed to build SSH &lt;blockquote&gt;&lt;pre&gt; SUNWlibm	Sun WorkShop Bundled libm &lt;/pre&gt;&lt;/blockquote&gt; Needed to build PostgresSQL &lt;blockquote&gt;&lt;pre&gt; SUNWipc Interprocess Communications SUNWlldap	LDAP Libraries &lt;/pre&gt;&lt;/blockquote&gt; Misc. system maintenance stuff &lt;blockquote&gt;&lt;pre&gt; SUNWaccr	System Accounting, (Root) SUNWaccu	System Accounting, (Usr) SUNWadmc	System administration core libraries SUNWadmfw	System &amp; Network Administration Framework SUNWspl Spell Checking Engine - Base Release (English) SUNWsutl	Static Utilities SUNWter Terminal Information &lt;/pre&gt;&lt;/blockquote&gt; &lt;/blockquote&gt; &lt;P&gt; It should be noted that there are some decisions to be made here. If a package is needed, and the package is available as source (sendmail, NTP, perl, Apache and FTP being examples), it is necessary to decide whether to use the vendor package, or to build from source. &lt;P&gt; Building from source gives more flexibility in configuration, at the expense of greater system administration time and effort. Also, upgrades and security patches are usually available for source packages sooner. &lt;h1&gt;&lt;a NAME=&#034;Min_Network&#034;&gt;&lt;/a&gt;8. Minimizing Network Services&lt;/h1&gt; The primary source for this information is a web page by Lance Spitzner (&lt;a href=&#034;#3&#034;&gt;3&lt;/a&gt;). &lt;P&gt; Most network services are offered by &lt;TT&gt;inetd&lt;/TT&gt;. The file &lt;TT&gt;inetd.conf&lt;/TT&gt; lists the services that &lt;TT&gt;inetd&lt;/TT&gt; is to offer, and what programs to execute when a connection is made to the service. If a line has a '&lt;tt&gt;#&lt;/tt&gt;' as the first character, it will be treated as a comment, and any information that might be there about a service will be ignored. &lt;P&gt; Each service in the &lt;TT&gt;inetd.conf&lt;/TT&gt; file should be individually analyzed to determine if it is necessary for the system to function properly. In most cases, the answer will be &lt;B&gt;no&lt;/B&gt;. If a service is determined to be unnecessary, the line should be commented out, by inserting a '&lt;tt&gt;#&lt;/tt&gt;' as the first character of the line. If you don't know what the service does, try to comment it out, and see is everything still works. NOTE: After the &lt;TT&gt;inetd.conf&lt;/TT&gt; file is changed, the &lt;TT&gt;inetd&lt;/TT&gt; program needs to be instructed to reread the file, by using the &lt;tt&gt;kill&lt;/tt&gt; command to send it a &lt;tt&gt;SIGHUP&lt;/tt&gt; (e.g. &lt;tt&gt;kill -1 (PID)&lt;/tt&gt;). &lt;P&gt; Some of the services in the &lt;TT&gt;inetd.conf&lt;/TT&gt; file are offered for both IPv4 and IPv6. These services may be identified by the protocol type of &lt;tt&gt;tcp6&lt;/tt&gt;. If it is necessary to leave a service in for IPv4, but disable it for IPv6, the protocol should be changed from &lt;tt&gt;tcp6&lt;/tt&gt; to &lt;tt&gt;tcp&lt;/tt&gt;. If the server is not running IPv6, then none of the services should be have a protocol of &lt;tt&gt;tcp6&lt;/tt&gt;. &lt;P&gt; The most commonly used &lt;TT&gt;inetd&lt;/TT&gt; services are &lt;tt&gt;telnet&lt;/tt&gt; and &lt;tt&gt;FTP&lt;/tt&gt;. If secure shell is used, these services can usually be disabled. &lt;P&gt; Among the least secure services offered by &lt;TT&gt;inetd&lt;/TT&gt; are the R commands. These are &lt;tt&gt;rlogin&lt;/tt&gt;, &lt;tt&gt;rexec&lt;/tt&gt;, &lt;tt&gt;rcp&lt;/tt&gt; and &lt;tt&gt;rsh&lt;/tt&gt;. If at all possible, these services should be disabled in the &lt;TT&gt;inetd.conf&lt;/TT&gt; file. &lt;P&gt; If the &lt;TT&gt;inetd.conf&lt;/TT&gt; file gets to the point where &lt;B&gt;all&lt;/B&gt; of the lines are commented out, then there is no longer any reason to run the &lt;TT&gt;inetd&lt;/TT&gt; daemon. If this occurs, comment out the line that starts &lt;TT&gt;inetd&lt;/TT&gt;, found in the &lt;tt&gt;/etc/rc2.d/S72inetsvc&lt;/tt&gt; file (NOTE: number may not be 72; please check first with &lt;tt&gt;ls /etc/rc2.d/S*inetsvc&lt;/tt&gt;). &lt;P&gt; Not all network services are offered by &lt;TT&gt;inetd&lt;/TT&gt;. Sometimes, it is either necessary, or faster, to execute a daemon directly, and allow it to wait for connections. Here are the most common of those daemons: &lt;DL&gt; &lt;DT&gt;Apache &lt;DD&gt; Apache is an open-source web server, which is provided on the Solaris installation CDROMs. The version provided has only a minimal set of modules, which is not adequate for most web servers. If you are not running a web server, this software should not be installed. &lt;P&gt; There are modules available for Apache that enable almost any imaginable web functionality. In most cases, to use a module you will have to build Apache from source. &lt;P&gt; If you choose to run Apache, installed from source, I suggest that you install Apache from the Solaris installation CDROMs, save the startup scripts (&lt;tt&gt;/etc/rc2.d/*[Aa]pache*&lt;/tt&gt;), and remove the package. These startup scripts should work well, as long as Apache is installed in the same location. &lt;P&gt; &lt;DT&gt;Automountd &lt;DD&gt; The &lt;tt&gt;automountd&lt;/tt&gt; daemon is used to automatically mount NFS file-systems when they are needed, and unmount them when they become unneeded. This helps to free up kernel resources, and keep the mount table small. &lt;P&gt; This might be useful on a desktop system, but I feel that it has no place on a server. When using NFS on a server (hopefully, this isn't too often), the delay for mounting a new file-system is not good, and could cause response problems. &lt;P&gt; &lt;DT&gt;Kerberos Authentication &lt;DD&gt; Kerberos is a protocol for authenticating users. There are both advantages and disadvantages of using Kerberos, as compared to other readily available authentication protocols. &lt;P&gt; There exists a Kerberos daemon, which only needs to run on the Key Distribution Center (KDC). This daemon performs the tasks of saving user pass phrases, and distributing Kerberos Tickets. It also interfaces with remote Kerberos administration tools. Installation of a KDC, and configuration of Kerberos, is beyond the scope of this web page. For a description of how this is done, please either read the manual pages, or read the Addison-Wesley book &lt;u&gt;Kerberos - A Network Authentication System&lt;/u&gt; (&lt;a href=&#034;#4&#034;&gt;4&lt;/a&gt;). &lt;P&gt; Also, there are Kerberized clients (they use Kerberos tickets for authorization) listed in the &lt;TT&gt;inetd.conf&lt;/TT&gt; file. These clients include &lt;TT&gt;ktelnet&lt;/tt&gt;, &lt;tt&gt;kftp&lt;/tt&gt;, &lt;tt&gt;krlogin&lt;/tt&gt;, &lt;tt&gt;krlogin&lt;/tt&gt;, &lt;tt&gt;krsh&lt;/tt&gt; and &lt;tt&gt;krcp&lt;/tt&gt;. Additionally, there exist other Kerberized clients for login, IMAP, POP, and many other authenticated access methods. When using Kerberos, these clients should not be commented out of the &lt;TT&gt;inetd.conf&lt;/TT&gt; file (except, possibly, on the KDC). &lt;P&gt; &lt;DT&gt;LDAP &lt;DD&gt; If it was necessary to install the LDAP package to get a third party package to build, it is normally a good idea to disable the LDAP daemon. To disable the LDAP daemon, enter the following command (NOTE: number may not be 71; please check first with &lt;tt&gt;ls /etc/rc2.d/S*ldap.client&lt;/TT&gt;): &lt;blockquote&gt;&lt;pre&gt; mv /etc/rc2.d/S71ldap.client /etc/rc2.d/_S71ldap.client &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; &lt;DT&gt;LPD &lt;DD&gt; The LPD (Line Printer Daemon) is only needed on a system that functions as a print server. Other systems should only have the printer queueing commands (&lt;tt&gt;lp&lt;/tt&gt;, &lt;tt&gt;lpc&lt;/tt&gt;, &lt;tt&gt;lpq&lt;/tt&gt;, &lt;tt&gt;lpr&lt;/tt&gt; and &lt;tt&gt;lprm&lt;/tt&gt;). To disable LPD, remove the &lt;tt&gt;SUNWpsr&lt;/tt&gt; package. &lt;P&gt; Also, there is a reference to &lt;tt&gt;in.lpd&lt;/tt&gt; in the &lt;tt&gt;/etc/inetd.conf&lt;/tt&gt; file. To disable LPD, this would also have to be disabled. &lt;P&gt; &lt;DT&gt;LPRng &lt;DD&gt; LPRng is a third-party software package, covered by the GPL, that is sometimes used to replace the LPD system. It has several features that make it more useful then the LPD system, under certain circumstances. &lt;P&gt; When a default install is performed, several files are added to the &lt;tt&gt;/etc/rc2.d&lt;/tt&gt; directory, for the purpose of starting the print daemon. If the system is not functioning as a print server, then the startup of the print daemon should be disabled. &lt;P&gt; To disable startup of the LPRng print daemon, enter the following commands (NOTE: numbers may not be 60 and 80; please check first with &lt;tt&gt;ls /etc/rc2.d/S*lprng&lt;/tt&gt;): &lt;blockquote&gt;&lt;pre&gt; mv /etc/rc2.d/S60lprng /etc/rc2.d/_S60lprng mv /etc/rc2.d/S80lprng /etc/rc2.d/_S80lprng &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; &lt;DT&gt;NFS &lt;DD&gt; If the server is on an unprotected network, or if there are users on the network that shouldn't see all the data in the server, then NFS should not be used. To disable NFS, enter the following commands (NOTE: numbers may not be 73 and 15; please check first with &lt;tt&gt;ls /etc/rc2.d/S*nfs.client&lt;/tt&gt; and &lt;tt&gt;ls /etc/rc3.d/S*nfs.server&lt;/tt&gt;): &lt;blockquote&gt;&lt;pre&gt; mv /etc/rc2.d/S73nfs.client /etc/rc2.d/_S73nfs.client mv /etc/rc3.d/S15nfs.server /etc/rc3.d/_S15nfs.server &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; &lt;DT&gt;NIS &lt;DD&gt; SUN has created a powerful tool called NIS. This tool is very helpful for central configuration control of large groups of systems. Unfortunately, the design did not consider that passwords could be easily broken. Since DES encrypted passwords can no longer be considered to be secure, I strongly suggest that NIS not be used. To disable NIS, remove the &lt;TT&gt;SUNWnisu&lt;/TT&gt; and &lt;tt&gt;SUNWnisr&lt;/tt&gt; packages. &lt;P&gt; &lt;DT&gt;NIS+ &lt;DD&gt; As the name implies, this is a followon to NIS. It improves on the power, flexibility and security of NIS. If all (or almost all) of the UNIX systems on your network can use this protocol, it might be worthwhile using. Please note that the servers for NIS+ need to be carefully configured to be properly secure. &lt;P&gt; The O'Reilly book &lt;u&gt;Managing NFS and NIS&lt;/u&gt; (&lt;a href=&#034;#5&#034;&gt;5&lt;/a&gt;) has information on properly configuring servers and clients to use NIS+. &lt;P&gt; &lt;DT&gt;NTP &lt;DD&gt; NTP is a package that can be used to synchronize the time on systems. Keeping times in sync is very useful, as it makes the log entries easier to interpret. It is also important when NFS is being used. &lt;P&gt; &lt;DT&gt;Routed &lt;DD&gt; The &lt;tt&gt;routed&lt;/tt&gt; daemon is used to determine where network traffic should go when it leaves a host. If there exists a &lt;tt&gt;/etc/defaultrouter&lt;/tt&gt; file, then the IP address contained in that file would be used as the default route, and the &lt;tt&gt;routed&lt;/tt&gt; daemon will not be started. &lt;P&gt; The &lt;tt&gt;routed&lt;/tt&gt; daemon is not normally needed, unless a system has multiple network interfaces. &lt;P&gt; &lt;DT&gt;RPC &lt;DD&gt; RPC is a service that allows remote (and local) programs to request that an action be performed. The &lt;TT&gt;rpcbind&lt;/TT&gt; daemon allows remote users to determine what RPC services are being offered. This could allow a potential intruder to scan for hosts with a vulnerable service. &lt;P&gt; The &lt;TT&gt;rpcbind&lt;/TT&gt; daemon is needed for NFS, NIS and parts of X11, among others. If you aren't running any of these, you may wish to try disabling RPC. To disable RPC, enter the following command (NOTE: number may not be 71; please check first with &lt;tt&gt;ls /etc/rc2.d/S*rpc&lt;/tt&gt;): &lt;blockquote&gt;&lt;pre&gt; mv /etc/rc2.d/S71rpc /etc/rc2.d/_S71rpc &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; When disabling the &lt;TT&gt;rpcbind&lt;/TT&gt; daemon, it is a good idea to make sure that the necessary network services function properly both before and after the change. NOTE: The system should be booted immediately prior to any such testing being done. &lt;P&gt; If you find that the &lt;TT&gt;rpcbind&lt;/TT&gt; daemon is necessary for proper system functionality, it is possible to use TCP-Wrappers with &lt;TT&gt;rpcbind&lt;/TT&gt;, to limit the hosts that can access the RPC information. For more information on this, please see the documentation that comes with the TCP-Wrappers package. &lt;P&gt; &lt;DT&gt;Sendmail &lt;DD&gt; Most servers have an occasional need to send mail. Although it is not necessary to have &lt;TT&gt;sendmail&lt;/TT&gt; running to send mail, it is often a good idea, as sendmail also scans the mail queues, trying to send out mail that was previously unsendable. &lt;P&gt; If the server doesn't need to receive mail (it's not one of the mail servers), then the &lt;TT&gt;-bd&lt;/TT&gt; flag should be removed from the execution line. The file where this resides is &lt;TT&gt;/etc/rc2.d/S*sendmail&lt;/TT&gt;. NOTE: With &lt;TT&gt;sendmail&lt;/TT&gt; 8.12 and above, this change will cause locally initiated messages to not be deliverable. &lt;P&gt; An alternative to removing the &lt;TT&gt;-bd&lt;/TT&gt; flag would be to not start the &lt;TT&gt;sendmail&lt;/TT&gt; daemon, and to run &lt;tt&gt;sendmail -q&lt;/tt&gt; from &lt;tt&gt;cron&lt;/tt&gt; every hour. &lt;P&gt; If you're running the Solaris 8 &lt;TT&gt;sendmail&lt;/TT&gt;, the configuration file &lt;TT&gt;/etc/default/sendmail&lt;/tt&gt; can be used to disable the receipt of external mail. This file is &lt;B&gt;not&lt;/b&gt; included in the initial Solaris 8 release, but it is in one of the update releases, and it is also in the latest patch cluster. &lt;P&gt; Reguardless of the state of the &lt;TT&gt;sendmail&lt;/TT&gt; daemon on a system, it is &lt;B&gt;critical&lt;/B&gt; that the configuration file (usually &lt;TT&gt;/etc/mail/sendmail.cf&lt;/TT&gt;) be properly configured. &lt;P&gt; &lt;DT&gt;SSH &lt;DD&gt; SSH is a secure replacement for telnet and FTP. SSH uses fully encrypted sessions, and allows forwarding of connections (i.e. X11 or FTP forwarding). SSH is discussed more in the section &lt;a href=&#034;#Third-Party&#034;&gt;Install Necessary Third Party Packages&lt;/a&gt;. &lt;P&gt; SSH requires that a daemon be running to accept connections. Due to the computational overhead of computing a key pair at startup, this daemon should not be started from &lt;tt&gt;inetd&lt;/tt&gt;. &lt;P&gt; &lt;DT&gt;Syslogd &lt;DD&gt; The &lt;TT&gt;syslogd&lt;/TT&gt; service serves as a way to combine log messages from several sources into a few centrally located log files. It also allows log messages to be sent to another system. &lt;P&gt; Although the socket that &lt;TT&gt;syslogd&lt;/TT&gt; listens on is a potential security threat, the risks are more than offset by the ability to log information to another system in a timely manner. This ability may provide additional information, in the event of a compromise. For that reason, &lt;TT&gt;syslogd&lt;/TT&gt; should always be used, and, whenever possible, it should be configured to send security related information to another system (i.e. a secured, dedicated log server). &lt;P&gt; It should be noted that the Solaris 8 &lt;TT&gt;syslogd&lt;/TT&gt; deamon will create a UDP socket for use in sending log information to the remote host, and that the socket will be closed and reopened on a new port every few days. This could cause false positives on a network scan, and on some intrusion detection systems. &lt;P&gt; If the system will not be receiving messages from another system, then the &lt;tt&gt;syslogd&lt;/tt&gt; daemon should be started with the &lt;tt&gt;-t&lt;/tt&gt; flag. This will cause it to not listen on the UDP socket. &lt;/DL&gt; &lt;h1&gt;&lt;a NAME=&#034;Clean&#034;&gt;&lt;/a&gt;9. Remove the Solaris Installation Leftovers&lt;/h1&gt; Much of the information for this section came from a security benchmark by the Center for Internet Security (&lt;a href=&#034;#6&#034;&gt;6&lt;/a&gt;). &lt;P&gt; When the Solaris installation is performed, a significant amount of unnecessary stuff is left behind, which should be cleaned up, to minimize the potential for unauthorized system access and DOS attacks. &lt;DL&gt; &lt;DT&gt;Remove reconfiguration scripts. &lt;DD&gt; Three configuration scripts are left behind. The purpose of these scripts is to allow simple reconfiguration, if necessary. The bad news is that these scripts can be triggered just by the creation of a file. Many exploits will allow the creation of such a file. As a result, when the system is rebooted the next time, the startup will be delayed, while the reconfiguration scripts run, and wait for input. Also, when they run, they may destroy some of the previously entered configuration information. &lt;P&gt; The following commands will keep the system installation configuration scripts from being run at boot time: (NOTE: numbers may not be 30, 71 and 72; please check first with &lt;tt&gt;ls /etc/rc2.d/S*sysid.net /etc/rc2.d/S*sysid.sys /etc/rc2.d/S*autoinstall&lt;/tt&gt;): &lt;P&gt; &lt;blockquote&gt;&lt;pre&gt; mv /etc/rc2.d/S30sysid.net /etc/rc2.d/_S30sysid.net mv /etc/rc2.d/S71sysid.sys /etc/rc2.d/_S71sysid.sys mv /etc/rc2.d/S72autoinstall /etc/rc2.d/_S72autoinstall &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; &lt;DT&gt;Remove unneeded accounts &lt;DD&gt; Remove any unnecessary accounts from the system. Usually, this will include &lt;tt&gt;listen&lt;/tt&gt;, &lt;tt&gt;nobody4&lt;/tt&gt;, &lt;tt&gt;nuucp&lt;/tt&gt;, &lt;tt&gt;smtp&lt;/tt&gt; and &lt;tt&gt;uucp&lt;/tt&gt;. The command to do this is &lt;tt&gt;passmgmt -d&lt;/tt&gt; &lt;i&gt;ACCOUNT&lt;/i&gt;. &lt;P&gt; If you are running Sendmail 8.12 or higher, do not remove the &lt;tt&gt;smmsp&lt;/tt&gt; account. &lt;P&gt; &lt;DT&gt;Lock system accounts &lt;DD&gt; Any non-root system accounts (UID &lt; 100) should be locked, so that they can't be used as login accounts. The command to do this is &lt;tt&gt;passwd -l ACCOUNT&lt;/tt&gt;. The login shell should also be changed on these accounts. The &lt;I&gt;most&lt;/I&gt; secure login shell I know of is &lt;tt&gt;/dev/null&lt;/tt&gt;, but some IDSs use a special shell to warn of intrusion attempts. The command to change the login shell is &lt;tt&gt;passwd -e&lt;/tt&gt; &lt;i&gt;ACCOUNT&lt;/i&gt;. &lt;P&gt; &lt;DT&gt;Set directories for NULL accounts &lt;DD&gt; The accounts &lt;tt&gt;nobody&lt;/tt&gt;, &lt;tt&gt;noaccess&lt;/tt&gt; and &lt;tt&gt;nobody4&lt;/tt&gt; should have their login directories changed to &lt;tt&gt;/dev/null&lt;/tt&gt;. The command to change the login directory is &lt;tt&gt;passmgmt -m -h /dev/null&lt;/tt&gt; &lt;i&gt;ACCOUNT&lt;/i&gt;. The login shell for these accounts should also be changed, as above. &lt;P&gt; &lt;DT&gt;Adjust /etc/inittab for system console &lt;DD&gt; As distributed, the &lt;tt&gt;/etc/inittab&lt;/tt&gt; file allows logins from both the console and the serial ports. This should be changed to allow logins on only one of these. If the keyboard is in use, then the serial ports should be disabled by commenting out the line containing &lt;tt&gt;/usr/lib/saf/sac&lt;/tt&gt;. If a serial console is in use, then the keyboard should be disabled by commenting out the line containing &lt;tt&gt;/usr/lib/saf/ttymon&lt;/tt&gt;. &lt;P&gt; &lt;DT&gt;Remove cachefs startup &lt;DD&gt; In most servers, there is no need for the cachefs daemon. If this is the case, the startup script should be disabled. This can be done by the use of the following commands (NOTE: numbers may not be 73 and 93; please check first with &lt;tt&gt;ls /etc/rc2.d/S*cachefs.daemon&lt;/tt&gt; and &lt;tt&gt;ls /etc/rc2.d/S*cacheos.finish&lt;/tt&gt;): &lt;blockquote&gt;&lt;pre&gt; mv /etc/rc2.d/S73cachefs.daemon /etc/rc2.d/_S73cachefs.daemon mv /etc/rc2.d/S93cacheos.finish /etc/rc2.d/_S93cacheos.finish &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; &lt;DT&gt;Remove preservation of editor sessions &lt;DD&gt; When the system is taken down (or crashes) and an editor (&lt;tt&gt;vi&lt;/tt&gt;) session is active, the keystroke file is left behind. The startup script &lt;tt&gt;/etc/rc2.d/S80PRESERVE&lt;/tt&gt; copies these keystroke files to the &lt;tt&gt;/usr/preserve&lt;/tt&gt; directory, and sends E-mail to the users whose sessions were saved, informing them of the procedure to recover their sessions. &lt;P&gt; On most servers, there will be little editing, and this step in the startup procedure need not be done. The following commands will disable the saving of keystroke files during startup: (NOTE: number may not be 80; please check first with &lt;tt&gt;ls /etc/rc2.d/S*PRESERVE&lt;/tt&gt;): &lt;P&gt; &lt;blockquote&gt;&lt;pre&gt; mv /etc/rc2.d/S80PRESERVE /etc/rc2.d/_S80PRESERVE &lt;/pre&gt;&lt;/blockquote&gt; &lt;/DL&gt; &lt;h1&gt;&lt;a NAME=&#034;Third-Party&#034;&gt;&lt;/a&gt;10. Install Necessary Third Party Packages&lt;/h1&gt; Most servers need to have software installed on them that is not part of Solaris, many of which are available as precompiled packages. These can be found on various Internet sites. If you're not sure you can trust the site where you found the package, don't install it. On my Solaris 8 x86 system, the following precompiled packages were added: &lt;blockquote&gt;&lt;pre&gt; GNUbison GNU bison 1.28 i86pc Solaris 8 GNUgcc GNU gcc 2.95.2 i86pc Solaris 8 GNUgroff GNU groff 1.15 i86pc Solaris 8 GNUm4 GNU m4 1.4 i86pc Solaris 8 GNUmake GNU make 3.78.1 i86pc Solaris 8 &lt;/pre&gt;&lt;/blockquote&gt; On my SPARCstation LX, the same packages were added, but the descriptions were slightly different. &lt;P&gt; NOTE: The specific packages above are only examples. I installed them on my system, as I prefer to use source releases, whenever possible. &lt;P&gt; NOTE: Some people prefer to &lt;B&gt;not&lt;/b&gt; build packages on the server, but to build them elsewhere, and transfer the installed files. If you have the ability to find every file installed by the package, and a spare system with the same architecture as your server, to do the builds on, this is probably a better idea. &lt;P&gt; In addition, there are many packages which are available in source form, but are not available precompiled for Solaris. There may also be packages that are available precompiled for Solaris, but with options set that aren't optimum for your installation. In these cases, you will have to locate and download the source package, and compile, test and install it. &lt;P&gt; When looking for a source package, it is useful to go to the origin site. This is because additional information on the package may be there. The actual package may be retrieved from mirror sites, if it's convenient, as long as the version number is current. &lt;P&gt; To make upgrades, and patch installation easier, I strongly suggest that you save the commands that you enter to build the packages. Some of these packages are quite complex to build. An example of this is the command sequence I used to build GAS: &lt;blockquote&gt;&lt;pre&gt; #! /bin/sh echo Building GAS if [ -d binutils-2.10.1 ] then rm -rf binutils-2.10.1 fi cp dist/src/binutils-2.10.1.tar.gz . gunzip binutils-2.10.1.tar.gz tar xf binutils-2.10.1.tar rm binutils-2.10.1.tar cd binutils-2.10.1 ./configure cd bfd make cd ../libiberty make cd ../gas make make install cd ../.. echo GAS Complete &lt;/pre&gt;&lt;/blockquote&gt; There are several packages that, for security reasons, I suggest be installed on &lt;I&gt;any&lt;/I&gt; system. These are: &lt;DL&gt; &lt;DT&gt;&lt;A HREF=&#034;http://ftp.cerias.purdue.edu/pub/tools/unix/sysutils/lsof&#034;&gt;LSOF&lt;/A&gt; &lt;DD&gt; This package is very useful for tracking down possible problems in a system. &lt;P&gt; &lt;DT&gt;&lt;A HREF=&#034;ftp://ftp.ssh.com/pub/ssh&#034;&gt;SSH&lt;/A&gt; &lt;DD&gt; This package (from SSH Communications Security) can be used to replace both &lt;tt&gt;telnet&lt;/tt&gt; and &lt;tt&gt;FTP&lt;/tt&gt; (along with the remote commands: &lt;tt&gt;rlogin&lt;/tt&gt;, &lt;tt&gt;rexec&lt;/tt&gt;, &lt;tt&gt;rcp&lt;/tt&gt; and &lt;tt&gt;rsh&lt;/tt&gt;). It uses fully encrypted sessions. It also allows ports to be forwarded through it, allowing encrypted remote X11 access. &lt;P&gt; Another version is available from &lt;A HREF=&#034;http://www.openssh.com&#034;&gt;OpenSSH&lt;/A&gt;. There is an excellent paper out (&lt;A HREF=&#034;#12&#034;&gt;12&lt;/a&gt;) that covers the installation of OpenSSH on a Solaris system. &lt;P&gt; &lt;DT&gt;&lt;A HREF=&#034;http://www.courtesan.com/sudo&#034;&gt;SUDO&lt;/A&gt; &lt;DD&gt; This package allows a system administrator to give limited super-user permissions to individual users. &lt;P&gt; &lt;DT&gt;&lt;A HREF=&#034;ftp://ftp.porcupine.org/pub/security/index.html&#034;&gt;TCP Wrappers&lt;/A&gt; &lt;DD&gt; This package can be used to filter access to a system, based on the service being requested, and the client host. &lt;P&gt; Before building TCP Wrappers, change &lt;tt&gt;LOG_MAIL&lt;/tt&gt; to &lt;tt&gt;LOG_AUTH&lt;/tt&gt;, everywhere in the &lt;tt&gt;Makefile&lt;/tt&gt; (it's in several places). &lt;P&gt; To allow extended option processing, the &lt;tt&gt;make&lt;/tt&gt; command must contain the option &lt;tt&gt;STYLE=-DPROCESS_OPTIONS&lt;/tt&gt;. &lt;P&gt; The minimum configuration only needs the &lt;tt&gt;/etc/hosts.allow&lt;/tt&gt; file. The first line of the file should be &lt;tt&gt;ALL:localhost:ALLOW&lt;/tt&gt;. The last line should be &lt;tt&gt;ALL:ALL:DENY&lt;/tt&gt;. Placing the line &lt;tt&gt;ALL:ALL:DENY&lt;/tt&gt; into the &lt;tt&gt;/etc/hosts.deny&lt;/tt&gt; file can slightly increase your security. &lt;P&gt; &lt;/DL&gt; &lt;P&gt; &lt;h1&gt;&lt;a NAME=&#034;Close&#034;&gt;&lt;/a&gt;11. Close the Doors&lt;/h1&gt; Many of the items in this section came from two papers by Alex Noordergraaf and Keith Watson (&lt;a href=&#034;#7&#034;&gt;7&lt;/a&gt; and &lt;a href=&#034;#8&#034;&gt;8&lt;/a&gt;), and a document from SUN (&lt;a href=&#034;#9&#034;&gt;9&lt;/a&gt;). There is also information here from a web page by Lance Spitzner (&lt;a href=&#034;#3&#034;&gt;3&lt;/a&gt;). &lt;DL&gt; &lt;DT&gt;Add administrative group &lt;DD&gt; Add the group &lt;I&gt;wheel&lt;/I&gt; (or some similar name) to the &lt;tt&gt;/etc/group&lt;/tt&gt; file, making sure that the GID is unique. This will be the group that can perform privileged functions. &lt;P&gt; &lt;DT&gt;Create Administrator Login &lt;DD&gt; Create the login account for the primary administrator. This is not &lt;tt&gt;root&lt;/tt&gt;, but the user that will log in, then &lt;tt&gt;su&lt;/tt&gt; as necessary. Use the &lt;tt&gt;useradd&lt;/tt&gt; command with the &lt;tt&gt;-d&lt;/tt&gt; and &lt;tt&gt;-m&lt;/tt&gt; options to do this. This user should be a member of the administrative group (&lt;I&gt;wheel&lt;/I&gt;). Please remember to set a password &lt;B&gt;immediately&lt;/B&gt;. &lt;P&gt; &lt;DT&gt;Check setuid files &lt;DD&gt; Check for setuid files, and modify them, as appropriate. The command to check for these files is: &lt;blockquote&gt;&lt;pre&gt; find / -local -type f -perm -4000 -exec ls -ld {} \; &lt;/pre&gt;&lt;/blockquote&gt; Some files &lt;I&gt;must&lt;/I&gt; be left unchanged (&lt;tt&gt;/usr/bin/login&lt;/tt&gt;, &lt;tt&gt;/usr/bin/passwd&lt;/tt&gt;). Other files may have their group set to the administrative group (&lt;I&gt;wheel&lt;/I&gt;), and have their modes changed to 4750 (&lt;tt&gt;/usr/sbin/ping&lt;/tt&gt;, &lt;tt&gt;/usr/sbin/traceroute&lt;/tt&gt;). Still others may be removed. NOTE: A server should be checked for setuid files after patches are updated, and after third-party packages (source or binary) are installed. &lt;P&gt; The setuid files found on my system, and the action performed, is as follows: &lt;blockquote&gt;&lt;pre&gt; /bin/su set administrative group /sbin/su.static set administrative group /usr/bin/at set administrative group (1) /usr/bin/atq set administrative group (1) /usr/bin/atrm set administrative group (1) /usr/bin/crontab set administrative group (1) /usr/bin/eject set administrative group /usr/bin/fdformat set administrative group /usr/bin/login leave alone /usr/bin/newgrp leave alone /usr/bin/passwd leave alone /usr/bin/pfexec set administrative group (1) /usr/bin/rcp set administrative group (1) /usr/bin/rdist set administrative group /usr/bin/rlogin set administrative group (1) /usr/bin/rsh set administrative group (1) /usr/bin/i86/ps leave alone (3) /usr/bin/i86/uptime leave alone (3) /usr/bin/i86/w leave alone (3) /usr/bin/su set administrative group /usr/bin/tip set administrative group (4) /usr/bin/yppasswd remove (2) /usr/lib/acct/accton set administrative group /usr/lib/fs/ufs/quota leave alone (4) /usr/lib/fs/ufs/ufsdump set 555 mode /usr/lib/fs/ufs/ufsrestore	set 555 mode /usr/lib/pt_chmod leave alone /usr/lib/sendmail leave alone /usr/lib/utmp_update leave alone /usr/local/bin/lpq leave alone /usr/local/bin/lprm leave alone /usr/local/bin/lpr leave alone /usr/local/bin/lpstat leave alone /usr/local/bin/ssh1 leave alone /usr/local/bin/ssh-signer2	leave alone /usr/local/sbin/lpc leave alone /usr/sbin/allocate leave alone (4) /usr/sbin/deallocate leave alone (4) /usr/sbin/list_devices leave alone (4) /usr/sbin/mkdevalloc leave alone (4) /usr/sbin/mkdevmaps leave alone (4) /usr/sbin/ping set administrative group /usr/sbin/sacadm set administrative group /usr/sbin/i86/whodo leave alone (3) /usr/sbin/traceroute set administrative group &lt;/pre&gt;&lt;/blockquote&gt; Note 1: For these commands, it might be preferable to create another group (the privileged group), similar to the administrative group, but with more members. The members of the administrative group should also be members of this group. &lt;P&gt; Note 2: For some reason, SUN leaves this link to &lt;tt&gt;/bin/passwd&lt;/tt&gt; around, even after all the NIS packages have been removed. If NIS isn't being used, this should be removed. &lt;P&gt; Note 3: These commands are architecture specific. The SPARC versions for a SPARCstation LX are: &lt;blockquote&gt;&lt;pre&gt; /usr/bin/sparcv7/ps /usr/bin/sparcv7/uptime /usr/bin/sparcv7/w /usr/sbin/sparcv7/whodo &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; Note 4: For these commands, it might be preferable to place them into a privileged group (see Note 1) and change their mode to 4750, or remove them. &lt;P&gt; &lt;DT&gt;Check setgid files &lt;DD&gt; Check for setgid files, and modify them, as appropriate. The command to check for these files is: &lt;blockquote&gt;&lt;pre&gt; find / -local -type f -perm -2000 -exec ls -ld {} \; &lt;/pre&gt;&lt;/blockquote&gt; NOTE: A server should be checked for setgid files after patches are updated, and after third-party packages (source or binary) are installed. &lt;P&gt; The setgid files found on my system, and the action performed, is as follows: &lt;blockquote&gt;&lt;pre&gt; /usr/bin/mail leave alone /usr/bin/mailx leave alone /usr/bin/netstat leave alone /usr/bin/passwd leave alone /usr/bin/write leave alone /usr/bin/yppasswd remove /usr/platform/i86pc/sbin/eeprom	set 2550 mode (1) /usr/sbin/i86/prtconf set 2550 mode (1) /usr/sbin/i86/swap set 2550 mode (1) /usr/sbin/i86/sysdef set 2550 mode (1) /usr/sbin/wall set 2550 mode /usr/xpg4/bin/i86/ipcs set 2550 mode (1) &lt;/pre&gt;&lt;/blockquote&gt; Note 1: These commands are architecture specific. The SPARC versions for a SPARCstation LX are: &lt;blockquote&gt;&lt;pre&gt; /usr/platform/sun4m/sbin/eeprom /usr/sbin/sparcv7/prtconf /usr/sbin/sparcv7/swap /usr/sbin/sparcv7/sysdef /usr/xpg4/bin/sparcv7/ipcs &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; &lt;DT&gt;Check for world writable files and directories &lt;DD&gt; Check for world writable files and directories, and modify them, as appropriate. The command to check for these files is: &lt;blockquote&gt;&lt;pre&gt; find / -local -perm -2 \! -type l -exec ls -ld {} \; &lt;/pre&gt;&lt;/blockquote&gt; NOTE: A server should be checked for world writable files and directories after patches are updated, and after third-party packages (source or binary) are installed. &lt;P&gt; The world writable files and directories found on my system, and the action performed, is as follows: &lt;blockquote&gt;&lt;pre&gt; /var/sadm/install/.pkg.lock	set 644 mode /var/adm/spellhist leave alone, or remove /var/mail leave alone on mail server; otherwise remove /var/preserve remove /var/spool/pkg set 750 mode /var/tmp set 1755 mode /tmp set 1755 mode /tmp/.s.PGSQL.5432 leave alone (used by DBMS) &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; In addition to the above files, there were &lt;B&gt;many&lt;/b&gt; device nodes (under &lt;tt&gt;/dev&lt;/tt&gt; and &lt;tt&gt;/devices&lt;/tt&gt;). These are either protected by the device driver, or not in need of protection (i.e. &lt;tt&gt;/dev/null&lt;/tt&gt;). &lt;P&gt; &lt;DT&gt;Check permissions on /tmp and /var/tmp &lt;DD&gt; The permissions on &lt;tt&gt;/tmp&lt;/tt&gt; and &lt;tt&gt;/var/tmp&lt;/tt&gt; should be set, both before and after the file-system mounts are performed. This can be done by entering the following commands: &lt;blockquote&gt;&lt;pre&gt; echo '#! /bin/sh' &gt; /etc/rc2.d/S00setmodes echo '' &gt;&gt; /etc/rc2.d/S00setmodes echo 'chmod 1755 /tmp' &gt;&gt; /etc/rc2.d/S00setmodes echo 'chmod 1755 /var/tmp' &gt;&gt; /etc/rc2.d/S00setmodes chmod 744 /etc/rc2.d/S00setmodes ln /etc/rc2.d/S00setmodes S02setmodes &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; &lt;DT&gt;Set permissions on /etc/security &lt;DD&gt; Change the mode of the &lt;tt&gt;/etc/security&lt;/tt&gt; directory to 750. &lt;P&gt; &lt;DT&gt;Lock down remote commands &lt;DD&gt; The files &lt;tt&gt;/etc/hosts.equiv&lt;/tt&gt;, &lt;tt&gt;/.rhosts&lt;/tt&gt; and &lt;tt&gt;/.netrc&lt;/tt&gt; should be removed, &lt;tt&gt;touch&lt;/tt&gt;ed and &lt;tt&gt;chmod&lt;/tt&gt;ed to 0. Doing so will lock out the remote commands for root. Some people suggest that these files be removed. I feel that it's easier for an intruder to create a file than it is for them to remove, then create a file. &lt;P&gt; Other people suggest that empty (mode=0, owner=root) directories be placed here. Using directories, instead of empty files, adds a minor improvement in security, but at an increase in potential confusion. &lt;P&gt; &lt;DT&gt;Disable rhost authentication &lt;DD&gt; In the file &lt;tt&gt;/etc/pam.conf&lt;/tt&gt;, comment out all lines that contain &lt;tt&gt;pam_rhosts_auth&lt;/tt&gt;. If the remote commands (&lt;tt&gt;rlogin&lt;/tt&gt;, &lt;tt&gt;rexec&lt;/tt&gt;, &lt;tt&gt;rcp&lt;/tt&gt; and &lt;tt&gt;rsh&lt;/tt&gt;) have been left in the &lt;tt&gt;/etc/inetd.conf&lt;/tt&gt; file, they will require passwords. &lt;P&gt; &lt;DT&gt;Disable dialup authentication &lt;DD&gt; In the file &lt;tt&gt;/etc/pam.conf&lt;/tt&gt;, comment out all lines that contain &lt;tt&gt;pam_dial_auth&lt;/tt&gt;. If the system has modems connected, do not do this. &lt;P&gt; &lt;DT&gt;Lock down cron and at commands &lt;DD&gt; The &lt;tt&gt;cron&lt;/tt&gt; and &lt;tt&gt;at&lt;/tt&gt; commands should be locked down, so that only those users who have a need of them will be allowed to. To lock these commands down, the &lt;tt&gt;/etc/cron.d/cron.allow&lt;/tt&gt; and the &lt;tt&gt;/usr/lib/cron/at.allow&lt;/tt&gt; files will need to be modified. The following commands will initialize these files for minimal usage: &lt;blockquote&gt;&lt;pre&gt; echo 'root' &gt; /etc/cron.d/cron.allow echo '' &gt; /usr/lib/cron/at.allow chmod 644 /etc/cron.d/cron.allow /usr/lib/cron/at.allow &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; If a user needs access to either the &lt;tt&gt;cron&lt;/tt&gt; or &lt;tt&gt;at&lt;/tt&gt; command, their login should be added to the appropriate file. &lt;P&gt; &lt;DT&gt;Enable cron logging &lt;DD&gt; Enable &lt;tt&gt;cron&lt;/tt&gt; logging of executed commands by adding the following line to the &lt;tt&gt;/etc/default/cron&lt;/tt&gt; file. &lt;blockquote&gt;&lt;pre&gt; CRONLOG=YES &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; &lt;DT&gt;Disable execution of stack &lt;DD&gt; Add the following two lines to the &lt;tt&gt;/etc/system&lt;/tt&gt; file, to disallow execution of instructions in the stack. In 32-bit architectures, this should not be done if debuggers are to be used on the system, as they &lt;I&gt;break&lt;/I&gt; debuggers. This is not usually a problem on servers. Also, on x86 architectures, these two lines don't do anything. &lt;P&gt; The reason for adding these settings is that many buffer overflow problems are related to execution of code on the stack. Although it is possible to exploit a buffer overflow with these settings, it is much more difficult. &lt;blockquote&gt;&lt;pre&gt; set noexec_user_stack=1 set noexec_user_stack_log=1 &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; &lt;DT&gt;Ignore NFS requests from non-privileged ports &lt;DD&gt; Add the following line to the &lt;tt&gt;/etc/system&lt;/tt&gt; file to cause NFS to ignore requests originating on non-privileged ports (over 1024). This change should be made, even if NFS has been disabled. &lt;blockquote&gt;&lt;pre&gt; set nfssrv:nfs_portmon=1 &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; &lt;DT&gt;Inhibit core dumps &lt;DD&gt; Add the following line to the &lt;tt&gt;/etc/system&lt;/tt&gt; file to keep core files from being generated. &lt;blockquote&gt;&lt;pre&gt; set sys:coredumpsize=0 &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; &lt;DT&gt;System crash dumps &lt;DD&gt; System crash dumps can be both good and bad. They can be bad, as they introduce the ability for an experienced Solaris person to extract passwords, or other critical information. On the other hand, they are very helpful for solving problems related to system crashes. If you have either the ability to perform a crash analysis, or a support contract that covers crash analysis, then I feel that the benefit outweighs the risk. &lt;P&gt; If you have neither the ability, nor a support contract that includes crash analysis, then you should disable copying of crash dumps into &lt;tt&gt;/var/crash&lt;/tt&gt;. This may be done by entering the following commands (NOTE: number may not be 71; please check first with &lt;tt&gt;ls /etc/rc2.d/S*savecore&lt;/TT&gt;): &lt;blockquote&gt;&lt;pre&gt; mv /etc/rc2.d/S75savecore /etc/rc2.d/_S75savecore &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; &lt;DT&gt;Set query port for Bind Version 8 &lt;DD&gt; In Bind version 8, it is possible to set the source port number for queries to remote systems. This should be set to port number 53, by placing the following line into the options section of &lt;tt&gt;/etc/named.conf&lt;/tt&gt;, and restarting &lt;tt&gt;named&lt;/tt&gt;. This simplifies firewall configuration, as allowing port 53 (UDP and TCP) through the firewall is all that's required for DNS to function properly. &lt;blockquote&gt;&lt;pre&gt; query-source address * port 53 &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; &lt;DT&gt;Create ftpusers file &lt;DD&gt; In Solaris, the &lt;tt&gt;/etc/ftpusers&lt;/tt&gt; file is used to limit the users who have access to FTP. As a minimum, root, and all users that have login disabled, should be in this file. If FTP is not to be used on this system, the entire user population should be listed in this file. &lt;P&gt; &lt;DT&gt;Anonymous FTP &lt;DD&gt; Anonymous FTP carries with it special hazards. When running Anonymous FTP, it is important to follow all of the directions included with the FTP package you use. &lt;P&gt; One additional hazard is that special attention should be paid to any directory in which anonymous users are allowed to have write permissions. If they are also allowed read or directory permissions, your system could easily be subverted for use as a server for unlawful or unwanted data. Although you would be unlikely to face criminal charges, you could easily find that your server is confiscated (at least temporarily) by law enforcement agencies. &lt;P&gt; &lt;DT&gt;Disable IP forwarding &lt;DD&gt; To disable IP forwarding, you should &lt;tt&gt;touch&lt;/tt&gt; the &lt;tt&gt;/etc/notrouter&lt;/tt&gt; file. This file should exist, even if there is only one network interface on your system. &lt;P&gt; &lt;DT&gt;Use random IP sequence numbers &lt;DD&gt; In the file &lt;tt&gt;/etc/default/inetinit&lt;/tt&gt;, change the value of &lt;tt&gt;TCP_STRONG_ISS&lt;/tt&gt; to 2 to generate random sequence numbers, instead of the default randomly incrementing sequence numbers. This change is made for the purpose of combating IP spoofing attacks. &lt;P&gt; &lt;DT&gt;Close off IP security holes &lt;DD&gt; Add the following commands to the &lt;tt&gt;/etc/rc2.d/S69inet&lt;/tt&gt; script (NOTE: number may not be 69; please check first with &lt;tt&gt;ls /etc/rc2.d/S*inet&lt;/tt&gt;). Detailed information on what the individual changes mean can be found in the Solaris Tunable Parameters Reference Manual (&lt;a href=&#034;#9&#034;&gt;9&lt;/a&gt;). These commands should be located immediately after the ISS generation is set: &lt;blockquote&gt;&lt;pre&gt; # Change LOTS of network parameters. This should help to secure # the system against some types of Denial Of Service attacks, and # intrusion attempts. It will also keep us from forwarding Denial # Of Service attacks to other networks. # Combat ARP DOS attacks by flushing entries faster. /usr/sbin/ndd -set /dev/arp arp_cleanup_interval 60000 /usr/sbin/ndd -set /dev/ip ip_ire_arp_interval 60000 # Combat ICMP DOS attacks by ignoring them. /usr/sbin/ndd -set /dev/ip ip_respond_to_echo_broadcast 0 /usr/sbin/ndd -set /dev/ip ip6_respond_to_echo_multicast 0 /usr/sbin/ndd -set /dev/ip ip_respond_to_timestamp_broadcast 0 /usr/sbin/ndd -set /dev/ip ip_respond_to_address_mask_broadcast 0 # Ignore redirect requests. These change routing tables. /usr/sbin/ndd -set /dev/ip ip_ignore_redirect 1 /usr/sbin/ndd -set /dev/ip ip6_ignore_redirect 1 # Don't send redirect requests. This is a router function. /usr/sbin/ndd -set /dev/ip ip_send_redirects 0 /usr/sbin/ndd -set /dev/ip ip6_send_redirects 0 # Don't respond to timestamp requests. This may break rdate # on some systems. /usr/sbin/ndd -set /dev/ip ip_respond_to_timestamp 0 # If a packet isn't for the interface it came in on, drop it. /usr/sbin/ndd -set /dev/ip ip_strict_dst_multihoming 1 /usr/sbin/ndd -set /dev/ip ip6_strict_dst_multihoming 1 # Don't forward broadcasts. /usr/sbin/ndd -set /dev/ip ip_forward_directed_broadcasts 0 # Don't forward source routed packets. /usr/sbin/ndd -set /dev/ip ip_forward_src_routed 0 /usr/sbin/ndd -set /dev/ip ip6_forward_src_routed 0 # Combat SYN flood attacks. /usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q0 8192 # Combat connection exhaustion attacks. /usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q 1024 # Don't forward reverse source routed packets. /usr/sbin/ndd -set /dev/tcp tcp_rev_src_routes 0 # Combat IP DOS attacks by decreasing the rate at which errors # are sent. /usr/sbin/ndd -set /dev/ip ip_icmp_err_interval 1000 /usr/sbin/ndd -set /dev/ip ip_icmp_err_burst 5 &lt;/pre&gt;&lt;/blockquote&gt; There are also places in this script where &lt;tt&gt;ip6_ignore_redirect&lt;/tt&gt; is set to 0. These lines should be commented out. &lt;P&gt; SUN also has a package called &lt;tt&gt;nddconfig&lt;/tt&gt; that performs these functions. It is one of their &lt;I&gt;BluePrint&lt;/i&gt; security tools. It performs most of the functions of the above, but it has been tested to work on all versions of Solaris from 2.5.1 to 8. &lt;P&gt; &lt;DT&gt;Disable Multicast &lt;DD&gt; Multicast is used to send data to multiple locations, using only a single address. If the server doesn't use Multicast (most don't), it should be disabled. This can be done by commenting it out of the &lt;tt&gt;/etc/rc2.d/S72inetsvc&lt;/tt&gt; file (NOTE: number may not be 72; please check first with &lt;tt&gt;ls /etc/rc2.d/S*inetsvc&lt;/tt&gt;). It is near the end of the file, and well commented. &lt;P&gt; &lt;DT&gt;Set up accounting &lt;DD&gt; The system accounting information is very useful for determining the extent of an intrusion. The information stored in the accounting records may indicate what actions were performed by the intruder, thus giving an idea as to the extent of the intrusion, and possibly the reason. &lt;P&gt; Also, The system accounting information may be useful in monitoring a system for intrusions. This information is used to determine changes in user behavior. As the number of systems being monitored increases, the usefulness of manual monitoring of this data decreases. This is due to the limited amount of time available to check the results. &lt;P&gt; If the monitoring of accounting data is automated, the usefulness of accounting data for intrusion detection remains high with more systems. To perform this properly would require a complex database system. It would also normally require several months of usage, before it could put out useful information. &lt;P&gt; As an example, if a user has been using 45MB of their 1GB quota, and their usage jumps to 950MB, then there has been a change that should be checked. This change could be due to a runaway program. It could also be due to an intrusion. &lt;P&gt; To run accounting, the &lt;tt&gt;SUNWaccr&lt;/tt&gt; and &lt;tt&gt;SUNWaccu&lt;/tt&gt; packages must be installed. Also, the following lines should be added to the &lt;tt&gt;crontab&lt;/tt&gt; for the &lt;tt&gt;root&lt;/tt&gt; user. &lt;blockquote&gt;&lt;pre&gt; # # The root crontab should be used to perform accounting data collection. # 0 * * * * /usr/lib/acct/ckpacct &gt; /dev/null 2&gt;&amp;1 0 23 * * * /usr/lib/acct/dodisk / /var /usr/local &gt; /dev/null 2&gt;&amp;1 59 23 * * * /usr/lib/acct/runacct &gt; /dev/null 2&gt;&amp;1 &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; The &lt;tt&gt;dodisk&lt;/tt&gt; line should list all file-systems that you want to run disk accounting on. This should include all local file-systems that are normally mounted read/write. &lt;P&gt; &lt;DT&gt;Quotas &lt;DD&gt; Quotas don't help to secure a system against intrusion, but can be used to limit the amount of data that an intruder can store on the system. On the other hand, poorly administered quotas could cause user data to receive lower security than is appropriate. &lt;P&gt; Quotas are a two-edged sword. Proper usage of quotas (along with user education) will tend to create a cooperative user community, which should tend to reduce the amount of time that a system administrator needs to spend on solving disk space issues. Also, if a user account is compromised, quotas can limit the amount of data that an intruder can store on the system. &lt;P&gt; On the other hand, by controlling quotas too tightly, and not considering the needs of the users it's possible to create a situation where the users ignore security to find a place to put their files. In extreme cases, this could become a security problem. &lt;P&gt; In general, normal users shouldn't be writing data in the &lt;tt&gt;root&lt;/tt&gt;, &lt;tt&gt;/usr&lt;/tt&gt;, &lt;tt&gt;/usr/local&lt;/tt&gt; or &lt;tt&gt;/var&lt;/tt&gt; (exclusive of &lt;tt&gt;/var/tmp&lt;/tt&gt;) file-systems. The non-root usage of these file-systems should be static, and the root usage should change slowly, or not at all. &lt;P&gt; With respect to users, quotas are best used to remind users when it's time to clean up their files, and to keep runaway programs from filling an entire file-system. Currently, disk is so inexpensive that for the effort required to minimize space usage, it would have been cheaper to just buy more disk. Obviously, this philosophy has limits, but if users are often hitting their disk quotas, the system administrator might want to try to determine the root cause for the problem. &lt;P&gt; &lt;DT&gt;NTP &lt;DD&gt; In the NTP configuration file, include the entry &lt;tt&gt;restrict default ignore&lt;/tt&gt; after the servers and/or peers are set. After this, add specific permissions that you want hosts to have. &lt;P&gt; &lt;DT&gt;Enable logging &lt;DD&gt; You should &lt;tt&gt;touch&lt;/tt&gt; the log files &lt;tt&gt;/var/adm/loginlog&lt;/tt&gt;, &lt;tt&gt;/var/adm/sulog&lt;/tt&gt;, and &lt;tt&gt;/var/adm/tcpdlog&lt;/tt&gt;. The daemons think that if the log file isn't there, then they shouldn't do logging. &lt;P&gt; &lt;DT&gt;Enable inetd logging &lt;DD&gt; The &lt;tt&gt;inetd&lt;/tt&gt; daemon posts listens, according to the &lt;tt&gt;/etc/inetd.conf&lt;/tt&gt; file. When a connection occurs, &lt;tt&gt;inetd&lt;/tt&gt; executes the appropriate command, and waits for another connection. By adding the &lt;tt&gt;-t&lt;/tt&gt; option to the &lt;tt&gt;inetd&lt;/tt&gt; invocation (in &lt;tt&gt;/etc/rc2.d/S72inetsvc&lt;/tt&gt;), you can cause &lt;tt&gt;inetd&lt;/tt&gt; to use the &lt;tt&gt;syslog&lt;/tt&gt; daemon to log all connections. The &lt;tt&gt;daemon&lt;/tt&gt; facility is used at the &lt;tt&gt;notice&lt;/tt&gt; priority. This should be done, even if &lt;tt&gt;inetd&lt;/tt&gt; is disabled in &lt;tt&gt;/etc/rc2.d/S72inetsvc&lt;/tt&gt;. &lt;P&gt; &lt;DT&gt;Log FTP sessions &lt;DD&gt; The &lt;tt&gt;in.ftpd&lt;/tt&gt; daemon is executed by the &lt;tt&gt;inetd&lt;/tt&gt; daemon when a connection is made to the TCP port 21 (if FTP is enabled in &lt;tt&gt;/etc/inetd.conf&lt;/tt&gt;). By adding the &lt;tt&gt;-l&lt;/tt&gt; option to the &lt;tt&gt;in.ftpd&lt;/tt&gt; invocation (in &lt;tt&gt;/etc/inetd.conf&lt;/tt&gt;), you can cause &lt;tt&gt;in.ftpd&lt;/tt&gt; to log all sessions via the &lt;tt&gt;syslogd&lt;/tt&gt; daemon. The &lt;tt&gt;daemon&lt;/tt&gt; facility is used at the &lt;tt&gt;notice&lt;/tt&gt; priority. This should be done, even if &lt;tt&gt;in.ftpd&lt;/tt&gt; is disabled in &lt;tt&gt;/etc/inetd.conf&lt;/tt&gt;. &lt;P&gt; &lt;DT&gt;Limit nscd caching &lt;DD&gt; The &lt;tt&gt;nscd&lt;/tt&gt; daemon is used by Solaris to cache frequently used data. This daemon's abilities have grown considerably, since it's inception as a Name Service Cache Daemon. These extra abilities can easily be disabled. It is &lt;B&gt;not&lt;/B&gt; suggested that the &lt;tt&gt;nscd&lt;/tt&gt; daemon be disabled, as that can cause severe problems. &lt;P&gt; A sample &lt;tt&gt;/etc/nscd.conf&lt;/tt&gt; file, which minimizes the functionality of &lt;tt&gt;nscd&lt;/tt&gt;, is as follows: &lt;blockquote&gt;&lt;pre&gt; logfile /var/adm/nscd.log enable-cache passwd no enable-cache group no positive-time-to-live hosts 3600 negative-time-to-live hosts 5 suggested-size hosts 211 keep-hot-count hosts 20 old-data-ok hosts no check-files hosts yes enable-cache exec_attr	no enable-cache prof_attr	no enable-cache user_attr	no &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; If your system has any instability with respect to host names and/or IP addresses, it is possible to substitute the following line for all the above lines containing &lt;tt&gt;hosts&lt;/tt&gt;. This may slow down host name lookups, but it should fix the name translation problem. &lt;blockquote&gt;&lt;pre&gt; enable-cache hosts no &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; &lt;DT&gt;&lt;A NAME=&#034;MountOptions&#034;&gt;Set mount options&lt;/a&gt; &lt;DD&gt; SUN suggests that the &lt;tt&gt;nosuid&lt;/tt&gt; (no setUID) mount option be set on the &lt;tt&gt;/var&lt;/tt&gt; file-system. I feel that this is probably a good idea. &lt;P&gt; SUN also suggests that the &lt;tt&gt;ro&lt;/tt&gt; (read-only) mount option be set on the &lt;tt&gt;/usr&lt;/tt&gt; file-system. This has good effects, but it requires that additional work be done prior to adding patches. In particular, it requires that the file-system be remounted read-write. This can be done with the &lt;tt&gt;/etc/mount -o remount,rw /usr&lt;/tt&gt;. Unfortunately, the only way to return to read-only is to reboot the system. Since a reboot is often done after patches are installed, the inability to return to read-only could be only a minor nuisance. &lt;P&gt; They also suggest that whenever possible, other file-systems be mounted with either the &lt;tt&gt;ro&lt;/tt&gt; option, the &lt;tt&gt;nosuid&lt;/tt&gt; option, or, even better, both options. This may be quite difficult, politically. &lt;P&gt; The &lt;tt&gt;ro&lt;/tt&gt; option might be useful on an archive file-system. The &lt;tt&gt;nosuid&lt;/tt&gt; should always be used on NFS mounted file-systems, and may be appropriate for local file-systems containing users' home directories. &lt;P&gt; &lt;DT&gt;Vold &lt;DD&gt; The &lt;tt&gt;vold&lt;/tt&gt; daemon is used to automatically mount removable media (CDROM, Floppy, Optical, JAZ and ZIP). This simplifies the process of mounting removable media, but creates a potential security issue, if an unauthorized person gains access to the system. Also, this daemon, although potentially useful, is not normally necessary. My advice is to not use it. To disable &lt;tt&gt;vold&lt;/tt&gt;, remove the &lt;TT&gt;SUNWvolg&lt;/TT&gt;, &lt;TT&gt;SUNWvolr&lt;/tt&gt; and &lt;tt&gt;SUNWvolu&lt;/tt&gt; packages. &lt;P&gt; Also, the &lt;tt&gt;/etc/rmmount.conf&lt;/tt&gt; file should be configured to mount file-systems with the &lt;tt&gt;-o nosuid&lt;/tt&gt; flag set. This flag would be placed on the &lt;tt&gt;mount&lt;/tt&gt; line for the file-system. &lt;P&gt; &lt;DT&gt;Set user file creation mask &lt;DD&gt; In each of the files &lt;tt&gt;/etc/.login&lt;/tt&gt;, &lt;tt&gt;/etc/cshrc&lt;/tt&gt; and &lt;tt&gt;/etc/profile&lt;/tt&gt;, there should be an invocation of the &lt;tt&gt;umask&lt;/tt&gt; command. This invocation should be positioned immediately after the initial comments. The value passed to &lt;tt&gt;umask&lt;/tt&gt; is an octal mask of the mode bits that are &lt;i&gt;not&lt;/i&gt; set when a file is created. Acceptable values are &lt;tt&gt;022&lt;/tt&gt;, &lt;tt&gt;026&lt;/tt&gt; (suggested) and &lt;tt&gt;027&lt;/tt&gt;. Each of these has advantages and disadvantages. Please read the &lt;tt&gt;umask&lt;/tt&gt; manual page prior to selecting the value to be set. &lt;P&gt; &lt;DT&gt;Set FTP file creation mask &lt;DD&gt; Add the following line at the end of the &lt;tt&gt;/etc/default/ftpd&lt;/tt&gt; file. If there is another line for &lt;tt&gt;UMASK&lt;/tt&gt;, it should be commented out. This line contains the default &lt;tt&gt;umask&lt;/tt&gt; value that will be used by FTP when a file is created. The value shown here is for demonstration purposes only. The &lt;tt&gt;umask&lt;/tt&gt; value chosen for the user file creation mask (above) should be used. &lt;blockquote&gt;&lt;pre&gt; UMASK=026 &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; &lt;DT&gt;Set system startup file creation mask &lt;DD&gt; The default umask during system startup should be changed from &lt;tt&gt;000&lt;/tt&gt; (&lt;tt&gt;022&lt;/tt&gt; in Solaris 8) to &lt;tt&gt;077&lt;/tt&gt;. This change can be done by entering the following commands: &lt;blockquote&gt;&lt;pre&gt; echo '#! /bin/sh' &gt; /etc/rc2.d/S00UMASK.sh echo '' &gt;&gt; /etc/rc2.d/S00UMASK.sh echo 'umask 077' &gt;&gt; /etc/rc2.d/S00UMASK.sh chmod 744 /etc/rc2.d/S00UMASK.sh &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; &lt;DT&gt;Set the PROM security mode &lt;DD&gt; For SPARC systems, use the &lt;tt&gt;eeprom&lt;/tt&gt; Solaris command, or the &lt;tt&gt;setenv&lt;/tt&gt; OpenBoot command to set the &lt;tt&gt;security-mode&lt;/tt&gt; variable to either &lt;tt&gt;command&lt;/tt&gt; or &lt;tt&gt;full&lt;/tt&gt;. It should be noted that on some systems, setting &lt;tt&gt;security-mode&lt;/tt&gt; to &lt;tt&gt;full&lt;/tt&gt; will disable auto-boot. &lt;P&gt; For a PC, the BIOS usually has a value that can be set to require a password prior to booting, or prior to entering BIOS. The procedures for this are different from system to system. Setting the BIOS to require a password prior to booting will disable autoreboot. &lt;P&gt; &lt;DT&gt;Set the PROM password &lt;DD&gt; For SPARC systems, use the &lt;tt&gt;eeprom&lt;/tt&gt; Solaris command, or the &lt;tt&gt;setenv&lt;/tt&gt; OpenBoot command to set the &lt;tt&gt;security-password&lt;/tt&gt; variable to the password you'd like to use. NOTE: If you forget this password, it is very difficult to reset, and will usually require a service call. &lt;P&gt; For a PC, the BIOS usually has a password that can be set. The procedures for this are different from system to system. NOTE: If you forget this password, you will have to reset all the BIOS parameters to factory default to clear the password, which will require setting a jumper on the motherboard. &lt;P&gt; &lt;DT&gt;Disable keyboard abort &lt;DD&gt; For SPARC systems, you may want to disable the keyboard abort sequence (&lt;tt&gt;L1-A&lt;/tt&gt;). If the system hangs, this will require a power cycle to initiate a reboot. If you want to do this, use the &lt;tt&gt;eeprom&lt;/tt&gt; Solaris command, or the &lt;tt&gt;setenv&lt;/tt&gt; OpenBoot command to set the &lt;tt&gt;keyboard_abort&lt;/tt&gt; variable to &lt;tt&gt;disable&lt;/tt&gt;. This may not be available in older systems. &lt;/DL&gt; &lt;h1&gt;&lt;a NAME=&#034;Obscure&#034;&gt;&lt;/a&gt;12. Obscure the Tracks&lt;/h1&gt; The goal for this step is to locate the source of messages that a potential intruder can receive, and do whatever can be done, to make them as generic as possible. Remember, any message your computer sends may be used against it. &lt;DL&gt; &lt;DT&gt;Apache &lt;DD&gt; After the &lt;TT&gt;ServerType&lt;/TT&gt; line, there should be a line that says &lt;TT&gt;ServerTokens Prod&lt;/TT&gt;. This change will remove the Apache version number and the list of available modules from responses. &lt;P&gt; &lt;DT&gt;Bind (version 8) &lt;DD&gt; In the &lt;tt&gt;options&lt;/tt&gt; section, add the line &lt;tt&gt;version &#034;DNS&#034;;&lt;/tt&gt;. This string (&lt;tt&gt;DNS&lt;/tt&gt;) will be given out as the server description. &lt;P&gt; &lt;DT&gt;FTP &lt;DD&gt; This information is covered in the &lt;A HREF=&#034;#Warnings&#034;&gt;Post the Warnings&lt;/a&gt; section. &lt;P&gt; &lt;DT&gt;Sendmail &lt;DD&gt; In the &lt;tt&gt;.mc&lt;/tt&gt; file that is used to generate the &lt;tt&gt;sendmail.cf&lt;/tt&gt; file, set the &lt;tt&gt;confSMTP_LOGIN_MSG&lt;/tt&gt; variable to be &lt;tt&gt;$j Sendmail; $b&lt;/tt&gt;. This change will remove the sendmail version number from responses. &lt;P&gt; If you are using the default SUN sendmail, then the configuration file (usually &lt;tt&gt;/etc/mail/sendmail.cf&lt;/tt&gt;) should be modified, setting the variable &lt;tt&gt;SmtpGreetingMessage&lt;/tt&gt; to &lt;tt&gt;$j Sendmail; $b&lt;/tt&gt;. &lt;P&gt; &lt;DT&gt;Telnet &lt;DD&gt; This information is covered in the &lt;A HREF=&#034;#Warnings&#034;&gt;Post the Warnings&lt;/a&gt; section. &lt;P&gt; &lt;DT&gt;SSH &lt;DD&gt; When using the &lt;tt&gt;-v&lt;/tt&gt; flag of &lt;tt&gt;ssh&lt;/tt&gt;, I know of no way to disable the version number exchange, short of modifying the code. &lt;/DL&gt; &lt;h1&gt;&lt;a NAME=&#034;Warnings&#034;&gt;&lt;/a&gt;13. Post the Warnings&lt;/h1&gt; This section describes how to post warnings so that they will be seen by users. I strongly suggest that the exact wording of these messages be checked by your legal department. &lt;DL&gt; &lt;DT&gt;/etc/default/telnetd &lt;DD&gt; Add the following line at the end of this file. If there is another line for &lt;tt&gt;BANNER&lt;/TT&gt;, it should be commented out. This line contains a message that will be displayed when a telnet connection occurs. This should be done, even if telnet is disabled. &lt;blockquote&gt;&lt;pre&gt; BANNER=&#034;\r\nWARNING: Authorized use only. Usage may be monitored.\r\n\r\n&#034; &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; &lt;DT&gt;/etc/default/ftpd &lt;DD&gt; Add the following line at the end of this file. If there is another line for &lt;tt&gt;BANNER&lt;/tt&gt;, it should be commented out. This line contains a message that will be displayed when a FTP connection occurs. This should be done, even if FTP is disabled. &lt;blockquote&gt;&lt;pre&gt; BANNER=&#034;\r\nWARNING: Authorized use only. Usage may be monitored.\r\n\r\n&#034; &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; &lt;DT&gt;/etc/motd &lt;DD&gt; Place the following message (or a similar one) into this file. It contains a message that will be printed after a successful login. &lt;blockquote&gt;&lt;pre&gt; This is a private computer facility. Access for any reason must be specifically authorized by the owner. Unless you are so authorized, your continued access and any other use may expose you to criminal and/or civil proceedings. Usage may be monitored. &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; &lt;DT&gt;/etc/issue &lt;DD&gt; Place the following message (or a similar one) into this file. It contains a message that will be printed during the login process. &lt;blockquote&gt;&lt;pre&gt; This is a private computer facility. Access for any reason must be specifically authorized by the owner. Unless you are so authorized, your continued access and any other use may expose you to criminal and/or civil proceedings. Usage may be monitored. &lt;/pre&gt;&lt;/blockquote&gt; &lt;P&gt; NOTE: The users may see both the &lt;tt&gt;/etc/motd&lt;/tt&gt; and the &lt;tt&gt;/etc/issue&lt;/tt&gt; messages when they login. &lt;P&gt; &lt;DT&gt;Boot PROM &lt;DD&gt; The SPARC Boot PROM can store a warning message, to be displayed at boot time. This message is stored in the &lt;tt&gt;oem-banner&lt;/tt&gt; environment variable, which should be set as follows: &lt;blockquote&gt;&lt;pre&gt; This system property of ABCD Corp &lt;/pre&gt;&lt;/blockquote&gt; Please remember to replace the company name (&lt;TT&gt;ABCD Corp&lt;/tt&gt;) with the name of your company. &lt;/DL&gt; &lt;h1&gt;&lt;a NAME=&#034;Backup&#034;&gt;&lt;/a&gt;14. Perform System Backups&lt;/h1&gt; System backups of servers should be done on a regular basis. The backups of the system file systems should be done to non-networked media that can be read after performing only a &lt;B&gt;CORE&lt;/B&gt; install, or even better, from the boot CDROM. Networked backup usually requires that much more than the &lt;B&gt;CORE&lt;/B&gt; install be done to perform a restore, and therefore may not be appropriate for the system file-systems (i.e. &lt;tt&gt;root&lt;/tt&gt;, &lt;tt&gt;/usr&lt;/tt&gt; and &lt;tt&gt;/var&lt;/tt&gt;). &lt;P&gt; Additionally, if an intrusion occurs, there is no guarantee that you will be able to identify all the files that have been modified. For that reason, the suggested resolution is to either reinstall from scratch, or to rebuild from backups that you know to be from prior to the intrusion. &lt;h1&gt;&lt;a NAME=&#034;Watch&#034;&gt;&lt;/a&gt;15. Watch for Changes&lt;/h1&gt; Install a package to inform you about changes to configuration files, and other critical files (executables and shells). There are several packages available to do this. &lt;P&gt; &lt;DL&gt; &lt;DT&gt;ASET &lt;DD&gt; ASET is a SUN package for Solaris (SUNWast). It's fairly good, but the SUN security experts recommend &lt;I&gt;against&lt;/I&gt; using it. The reason for this was not obvious from the message. Based on this, I wouldn't use it. &lt;P&gt; &lt;DT&gt;&lt;A HREF=&#034;http://www.accs.com/p_and_p/Handle/&#034;&gt;Axe Handle&lt;/A&gt; &lt;DD&gt; This is a set of scripts that I created. Their purpose is to look for the results of a successful intrusion. This tool examines files and network status. These scripts are available for use under the &lt;A HREF=&#034;http://www.gnu.org/copyleft/gpl.html&#034;&gt;GNU Public License&lt;/A&gt;. &lt;P&gt; &lt;DT&gt;&lt;A HREF=&#034;http://wwwinfo.cern.ch/dis/security/general/tools/detect.html#TOC53&#034;&gt;COPS&lt;/A&gt; &lt;DD&gt; This tool was developed at Purdue University. It primarily searches for new security problems in a system, but is also useful in securing a system initially. &lt;P&gt; &lt;DT&gt;&lt;A HREF=&#034;http://wwwinfo.cern.ch/dis/security/general/tools/detect.html#TOC75&#034;&gt;Tripwire&lt;/A&gt; &lt;DD&gt; Tripwire is the most frequently used intrusion detection tool. It is available in both commercial and freeware versions. &lt;/DL&gt; &lt;P&gt; For those with a bit less paranoia (or a bit more scripting / programming skill), a simple set of scripts could be constructed to perform similar functions. I have done this, and found that it only takes a few hours to create a rather flexible, and powerful, tool. The advantage provided is that you will know exactly how it works. &lt;P&gt; Now, it is time to reconnect your system to the network. All reasonable security measures have been put in place, along with the appropriate monitoring tools. &lt;h1&gt;&lt;a NAME=&#034;Tools&#034;&gt;&lt;/a&gt;16. Sources of Tools&lt;/h1&gt; Here are some tools that you may find useful in securing your Solaris server. In general, I don't like to use tools to perform this function. The reason is that I like to know what changes were made, so that they can be monitored. Most tools hide the details of their actions, so that you don't know what was changed, and can't monitor the changed files, to determine if an intrusion has occurred. &lt;DL&gt; &lt;DT&gt;fix-modes &lt;DD&gt; Fix-modes was created by Casper Dik to adjust the permissions of several files and directories in Solaris, for the purpose of improving security. It is available from &lt;A HREF=&#034;ftp://ftp.wins.uva.nl/pub/solaris/fix-modes.tar.gz&#034;&gt;ftp://ftp.wins.uva.nl/pub/solaris/fix-modes.tar.gz&lt;/A&gt;. &lt;P&gt; It is also available from SUN, under &lt;A HREF=&#034;http://www.sun.com/blueprints/tools&#034;&gt;http://www.sun.com/blueprints/tools&lt;/A&gt;. &lt;P&gt; &lt;DT&gt;JASS Toolkit &lt;DD&gt; The JASS toolkit was developed by SUN to simplify building secured Solaris systems. It is available from &lt;A HREF=&#034;http://www.sun.com/blueprints/tools&#034;&gt;http://www.sun.com/blueprints/tools&lt;/a&gt;. There exists good documentation for the current release (0.3) of this toolkit. The best of the documents is the Internals document (&lt;a href=&#034;#11&#034;&gt;11&lt;/a&gt;). This document provides fair detail as to what the toolkit actually does. &lt;P&gt; If you choose to use the JASS toolkit, please be aware that it will be necessary to verify that the changes you made previously are still in place after JASS runs. &lt;P&gt; &lt;DT&gt;Titan &lt;DD&gt; The Titan toolkit was created by Brad Powell to fix or tighten potential security holes in UNIX (Solaris, Linux and FreeBSD). It is available from &lt;A HREF=&#034;http://www.fish.com/titan&#034; target=&#034;_blank&#034;&gt; http://www.fish.com/titan&lt;/a&gt;. &lt;/DL&gt; &lt;P&gt; &lt;A NAME=&#034;links&#034;&gt;Here is a short list of web sites that you may find useful.&lt;/A&gt; &lt;UL&gt; &lt;LI&gt; &lt;A HREF=&#034;http://sunsolve.Sun.COM/pub-cgi/show.pl?target=home&#034; target=&#034;_blank&#034;&gt;sunsolve.Sun.COM/pub-cgi/show.pl?target=home&lt;/A&gt; - SUN Recommended &amp; Security Patches &lt;LI&gt; &lt;A HREF=&#034;http://web.mit.edu/kerberos/www&#034; target=&#034;_blank&#034;&gt;web.mit.edu/kerberos/www&lt;/A&gt; - Kerberos home page &lt;LI&gt; &lt;A HREF=&#034;http://www.auscert.org.au&#034; target=&#034;_blank&#034;&gt;www.auscert.org.au&lt;/a&gt; - Australian Computer Emergency Response Team &lt;LI&gt; &lt;A HREF=&#034;http://www.cert.org&#034; target=&#034;_blank&#034;&gt;www.cert.org&lt;/a&gt; - CERT Coordination Center &lt;LI&gt; &lt;A HREF=&#034;http://www.cisecurity.com&#034; target=&#034;_blank&#034;&gt;www.cisecurity.com&lt;/a&gt; - The Center for Internet Security &lt;LI&gt; &lt;A HREF=&#034;http://www.fish.com&#034; target=&#034;_blank&#034;&gt;www.fish.com&lt;/a&gt; - Dan Farmer's web site with lots of computer security related stuff &lt;LI&gt; &lt;A HREF=&#034;http://www.ibiblio.org/pub/solaris/sparc&#034; target=&#034;_blank&#034;&gt;www.ibiblio.org/pub/solaris/sparc&lt;/a&gt; - Solaris Package Archive (SUNSite) &lt;LI&gt; &lt;a href=&#034;http://www.infrastructures.org/cfengine&#034; target=&#034;_blank&#034;&gt;www.infrastructures.org/cfengine&lt;/A&gt; - Cfengine &lt;LI&gt; &lt;a href=&#034;http://www.rootprompt.org&#034; target=&#034;_blank&#034;&gt;www.rootprompt.org&lt;/a&gt; - Root Prompt -- Nothing but Unix &lt;LI&gt; &lt;A HREF=&#034;http://www.sabernet.net/papers/Solaris.html&#034; target=&#034;_blank&#034;&gt;www.sabernet.net/papers/Solaris.html&lt;/a&gt; - Solaris Security Guide &lt;LI&gt; &lt;A HREF=&#034;http://www.sans.org&#034; target=&#034;_blank&#034;&gt;www.sans.org&lt;/a&gt; - SANS Institute &lt;LI&gt; &lt;A HREF=&#034;http://www.securityfocus.com&#034; target=&#034;_blank&#034;&gt;www.securityfocus.com&lt;/a&gt; - SecurityFocus &lt;LI&gt; &lt;a href=&#034;http://www.solarisguide.com&#034; target=&#034;_blank&#034;&gt;www.solarisguide.com&lt;/a&gt; - SolarisGuide.com &lt;LI&gt; &lt;a href=&#034;http://www.sun.com/bigadmin&#034; target=&#034;_blank&#034;&gt;www.sun.com/bigadmin&lt;/a&gt; - Sun Large System Administration &lt;LI&gt; &lt;A HREF=&#034;http://www.sun.com/blueprints&#034; target=&#034;_blank&#034;&gt;www.sun.com/blueprints&lt;/a&gt; - SUN Blueprints &lt;LI&gt; &lt;A HREF=&#034;http://www.sun.com/security/blueprints&#034; target=&#034;_blank&#034;&gt;www.sun.com/security/blueprints&lt;/a&gt; - SUN Security Blueprints &lt;LI&gt; &lt;A HREF=&#034;http://www.sun.com/security/jass&#034; target=&#034;_blank&#034;&gt;www.sun.com/security/jass&lt;/a&gt; - Additional information on the SUN JASS toolkit &lt;LI&gt; &lt;A HREF=&#034;http://www.sunfreeware.com&#034; target=&#034;_blank&#034;&gt;www.sunfreeware.com&lt;/a&gt; - Sunfreeware &lt;/UL&gt; &lt;h1&gt;&lt;a NAME=&#034;Bibliography&#034;&gt;&lt;/a&gt;Bibliography&lt;/h1&gt; &lt;a name=&#034;1&#034;&gt;1.&lt;/a&gt; &lt;u&gt;Building Internet Firewalls&lt;/u&gt; by Elizabeth D. Zwicky, Simon Cooper and D. Brent Chapman (ISBN 1-56592-871-7).&lt;br&gt; &lt;a name=&#034;2&#034;&gt;2.&lt;/a&gt; &lt;a href=&#034;http://www.sun.com/blueprints/1100/minimize-updt1.pdf&#034; target=&#034;_blank&#034;&gt;Minimization for Security: A Simple, Reproducible and Secure Application Installation Methodology&lt;/a&gt; by Alex Noordergraaf.&lt;br&gt; &lt;a name=&#034;3&#034;&gt;3.&lt;/a&gt; &lt;a href=&#034;http://www.enteract.com/~lspitz/armoring.html&#034; target=&#034;_blank&#034;&gt;Armoring Solaris&lt;/a&gt; and &lt;a href=&#034;http://www.enteract.com/~lspitz/armoring2.html&#034; target=&#034;_blank&#034;&gt;Armoring Solaris: 2&lt;/a&gt; by Lance Spitzner.&lt;br&gt; &lt;a name=&#034;4&#034;&gt;4.&lt;/a&gt; &lt;u&gt;Kerberos - A Network Authentication System&lt;/u&gt; by Brian Tung (ISBN 0-201-37924-4).&lt;br&gt; &lt;a name=&#034;5&#034;&gt;5.&lt;/a&gt; &lt;u&gt;Managing NFS and NIS&lt;/u&gt; by Hal Stern, Mike Eisler and Ricardo Labiago (ISBN 1-56592-510-6).&lt;br&gt; &lt;a name=&#034;6&#034;&gt;6.&lt;/a&gt; &lt;a href=&#034;http://www.cisecurity.com/bench_solaris.html&#034; target=&#034;_blank&#034;&gt;Center for Internet Security Solaris Security Benchmark&lt;/a&gt;&lt;br&gt; &lt;a name=&#034;7&#034;&gt;7.&lt;/a&gt; &lt;a href=&#034;http://www.sun.com/blueprints/0401/security-updt1.pdf&#034; target=&#034;_blank&#034;&gt;Solaris Operating Environment Security&lt;/a&gt; by Alex Noordergraaf and Keith Watson.&lt;br&gt; &lt;a name=&#034;8&#034;&gt;8.&lt;/a&gt; &lt;a href=&#034;http://www.sun.com/blueprints/1200/network-updt1.pdf&#034; target=&#034;_blank&#034;&gt;Solaris Operating Environment Network Settings for Security&lt;/a&gt; by Alex Noordergraaf and Keith Watson.&lt;br&gt; &lt;a name=&#034;9&#034;&gt;9.&lt;/a&gt; &lt;a href=&#034;http://docs.sun.com:80/ab2/coll.707.1/SOLTUNEPARAMREF/@Ab2TocView&#034; target=&#034;_blank&#034;&gt;Solaris Tunable Parameters Reference Manual&lt;/a&gt;&lt;br&gt; &lt;a name=&#034;10&#034;&gt;10.&lt;/a&gt; &lt;u&gt;Solaris Security&lt;/u&gt; by Peter H. Gregory (ISBN 0-13-096053-5).&lt;BR&gt; &lt;a name=&#034;11&#034;&gt;11.&lt;/a&gt; &lt;a href=&#034;http://www.sun.com/blueprints/0601/jass_internals-v03.pdf&#034; target=&#034;_blank&#034;&gt;The Solaris Toolkit - Internals&lt;/a&gt; by Alex Noordergraaf and Glenn Brunette.&lt;br&gt; &lt;a name=&#034;12&#034;&gt;12.&lt;/a&gt; &lt;a href=&#034;http://www.sun.com/blueprints/0701/openSSH.pdf&#034; target=&#034;_blank&#034;&gt;Building and Deploying OpenSSH for the Solaris Operating Environment &lt;/a&gt; by Jason Reid and Keith Watson.&lt;br&gt; &lt;P&gt; &lt;CENTER&gt;&lt;IMG ALT=&#034;----------------&#034; src='https://admin-sys.org/img18.gif' width='6' height='350'&gt; &lt;P&gt; &lt;P&gt; To contact ACCS: &lt;BR&gt; &lt;P&gt;P.O. Box 948316 &lt;BR&gt;La Jolla, CA 92037-8316 &lt;BR&gt;Phone: (858) 689-ACCS &lt;BR&gt;Email: &lt;I&gt;&lt;A HREF=&#034;mailto:sales@accs.com&#034;&gt;sales@accs.com&lt;/A&gt;&lt;/I&gt; &lt;P&gt;If you have comments or suggestions, please E-mail &lt;I&gt;&lt;A HREF=&#034;mailto:webmaster@accs.com&#034;&gt;webmaster@accs.com&lt;/A&gt;&lt;/I&gt;&lt;/CENTER&gt; &lt;P&gt; &lt;CENTER&gt; &lt;A HREF=&#034;http://www.apache.org&#034; target=&#034;_blank&#034;&gt; &lt;/CENTER&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>


 
	


 
	

</channel>
</rss>
