<?Pub UDT _bookmark _target?><?Pub EntList bsol dash hellip gt lt minus?><?Pub CX solbook(book(title()bookinfo()part(title()partintro()chapter()?><chapter id="txconf-1"><?Pub Tag atict:info tracking="on" ref="0"?><?Pub Tag atict:user
user="sharonr" fullname="Sharon Veach"?><title>Configuring Trusted Extensions (Tasks)</title><indexterm><primary>configuring </primary><secondary>Trusted Extensions software</secondary>
</indexterm><indexterm><primary>configuring Trusted Extensions</primary><secondary>initial procedures</secondary>
</indexterm><indexterm><primary>Trusted Extensions configuration</primary><secondary>initial procedures</secondary>
</indexterm><highlights><para>This chapter covers how to configure <trademark>Solaris</trademark> Trusted Extensions on a system with a
monitor. To work properly, Trusted Extensions software requires configuration
of the following: labels, zones, the network, users who can assume roles,
roles, and tools.</para><itemizedlist remap="jumplist"><listitem><para><olink targetptr="txconf-60" remap="internal">Setting Up the Global Zone in
Trusted Extensions</olink></para>
</listitem><listitem><para><olink targetptr="txconf-20" remap="internal">Creating Labeled Zones</olink></para>
</listitem><listitem><para>(Optional) <olink targetptr="txconf-98" remap="internal">Adding Network Interfaces
and Routing to Labeled Zones</olink></para>
</listitem><listitem><para><olink targetptr="txconf-14" remap="internal">Creating Roles and Users in Trusted
Extensions</olink></para>
</listitem><listitem><para><olink targetptr="txconf-50" remap="internal">Creating Home Directories in
Trusted Extensions</olink></para>
</listitem><listitem><para><olink targetptr="txconf-64" remap="internal">Adding Users and Hosts to an
Existing Trusted Network</olink></para>
</listitem><listitem><para><olink targetptr="txconf-trouble-1" remap="internal">Troubleshooting Your Trusted
Extensions Configuration</olink></para>
</listitem><listitem><para><olink targetptr="txconf-18" remap="internal">Additional Trusted Extensions
Configuration Tasks</olink></para>
</listitem>
</itemizedlist><para>For other configuration tasks, see <olink targetptr="trp-part-2" remap="internal">Part&nbsp;II, Administration of Trusted Extensions</olink>.</para>
</highlights><sect1 id="txconf-60"><title>Setting Up the Global Zone in Trusted Extensions</title><para>Before setting up the global zone, you must make decisions about your
configuration. For the decisions, see <olink targetptr="startinst-6" remap="internal">Collecting
Information and Making Decisions Before Enabling&nbsp;Trusted Extensions</olink>.</para><informaltable frame="topbot" pgwide="1"><tgroup cols="3" colsep="1" rowsep="1"><colspec colname="colspec2" colwidth="18.21*"/><colspec colname="colspec1" colwidth="43.13*"/><colspec colname="colspec0" colwidth="37.65*"/><thead><row><entry><para>Task</para>
</entry><entry><para>Description</para>
</entry><entry><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row><entry><para>Protect the hardware.</para>
</entry><entry><para>Hardware can be protected by requiring a password to change hardware
settings.</para>
</entry><entry><para><olink targetdoc="group-sa" targetptr="secsystask-46" remap="external"><citetitle remap="section">Controlling Access to System Hardware</citetitle> in <citetitle remap="book">System Administration Guide: Security Services</citetitle></olink></para>
</entry>
</row><row><entry><para>Configure labels.</para>
</entry><entry><para>Labels <emphasis>must</emphasis> be configured for your site. If you
plan to use the default <filename>label_encodings</filename> file, you can
skip this step.</para>
</entry><entry><para><olink targetptr="confsys-17" remap="internal">Check and Install Your Label Encodings
File</olink></para>
</entry>
</row><row><entry><para>For IPv6, modify the <filename>/etc/system</filename> file.</para>
</entry><entry><para>If you are running an IPv6 network, you modify  the <filename>/etc/system</filename> file
to enable IP to recognize labeled packets.</para>
</entry><entry><para><olink targetptr="txconf-35" remap="internal">Enable IPv6 Networking in Trusted Extensions</olink></para>
</entry>
</row><row><entry><para>For a DOI whose value is not <literal>1</literal>, modify the <filename>/etc/system</filename> file.</para>
</entry><entry><para>If the CIPSO Domain of Interpretation (DOI) of your network nodes is
different from <literal>1</literal>, specify the DOI in the <filename>/etc/system</filename> file.</para>
</entry><entry><para><olink targetptr="txconf-92" remap="internal">Configure the Domain of Interpretation</olink></para>
</entry>
</row><row><entry><para>Create space for a Solaris ZFS snapshot.</para>
</entry><entry><para>If you plan to use a Solaris ZFS snapshot to clone zones, create
the ZFS pool.</para><para>Perform this task if you are going to clone the first zone to create
the rest of the labeled zones.</para>
</entry><entry><para><olink targetptr="txconf-42" remap="internal">Create ZFS Pool for Cloning Zones</olink></para>
</entry>
</row><row><entry><para>Reboot and log in.</para>
</entry><entry><para>Upon login, you are in the global zone, which is an environment that
recognizes and enforces mandatory access control (MAC).</para>
</entry><entry><para><olink targetptr="confsys-3" remap="internal">Reboot and Log In to Trusted Extensions</olink></para>
</entry>
</row><row><entry><para>Initialize the Solaris Management Console.</para>
</entry><entry><para>Trusted Extensions adds tools to the Solaris Management Console for administering users, roles,
zones, and the network.</para>
</entry><entry><para><olink targetptr="confsys-21" remap="internal">Initialize the Solaris Management Console
Server in Trusted Extensions</olink></para>
</entry>
</row><row><entry morerows="1" rowsep="1"><para>Configure LDAP.</para>
</entry><entry><para>If you are using the LDAP naming service, set up the LDAP service.</para>
</entry><entry><para><olink targetptr="txldap-1" remap="internal">Chapter&nbsp;5, Configuring LDAP for Trusted
Extensions (Tasks)</olink></para>
</entry>
</row><row><entry><para>If you have set up the LDAP service, make this system an LDAP client.</para>
</entry><entry><para><olink targetptr="txldap-8" remap="internal">Make the Global Zone an LDAP Client in Trusted
Extensions</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable><task id="confsys-17"><title>Check and Install Your Label Encodings File</title><indexterm><primary>installing</primary><secondary><filename>label_encodings</filename> file</secondary>
</indexterm><indexterm><primary><filename>label_encodings</filename> file</primary><secondary>installing</secondary>
</indexterm><indexterm><primary><filename>label_encodings</filename> file</primary><secondary>modifying</secondary>
</indexterm><indexterm><primary>modifying</primary><secondary><filename>label_encodings</filename> file</secondary>
</indexterm><indexterm><primary>checking</primary><secondary><filename>label_encodings</filename> file</secondary>
</indexterm><indexterm><primary>verifying</primary><secondary><filename>label_encodings</filename> file</secondary>
</indexterm><indexterm><primary><filename>label_encodings</filename> file</primary><secondary>checking</secondary>
</indexterm><indexterm><primary>encodings file</primary><see><filename>label_encodings</filename> file</see>
</indexterm><indexterm><primary>Check Encodings action</primary>
</indexterm><indexterm><primary>administrative actions</primary><secondary>Check Encodings</secondary>
</indexterm><tasksummary><para>Your encodings file must be compatible with any Trusted Extensions host
with which you are communicating.</para><note><para>Trusted Extensions installs a default <filename>label_encodings</filename> file.
This default file is useful for demonstrations. However, this file might not
be a good choice for your use. If you plan to use the default file, you can
skip this procedure.</para>
</note><itemizedlist><listitem><para>If you are familiar with encodings files, you can use the
following procedure.</para>
</listitem><listitem><para>If you are not familiar with encodings files, consult <olink targetdoc="trsollbladmin" remap="external"><citetitle remap="book">Solaris Trusted Extensions Label Administration</citetitle></olink> for requirements, procedures, and
examples.</para>
</listitem>
</itemizedlist><caution><para>You <emphasis>must</emphasis> successfully install labels before
continuing, or the configuration will fail.</para>
</caution>
</tasksummary><taskprerequisites><para>You are the security administrator. The <olink targetptr="glossary-111" remap="internal">security
administrator</olink> is responsible for editing, checking, and maintaining
the <filename>label_encodings</filename> file. If you plan to edit the <filename>label_encodings</filename> file, make sure that the file itself is writable.
For more information, see the <olink targetdoc="group-refman" targetptr="label-encodings-4" remap="external"><citerefentry><refentrytitle>label_encodings</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink> man page.</para>
</taskprerequisites><procedure><step><para>Insert the media with the <filename>label_encodings</filename> file
into the appropriate device.</para>
</step><step><para>Copy the <filename>label_encodings</filename> file to the disk.</para>
</step><step><para>Check the syntax of the file and make it the active <filename>label_encodings</filename> file.</para><stepalternatives><step id="txconf-lejds-1"><para>In Trusted GNOME,
check and install the file from the command line.</para><substeps><step><para>Open a terminal window.</para>
</step><step><para>Run the <command>chk_encodings</command> command.</para><screen># /usr/sbin/chk_encodings <replaceable>/full-pathname-of-label-encodings-file</replaceable></screen>
</step><step><para>Read the output and do one of the following:</para><stepalternatives><step><para>Resolve errors.</para><para>If the command reports errors, the
errors <emphasis>must</emphasis> be resolved before continuing. For assistance,
see <olink targetdoc="trsollbladmin" targetptr="modifyenc-1" remap="external">Chapter 3, <citetitle remap="chapter">Making a Label Encodings File (Tasks),</citetitle> in <citetitle remap="book">Solaris Trusted Extensions Label Administration</citetitle></olink></para>
</step><step><para>Make the file the active <filename>label_encodings</filename> file.</para><screen># <userinput>cp <replaceable>/full-pathname-of-label-encodings-file</replaceable> \
 /etc/security/tsol/label.encodings.site</userinput>
# <userinput>cd /etc/security/tsol</userinput>
# <userinput>cp label_encodings label_encodings.tx.orig</userinput>
# <userinput>cp label.encodings.site label_encodings</userinput></screen>
</step>
</stepalternatives>
</step>
</substeps><caution><para>Your <filename>label_encodings</filename> file <emphasis>must</emphasis> pass
the <command>chk_encodings</command> test before you continue.</para>
</caution>
</step><step><para>In Trusted CDE, use the Check Encodings action.</para><substeps><step><para>Open the Trusted_Extensions folder.</para><para>Click mouse button
3 on the background.</para>
</step><step><para>From the Workspace menu, choose Applications &rarr; Application
Manager.</para>
</step><step><para>Double-click the Trusted_Extensions folder icon.</para><mediaobject><imageobject><imagedata entityref="Dtagen.mcolor.tif"/>
</imageobject><textobject><simpara>Illustration shows the Trusted_Extensions folder icon.</simpara>
</textobject>
</mediaobject>
</step><step><para>Double-click the Check Encodings action.</para><para>In the dialog
box, type the full path name to the file:</para><screen><replaceable>/full-pathname-of-label-encodings-file</replaceable></screen><para>The <command>chk_encodings</command> command is invoked to check the
syntax of the file. The results are displayed in the Check Encodings dialog
box.</para>
</step><step><para>Read the contents of the Check Encodings dialog box and do one
of the following:</para><stepalternatives><step><para>Resolve errors.</para><para>If the Check Encodings action reports
errors, the errors <emphasis>must</emphasis> be resolved before continuing.
For assistance, see <olink targetdoc="trsollbladmin" targetptr="modifyenc-1" remap="external">Chapter 3, <citetitle remap="chapter">Making a Label Encodings File (Tasks),</citetitle> in <citetitle remap="book">Solaris Trusted Extensions Label Administration</citetitle></olink>.</para>
</step><step><para>Click <literal>Yes</literal> to make the file the active <filename>label_encodings</filename> file.</para><para>The Check Encodings action creates a backup
copy of the original file, then installs the checked version in <filename>/etc/security/tsol/label_encodings</filename>. The action then restarts the label daemon.</para>
</step>
</stepalternatives>
</step>
</substeps>
</step>
</stepalternatives><caution><para>Your <filename>label_encodings</filename> file <emphasis>must</emphasis> pass
the Check Encodings test before you continue.</para>
</caution>
</step>
</procedure><example id="txconf-75"><title>Checking <filename>label_encodings</filename> Syntax on the Command
Line</title><indexterm><primary><command>chk_encodings</command> command</primary>
</indexterm><para>In this example, the administrator tests several <filename>label_encodings</filename> files
by using the command line.</para><screen># <userinput>/usr/sbin/chk_encodings /var/encodings/label_encodings1</userinput>
No errors found in /var/encodings/label_encodings1
# <userinput>/usr/sbin/chk_encodings /var/encodings/label_encodings2</userinput>
No errors found in /var/encodings/label_encodings2</screen><para>When management decides to use the <filename>label_encodings2</filename> file,
the administrator runs a semantic analysis of the file.</para><screen># <userinput>/usr/sbin/chk_encodings -a /var/encodings/label_encodings2</userinput>
No errors found in /var/encodings/label_encodings2

---&gt; VERSION = MYCOMPANY LABEL ENCODINGS  2.0 10/10/2006

---&gt; CLASSIFICATIONS &lt;---

   Classification 1: PUBLIC
   Initial Compartment bits: 10
   Initial Markings bits: NONE

---&gt; COMPARTMENTS AND MARKINGS USAGE ANALYSIS &lt;---
...
---&gt; SENSITIVITY LABEL to COLOR MAPPING &lt;---
...</screen><para>The administrator prints a copy of the semantic analysis for her records,
then moves the file to the <filename class="directory">/etc/security/tsol</filename> directory.</para><screen># <userinput>cp /var/encodings/label_encodings2 /etc/security/tsol/label.encodings.10.10.06</userinput>
# <userinput>cd /etc/security/tsol</userinput>
# <userinput>cp label_encodings label_encodings.tx.orig</userinput>
# <userinput>cp label.encodings.10.10.06 label_encodings</userinput></screen><para>Finally, the administrator verifies that the <filename>label_encodings</filename> file
is the company file.</para><screen># <userinput>/usr/sbin/chk_encodings -a /etc/security/tsol/label_encodings | head -4</userinput>
No errors found in /etc/security/tsol/label_encodings

---&gt; VERSION = MYCOMPANY LABEL ENCODINGS  2.0 10/10/2006</screen>
</example>
</task><task id="txconf-35"><title>Enable IPv6 Networking in Trusted Extensions</title><indexterm><primary>enabling</primary><secondary>IPv6 network</secondary>
</indexterm><indexterm><primary><filename>/etc/system</filename> file</primary><secondary>modifying for IPv6 network</secondary>
</indexterm><indexterm><primary>IPv6</primary><secondary>entry in <filename>/etc/system</filename> file</secondary>
</indexterm><indexterm><primary>Trusted Extensions network</primary><secondary>enabling IPv6</secondary>
</indexterm><tasksummary><para>CIPSO options do not have an Internet Assigned Numbers Authority (IANA)
number to use in the IPv6 Option Type field of a packet. The entry that you
set in this procedure supplies a number to use on the local network until
IANA assigns a number for this option. Trusted Extensions disables IPv6 networking
if this number is not defined.</para><para>To enable an IPv6 network in Trusted Extensions, you must add an entry in
the <filename>/etc/system</filename> file.</para>
</tasksummary><procedure remap="single-step"><step><para>Type the following entry into the <filename>/etc/system</filename> file:</para><screen><userinput>set ip:ip6opt_ls = 0x0a</userinput></screen>
</step>
</procedure><taskrelated role="troubleshooting"><itemizedlist><listitem><itemizedlist><para><indexterm><primary>troubleshooting</primary><secondary>IPv6 configuration</secondary></indexterm><indexterm><primary>IPv6</primary><secondary>troubleshooting</secondary></indexterm>If error messages during boot indicate that your IPv6 configuration
is incorrect, correct the entry:</para><listitem><para>Check that the entry is spelled correctly.</para>
</listitem><listitem><para>Check that the system has been rebooted after adding the correct
entry to the <literal>/etc/system</literal> file.</para>
</listitem>
</itemizedlist>
</listitem><listitem><para>If you install Trusted Extensions on a Solaris system that
currently has IPv6 enabled, but you fail to add the IP entry in <filename>/etc/system</filename>, you see the following error message: <literal>t_optmgmt: System
error: Cannot assign requested address</literal> <replaceable>time-stamp</replaceable></para>
</listitem><listitem><itemizedlist><para>If you install Trusted Extensions on a Solaris system that does not
have IPv6 enabled, and you fail to add the IP entry in <filename>/etc/system</filename>,
you see the following types of error messages:</para><listitem><para><literal>WARNING: IPv6 not enabled via /etc/system</literal></para>
</listitem><listitem><para><literal>Failed to configure IPv6 interface(s): hme0</literal></para>
</listitem><listitem><para><literal>rpcbind: Unable to join IPv6 multicast group for
rpc broadcast</literal> <replaceable>broadcast-number</replaceable></para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</taskrelated>
</task><task id="txconf-92"><title>Configure the Domain of Interpretation</title><indexterm><primary>enabling</primary><secondary>DOI different from <literal>1</literal></secondary>
</indexterm><indexterm><primary><filename>/etc/system</filename> file</primary><secondary>modifying for DOI different from <literal>1</literal></secondary>
</indexterm><indexterm><primary>domain of interpretation (DOI)</primary><secondary>entry in <filename>/etc/system</filename> file</secondary>
</indexterm><indexterm><primary>Trusted Extensions configuration</primary><secondary>changing default DOI value</secondary>
</indexterm><tasksummary><para>All communications to and from a system that is configured with Trusted Extensions must
follow the labeling rules of a single CIPSO Domain of Interpretation (DOI).
The DOI that is used in each message is identified by an integer number in
the CIPSO IP Option header. By default, the DOI in Trusted Extensions is <literal>1</literal>.</para><para>If your DOI is not <literal>1</literal>, you must add an entry to the <filename>/etc/system</filename> file and modify the <literal>doi</literal> value in
the default security templates.</para>
</tasksummary><procedure><step><para>Type your DOI entry into the <filename>/etc/system</filename> file:</para><screen>set default_doi = <replaceable>n</replaceable></screen><para>This positive, non-zero number must match the DOI number in the <filename>tnrhtp</filename> database for your node and for the systems that your node communicates
with.</para>
</step><step><para>Before adding the <filename>tnrhtp</filename> database to your
LDAP server, modify the <literal>doi</literal> value in the default entries
and all entries for local addresses.</para><para>Trusted Extensions provides two
templates in the <filename>tnrhtp</filename> database, <literal>cipso</literal> and <literal>admin_low</literal>. If you have added entries for local addresses, also modify
these entries.</para><substeps><step><para>Open the <filename>tnrhtp</filename> database in the trusted editor.</para><screen># <userinput>/usr/dt/bin/trusted_edit /etc/security/tsol/tnrhtp</userinput></screen><para>In Solaris Trusted Extensions (CDE), you can instead use the Admin Editor action in the Trusted_Extensions
folder in the Application Manager.</para>
</step><step><para>Copy the <literal>cipso</literal> template entry to another line.</para><screen>cipso:host_type=cipso;doi=1;min_sl=ADMIN_LOW;max_sl=ADMIN_HIGH
cipso:host_type=cipso;doi=1;min_sl=ADMIN_LOW;max_sl=ADMIN_HIGH</screen>
</step><step><para>Comment out one of the <literal>cipso</literal> entries.</para><screen>#cipso:host_type=cipso;doi=1;min_sl=ADMIN_LOW;max_sl=ADMIN_HIGH
cipso:host_type=cipso;doi=1;min_sl=ADMIN_LOW;max_sl=ADMIN_HIGH</screen>
</step><step><para>Modify the <literal>doi</literal> value in the uncommented <literal>cipso</literal> entry.</para><para>Make this value the same as the <literal>default_doi</literal> value in the <filename>/etc/system</filename> file.</para><screen>#cipso:host_type=cipso;doi=1;min_sl=ADMIN_LOW;max_sl=ADMIN_HIGH
cipso:host_type=cipso;doi=<replaceable>n</replaceable>;min_sl=ADMIN_LOW;max_sl=ADMIN_HIGH</screen>
</step><step><para>Change the <literal>doi</literal> value for the <literal>admin_low</literal> entry.</para><screen remap="wide">#admin_low:host_type=unlabeled;min_sl=ADMIN_LOW;max_sl=ADMIN_HIGH;doi=1;def_label=ADMIN_LOW
admin_low:host_type=unlabeled;min_sl=ADMIN_LOW;max_sl=ADMIN_HIGH;doi=<replaceable>n</replaceable>;def_label=ADMIN_LOW</screen>
</step>
</substeps><para>You are finished when every <literal>doi</literal> value in every entry
in the <filename>tnrhtp</filename> database is the same.</para>
</step>
</procedure><taskrelated role="troubleshooting"><itemizedlist><para>If the <filename>/etc/system</filename> file sets a <constant>default_doi</constant> value
other than <literal>1</literal>, and a security template for this system sets
a value that does not match this <constant>default_doi</constant> value, then
messages similar to the following are displayed on the system console during
interface configuration:</para><listitem><para><literal>NOTICE: er10 failed: 10.17.1.12 has wrong DOI 4 instead
of 1</literal></para>
</listitem><listitem><para><literal>Failed to configure IPv4 interface(s): er10</literal></para>
</listitem>
</itemizedlist><itemizedlist><para>Interface configuration failure can result in login failure:</para><listitem><para><literal>Hostname: unknown</literal></para>
</listitem><listitem><para><literal>unknown console login: root</literal></para>
</listitem><listitem><para><literal>Oct 10 10:10:20 unknown login: pam_unix_cred: cannot
load hostname Error 0</literal></para>
</listitem>
</itemizedlist><para>To correct the problem, boot the system into single-user mode and correct
the security templates as described in this procedure.</para>
</taskrelated><taskrelated role="see-also"><para>For more information about the DOI, see <olink targetptr="tnetov-40" remap="internal">Network Security Attributes in Trusted Extensions</olink>.</para><para>To change the <literal>doi</literal> value in the security templates
that you create, see <olink targetptr="managetnet-20" remap="internal">How to Construct a Remote Host Template</olink>.</para><para>To use the editor of your choice as the trusted editor, see <olink targetptr="commontasks-24" remap="internal">How to Assign the Editor of Your Choice as the Trusted Editor</olink>.</para>
</taskrelated>
</task><task id="txconf-42"><title>Create ZFS Pool for Cloning Zones</title><indexterm><primary>zones</primary><secondary>creating ZFS pool for cloning</secondary>
</indexterm><indexterm><primary>ZFS pools</primary><secondary>creating for cloning zones</secondary>
</indexterm><tasksummary><para>If you plan to use a Solaris <trademark>ZFS</trademark> snapshot
as your zone template, you need to create a ZFS pool from a ZFS file or a
ZFS device. This pool holds the snapshot for cloning each zone. You use the <filename class="directory">/zone</filename> device for your ZFS pool.</para>
</tasksummary><taskprerequisites><para>You have set aside disk space during Solaris installation for
a ZFS file system. For details, see <olink targetptr="ovw-11" remap="internal">Planning for
Zones in Trusted Extensions</olink>.</para>
</taskprerequisites><procedure><step><para>Unmount the <filename class="devicefile">/zone</filename> partition.</para><para>During installation, you created a <filename class="devicefile">/zone</filename> partition
with sufficient disk space of about 2000 MBytes.</para><screen># <userinput>umount /zone</userinput></screen>
</step><step><para>Remove the <filename class="devicefile">/zone</filename> mount
point.</para><screen># <userinput>rmdir /zone</userinput></screen>
</step><step><para>Comment out the <filename class="devicefile">/zone</filename> entry
in the <filename>vfstab</filename> file.</para><substeps><step><para>Prevent the <filename class="devicefile">/zone</filename> entry
from being read.</para><para>Open the <filename>vfstab</filename> file in
an editor. Prefix the <filename class="directory">/zone</filename> entry with
a comment sign.</para><screen><userinput>#</userinput>/dev/dsk/c<replaceable>n</replaceable>t<replaceable>n</replaceable>d<replaceable>n</replaceable>s<replaceable>n</replaceable>  /dev/dsk/c<replaceable>n</replaceable>t<replaceable>n</replaceable>d<replaceable>n</replaceable>s<replaceable>n</replaceable>  /zone  ufs  2  yes  -</screen>
</step><step><para>Copy the disk slice, <literal>c</literal><replaceable>n</replaceable><literal>t</literal><replaceable>n</replaceable><literal>d</literal><replaceable>n</replaceable><literal>s</literal><replaceable>n</replaceable>, to the clipboard.</para>
</step><step><para>Save the file, and close the editor.</para>
</step>
</substeps>
</step><step><para>Use the disk slice to re-create <filename class="devicefile">/zone</filename> as
a ZFS pool.</para><screen># zpool create -f zone c<replaceable>n</replaceable>t<replaceable>n</replaceable>d<replaceable>n</replaceable>s<replaceable>n</replaceable></screen><para>For example, if your <filename class="devicefile">/zone</filename> entry
used disk slice <literal>c0t0d0s5</literal>, then the command would be the
following:</para><screen># <userinput>zpool create -f zone c0t0d0s5</userinput></screen>
</step><step id="txconf-zpool-verify-1"><para>Verify that the ZFS pool is healthy.</para><para>Use one of the following commands:</para><screen># <userinput>zpool status -x zone</userinput>
pool 'zone' is healthy</screen><screen># <userinput>zpool list</userinput>
NAME     SIZE     USED   AVAIL   CAP   HEALTH   ALTROOT
/zone    5.84G   80K    5.84G    7%   ONLINE   -</screen><para>In this example, the initial setup team reserved a 6000 MByte partition
for zones. For more information, see the <olink targetdoc="group-refman" targetptr="zpool-1m" remap="external"><citerefentry><refentrytitle>zpool</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page.</para>
</step>
</procedure>
</task><task id="confsys-3"><title>Reboot and Log In to Trusted Extensions</title><indexterm><primary>Trusted Extensions configuration</primary><secondary>reboot to activate labels</secondary>
</indexterm><indexterm><primary>labeling</primary><secondary>turning on labels</secondary>
</indexterm><indexterm><primary>rebooting</primary><secondary>activating labels</secondary>
</indexterm><tasksummary><para>At most sites, two or more administrators, who serve as an <olink targetptr="glossary-59" remap="internal">initial setup team</olink>, are present when configuring
the system.</para>
</tasksummary><taskprerequisites><para>Before you first log in, become familiar with the desktop and label
options in Trusted Extensions. For details, see <olink targetdoc="trssug" targetptr="uglog-1" remap="external">Chapter 2, <citetitle remap="chapter">Logging In to Trusted Extensions (Tasks),</citetitle> in <citetitle remap="book">Solaris Trusted Extensions User&rsquo;s Guide</citetitle></olink>.</para>
</taskprerequisites><procedure><step><para>Reboot the system.</para><screen># <userinput>/usr/sbin/reboot</userinput></screen><para>If your system does not have a graphical display, go to <olink targetptr="headl-1" remap="internal">Chapter&nbsp;6, Configuring a Headless System With Trusted
Extensions (Tasks)</olink>.</para>
</step><step><para>Log in to   the Solaris Trusted Extensions (GNOME) desktop
as superuser.</para><substeps><step><para>In the login window, select  Solaris Trusted Extensions (GNOME) as
the desktop.</para><para>The  desktop contains  applets that
are useful when configuring the system.</para>
</step><step><para>In the login dialog box, type <literal>root</literal> and the
root password.</para><para>Users must not disclose their passwords to another person, as that person
might then have access to the data of the user and will not be uniquely identified
or accountable. Note that disclosure can be direct, through the user deliberately
disclosing his/her password to another person, or indirect, such as through
writing it down, or choosing an insecure password. Trusted Extensions software
provides protection against insecure passwords, but cannot prevent a user
disclosing his/her password or writing it down.</para>
</step>
</substeps>
</step><step><para>Read the information in the Last Login dialog box.</para><mediaobject><imageobject><imagedata entityref="last.login.eps"/>
</imageobject><textobject><simpara>Illustration shows the Last Login dialog box.</simpara>
</textobject>
</mediaobject><para>Then click OK to dismiss the box.</para>
</step><step><para>Read the Label Builder.</para><para>Click OK to accept the default
label.</para><para><indexterm><primary>labels</primary><secondary>on trusted stripe</secondary></indexterm><indexterm><primary>screens</primary><secondary>initial display</secondary></indexterm><indexterm><primary>workspaces</primary><secondary>initial display</secondary></indexterm>Once the login process
is complete, the Trusted Extensions screen appears briefly, and you are in a desktop
session with four workspaces. The <constant>Trusted Path</constant> symbol
is displayed in the <olink targetptr="glossary-133" remap="internal">trusted stripe</olink>. </para><note><para>You
must log off or lock the screen before leaving a system unattended. Otherwise,
a person can access the system without having to pass identification and authentication,
and that person would not be uniquely identified or accountable.</para>
</note>
</step>
</procedure>
</task><task id="confsys-21"><title>Initialize the Solaris Management Console Server in Trusted Extensions</title><indexterm><primary>Solaris Management Console</primary><secondary>initializing</secondary>
</indexterm><indexterm><primary>initializing</primary><secondary>Solaris Management Console</secondary>
</indexterm><indexterm><primary>Solaris Management Console</primary><secondary>loading a Trusted Extensions toolbox</secondary>
</indexterm><indexterm><primary>toolboxes</primary><secondary>loading in Trusted Extensions</secondary>
</indexterm><indexterm><primary>Solaris Management Console</primary><secondary>troubleshooting</secondary>
</indexterm><indexterm><primary>troubleshooting</primary><secondary>Solaris Management Console</secondary>
</indexterm><tasksummary><para>This procedure enables you to administer users, roles, hosts, zones,
and the network on this system. On the first system that you configure, only
the <literal>files</literal> scope is available.</para>
</tasksummary><taskprerequisites><para>You must be superuser.</para><para>To use the LDAP toolbox on the LDAP server from a Solaris Management
Console that is running on a client, you must complete all of the tasks in <olink targetptr="confsys-10" remap="internal">Configuring the Solaris Management Console for LDAP
(Task Map)</olink>.</para>
</taskprerequisites><procedure><step><para>Start the Solaris Management Console.</para><screen># <userinput>/usr/sbin/smc &amp;</userinput></screen><note><para>The first time the Solaris Management Console  is started, it performs several registration
tasks. These tasks can take a few minutes.</para>
</note>
</step><step id="txconf-navinvisible-1"><para><indexterm><primary>troubleshooting</primary><secondary>Solaris Management Console</secondary></indexterm><indexterm><primary>Solaris Management Console</primary><secondary>troubleshooting</secondary></indexterm>Do one of the following
if toolbox icons do not appear in the Solaris Management Console:</para><stepalternatives><step><para>If the Navigation pane is not visible:</para><substeps><step><para>In the Open Toolbox dialog box that is displayed, click Load next
to this system's name under Server.</para><para>If this system does not have
the recommended amount of memory and swap, it might take a few minutes for
the toolboxes to display. For recommendations, see <olink targetptr="startinst-4" remap="internal">Installing or Upgrading the Solaris OS for Trusted Extensions</olink>.</para>
</step><step><para>From the list of toolboxes, select a toolbox whose <literal>Policy=TSOL</literal>.</para><para><olink targetptr="txconf-fig-1" remap="internal">Figure&nbsp;4&ndash;1</olink> shows
a This Computer (<replaceable>this-host</replaceable>: <literal>Scope=Files, Policy=TSOL</literal>) toolbox. Trusted Extensions modifies tools under the System
Configuration node.</para><caution><para>Do not choose a toolbox that has no policy. Toolboxes without
a listed policy do not support Trusted Extensions.</para>
</caution><para>Your toolbox choice depends on which scope you want to influence. </para><itemizedlist><listitem><para>To edit local files, choose the Files scope.</para>
</listitem><listitem><para>To edit LDAP databases, choose the LDAP scope.</para><para>After
you complete all of the tasks in <olink targetptr="confsys-10" remap="internal">Configuring the Solaris Management Console for LDAP
(Task Map)</olink>, the LDAP scope is available.</para>
</listitem>
</itemizedlist>
</step><step><para>Click Open.</para>
</step>
</substeps>
</step><step><para>If the Navigation pane is visible, but the toolbox icons are stop
signs:</para><substeps><step><para>Exit the Solaris Management Console.</para>
</step><step><para>Restart the Solaris Management Console.</para><screen># <userinput>/usr/sbin/smc &amp;</userinput></screen>
</step>
</substeps>
</step>
</stepalternatives>
</step><step><para>If you have not yet done so, select a toolbox whose <literal>Policy=TSOL</literal>.</para><para>The following figure shows a This Computer (<replaceable>this-host</replaceable>: <literal>Scope=Files, Policy=TSOL</literal>) toolbox. Trusted Extensions modifies
tools under the System Configuration node.</para><figure id="txconf-fig-1"><title>Trusted Extensions Tools in the Solaris Management Console</title><mediaobject><imageobject><imagedata entityref="smc.navpanel.tif"/>
</imageobject><textobject><simpara>Window shows the System Configuration node with the Users
tools and the Computers and Networks tools.</simpara>
</textobject>
</mediaobject>
</figure>
</step><step performance="optional"><para>Save the current toolbox.</para><para>Saving
a <literal>Policy=TSOL</literal> toolbox enables a Trusted Extensions toolbox
to load by default. Preferences are saved per role, per host. The host is
the Solaris Management Console server.</para><substeps><step><para>From the Console menu, choose Preferences.</para><para>The Home
toolbox is selected.</para>
</step><step><para>Define a <literal>Policy=TSOL</literal> toolbox as the Home toolbox.</para><para>Put the current toolbox in the Location field by clicking the Use Current
Toolbox button.</para>
</step><step><para>Click OK to save the preferences.</para>
</step>
</substeps>
</step><step><para>Exit the Solaris Management Console.</para>
</step>
</procedure><taskrelated role="see-also"><para>For an overview of the Trusted Extensions additions to the Solaris Management Console, see <olink targetptr="txtool-8" remap="internal">Solaris Management Console Tools</olink>.
To use the Solaris Management Console to create security templates, see <olink targetptr="managetnet-3" remap="internal">Configuring Trusted Network Databases (Task Map)</olink>.</para>
</taskrelated>
</task><task id="txldap-8"><title>Make the Global Zone an LDAP Client in Trusted Extensions</title><indexterm><primary>creating</primary><secondary>LDAP client</secondary>
</indexterm><indexterm><primary>LDAP configuration</primary><secondary>creating client</secondary>
</indexterm><indexterm><primary>Create LDAP Client action</primary>
</indexterm><indexterm><primary>administrative actions</primary><secondary>Create LDAP Client</secondary>
</indexterm><tasksummary><para>For LDAP, this procedure establishes the naming service configuration
for the global zone. If you are not using LDAP, you can skip this procedure.</para><para>Starting in the&nbsp; Solaris Express Developer Edition&nbsp;1/08 release,
if you are in a Solaris Trusted Extensions (CDE) workspace, you can use the <command>txzonemgr</command> script
or a Trusted CDE action to create an LDAP client. If you are in a Solaris Trusted Extensions (GNOME) workspace,
you must use the <command>txzonemgr</command> script.</para><note><para>If you plan to set up a name server in each labeled zone, you
are responsible for establishing the LDAP client connection to each labeled
zone.</para>
</note>
</tasksummary><taskprerequisites><para>The Sun <trademark>Java</trademark> System Directory Server, that is, the LDAP server, must exist. The server must
be populated with Trusted Extensions databases, and this system must be able to
contact the server. So, the system that you are configuring must have an entry
in the <filename>tnrhdb</filename> database on the LDAP server, or this system
must be included in a wildcard entry before you perform this procedure.</para><para>If an LDAP server that is configured with Trusted Extensions does not exist,
you must complete the procedures in <olink targetptr="txldap-1" remap="internal">Chapter&nbsp;5,
Configuring LDAP for Trusted Extensions (Tasks)</olink> before you perform
this procedure.</para>
</taskprerequisites><procedure><step><para>If you are using DNS, modify the <filename>nsswitch.ldap</filename> file.</para><substeps><step><para>Save a copy of the original <filename>nsswitch.ldap</filename> file.</para><para>The standard naming service switch file for LDAP is too restrictive
for Trusted Extensions.</para><screen># <userinput>cd /etc</userinput>
# <userinput>cp nsswitch.ldap nsswitch.ldap.orig</userinput></screen>
</step><step><para>Change the <filename>nsswitch.ldap</filename> file entries for
the following services.</para><para>The correct entries are similar to the
following:</para><screen>hosts:    files dns ldap

ipnodes:    files dns ldap

networks:   ldap files
protocols:  ldap files
rpc:        ldap files
ethers:     ldap files
netmasks:   ldap files
bootparams: ldap files
publickey:  ldap files

services:   files</screen><para>Note that Trusted Extensions adds two entries:</para><screen>tnrhtp:    files ldap
tnrhdb:    files ldap</screen>
</step><step><para>Copy the modified <filename>nsswitch.ldap</filename> file to <filename>nsswitch.conf</filename>.</para><screen># <userinput>cp nsswitch.ldap nsswitch.conf</userinput></screen>
</step>
</substeps>
</step><step><para>Perform one of the following steps to create an LDAP client.</para><stepalternatives><step><para>Run the <command>txzonemgr</command> script and answer the prompts
about LDAP.</para><para>The Create LDAP Client menu item configures the global
zone only.</para><substeps><step><para>Follow the instructions in <olink targetptr="txconf-80" remap="internal">Run the
txzonemgr Script</olink>.</para><para>The title of the dialog box is Labeled
Zone Manager.</para>
</step><step><para>Select Create LDAP Client.</para>
</step><step><para>Answer the following prompts and click OK after each answer:</para><screen>Enter Domain Name:                   <lineannotation>Type the domain name</lineannotation>
Enter Hostname of LDAP Server:       <lineannotation>Type the name of the server</lineannotation>
Enter IP Address of LDAP Server <replaceable>servername</replaceable>: <lineannotation>Type the IP address</lineannotation>
Enter LDAP Proxy Password:       <lineannotation>Type the password to the server</lineannotation>
Confirm LDAP Proxy Password:     <lineannotation>Retype the password to the server</lineannotation>
Enter LDAP Profile Name:         <lineannotation>Type the profile name</lineannotation></screen>
</step><step><para>Confirm or cancel the displayed values.</para><screen>Proceed to create LDAP Client?</screen><para>When you confirm, the <command>txzonemgr</command> script adds the LDAP
client. Then, a window displays the command output.</para>
</step>
</substeps>
</step><step><para>In a Trusted CDE workspace, find and use the Create LDAP Client action.</para><substeps><step><para>Navigate to the Trusted_Extensions folder by clicking mouse button
3 on the background.</para>
</step><step><para>From the Workspace menu, choose Applications &rarr; Application
Manager.</para>
</step><step><para>Double-click the Trusted_Extensions folder icon.</para><para>This
folder contains actions that set up interfaces, LDAP clients, and labeled
zones.</para>
</step><step><para>Double-click the Create LDAP Client action.</para><para>Answer
the following prompts:</para><screen>Domain Name:               <lineannotation>Type the domain name</lineannotation>
Hostname of LDAP Server:   <lineannotation>Type the name of the server</lineannotation>
IP Address of LDAP Server: <lineannotation>Type the IP address</lineannotation>
LDAP Proxy Password:       <lineannotation>Type the password to the server</lineannotation>
Profile Name:              <lineannotation>Type the profile name</lineannotation></screen>
</step><step><para>Click OK.</para><para>The following completion message appears:</para><screen>global zone will be LDAP client of <replaceable>LDAP-server</replaceable>
System successfully configured.

*** Select Close or Exit from the window menu to close this window ***</screen>
</step><step><para>Close the action window.</para>
</step>
</substeps>
</step>
</stepalternatives>
</step><step><para>Verify that the information on the server is correct.</para><substeps><step><para>Open a terminal window, and query the LDAP server.</para><screen># <userinput>ldapclient list</userinput></screen><para>The output looks similar to the following:</para><screen>NS_LDAP_FILE_VERSION= 2.0
NS_LDAP_BINDDN= cn=proxyagent,ou=profile,dc=<replaceable>domain-name</replaceable>
...
NS_LDAP_BIND_TIME= <replaceable>number</replaceable></screen>
</step><step><para>Correct any errors.</para><para>If you get an error, run the Create
LDAP Client action with the correct values. For example, the following error
can indicate that the system does not have an entry on the LDAP server:</para><screen>LDAP ERROR (91): Can't connect to the LDAP server.
Failed to find defaultSearchBase for domain <replaceable>domain-name</replaceable></screen><para>To correct this error, you need to check the LDAP server.</para>
</step>
</substeps>
</step>
</procedure><example id="txconf-93"><title>Using Host Names After Loading a <filename>resolv.conf</filename> File</title><indexterm><primary><filename>resolv.conf</filename> file</primary><secondary>loading during configuration</secondary>
</indexterm><indexterm><primary>files</primary><secondary><filename>resolv.conf</filename></secondary>
</indexterm><para>In this example, the administrator wants a particular set of DNS servers
to be available to the system. The administrator copies a <filename>resolv.conf</filename> file
from a server on a trusted net. Because DNS is not yet active, the administrator
uses the server's IP address to locate the server.</para><screen># <userinput>cd /etc</userinput>
# cp <userinput>/net/10.1.1.2/export/txsetup/resolv.conf resolv.conf</userinput></screen><para>After the <filename>resolv.conf</filename> file is copied and the <filename>nsswitch.conf</filename> file includes <literal>dns</literal> in the <literal>hosts</literal> entry, the administrator can use host names to locate systems.</para>
</example>
</task>
</sect1><sect1 id="txconf-20"><title>Creating Labeled Zones</title><indexterm><primary>tasks and task maps</primary><secondary>Creating Labeled Zones</secondary>
</indexterm><indexterm><primary>Creating Labeled Zones</primary>
</indexterm><indexterm><primary>configuring</primary><secondary>Trusted Extensions labeled zones</secondary>
</indexterm><indexterm><primary>creating</primary><secondary>labeled zones</secondary>
</indexterm><indexterm><primary>creating</primary><secondary>zones</secondary>
</indexterm><indexterm><primary>configuring Trusted Extensions</primary><secondary>labeled zones</secondary>
</indexterm><indexterm><primary>Trusted Extensions configuration</primary><secondary>labeled zones</secondary>
</indexterm><para>The <command>txzonemgr</command> script steps you through all the following
tasks that configure labeled zones.</para><para>The instructions in this section configure labeled zones on
a system that has been assigned at most two IP addresses. For other configurations,
see the configuration options in <olink targetptr="tmap-2" remap="internal">Task Map: Preparing
For and Enabling Trusted Extensions</olink>.</para><informaltable frame="topbot" pgwide="1"><tgroup cols="3" colsep="1" rowsep="1"><colspec colname="colspec2" colwidth="22.20*"/><colspec colname="colspec1" colwidth="45.03*"/><colspec colname="colspec0" colwidth="31.76*"/><thead><row><entry><para>Task</para>
</entry><entry><para>Description</para>
</entry><entry><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row><entry><para>1. Run the <command>txzonemgr</command> script.</para>
</entry><entry><para>The <command>txzonemgr</command> script creates a GUI that presents
the appropriate tasks as you configure your zones.</para>
</entry><entry><para><olink targetptr="txconf-80" remap="internal">Run the txzonemgr Script</olink></para>
</entry>
</row><row><entry><para>2. Manage network interfaces in the global zone.</para>
</entry><entry><para>Configure interfaces in the global zone, or create logical interfaces
and configure them in the global zone.</para>
</entry><entry><para><olink targetptr="txconf-netint-1" remap="internal">Configure the Network Interfaces
in Trusted Extensions</olink></para>
</entry>
</row><row><entry><para>3. Name and label the zone.</para>
</entry><entry><para>Name the zone with a version of its label, and assign the label.</para>
</entry><entry><para><olink targetptr="txconf-11" remap="internal">Name and Label the Zone</olink></para>
</entry>
</row><row><entry><para>4. Install and boot the zone.</para>
</entry><entry><para>Install the packages in the zone. Configure services in the zone. A
Zone Terminal Console enables you to view the activity in the zone.</para>
</entry><entry><para><olink targetptr="txconf-install-1" remap="internal">Install the Labeled Zone</olink></para><para><olink targetptr="txconf-76" remap="internal">Boot the Labeled Zone</olink></para>
</entry>
</row><row><entry><para>5. Verify the status of the zone.</para>
</entry><entry><para>Verify that the labeled zone is running, and that the zone can communicate
with the global zone.</para>
</entry><entry><para><olink targetptr="txconf-74" remap="internal">Verify the Status of the Zone</olink></para>
</entry>
</row><row><entry><para>6. Customize the zone.</para>
</entry><entry><para>Remove unwanted services from the zone.</para><para>If the zone is going to be used to create other zones, remove information
that is specific to this zone only.</para>
</entry><entry><para><olink targetptr="txconf-48" remap="internal">Customize the Labeled Zone</olink></para>
</entry>
</row><row><entry><para>7. Create the rest of the zones.</para>
</entry><entry><para>Use the method that you have chosen to create your second zone. For
a discussion of zone creation methods, see <olink targetptr="ovw-11" remap="internal">Planning
for Zones in Trusted Extensions</olink>.</para>
</entry><entry><para><olink targetptr="txconf-54" remap="internal">Copy or Clone a Zone in Trusted Extensions</olink></para>
</entry>
</row><row><entry><para>8. (Optional) Add zone-specific network interfaces.</para>
</entry><entry><para>To effect network isolation, add one or more network interfaces to a
labeled zone. Typically, such configurations are used to isolate labeled subnets.</para>
</entry><entry><para><olink targetptr="txconf-98" remap="internal">Adding Network Interfaces and Routing to
Labeled Zones</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable><task id="txconf-80"><title>Run the <command>txzonemgr</command> Script</title><indexterm><primary><filename>/usr/sbin/txzonemgr</filename> script</primary>
</indexterm><indexterm><primary><filename>txzonemgr</filename> script</primary>
</indexterm><indexterm><primary><filename>zenity</filename> script</primary>
</indexterm><indexterm><primary>Labeled Zone Manager</primary><see><filename>txzonemgr</filename> script</see>
</indexterm><indexterm><primary>zones</primary><secondary><filename>/usr/sbin/txzonemgr</filename> script</secondary>
</indexterm><tasksummary><para>This script steps you through the tasks to properly configure, install,
initialize, and boot labeled zones. In the script, you name each zone, associate
the name with a label, install the packages to create a virtual OS, and then
boot the zone to start services in that zone. The script includes copy zone
and clone zone tasks. You can also halt a zone, change the state of a zone,
and add zone-specific network interfaces.</para><para>This script presents a dynamically-determined menu that displays only
valid choices for the current circumstances. For instance, if the status of
a zone is configured, the Install zone menu item is not displayed. Tasks that
are completed do not display in the list.</para>
</tasksummary><taskprerequisites><para>You are superuser.</para><para>If you plan to clone zones, you have completed the preparation for cloning
zones. If you plan to use your own security templates, you have created the
templates.</para>
</taskprerequisites><procedure><step><para>Open a terminal window in the global zone.</para>
</step><step><para>Run the <command>txzonemgr</command> script.</para><screen># <userinput>/usr/sbin/txzonemgr</userinput></screen><para>The script opens the  <literal>Labeled Zone Manager</literal> dialog
box. This <command>zenity</command> dialog box prompts you for the appropriate
tasks, depending on the current state of your installation.</para><para>To perform a task, you select the menu item, then press the Return key
or click OK. When you are prompted for text, type the text then press the
Return key or click OK.</para><tip><para>To view the current state of zone completion, click Return to Main
Menu in the Labeled Zone Manager.</para>
</tip>
</step>
</procedure>
</task><task id="txconf-netint-1"><title>Configure the Network Interfaces in Trusted Extensions</title><indexterm><primary>configuring</primary><secondary>network interfaces</secondary>
</indexterm><indexterm><primary>adding</primary><secondary>shared network interfaces</secondary>
</indexterm><tasksummary><note><para>If you are configuring your system to use DHCP, refer to the laptop
instructions in the Trusted Extensions section of <ulink url="http://opensolaris.org/os/community/security" type="text_url">OpenSolaris
Community: Security web page</ulink>.</para><para>In
the Solaris Express Community Edition, if you are configuring a system where each labeled zone is on its
own subnet, you can skip this step and continue with <olink targetptr="txconf-11" remap="internal">Name and Label the Zone</olink>. You add the network interfaces for each
labeled zone in <olink targetptr="txconf-84" remap="internal">Add a Network Interface to Route
an Existing Labeled Zone</olink>, after you have finished installing and customizing
the zones.</para>
</note><itemizedlist><para>In this task, you configure the networking in the global zone. You must
create exactly one <literal>all-zones</literal> interface. An <literal>all-zones</literal> interface
is shared by the labeled zones and the global zone. The shared interface is
used to route traffic between the labeled zones and the global zone. To configure
this interface, do one of the following:</para><listitem><para>Create a logical interface from a physical interface, then
share the physical interface.</para><para>This configuration is the simplest
to administer. Choose this configuration when your system has been assigned
two IP addresses. In this procedure, the logical interface becomes the global
zone's specific address, and the physical interface is shared between the
global zone and the labeled zones.</para>
</listitem><listitem><para>Share a physical interface</para><para>Choose this configuration
when your system has been assigned one IP address. In this configuration,
the physical interface is shared between the global zone and the labeled zones.</para>
</listitem><listitem><para>Share a virtual network interface, <literal>vni0</literal></para><para>Choose this configuration when you are configuring DHCP, or when each
subnetwork is at a different label. For a sample procedure, refer to the laptop
instructions in the Trusted Extensions section of <ulink url="http://opensolaris.org/os/community/security" type="text_url">OpenSolaris
Community: Security web page</ulink>.</para><para>In the Solaris Express Community Edition,
the loopback interface in Trusted Extensions is created as an all-zones interface.
Therefore, you do not need to create a <literal>vni0</literal> shared interface.</para>
</listitem>
</itemizedlist><para>To add zone-specific network interfaces, finish and verify zone creation
before adding the interfaces. For the procedure, see <olink targetptr="txconf-84" remap="internal">Add a Network Interface to Route an Existing Labeled Zone</olink>.</para>
</tasksummary><taskprerequisites><para>You are superuser in the global zone.</para><para>The Labeled Zone Manager is displayed. To open this GUI, see <olink targetptr="txconf-80" remap="internal">Run the txzonemgr Script</olink>.</para>
</taskprerequisites><procedure><step><para>In the Labeled Zone Manager, select Manage Network Interfaces
and click OK.</para><para>A list of interfaces is displayed.</para><note><para>In this example, the physical interface was assigned a host name
and an IP address during installation.</para>
</note>
</step><step><para>Select the physical interface.</para><para>A system with one interface
displays a menu similar to the following. The annotation is added for assistance:</para><screen>vni0                        Down<lineannotation>Virtual Network Interface</lineannotation>
eri0 global 10.10.9.9 cipso Up <lineannotation>Physical Interface</lineannotation></screen><substeps><step><para>Select the <literal>eri0</literal> interface.</para>
</step><step><para>Click OK</para>
</step>
</substeps>
</step><step><para>Select the appropriate task for this network interface.</para><para>You
are offered three options:</para><screen>View Template <lineannotation>Assign a label to the interface</lineannotation>
Share <lineannotation>Enable the global zone and labeled zones to use this interface</lineannotation>
Create Logical Interface <lineannotation>Create an interface to use for sharing</lineannotation></screen><stepalternatives><step><para>If your system has one IP address, go to <olink targetptr="txconf-1ip-1" remap="internal">Step&nbsp;4</olink>.</para>
</step><step><para>If your system has two IP addresses, go to <olink targetptr="txconf-2ip-1" remap="internal">Step&nbsp;5</olink>.</para>
</step>
</stepalternatives>
</step><step id="txconf-1ip-1"><para>On a system with one IP address, share the physical
interface.</para><para>In this configuration, the host's IP address applies
to all zones. Therefore, the host's address is the <literal>all-zones</literal> address.
This host cannot be used as a multilevel server. For example, users cannot
share files from this system. The system cannot be an LDAP proxy server, an
NFS home directory server, or a print server.</para><substeps><step><para>Select Share and click OK.</para>
</step><step><para>Click OK in the dialog box that displays the shared interface.</para><screen>eri0  all-zones  10.10.9.8  cipso  Up</screen><para>You are successful when the physical interface is an <literal>all-zones</literal> interface.
Continue with <olink targetptr="txconf-11" remap="internal">Name and Label the Zone</olink>.</para>
</step>
</substeps>
</step><step id="txconf-2ip-1"><para>On a system with two IP addresses, create a
logical interface.</para><para>Then, share the physical interface.</para><para>This is the simplest Trusted Extensions network configuration. In this configuration,
the main IP address can be used by other systems to reach any zone on this
system, and the logical interface is zone-specific to the global zone. The
global zone can be used as a multilevel server.</para><substeps><step><para>Select Create Logical Interface and click OK.</para><para>Dismiss
the dialog box that confirms the creation of a new logical interface.</para>
</step><step><para>Select Set IP address and click OK.</para>
</step><step><para>At the prompt, specify the host name for the logical interface
and click OK.</para><para>For example, specify <literal>machine1-services</literal> as
the host name for the logical interface. The name indicates that this host
offers multilevel services.</para>
</step><step><para>At the prompt, specify the IP address for the logical interface
and click OK.</para><para>For example, specify <literal>10.10.9.2</literal> as
the IP address for the logical interface.</para>
</step><step><para>Select the logical interface again and click OK.</para>
</step><step><para>Select Bring Up and click OK.</para><para>The interface is displayed
as <literal>Up</literal>.</para><screen>eri0    global       10.10.9.1   cipso   Up
eri0:1  global       10.10.9.2   cipso   Up</screen>
</step><step><para>Share the physical interface.</para><substeps><step><para>Select the physical interface and click OK.</para>
</step><step><para>Select Share and click OK.</para><screen>eri0    all-zones    10.10.9.1   cipso   Up
eri0:1  global       10.10.9.2   cipso   Up</screen>
</step>
</substeps>
</step>
</substeps><para>You are successful when at least one interface is an <literal>all-zones</literal> interface.</para>
</step>
</procedure><example id="txconf-38"><title>Viewing the <filename>/etc/hosts</filename> File on a System With a
Shared Logical Interface</title><para>On a system where the global zone has a unique interface and labeled
zones share a second interface with the global zone, the <filename>/etc/hosts</filename> file
appears similar to the following:</para><screen># <userinput>cat /etc/hosts</userinput>
...
127.0.0.1  localhost
192.168.0.11 machine1 loghost
192.168.0.12 machine1-services </screen><para>In the default configuration, the <filename>tnrhdb</filename> file appears
similar to the following:</para><screen># <userinput>cat /etc/security/tsol/tnrhdb</userinput>
...
127.0.0.1:cipso
192.168.0.11:cipso
192.168.0.12:cipso
0.0.0.0:admin_low</screen><para>If the <literal>all-zones</literal> interface is not in the <filename>tnrhdb</filename> file, the interface defaults to <literal>cipso</literal>.</para>
</example><example id="txconf-oneip-1"><title>Displaying the Shared Interface on a Trusted Extensions System With One
IP Address</title><indexterm><primary>addresses</primary><secondary>specifying one IP address per system</secondary>
</indexterm><indexterm><primary>zones</primary><secondary>specifying one IP address for all zones</secondary>
</indexterm><para>In this example, the administrator is not planning to use the system
as a multilevel server. To conserve IP addresses, the global zone is configured
to share its IP address with every labeled zone.</para><para>The administrator selects Share for the <literal>hme0</literal> interface
on the system. The software configures all zones to have logical NICs. These
logical NICs share a single physical NIC in the global zone.</para><para>The administrator runs the <userinput>ifconfig -a</userinput> command
to verify that the physical interface <literal>hme0</literal> on network interface <literal>192.168.0.11</literal> is shared. The value <literal>all-zones</literal> is
displayed:</para><screen> lo0: flags=2001000849&lt;UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL&gt; mtu 8232 index 1
         inet 127.0.0.1 netmask ff000000
 hme0: flags=1000843&lt;BROADCAST,RUNNING,MULTICAST,IPv4&gt; mtu 1500 index 2
         all-zones
         inet 192.168.0.11 netmask fffffe00 broadcast 192.168.0.255</screen><para>In the Solaris Express Community Edition,
the loopback interface in Trusted Extensions is created as an all-zones interface.</para><screen> lo0: flags=2001000849&lt;UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL&gt; mtu 8232 index 1
         all-zones
         inet 127.0.0.1 netmask ff000000
 hme0: flags=1000843&lt;BROADCAST,RUNNING,MULTICAST,IPv4&gt; mtu 1500 index 2
         all-zones
         inet 192.168.0.11 netmask fffffe00 broadcast 192.168.0.255</screen><para>The administrator also examines the contents of the <filename>/etc/hostname.hme0</filename> file:</para><screen>192.168.0.11 all-zones</screen>
</example>
</task><task id="txconf-11"><title>Name and Label the Zone</title><indexterm><primary>labels</primary><secondary>specifying for zones</secondary>
</indexterm><indexterm><primary>zones</primary><secondary>specifying labels</secondary>
</indexterm><indexterm><primary>names</primary><secondary>specifying for zones</secondary>
</indexterm><indexterm><primary>zones</primary><secondary>specifying names</secondary>
</indexterm><indexterm><primary>naming</primary><secondary>zones</secondary>
</indexterm><indexterm><primary>labeling</primary><secondary>zones</secondary>
</indexterm><tasksummary><para>You do not have to create a zone for every label in your <filename>label_encodings</filename> file, but you can. The administrative GUIs enumerate the labels
that can have zones created for them on this system.</para>
</tasksummary><taskprerequisites><para>You are superuser in the global zone. The Labeled Zone Manager dialog
box is displayed. To open this GUI, see <olink targetptr="txconf-80" remap="internal">Run the
txzonemgr Script</olink>. You have configured the network interfaces in the
global zone.</para><itemizedlist><para>You have created any security templates that you need. A security template
defines, among other attributes, the label range that can be assigned to a
network interface. The default security templates might satisfy your needs.</para><listitem><para>For an overview of security templates, see <olink targetptr="tnetov-40" remap="internal">Network Security Attributes in Trusted Extensions</olink>.</para>
</listitem><listitem><para>To use the Solaris Management Console to create security templates, see <olink targetptr="managetnet-3" remap="internal">Configuring Trusted Network Databases (Task Map)</olink>.</para>
</listitem>
</itemizedlist>
</taskprerequisites><procedure><step><para><indexterm><primary>Create a new zone menu item</primary></indexterm><indexterm><primary>installation menu</primary><secondary>Create a new zone </secondary></indexterm>In the Labeled Zone Manager, select Create
a new zone and click OK.</para><para>You are prompted for a name.</para><substeps><step><para>Type the name for the zone.</para><tip><para>Give the zone a name that is similar to the zone's label. For example,
the name of a zone whose label is <constant>CONFIDENTIAL: RESTRICTED</constant> would
be <filename>restricted</filename>.</para>
</tip><para>For example, the default <filename>label_encodings</filename> file contains
the following labels:</para><screen>PUBLIC
CONFIDENTIAL: INTERNAL USE ONLY
CONFIDENTIAL: NEED TO KNOW
CONFIDENTIAL: RESTRICTED
SANDBOX: PLAYGROUND
MAX LABEL</screen><itemizedlist><para>Although you could create one zone per label, consider creating the
following zones:</para><listitem><para>On a system for all users, create one zone for the <constant>PUBLIC</constant> label and three zones for the <constant>CONFIDENTIAL</constant> labels.</para>
</listitem><listitem><para>On a system for developers, create a zone for the <constant>SANDBOX:
PLAYGROUND</constant> label. Because <constant>SANDBOX: PLAYGROUND</constant> is
defined as a disjoint label for developers, only systems that developers use
need a zone for this label.</para>
</listitem><listitem><para>Do not create a zone for the <constant>MAX LABEL</constant> label,
which is defined to be a clearance.</para>
</listitem>
</itemizedlist>
</step><step><para>Click OK.</para><para>The dialog box displays <replaceable>zone-name</replaceable><literal>:configured</literal> above a list of tasks.</para>
</step>
</substeps>
</step><step><para>To label the zone, choose one of the following:</para><stepalternatives><step><para>If you are using a customized <filename>label_encodings</filename> file,
label the zone by using the Trusted Network Zones tool.</para><substeps><step><para>Open the Trusted Network Zones tool in the Solaris Management Console.</para><substeps><step><para><indexterm><primary>Solaris Management Console</primary><secondary>using Trusted Network Zone Configuration tool</secondary></indexterm><indexterm><primary>Trusted Network Zones  tool</primary><secondary>assigning labels to named zones</secondary></indexterm><indexterm><primary>labels</primary><secondary>assigning to named zones</secondary></indexterm><indexterm><primary>zones</primary><secondary>associating zone names with labels</secondary></indexterm>Start the Solaris Management Console.</para><screen># <userinput>/usr/sbin/smc &amp;</userinput></screen>
</step><step><para>Open the Trusted Extensions toolbox for the local system.</para><substeps><step><para>Choose Console &rarr; Open Toolbox.</para>
</step><step><para>Select the toolbox that is named This Computer (<replaceable>this-host</replaceable>: <literal>Scope=Files, Policy=TSOL</literal>).</para>
</step><step><para>Click Open.</para>
</step>
</substeps>
</step><step><para>Under System Configuration, navigate to Computers and Networks.</para><para>Provide a password when prompted.</para>
</step><step><para>Double-click the Trusted Network Zones  tool.</para>
</step>
</substeps>
</step><step><para>For each zone, associate the appropriate label with the zone name.</para><substeps><step><para>Choose Action  &rarr; Add Zone Configuration.</para><para>The
dialog box displays the name of a zone that does not have an assigned label.</para>
</step><step><para>Look at the zone name, then click Edit.</para>
</step><step><para>In the Label Builder, click the appropriate label for the zone
name.</para><para>If you click the wrong label, click the label again to deselect
it, then click the correct label.</para>
</step><step><para>Save the assignment.</para><para>Click OK in the Label Builder,
then click OK in the Trusted Network Zones Properties dialog box.</para>
</step>
</substeps><para>You are finished when every zone that you want is listed in the panel,
or the Add Zone Configuration menu item opens a dialog box that does not have
a value for Zone Name.</para>
</step>
</substeps>
</step><step><para>If you are using the default <filename>label_encodings</filename> file,
use the Labeled Zone Manager.</para><para>Click Select Label menu item and
OK to display the list of available labels.</para><substeps><step><para>Select the label for the zone.</para><para>For a zone that is
named <literal>public</literal>, you would select the label <constant>PUBLIC</constant> from
the list.</para>
</step><step><para>Click OK.</para><para>A list of tasks is displayed.</para>
</step>
</substeps>
</step>
</stepalternatives>
</step>
</procedure>
</task><task id="txconf-install-1"><title>Install the Labeled Zone</title><indexterm><primary>zones</primary><secondary>installing</secondary>
</indexterm><indexterm><primary>installing</primary><secondary>zones</secondary>
</indexterm><taskprerequisites><para>You are superuser in the global zone. The zone is configured, and has
an assigned network interface.</para><para>The Labeled Zone Manager dialog box is displayed with the subtitle <replaceable>zone-name</replaceable><literal>:configured</literal>. To open this GUI, see <olink targetptr="txconf-80" remap="internal">Run the txzonemgr Script</olink>.</para>
</taskprerequisites><procedure><step id="txconf-scratch-1"><para>From the Labeled Zone Manager, select Install
and click OK.</para><caution><para>This process takes some time to finish. Do not perform other
tasks while this task is completing.</para>
</caution><para>The system copies packages from the global zone to the non-global zone.
This task installs a labeled virtual operating system in the zone. To continue
the example, this task installs the <filename>public</filename> zone. The
GUI displays output similar to the following.</para><screen># Labeled Zone Manager: Installing <replaceable>zone-name</replaceable> zone
Preparing to install zone &lt;<replaceable>zonename</replaceable>&gt;
Creating list of files to copy from the global zone
Copying &lt;<replaceable>total</replaceable>&gt; files to the zone
Initializing zone product registry
Determining zone package initialization order.
Preparing to initialize &lt;<replaceable>subtotal</replaceable>&gt; packages on the zone.
Initializing package &lt;<replaceable>number</replaceable>&gt; of &lt;<replaceable>subtotal</replaceable>&gt;: percent complete: <replaceable>percent</replaceable>

Initialized &lt;<replaceable>subtotal</replaceable>&gt; packages on zone.
Zone &lt;<replaceable>zonename</replaceable>&gt; is initialized.
The file /zone/internal/root/var/sadm/system/logs/install_log 
contains a log of the zone installation.</screen><note><para>Messages such as <literal>cannot create ZFS dataset zone/<replaceable>zonename</replaceable>: dataset already exists</literal> are informational.
The zone uses the existing dataset.</para>
</note><para>When the installation is complete, you are prompted for the name of
the host. A name is supplied.</para>
</step><step><para>Accept the name of the host.</para><para>The dialog box displays <replaceable>zone-name</replaceable><literal>:installed</literal> above a list of tasks.</para>
</step>
</procedure><taskrelated role="troubleshooting"><para><indexterm><primary>troubleshooting</primary><secondary><literal>Installation of these packages generated errors: SUNW</literal><replaceable>pkgname</replaceable></secondary></indexterm><indexterm><primary>zones</primary><secondary>troubleshooting installation</secondary></indexterm>If warnings that are similar to the following
are displayed: <literal>Installation of these packages generated errors: SUNW</literal><replaceable>pkgname</replaceable>, read the install log and finish installing the packages.</para>
</taskrelated>
</task><task id="txconf-76"><title>Boot the Labeled Zone</title><indexterm><primary>zones</primary><secondary>booting</secondary>
</indexterm><indexterm><primary>booting</primary><secondary>zones</secondary>
</indexterm><indexterm><primary>starting</primary><secondary>zones</secondary>
</indexterm><taskprerequisites><para>You are superuser in the global zone. The zone is installed, and has
an assigned a network interface. </para><para>The Labeled Zone Manager dialog box is displayed with the subtitle <replaceable>zone-name</replaceable><literal>:installed</literal>. To open this GUI, see <olink targetptr="txconf-80" remap="internal">Run the txzonemgr Script</olink>.</para>
</taskprerequisites><procedure><step><para>In the Labeled Zone manager, select Zone Console and click OK.</para><para>A separate console window appears for the current labeled zone.</para>
</step><step><para>Select Boot.</para><para><indexterm><primary>Zone Console </primary><secondary>output</secondary></indexterm><indexterm><primary>zones</primary><secondary>showing zone activity</secondary></indexterm><indexterm><primary>installation menu</primary><secondary>Zone Console</secondary></indexterm>The Zone Terminal
Console tracks the progress of booting the zone. If the zone is created from
scratch, messages that are similar to the following appear in the console:</para><screen>[Connected to zone 'public' console]

[NOTICE: Zone booting up]
...
Hostname: <replaceable>zone-name</replaceable>
Loading smf(5) service descriptions: <replaceable>number</replaceable>/<replaceable>total</replaceable>
Creating new rsa public/private host key pair
Creating new dsa public/private host key pair

rebooting system due to change(s) in /etc/default/init

[NOTICE: Zone rebooting]</screen><caution><para>Do not perform other tasks while this task is completing.</para>
</caution>
</step>
</procedure><taskrelated role="troubleshooting"><para>Sometimes, error messages are displayed and the zone does not reboot.
In the Zone Terminal Console, press the Return key. If you are prompted to
type <literal>y</literal> to reboot, type <literal>y</literal> and press the
Return key. The zone reboots.</para>
</taskrelated><taskrelated role="additional-action"><para>If this zone was copied or cloned from another zone, continue with <olink targetptr="txconf-74" remap="internal">Verify the Status of the Zone</olink>.</para><para>If this zone is the first zone, continue with <olink targetptr="txconf-48" remap="internal">Customize the Labeled Zone</olink>.</para>
</taskrelated>
</task><task id="txconf-74"><title>Verify the Status of the Zone</title><indexterm><primary>zones</primary><secondary>verifying status</secondary>
</indexterm><indexterm><primary>verifying</primary><secondary>zone status</secondary>
</indexterm><tasksummary><note><para>The X server runs in the global zone. Each labeled zone must be
able to connect with the global zone to use the X server. Therefore, zone
networking must work before a zone can be used. For background information,
see <olink targetptr="ovw-12" remap="internal">Planning for Multilevel Access</olink>.</para>
</note>
</tasksummary><procedure><step><para>Verify that the zone has been completely started.</para><substeps><step><para>In the <replaceable>zone-name</replaceable>: Zone Terminal Console,
log in as root.</para><screen><replaceable>hostname</replaceable> console login: <userinput>root</userinput>
Password: <lineannotation>Type root password</lineannotation></screen>
</step><step><para>In the Zone Terminal Console, verify that critical services are
running.</para><screen># <userinput>svcs -xv</userinput>
svc:/application/print/server:default (LP print server)
 State: disabled since Tue Oct 10 10:10:10 2006
Reason: Disabled by an administrator.
   See: http://sun.com/msg/SMF-8000-05
   See: lpsched(1M)
...</screen><para>The <literal>sendmail</literal> and <literal>print</literal> services
are not critical services.</para>
</step><step><para>Verify that the zone has a valid IP address.</para><screen># <userinput>ifconfig -a</userinput></screen><para>For example, the following output shows an IP address for the <literal>hme0</literal> interface.</para><screen># ...
 <userinput>hme0</userinput>: flags=1000843&lt;BROADCAST,RUNNING,MULTICAST,IPv4&gt; mtu 1500 index 2
         <userinput>all-zones</userinput>
         inet <userinput>192.168.0.11</userinput> netmask fffffe00 broadcast 192.168.0.255</screen>
</step><step performance="optional"><para>Verify that the zone can communicate with
the global zone.</para><substeps><step><para>Set the <systemitem class="resource">DISPLAY</systemitem> variable
to point to the X server</para><screen># DISPLAY=<replaceable>global-zone-hostname</replaceable>:<replaceable>n</replaceable>.<replaceable>n</replaceable>
# export DISPLAY</screen>
</step><step><para>From the terminal window, display a GUI.</para><para>For example,
display a clock.</para><screen># <userinput>/usr/openwin/bin/xclock</userinput></screen><para>If the clock at the label of the zone does not appear, the zone networking
has not been configured correctly. For debugging suggestions, see <olink targetptr="labeledzonecannotaccessxserver" remap="internal">Labeled Zone Is Unable to Access
the X Server</olink>.</para>
</step><step><para>Close the GUI before continuing.</para>
</step>
</substeps>
</step>
</substeps>
</step><step id="txconf-console-1"><para>From the global zone, check the status of
the labeled zones.</para><screen># <userinput>zoneadm list -v</userinput>
ID NAME         STATUS         PATH                BRAND   IP
 0 global       running        /                   native  shared
 3 internal     running        /zone/internal      native  shared
 4 needtoknow   running        /zone/needtoknow    native  shared
 5 restricted   running        /zone/restricted    native  shared</screen>
</step>
</procedure><taskrelated role="additional-action"><para>You have completed configuring the labeled zone. To add zone-specific
network interfaces to the zones or to establish default routing per labeled
zone, continue with <olink targetptr="txconf-98" remap="internal">Adding Network Interfaces
and Routing to Labeled Zones</olink>. Otherwise, continue with <olink targetptr="txconf-14" remap="internal">Creating Roles and Users in Trusted Extensions</olink>.</para>
</taskrelated>
</task><task id="txconf-48"><title>Customize the Labeled Zone</title><indexterm><primary>zones</primary><secondary>customizing</secondary>
</indexterm><tasksummary><para>If you are going to clone zones or copy zones, this procedure configures
a zone to be a template for other zones. In addition, this procedure configures
a zone that has not been created from a template for use.</para>
</tasksummary><taskprerequisites><para>You are superuser in the global zone. You have completed <olink targetptr="txconf-74" remap="internal">Verify the Status of the Zone</olink>.</para>
</taskprerequisites><procedure><step><para>In the Zone Terminal Console, disable services that are unnecessary
in a labeled zone.</para><para>If you are copying or cloning this zone, the
services that you disable are disabled in the new zones. The services that
are online on your system depend on the service manifest for the zone. Use
the <literal>netservices limited</literal> command to turn off services that
labeled zones do not need.</para><substeps><step><para>Remove many unnecessary services.</para><screen># <userinput>netservices limited</userinput></screen>
</step><step><para>List the remaining services.</para><screen># <userinput>svcs</userinput>
...
STATE        STIME      FMRI
online       13:05:00   svc:/application/graphical-login/cde-login:default
...</screen>
</step><step><para>Disable graphical login.</para><screen># <userinput>svcadm disable svc:/application/graphical-login/cde-login</userinput>
# <userinput>svcs cde-login</userinput>
STATE        STIME      FMRI
disabled     13:06:22   svc:/application/graphical-login/cde-login:default</screen>
</step>
</substeps><para>For information about the service management framework, see the <olink targetdoc="group-refman" targetptr="smf-5" remap="external"><citerefentry><refentrytitle>smf</refentrytitle><manvolnum>5</manvolnum></citerefentry></olink> man page.</para>
</step><step><para><indexterm><primary>zones</primary><secondary>halting</secondary></indexterm>In the Labeled Zone Manager, select Halt to halt the zone.</para>
</step><step><para>Before continuing, verify that the zone is shut down.</para><para>In
the <replaceable>zone-name</replaceable>: Zone Terminal Console, the following
message indicates that the zone is shut down.</para><screen>[ NOTICE: Zone halted]</screen><para>If you are not copying or cloning this zone, create the remaining zones
in the way that you created this first zone. Otherwise, continue with the
next step.</para>
</step><step><para>If you are using this zone as a template for other zones, do the
following:</para><substeps><step><para>Remove the <filename>auto_home_</filename><replaceable>zone-name</replaceable> file.</para><para>In a terminal window in the global zone, remove this file from
the <replaceable>zone-name</replaceable> zone.</para><screen># cd /zone/<replaceable>zone-name</replaceable>/root/etc
# ls auto_home*
auto_home  auto_home_<replaceable>zone-name</replaceable>
# rm auto_home_<replaceable>zone-name</replaceable></screen><para>For example, if the <literal>public</literal> zone is the template for
cloning other zones, remove the <filename>auto_home_public</filename> file:</para><screen># <userinput>cd /zone/public/root/etc</userinput>
# <userinput>rm auto_home_public</userinput></screen>
</step><step><para>If you plan to clone this zone, create the ZFS snapshot in the
next step, then continue with <olink targetptr="txconf-54" remap="internal">Copy or Clone a
Zone in Trusted Extensions</olink>.</para>
</step><step><para>If you plan to copy this zone, complete <olink targetptr="txconf-verboot-1" remap="internal">Step&nbsp;6</olink>, then continue with <olink targetptr="txconf-54" remap="internal">Copy or Clone a Zone in Trusted Extensions</olink>.</para>
</step>
</substeps>
</step><step id="txconf-snap-1"><para>To create a zone template for cloning the remaining
zones, select Create Snapshot and click OK.</para><caution><para>The zone for the snapshot must be in a ZFS file system. You
created a ZFS file system for the zone in <olink targetptr="txconf-42" remap="internal">Create
ZFS Pool for Cloning Zones</olink>.</para>
</caution>
</step><step id="txconf-verboot-1"><para>To verify that the customized zone is still
usable, select Boot from the Labeled Zone Manager.</para><para><indexterm><primary>Zone Terminal Console action</primary><secondary>output</secondary></indexterm><indexterm><primary>zones</primary><secondary>showing zone activity</secondary></indexterm><indexterm><primary>administrative actions</primary><secondary>Zone Terminal Console</secondary></indexterm>The Zone Terminal Console tracks the
progress of booting the zone. Messages that are similar to the following appear
in the console:</para><screen>[Connected to zone 'public' console]

[NOTICE: Zone booting up]
...
Hostname: <replaceable>zonename</replaceable></screen><para>Press the Return key for a login prompt. You can log in as root.</para>
</step>
</procedure>
</task><task id="txconf-54"><title>Copy or Clone a Zone in Trusted Extensions</title><indexterm><primary>Create a new zone menu item</primary>
</indexterm><indexterm><primary>installation menu</primary><secondary>Create a new zone</secondary>
</indexterm><taskprerequisites><para>You have completed <olink targetptr="txconf-48" remap="internal">Customize the Labeled
Zone</olink>.</para><para>The Labeled Zone Manager dialog box is displayed. To open this GUI,
see <olink targetptr="txconf-80" remap="internal">Run the txzonemgr Script</olink>.</para>
</taskprerequisites><procedure><step id="txconf-create2-2"><para>Create the zone.</para><para>For details,
see <olink targetptr="txconf-11" remap="internal">Name and Label the Zone</olink>.</para>
</step><step><para>Continue with your zone creation strategy by choosing one of the
following methods: </para><para>You will repeat these steps for every new
zone.</para><stepalternatives><step><para>Copy the zone that you just labeled.</para><substeps><step><para>In the Labeled Zone Manager, select Copy and click OK.</para>
</step><step><para>Select the zone template and click OK.</para><para>A window displays
the copying process. When the process completes, the zone is installed.</para><para>If the Labeled Zone Manager displays <replaceable>zone-name</replaceable><literal>:configured</literal>, continue with the next step. Otherwise, continue with <olink targetptr="txconf-step-zconsole" remap="internal">Step&nbsp;e</olink>.</para>
</step><step><para>Select the menu item Select another zone, and click OK.</para>
</step><step><para>Select the newly installed zone and click OK.</para>
</step><step id="txconf-step-zconsole"><para>Complete <olink targetptr="txconf-76" remap="internal">Boot
the Labeled Zone</olink>.</para>
</step><step><para>Complete <olink targetptr="txconf-74" remap="internal">Verify the Status of the
Zone</olink>.</para>
</step>
</substeps>
</step><step><para>Clone the zone that you just labeled.</para><substeps><step><para>In the Labeled Zone Manager, select Clone and click OK.</para>
</step><step><para>Select a ZFS snapshot from the list and click OK.</para><para>For
example, if you created a snapshot from <literal>public</literal>, select
the <literal>zone/public@snapshot</literal>.</para><para>When the cloning process completes, the zone is installed. Continue
with <olink targetptr="txconf-step-zconsole1" remap="internal">Step&nbsp;c</olink>.</para>
</step><step id="txconf-step-zconsole1"><para>Open a Zone Console and boot the zone.</para><para>For instructions, see <olink targetptr="txconf-76" remap="internal">Boot the Labeled
Zone</olink>.</para>
</step><step><para>Complete <olink targetptr="txconf-74" remap="internal">Verify the Status of the
Zone</olink>.</para>
</step>
</substeps>
</step>
</stepalternatives>
</step>
</procedure><taskrelated role="additional-action"><itemizedlist><listitem><para>When you have completed <olink targetptr="txconf-74" remap="internal">Verify
the Status of the Zone</olink> for every zone, and you want each zone to be
on a separate physical network, continue with <olink targetptr="txconf-84" remap="internal">Add
a Network Interface to Route an Existing Labeled Zone</olink>.</para>
</listitem><listitem><para>If you have not yet created roles, continue with <olink targetptr="txconf-14" remap="internal">Creating Roles and Users in Trusted Extensions</olink>.</para>
</listitem><listitem><para>If you have already created roles, continue with <olink targetptr="txconf-50" remap="internal">Creating Home Directories in Trusted Extensions</olink>.</para>
</listitem>
</itemizedlist>
</taskrelated>
</task>
</sect1><sect1 id="txconf-98"><title>Adding Network Interfaces and Routing to Labeled
Zones</title><para>The following tasks support environments where each zone is connected
to a separate physical network.</para><informaltable frame="topbot" pgwide="1"><tgroup cols="3" colsep="1" rowsep="1"><colspec colname="colspec2" colwidth="22.20*"/><colspec colname="colspec1" colwidth="45.03*"/><colspec colname="colspec0" colwidth="31.76*"/><thead><row><entry><para>Task</para>
</entry><entry><para>Description</para>
</entry><entry><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row><entry><para>EITHER 1a: Add a network interface to each labeled zone and use the
global zone to reach the external network.</para>
</entry><entry><para>Connects each labeled zone to a separate physical network. The labeled
zones use the network routing that the global zone provides.</para>
</entry><entry><para><olink targetptr="txconf-84" remap="internal">Add a Network Interface to Route an Existing
Labeled Zone</olink></para>
</entry>
</row><row><entry><para>OR 1b: Add a network interface to each labeled zone with a default route.</para>
</entry><entry><para>Connects each zone to a separate physical network. The labeled zones
do <emphasis>not</emphasis> use the global zone for routing.</para>
</entry><entry><para><olink targetptr="txconf-96" remap="internal">Add a Network Interface That Does Not Use
the Global Zone to Route an Existing Labeled Zone</olink></para>
</entry>
</row><row><entry><para>2. Create a name service cache in each labeled zone.</para>
</entry><entry><para>Configures a name service daemon for each zone.</para>
</entry><entry><para><olink targetptr="txconf-94" remap="internal">Configure a Name Service Cache in Each
Labeled Zone</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable><task id="txconf-84"><title>Add a Network Interface to Route an Existing Labeled
Zone</title><indexterm><primary>zones</primary><secondary>adding network interface</secondary>
</indexterm><indexterm><primary>Trusted Extensions network</primary><secondary>adding zone-specific interface</secondary>
</indexterm><indexterm><primary>adding</primary><secondary>zone-specific network interface</secondary>
</indexterm><tasksummary><para>This procedure adds zone-specific network interfaces to existing labeled
zones. This configuration supports environments where each labeled zone is
connected to a separate physical network. The labeled zones use the network
routing that the global zone provides.</para><note><para>The global zone must configure an IP address for every subnet
in which a non-global zone address is configured.</para>
</note>
</tasksummary><taskprerequisites><para>You are superuser in the global zone.</para><para>For every zone, you have completed the tasks in <olink targetptr="txconf-20" remap="internal">Creating Labeled Zones</olink>.</para>
</taskprerequisites><procedure><step><para>In the global zone, type the IP addresses and hostnames for the
additional network interfaces into the <filename>/etc/hosts</filename> file.</para><para>Use a standard naming convention, such as adding <replaceable>-zone-name</replaceable> to
the name of the host.</para><screen>## /etc/hosts in global zone
10.10.8.2   <replaceable>hostname-zone-name1</replaceable>
10.10.8.3   <replaceable>hostname-global-name1</replaceable>
10.10.9.2   <replaceable>hostname-zone-name2</replaceable>
10.10.9.3   <replaceable>hostname-global-name2</replaceable></screen>
</step><step><para>For the network for each interface, add entries to the <filename>/etc/netmasks</filename> file.</para><screen>## /etc/netmasks in global zone
10.10.8.0 255.255.255.0
10.10.9.0 255.255.255.0</screen><para>For more information, see the <olink targetdoc="group-refman" targetptr="netmasks-4" remap="external"><citerefentry><refentrytitle>netmasks</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink> man page.</para>
</step><step><para>In the global zone, plumb the zone-specific physical interfaces.</para><substeps><step><para>Identify the physical interfaces that are already plumbed.</para><screen># <userinput>ifconfig -a</userinput></screen>
</step><step><para>Configure the global zone addresses on each interface.</para><screen># ifconfig <replaceable>interface-nameN1</replaceable> plumb
# ifconfig <replaceable>interface-nameN1</replaceable> 10.10.8.3 up
# ifconfig <replaceable>interface-nameN2</replaceable> plumb
# ifconfig <replaceable>interface-nameN2</replaceable> 10.10.9.3 up</screen>
</step><step><para>For each global zone address, create a <literal>hostname.</literal><replaceable>interface-nameN</replaceable> file.</para><screen># /etc/hostname.<replaceable>interface-nameN1</replaceable>
10.10.8.3
# /etc/hostname.<replaceable>interface-nameN2</replaceable>
10.10.9.3</screen>
</step>
</substeps><para>The global zone addresses are configured immediately upon system startup.
The zone-specific addresses are configured when the zone is booted.</para>
</step><step><para>Assign a security template to each zone-specific network interface.</para><para>If the gateway to the network is not configured with labels, assign
the <literal>admin_low</literal> security template. If the gateway to the
network is labeled, assign a <literal>cipso</literal> security template. </para><para>You can create security templates of host type <literal>cipso</literal> that
reflect the label of every network. For the procedures to create and assign
the templates, see <olink targetptr="managetnet-3" remap="internal">Configuring Trusted Network Databases (Task Map)</olink>.</para>
</step><step><para>Halt every labeled zone to which you plan to add a zone-specific
interface.</para><screen># zoneadm -z <replaceable>zone-name</replaceable> halt</screen>
</step><step><para>Start the Labeled Zone Manager.</para><screen># <userinput>/usr/sbin/txzonemgr</userinput></screen>
</step><step><para>For each zone where you want to add a zone-specific interface,
do the following:</para><substeps><step><para>Select the zone.</para>
</step><step><para>Select Add Network.</para>
</step><step><para>Name the network interface.</para>
</step><step><para>Type the IP address of the interface.</para>
</step>
</substeps>
</step><step><para>In the Labeled Zone Manager for every completed zone, select Zone
Console.</para>
</step><step><para>Select Boot.</para>
</step><step><para>In the Zone Console, verify that the interfaces have been created.</para><screen># <userinput>ifconfig -a</userinput></screen>
</step><step><para>Verify that the zone has a route to the gateway for the subnet.</para><screen># <userinput>netstat -rn</userinput></screen>
</step>
</procedure><taskrelated role="troubleshooting"><itemizedlist><para>To debug zone configuration, see the following:</para><listitem><para><olink targetdoc="group-sa" targetptr="gclkx" remap="external">Chapter 28, <citetitle remap="chapter">Troubleshooting Miscellaneous Solaris Zones Problems,</citetitle> in <citetitle remap="book">System Administration Guide:  Virtualization Using the Solaris Operating System</citetitle></olink></para>
</listitem><listitem><para><olink targetptr="txconf-trouble-1" remap="internal">Troubleshooting Your Trusted
Extensions Configuration</olink></para>
</listitem><listitem><para><olink targetptr="managetnet-2" remap="internal">Troubleshooting the Trusted Network (Task Map)</olink></para>
</listitem>
</itemizedlist>
</taskrelated>
</task><task id="txconf-96"><title>Add a Network Interface That Does Not
Use the Global Zone to Route an Existing Labeled Zone</title><indexterm><primary>zones</primary><secondary>specifying default routes</secondary>
</indexterm><indexterm><primary>zones</primary><secondary>isolating with default routes</secondary>
</indexterm><indexterm><primary>Trusted Extensions network</primary><secondary>specifying default routes for labeled zones</secondary>
</indexterm><indexterm><primary>adding</primary><secondary>default routes for labeled zones</secondary>
</indexterm><indexterm><primary>routing</primary><secondary>specifying default routes for labeled zones</secondary>
</indexterm><indexterm><primary>default routes</primary><secondary>specifying for labeled zones</secondary>
</indexterm><tasksummary><para>This procedure sets zone-specific default routes for existing labeled
zones. In this configuration, the labeled zones do <emphasis>not</emphasis> use
the global zone for routing.</para><para>The labeled zone must be plumbed in the global zone before the zone
is booted. However, to isolate the labeled zone from the global zone, the
interface must be in the <literal>down</literal> state when the zone is booted.
For more information, see <olink targetdoc="group-sa" targetptr="z.config.ov-1" remap="external">Chapter 17, <citetitle remap="chapter">Non-Global Zone Configuration (Overview),</citetitle> in <citetitle remap="book">System Administration Guide:  Virtualization Using the Solaris Operating System</citetitle></olink>.</para><note><para>A unique default route must be configured for every non-global
zone that is booted.</para>
</note>
</tasksummary><taskprerequisites><para>You are superuser in the global zone.</para><para>For every zone, you have completed the tasks in <olink targetptr="txconf-20" remap="internal">Creating Labeled Zones</olink>. You are using either
the <literal>vni0</literal> interface or the <literal>lo0</literal> interface
to connect the labeled zones to the global zone.</para>
</taskprerequisites><procedure><step><para>For every network interface, determine its IP address, netmask,
and default router.</para><para>Use the <command>ifconfig -a</command> command
to determine the IP address and netmask. Use the <command>zonecfg -z zonename
info net</command> command to determine if a default router has been assigned.</para>
</step><step><para>Create an empty <filename>/etc/hostname.<replaceable>interface</replaceable></filename> file
for each labeled zone.</para><screen># touch /etc/hostname.<replaceable>interface</replaceable>
# touch /etc/hostname.<replaceable>interface</replaceable>:<replaceable>n</replaceable></screen><para>For more information, see the <olink targetdoc="group-refman" targetptr="netmasks-4" remap="external"><citerefentry><refentrytitle>netmasks</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink> man page.</para>
</step><step><para>Plumb the network interfaces of the labeled zones.</para><screen># ifconfig <replaceable>zone1-network-interface</replaceable> plumb
# ifconfig <replaceable>zone2-network-interface</replaceable> plumb</screen>
</step><step><para>Verify that the labeled zone's interfaces are in the <literal>down</literal> state.</para><screen># <userinput>ifconfig -a</userinput>
<replaceable>zone1-network-interface</replaceable> <replaceable>zone1-IP-address</replaceable> down
<replaceable>zone2-network-interface</replaceable> <replaceable>zone2-IP-address</replaceable> down</screen><para>The zone-specific addresses are configured when the zone is booted.</para>
</step><step><para>For the network for each interface, add entries to the <filename>/etc/netmasks</filename> file.</para><screen>## /etc/netmasks in global zone
192.168.2.0 255.255.255.0
192.168.3.0 255.255.255.0</screen><para>For more information, see the <olink targetdoc="group-refman" targetptr="netmasks-4" remap="external"><citerefentry><refentrytitle>netmasks</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink> man page.</para>
</step><step><para>Assign a security template to each zone-specific network interface.</para><para>Create security templates of host type <literal>cipso</literal> that
reflect the label of every network. To create and assign the templates, see <olink targetptr="managetnet-3" remap="internal">Configuring Trusted Network Databases (Task Map)</olink>.</para>
</step><step><para>Run the <filename>txzonemgr</filename> script, and open a separate
terminal window.</para><para>In the Labeled Zone Manager, you will add the
network interfaces for the labeled zones. In the terminal window, you will
display information about the zone and set the default router.</para>
</step><step><para>For every zone to which you are going to add a zone-specific network
interface and router, complete the following steps:</para><substeps><step><para>In the terminal window, halt the zone.</para><screen># zoneadm -z <replaceable>zone-name</replaceable> halt</screen>
</step><step><para>In the Labeled Zone Manager, do the following:</para><substeps><step><para>Select the zone.</para>
</step><step><para>Select Add Network.</para>
</step><step><para>Name the network interface.</para>
</step><step><para>Type the IP address of the interface.</para>
</step><step><para>In the terminal window, verify the zone configuration.</para><screen># <userinput>zonecfg -z <replaceable>zone-name</replaceable> info net</userinput>
net:   address: <replaceable>IP-address</replaceable>
       physical: <replaceable>zone-network-interface</replaceable>
       defrouter not specified</screen>
</step>
</substeps>
</step><step><para>In the terminal window, configure the default router for the labeled
zone's network.</para><screen># <userinput>zonecfg -z <replaceable>zone-name</replaceable></userinput>
zonecfg:<replaceable>zone-name</replaceable> &gt; <userinput>select net address=</userinput><replaceable>IP-address</replaceable> 
zonecfg:<replaceable>zone-name</replaceable>:net&gt; <userinput>set defrouter=<replaceable>router-address</replaceable></userinput> 
zonecfg:<replaceable>zone-name</replaceable>:net&gt; <userinput>end</userinput> 
zonecfg:<replaceable>zone-name</replaceable> &gt; <userinput>verify</userinput> 
zonecfg:<replaceable>zone-name</replaceable> &gt; <userinput>commit</userinput> 
zonecfg:<replaceable>zone-name</replaceable> &gt; <userinput>exit</userinput> 
#</screen><para>For more information, see the <olink targetdoc="group-refman" targetptr="zonecfg-1m" remap="external"><citerefentry><refentrytitle>zonecfg</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page and <olink targetdoc="group-sa" targetptr="z.conf.start-29" remap="external"><citetitle remap="section">How to Configure the Zone</citetitle> in <citetitle remap="book">System Administration Guide:  Virtualization Using the Solaris Operating System</citetitle></olink>.</para>
</step><step><para>Boot the labeled zone.</para><screen># zoneadm -z <replaceable>zone-name</replaceable> boot</screen>
</step><step><para>In the global zone, verify that the labeled zone has a route to
the gateway for the subnet.</para><screen># <userinput>netstat -rn</userinput></screen><para>A routing table is displayed. The destination and interface for the
labeled zone is different from the entry for the global zone.</para>
</step>
</substeps>
</step><step><para>To remove the default route, select the zone's IP address, then
remove the route.</para><screen># <userinput>zonecfg -z <replaceable>zone-name</replaceable></userinput>

zonecfg:<replaceable>zone-name</replaceable> &gt; <userinput>select net address=</userinput><replaceable>zone-IP-address</replaceable>
zonecfg:<replaceable>zone-name</replaceable>:net&gt; <userinput>remove net defrouter=</userinput><replaceable>zone-default-route</replaceable>
zonecfg:<replaceable>zone-name</replaceable>:net&gt;  <userinput>info net</userinput>
net:
   address: <replaceable>zone-IP-address</replaceable>
   physical: <replaceable>zone-network-interface</replaceable>
   defrouter not specified</screen>
</step>
</procedure><example id="txconf-defrout-1"><title>Setting a Default Route for a Labeled Zone</title><para>In this example, the administrator routes the Secret zone to a separate
physical subnet. Traffic to and from the Secret zone is not routed through
the global zone. The administrator uses the Labeled Zone Manager and the <command>zonecfg</command> command, then verifies that routing works.</para><para>The administrator determines that <literal>qfe1</literal> and <literal>qfe1:0</literal> are not currently in use. and creates a mapping for two labeled
zones. <literal>qfe1</literal> is the designated interface for the Secret
zone.</para><screen>Interface IP Address    Netmask        Default Router
qfe1     192.168.2.22 255.255.255.0 192.168.2.2
qfe1:0   192.168.3.33 255.255.255.0 192.168.3.3</screen><para>First, the administrator creates the <filename>/etc/hostname.qfe1</filename> file
and configures the <filename>/etc/netmasks</filename> file.</para><screen># <userinput>touch /etc/hostname.qfe1</userinput></screen><screen># <userinput>cat /etc/netmasks</userinput>
## /etc/netmasks in global zone
192.168.2.0 255.255.255.0</screen><para>Then, the administrator plumbs the network interface and verifies that
the interface is down.</para><screen># <userinput>ifconfig qfe1 plumb</userinput>
# <userinput>ifconfig -a</userinput></screen><para>Then, in the Solaris Management Console, the administrator creates a security template with
a single label, Secret, and assigns the IP address of the interface to the
template.</para><para>The administrator halts the zone.</para><screen># <userinput>zoneadm -z secret halt</userinput></screen><para>The administrator runs the <filename>txzonemgr</filename> script to
open the Labeled Zone Manager.</para><screen># <userinput>/usr/sbin/txzonemgr</userinput></screen><para>In the Labeled Zone Manager, the administrator selects the Secret zone,
selects Add Network, and then selects a network interface. The administrator
closes the Labeled Zone Manager.</para><para>On the command line, the administrator selects the zone's IP address,
then sets its default route. Before exiting the command, the administrator
verifies the route and commits it.</para><screen># <userinput>zonecfg -z secret</userinput>
zonecfg: secret &gt; <userinput>select net address=192.168.6.22</userinput> 
zonecfg: secret:net&gt; <userinput>set defrouter=192.168.6.2</userinput> 
zonecfg: secret:net&gt; <userinput>end</userinput> 
zonecfg: secret &gt; <userinput>verify</userinput> 
zonecfg: secret &gt; <userinput>commit</userinput> 
zonecfg: secret &gt; <userinput>info net</userinput> 
  net:
     address: 192.168.6.22
     physical: qfe1
     defrouter: 192.168.6.2
zonecfg: secret &gt; <userinput>exit</userinput> 
#</screen><para>The administrator boots the zone.</para><screen># <userinput>zoneadm -z secret boot</userinput></screen><para>In a separate terminal window in the global zone, the administrator
verifies the sending and receiving of packets.</para><screen># <userinput>netstat -rn</userinput>
Routing Table: IPv4
  Destination           Gateway           Flags  Ref     Use  Interface 
-------------------- -------------------- ----- ----- ------- --------- 
default              192.168.5.15         UG        1    2664 qfe0      
192.168.6.2          192.168.6.22         UG        1     240 qfe1      
192.168.3.3          192.168.3.33         U         1     183 qfe1:0    
127.0.0.1            127.0.0.1            UH        1     380 lo0       
...</screen>
</example>
</task><task id="txconf-94"><title>Configure a Name Service Cache in Each Labeled
Zone</title><indexterm><primary>name service cache daemon</primary><see><command>nscd</command> daemon</see>
</indexterm><indexterm><primary>zones</primary><secondary>adding <command>nscd</command> daemon to each labeled zone</secondary>
</indexterm><indexterm><primary>Trusted Extensions network</primary><secondary>adding zone-specific <command>nscd</command> daemon</secondary>
</indexterm><indexterm><primary>adding</primary><secondary>zone-specific <command>nscd</command> daemon</secondary>
</indexterm><indexterm><primary>adding</primary><secondary><command>nscd</command> daemon to every labeled zone</secondary>
</indexterm><indexterm><primary><command>nscd</command> daemon</primary><secondary>adding to every labeled zone</secondary>
</indexterm><tasksummary><para>This procedure enables you to separately configure a name service daemon
(<command>nscd</command>) in each labeled zone. This configuration supports
environments where each zone is connected to a subnetwork that runs at the
label of the zone, and the subnetwork has its own name server for that label.</para><note><para>This configuration does not satisfy the criteria for an evaluated
configuration. In an evaluated configuration, the <command>nscd</command> daemon
runs only in the global zone. Doors in each labeled zone connect the zone
to the global <command>nscd</command> daemon.</para>
</note>
</tasksummary><taskprerequisites><para>You are superuser in the global zone. <literal>root</literal> must not
yet be a role. You have successfully completed <olink targetptr="txconf-84" remap="internal">Add
a Network Interface to Route an Existing Labeled Zone</olink>.</para><para>This configuration requires that you have advanced networking skills.
If LDAP is your naming service, you are responsible for establishing the LDAP
client connection to each labeled zone. The <command>nscd</command> daemon
caches the name service information, but does not route it.</para>
</taskprerequisites><procedure><step><para>If you are using LDAP, verify a route to the LDAP server from
the labeled zone.</para><para>In a terminal window in every labeled zone,
run the following command:</para><screen><replaceable>zone-name</replaceable> # <userinput>netstat -rn</userinput></screen>
</step><step><para>In the global zone, start the Labeled Zone Manager.</para><screen># <userinput>/usr/sbin/txzonemgr</userinput></screen>
</step><step><para>Select the Configure per-zone name service, and click OK.</para><para>This option is intended to be used once, during initial  system configuration.</para>
</step><step><para>Configure each zone's <filename>nscd</filename> service.</para><para>For assistance, see the <olink targetdoc="group-refman" targetptr="nscd-1m" remap="external"><citerefentry><refentrytitle>nscd</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> and <olink targetdoc="group-refman" targetptr="nscd.conf-4" remap="external"><citerefentry><refentrytitle>nscd.conf</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink> man pages.</para>
</step><step><para>Reboot the system.</para>
</step><step><para>For every zone, verify the route and the name service daemon.</para><substeps><step><para>In the Zone Console, list the <command>nscd</command> service.</para><screen><replaceable>zone-name</replaceable> # <userinput>svcs -x name-service-cache</userinput>
svc:/system/name-service-cache:default (name service cache)
 State: online since October 10, 2010  10:10:10 AM PDT
   See: nscd(1M)
   See: /etc/svc/volatile/system-name-service-cache:default.log
Impact: None.</screen>
</step><step><para>Verify the route to the subnetwork.</para><screen><replaceable>zone-name</replaceable> # <userinput>netstat -rn</userinput></screen>
</step>
</substeps>
</step><step><para><indexterm><primary>zones</primary><secondary>removing <command>nscd</command> daemon from labeled zones</secondary></indexterm><indexterm><primary>Trusted Extensions network</primary><secondary>removing zone-specific <command>nscd</command> daemon</secondary></indexterm><indexterm><primary>removing</primary><secondary>zone-specific <command>nscd</command> daemon</secondary></indexterm>To remove the zone-specific name
service daemons, do the following in the global zone:</para><substeps><step><para>Open the Labeled Zone Manager.</para>
</step><step><para>Select Unconfigure per-zone name service, and click OK.</para><para>This
selection removes the <command>nscd</command> daemon in every labeled zone.</para>
</step><step><para>Reboot the system.</para>
</step>
</substeps>
</step>
</procedure>
</task>
</sect1><sect1 id="txconf-14"><title>Creating Roles and Users in Trusted Extensions</title><indexterm><primary>accounts</primary><secondary>creating</secondary>
</indexterm><indexterm><primary>creating</primary><secondary>accounts</secondary>
</indexterm><indexterm><primary>adding</primary><secondary>roles</secondary>
</indexterm><indexterm><primary>creating</primary><secondary>roles</secondary>
</indexterm><para>If you are already using <olink targetptr="glossary-5" remap="internal">administrative
role</olink>s, you might want to add a Security Administrator role. For sites
that have not yet implemented roles, the procedure for creating them is similar
to the procedure in the Solaris OS. Trusted Extensions adds the Security Administrator
role and requires the use of the Solaris Management Console to administer a Trusted Extensions domain.</para><para>If site security requires two people to create user and role accounts,
create custom rights profiles and assign them to roles to enforce <firstterm><olink targetptr="glossary-148" remap="internal">separation of duty</olink></firstterm>.</para><informaltable frame="topbot" pgwide="1"><tgroup cols="3" colsep="1" rowsep="1"><colspec colname="colspec2" colwidth="22.20*"/><colspec colname="colspec1" colwidth="45.03*"/><colspec colname="colspec0" colwidth="31.76*"/><thead><row><entry><para>Task</para>
</entry><entry><para>Description</para>
</entry><entry><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row><entry><para>Create three rights profiles that are more restrictive than default
profiles.</para>
</entry><entry><para>Creates rights profiles to manage users. These profiles are more restrictive
than the default profiles that manage users.</para>
</entry><entry><para><olink targetptr="txconf-95" remap="internal">Create Rights Profiles That Enforce Separation
of Duty</olink></para>
</entry>
</row><row><entry><para>Create a security administrator role.</para>
</entry><entry><para>Creates a security administrator role that handles security-relevant
tasks.</para>
</entry><entry><para><olink targetptr="txconf-23" remap="internal">Create the Security Administrator Role
in Trusted Extensions</olink></para>
</entry>
</row><row><entry><para>Create a system administrator role that cannot set a user password.</para>
</entry><entry><para>Creates a system administrator role and assigns to it a restricted System
Administrator rights profile.</para>
</entry><entry><para><olink targetptr="txconf-97" remap="internal">Create a Restricted System Administrator
Role</olink></para>
</entry>
</row><row><entry><para>Create users to assume the administrative roles.</para>
</entry><entry><para>Creates one or more users who can assume roles.</para>
</entry><entry><para><olink targetptr="txconf-25" remap="internal">Create Users Who Can Assume Roles in Trusted
Extensions</olink></para>
</entry>
</row><row><entry><para>Verify that the roles can perform their tasks.</para>
</entry><entry><para>Tests the roles in various scenarios.</para>
</entry><entry><para><olink targetptr="txconf-29" remap="internal">Verify That the Trusted Extensions Roles
Work</olink></para>
</entry>
</row><row><entry><para>Enable users to log in to a labeled zone.</para>
</entry><entry><para>Starts the <literal>zones</literal> service so that regular users can
log in.</para>
</entry><entry><para><olink targetptr="txconf-34" remap="internal">Enable Users to Log In to a Labeled Zone</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable><task id="txconf-95"><title>Create Rights Profiles That Enforce Separation
of Duty</title><indexterm><primary>roles</primary><secondary>separation of duty</secondary>
</indexterm><indexterm><primary>separation of duty</primary><secondary>creating rights profiles</secondary>
</indexterm><indexterm><primary>users</primary><secondary>requiring two roles to create user</secondary>
</indexterm><indexterm><primary>rights profiles</primary><secondary>customizing for separation of duty</secondary>
</indexterm><tasksummary><para>Skip this procedure if <olink targetptr="glossary-148" remap="internal">separation of
duty</olink> is not a site security requirement. If your site requires separation
of duty, you must create these rights profiles and roles before you populate
the LDAP server.</para><para>This procedure creates rights profiles that have discrete capabilities
to manage users. When you assign these profiles to distinct roles, two roles
are required to create and configure users. One role can create users, but
cannot assign security attributes. The other role can assign security attributes,
but cannot create users. When you log in to the Solaris Management Console in a role that is assigned
one of these profiles, only the appropriate tabs and fields are available
to the role.</para>
</tasksummary><taskprerequisites><para>You must be superuser, in the <literal>root</literal> role, or in the
Primary Administrator role. When you start this procedure, the Solaris Management Console must
be closed.</para>
</taskprerequisites><procedure><step><para>Create copies of the default rights profiles that affect user
configuration.</para><substeps><step><para>Copy the <filename>prof_attr</filename> file to the <filename>prof_attr.orig</filename> file.</para>
</step><step><para>Open the <filename>prof_attr</filename> file in the trusted editor.</para><screen># <userinput>/usr/dt/bin/trusted_edit /etc/security/prof_attr</userinput></screen>
</step><step><para>Copy the three rights profiles and rename the copies.</para><screen>System Administrator:::Can perform most non-security...
<userinput>Custom System Administrator:::Can perform most non-security...</userinput>

User Security:::Manage passwords...
<userinput>Custom User Security:::Manage passwords...</userinput>

User Management:::Manage users, groups, home...
<userinput>Custom User Management:::Manage users, groups, home...</userinput></screen>
</step><step><para>Save the changes.</para>
</step><step><para>Verify the changes.</para><screen># <userinput>grep ^Custom  /etc/security/prof_attr</userinput>
Custom System Administrator:::Can perform most non-security...
Custom User Management:::Manage users, groups, home...
Custom User Security:::Manage passwords...</screen>
</step>
</substeps><para>Copying a rights profile rather than modifying it enables you to upgrade
the system to a later Solaris release and retain your changes. Because
these rights profiles are complex, modifying a copy of the default profile
is less prone to error than building the more restrictive profile from scratch.</para>
</step><step><para>Start the Solaris Management Console.</para><screen># <userinput>/usr/sbin/smc &amp;</userinput></screen>
</step><step><para>Select the This Computer (<replaceable>this-host</replaceable>: <literal>Scope=Files, Policy=TSOL</literal>) toolbox.</para>
</step><step><para>Click System Configuration, then click Users.</para><para>You
are prompted for your password.</para>
</step><step><para>Type the appropriate password.</para>
</step><step><para>Double-click Rights.</para>
</step><step><para>Modify the Custom User Security rights profile.</para><para>You
restrict this profile from creating a user.</para><substeps><step><para>Double-click Custom User Security.</para>
</step><step><para>Click the Authorizations tab, then perform the following steps:</para><substeps><step><para>From the Included list, remove the <literal>Manage Users and Roles</literal> authorization.</para><para>The following User Accounts rights remain:</para><screen>Audit Controls
Label and Clearance Range
Change Password
View Users and Roles
Modify Extended Security Attributes</screen>
</step><step><para>Add the Manage Privileges right to the Included list.</para>
</step>
</substeps>
</step><step><para>Click OK to save your changes.</para>
</step>
</substeps>
</step><step><para>Modify the Custom User Management profile.</para><para>You restrict
this profile from setting a password.</para><substeps><step><para>Double-click Custom User Management.</para>
</step><step><para>Click the Authorizations tab, then perform the following steps:</para><substeps><step><para>Drag the scrollbar for the Included list to User Accounts.</para>
</step><step><para>From the Included list, remove the <literal>Modify Extended Security
Attributes</literal> authorization.</para><para>The following User Accounts
rights remain:</para><screen>Manage Users and Roles
View Users and Roles</screen>
</step>
</substeps>
</step><step><para>Save your changes.</para>
</step>
</substeps>
</step><step><para>Modify the Custom System Administrator rights profile.</para><para>The
User Management profile is a supplementary profile in this profile. You prevent
the system administrator from setting a password.</para><substeps><step><para>Double-click Custom System Administrator.</para>
</step><step><para>Click the Supplementary Rights tab, then perform the following
steps:</para><substeps><step><para>Remove the User Management rights profile.</para>
</step><step><para>Add the Custom User Management rights profile.</para>
</step><step><para>Move the Custom User Management rights profile above the All rights
profile.</para>
</step>
</substeps>
</step><step><para>Save your changes.</para>
</step>
</substeps>
</step>
</procedure><taskrelated role="additional-action"><para>To prevent the default profiles from being used, see <olink targetptr="txconf-sepduty-1" remap="internal">Step&nbsp;8</olink> in <olink targetptr="txconf-29" remap="internal">Verify That the Trusted Extensions Roles Work</olink> after you verify that
the custom profiles enforce separation of duty.</para>
</taskrelated>
</task><task id="txconf-23"><title>Create the Security Administrator Role in Trusted Extensions</title><indexterm><primary>roles</primary><secondary>creating Security Administrator</secondary>
</indexterm><indexterm><primary>Security Administrator role</primary><secondary>creating</secondary>
</indexterm><tasksummary><para>Role creation in Trusted Extensions is identical to role creation in the Solaris OS.
However, in Trusted Extensions, a Security Administrator role is required. To
create a local Security Administrator role, you can also use the command-line
interface, as in <olink targetptr="txconf-61" remap="internal">Example&nbsp;4&ndash;6</olink>.</para>
</tasksummary><taskprerequisites><para>You must be superuser, in the <literal>root</literal> role, or in the
Primary Administrator role.</para><para>To create the role on the network, you must have completed <olink targetptr="confsys-10" remap="internal">Configuring the Solaris Management Console for LDAP
(Task Map)</olink>.</para>
</taskprerequisites><procedure><step><para>Start the Solaris Management Console.</para><screen># <userinput>/usr/sbin/smc &amp;</userinput></screen>
</step><step><para>Select the appropriate toolbox.</para><stepalternatives><step><para>To create the role locally, use This Computer (<replaceable>this-host</replaceable>: <literal>Scope=Files, Policy=TSOL</literal>).</para>
</step><step><para>To create the role in the LDAP service, use This Computer (<replaceable>ldap-server</replaceable>: <literal>Scope=LDAP, Policy=TSOL</literal>).</para>
</step>
</stepalternatives>
</step><step><para>Click System Configuration, then click Users.</para><para>You
are prompted for your password.</para>
</step><step><para>Type the appropriate password.</para>
</step><step><para>Double-click Administrative Roles.</para>
</step><step><para>From the Action menu, choose Add Administrative Role.</para>
</step><step><para>Create the Security Administrator role.</para><itemizedlist><para>Use the following information as a guide:</para><listitem><para>Role name &ndash; <literal>secadmin</literal></para>
</listitem><listitem><para>Full name &ndash; <literal>Security Administrator</literal></para>
</listitem><listitem><para>Description &ndash; Site Security Officer <emphasis>No proprietary
information here</emphasis>.</para>
</listitem><listitem><para>Role ID Number &ndash;  &ge;100</para>
</listitem><listitem><para>Role shell &ndash; Administrator's Bourne (profile shell)</para>
</listitem><listitem><para>Create a role mailing list &ndash; Leave the checkbox selected.</para>
</listitem><listitem><para>Password and confirm &ndash; Assign a password of at least
6 alphanumeric characters.</para><para>The password for the Security Administrator role, and
all passwords, must be difficult to guess, thus reducing the chance of an
adversary gaining unauthorized access by attempting to guess passwords.</para><note><para>For all administrative roles, make the account Always Available,
and do not set password expiration dates.</para>
</note>
</listitem><listitem><para>Available and Granted Rights &ndash; Information Security,
User Security</para><itemizedlist><listitem><para>If site security does not require <olink targetptr="glossary-148" remap="internal">separation of duty</olink>, select the Information Security and the default
User Security rights profiles.</para>
</listitem><listitem><para>If site security requires separation of duty, select the Information
Security and the Custom User Security rights profiles.</para>
</listitem>
</itemizedlist>
</listitem><listitem><para>Home Directory Server &ndash; <replaceable>home-directory-server</replaceable></para>
</listitem><listitem><para>Home Directory Path &ndash; /<replaceable>mount-path</replaceable></para>
</listitem><listitem><para>Assign Users&ndash; This field is automatically filled in
when you assign a role to a user.</para>
</listitem>
</itemizedlist>
</step><step><para>After creating the role, check that the settings are correct.</para><para>Select the role, then double-click it.</para><itemizedlist><para>Review the values in the following fields:</para><listitem><para>Available Groups &ndash; Add groups if required.</para>
</listitem><listitem><para>Trusted Extensions Attributes &ndash; Defaults are correct.</para><para>For a single-label system where the labels must not be visible, choose
Hide for Label: Show or Hide.</para>
</listitem><listitem><para>Audit Excluded and Included &ndash; Set audit flags only if
the role's audit flags are exceptions to the system settings in the <filename>audit_control</filename> file.</para>
</listitem>
</itemizedlist>
</step><step><para>To create other roles, use the Security Administrator role as
a guide.</para><itemizedlist><para>For examples, see <olink targetdoc="group-sa" targetptr="rbactask-32" remap="external"><citetitle remap="section">How to Create and Assign a Role by Using the GUI</citetitle> in <citetitle remap="book">System Administration Guide: Security Services</citetitle></olink>.
Give each role a unique ID, and assign to the role the correct rights profile.
Possible roles include the following:</para><listitem><para>admin Role &ndash; <literal>System Administrator</literal> Granted
Rights</para>
</listitem><listitem><para>primaryadmin Role &ndash; <literal>Primary Administrator</literal> Granted
Rights</para>
</listitem><listitem><para>oper Role &ndash; <literal>Operator</literal> Granted Rights</para>
</listitem>
</itemizedlist>
</step>
</procedure><example id="txconf-61"><title>Using the <command>roleadd</command> Command to Create a Local Security
Administrator Role</title><indexterm><primary><command>roleadd</command> command</primary>
</indexterm><indexterm><primary>adding</primary><secondary>local role with <command>roleadd</command></secondary>
</indexterm><indexterm><primary>creating</primary><secondary>local role with <command>roleadd</command></secondary>
</indexterm><indexterm><primary>roles</primary><secondary>adding local role with <command>roleadd</command></secondary>
</indexterm><para>In this example, the <literal>root</literal> user adds the Security
Administrator role to the local system by using the <command>roleadd</command> command.
For details, see the <olink targetdoc="group-refman" targetptr="roleadd-1m" remap="external"><citerefentry><refentrytitle>roleadd</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page. The <literal>root</literal> user consults <olink targetptr="ovw-tbl-4" remap="internal">Table&nbsp;1&ndash;2</olink> before creating the role. At this site, separation of duty is not
required to create a user.</para><screen># <userinput>roleadd -c "Local Security Administrator" -d /export/home1 \</userinput>
<userinput>-u 110 -P "Information Security,User Security" -K lock_after_retries=no \</userinput>
<userinput>-K idletime=5 -K idlecmd=lock -K labelview=showsl \</userinput>
<userinput>-K min_label=ADMIN_LOW -K clearance=ADMIN_HIGH secadmin</userinput></screen><para>The <literal>root</literal> user provides an initial password for the
role.</para><screen># <userinput>passwd -r files secadmin</userinput>
New Password:        <lineannotation>&lt;Type password&gt;</lineannotation>
Re-enter new Password: <lineannotation>&lt;Retype password&gt;</lineannotation>
passwd: password successfully changed for secadmin
#</screen><para>To assign the role to a local user, see <olink targetptr="txconf-63" remap="internal">Example&nbsp;4&ndash;7</olink>.</para>
</example>
</task><task id="txconf-97"><title>Create a Restricted System Administrator Role</title><indexterm><primary>System Administrator role</primary><secondary>restricting</secondary>
</indexterm><indexterm><primary>roles</primary><secondary>separation of duty</secondary>
</indexterm><indexterm><primary>users</primary><secondary>requiring two roles to create users</secondary>
</indexterm><tasksummary><para>Skip this procedure if <olink targetptr="glossary-148" remap="internal">separation of
duty</olink> is not a site security requirement.</para><para>In this procedure, you assign a more restrictive rights profile to the
System Administrator role.</para>
</tasksummary><taskprerequisites><para>You must be superuser, in the <literal>root</literal> role, or in the
Primary Administrator role.</para><para>You have completed <olink targetptr="txconf-95" remap="internal">Create Rights Profiles
That Enforce Separation of Duty</olink>. You are using the same toolbox that
you used to create the rights profile.</para>
</taskprerequisites><procedure><step><para>In the Solaris Management Console, create the System Administrator role.</para><para>For
assistance, see <olink targetptr="txconf-23" remap="internal">Create the Security Administrator
Role in Trusted Extensions</olink>.</para>
</step><step><para>Assign the Custom System Administrator rights profile to the role.</para>
</step><step><para>Save the changes.</para>
</step><step><para>Close the Solaris Management Console.</para>
</step>
</procedure>
</task><task id="txconf-25"><title>Create Users Who Can Assume Roles in Trusted Extensions</title><indexterm><primary>adding</primary><secondary>users who can assume roles</secondary>
</indexterm><indexterm><primary>creating</primary><secondary>users who can assume roles</secondary>
</indexterm><indexterm><primary>users</primary><secondary>creating initial users</secondary>
</indexterm><tasksummary><para>To create a local user, you can use the command-line interface, as in <olink targetptr="txconf-63" remap="internal">Example&nbsp;4&ndash;7</olink>, instead of the following
procedure. Where site security policy permits, you can choose to create a
user who can assume more than one administrative role.</para><para>For secure user creation, the System Administrator role creates the
user, and the Security Administrator role assigns security-relevant attributes,
such as a password.</para>
</tasksummary><taskprerequisites><para>You must be superuser, in the <literal>root</literal> role, in the Security
Administrator role, or in the Primary Administrator role. The Security Administrator
role has the least amount of privilege that is required for user creation.</para><para>The Solaris Management Console is displayed. For details, see <olink targetptr="txconf-23" remap="internal">Create
the Security Administrator Role in Trusted Extensions</olink>.</para>
</taskprerequisites><procedure><step><para>Double-click User Accounts in the Solaris Management Console.</para>
</step><step><para>From the Action menu, choose Add User &rarr; Use Wizard.</para><caution><para>The names and IDs of roles and users come from the same pool.
Do not use existing names or IDs for the users that you add.</para>
</caution>
</step><step><para>Follow the online help.</para><para>You can also follow the procedures
in <olink targetdoc="group-sa" targetptr="usersetup-21" remap="external"><citetitle remap="section">How to Add a User With the Solaris Management Console&rsquo;s Users Tool</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step><para>After creating the user, double-click the created user to modify
the settings.</para><note><para>For users who can assume roles, make the user account Always Available,
and do not set password expiration dates.</para>
</note><itemizedlist><para>Ensure that the following fields are correctly set:</para><listitem><para>Description &ndash; No proprietary information here.</para>
</listitem><listitem><para>Password and confirm &ndash; Assign a password of at least
6 alphanumeric characters.</para><note><para>When
the initial setup team chooses a password, the team must select a password
that is difficult to guess, thus reducing the chance of an adversary gaining
unauthorized access by attempting to guess passwords.</para>
</note>
</listitem><listitem><para>Account Availability &ndash; Always Available.</para>
</listitem><listitem><para>Trusted Extensions Attributes &ndash; Defaults are correct.</para><para>For a single-label system where the labels must not be visible, choose
Hide for Label: Show or Hide.</para>
</listitem><listitem><para>Account Usage &ndash; Set Idle time and Idle action.</para><para>Lock account &ndash; Set to No for any user who can assume a role.</para>
</listitem>
</itemizedlist>
</step><step><para>Close the Solaris Management Console.</para>
</step><step><para>Customize the user's environment.</para><substeps><step><para>Assign convenient authorizations.</para><para>After checking your
site security policy, you might want to grant your first users the Convenient
Authorizations rights profile. With this profile, you can enable users to
allocate devices, print <trademark>PostScript</trademark> files, print without
labels, remotely log in, and shut down the system. To create the profile,
see <olink targetptr="manageusers-40" remap="internal">How to Create a Rights Profile for Convenient Authorizations</olink>.</para>
</step><step><para>Customize user initialization files.</para><para>See <olink targetptr="manageusers-1" remap="internal">Chapter&nbsp;13, Managing Users, Rights, and Roles in Trusted Extensions (Tasks)</olink>.</para><para>Also see <olink targetptr="usermgr-13" remap="internal">Managing Users and Rights With the Solaris Management Console (Task Map)</olink>.</para>
</step><step><para>Create multilabel copy and link files.</para><para>On a multilabel
system, users and roles can be set up with files that list user initialization
files to be copied or linked to other labels. For more information, see <olink targetptr="manageusers-28" remap="internal">.copy_files and .link_files Files</olink>.</para>
</step>
</substeps>
</step>
</procedure><example id="txconf-63"><title>Using the <command>useradd</command> Command to Create a Local User</title><indexterm><primary><command>useradd</command> command</primary>
</indexterm><indexterm><primary>adding</primary><secondary>local user with <command>useradd</command></secondary>
</indexterm><indexterm><primary>creating</primary><secondary>local user with <command>useradd</command></secondary>
</indexterm><indexterm><primary>users</primary><secondary>adding local user with <command>useradd</command></secondary>
</indexterm><para>In this example, the <literal>root</literal> user creates a local user
who can assume the Security Administrator role. For details, see the <olink targetdoc="group-refman" targetptr="useradd-1m" remap="external"><citerefentry><refentrytitle>useradd</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> and <olink targetdoc="group-refman" targetptr="atohexlabel-1m" remap="external"><citerefentry><refentrytitle>atohexlabel</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man pages.</para><para>First, the <literal>root</literal> user determines the hexadecimal format
of the user's minimum label and clearance label.</para><screen># <userinput>atohexlabel public</userinput>
0x0002-08-08
# <userinput>atohexlabel -c "confidential restricted"</userinput>
0x0004-08-78</screen><para>Next, the <literal>root</literal> user consults <olink targetptr="ovw-tbl-4" remap="internal">Table&nbsp;1&ndash;2</olink>, and then creates the user.</para><screen># <userinput>useradd -c "Local user for Security Admin" -d /export/home1 \</userinput>
<userinput>-K  idletime=10 -K idlecmd=logout -K lock_after_retries=no</userinput>
<userinput>-K min_label=0x0002-08-08 -K clearance=0x0004-08-78 -K labelview=showsl jandoe</userinput></screen><para>Then, the <literal>root</literal> user provides an initial password.</para><screen># <userinput>passwd -r files jandoe</userinput>
New Password:    <lineannotation>&lt;Type password&gt;</lineannotation>
Re-enter new Password: <lineannotation>&lt;Retype password&gt;</lineannotation>
passwd: password successfully changed for jandoe
#</screen><para>Finally, the <literal>root</literal> user adds the Security Administrator
role to the user's definition. The role was created in <olink targetptr="txconf-23" remap="internal">Create the Security Administrator Role in Trusted Extensions</olink>.</para><screen># <userinput>usermod -R secadmin jandoe</userinput></screen>
</example>
</task><task id="txconf-29"><title>Verify That the Trusted Extensions Roles Work</title><indexterm><primary>checking</primary><secondary>roles are working</secondary>
</indexterm><indexterm><primary>verifying</primary><secondary>roles are working</secondary>
</indexterm><indexterm><primary>roles</primary><secondary>verifying they work</secondary>
</indexterm><tasksummary><para>To verify each role, assume the role. Then, perform tasks that only
that role can perform.</para>
</tasksummary><taskprerequisites><para>If you have configured DNS or routing, you must reboot after you create
the roles and before you verify that the roles work.</para>
</taskprerequisites><procedure><step><para>For each role, log in as a user who can assume the role.</para>
</step><step><para>Open the Trusted Path menu.</para><stepalternatives><step><para>In Trusted CDE, click the workspace switch area.</para>
</step><step><para>In Trusted GNOME, click your user
name in the trusted stripe.</para>
</step>
</stepalternatives><mediaobject><imageobject><imagedata entityref="tpmenu.tiff"/>
</imageobject><textobject><simpara>Illustration shows the Trusted Path menu in CDE.</simpara>
</textobject>
</mediaobject>
</step><step><para>From the menu, assume the role.</para>
</step><step><para>In the role workspace, start the Solaris Management Console.</para><screen>$ <userinput>/usr/sbin/smc &amp;</userinput></screen>
</step><step><para>Select the appropriate scope for the role that you are testing.</para>
</step><step><para>Click System Services, and navigate to Users.</para><para>You
are prompted for a password.</para><substeps><step><para>Type the role password.</para>
</step><step><para>Double-click User Accounts.</para>
</step>
</substeps>
</step><step><para>Click a user.</para><itemizedlist><listitem><para>The System Administrator role should be able to modify fields
under the General, Home Directory, and Group tabs.</para><para>If you configured
the roles to enforce <olink targetptr="glossary-148" remap="internal">separation of duty</olink>,
then the System Administrator role cannot set the user's initial password.</para>
</listitem><listitem><para>The Security Administrator role should be able to modify fields
under all tabs.</para><para>If you configured the roles to enforce separation
of duty, then the Security Administrator role cannot create a user.</para>
</listitem><listitem><para>The Primary Administrator role should be able to modify fields
under all tabs.</para>
</listitem>
</itemizedlist>
</step><step performance="optional" id="txconf-sepduty-1"><para>If you are enforcing
separation of duty, prevent the default rights profiles from being used.</para><note><para>When the system is upgraded to a newer version of the Solaris OS,
the System Administrator, User Management, and User Security default profiles
are replaced.</para>
</note><para>In the trusted editor, perform one of the following steps:</para><stepalternatives><step><para>Remove the three rights profiles from the <filename>prof_attr</filename> file.</para><para>Removal prevents an administrator from viewing or assigning these
profiles. Also, remove the <filename>prof_attr.orig</filename> file.</para>
</step><step><para>Comment out the three rights profiles in the <filename>prof_attr</filename> file.</para><para>Commenting out the rights profiles prevents these profiles from
being viewed in the Solaris Management Console or from being used in commands that manage users.
The profiles and their contents can still be viewed in the <filename>prof_attr</filename> file.</para>
</step><step><para>Type a different description for the three rights profiles in
the <filename>prof_attr</filename> file.</para><para>Edit the <filename>prof_attr</filename> file to change the description field of these rights profiles.
For example, you might replace the descriptions with <literal>Do not use this
profile</literal>. This change warns an administrator to not use the profile,
but does not prevent the profile from being used.</para>
</step>
</stepalternatives>
</step>
</procedure>
</task><task id="txconf-34"><title>Enable Users to Log In to a Labeled
Zone</title><indexterm><primary>rebooting</primary><secondary>enabling login to labeled zone</secondary>
</indexterm><indexterm><primary>enabling</primary><secondary>login to labeled zone</secondary>
</indexterm><indexterm><primary>zones</primary><secondary>enabling login to</secondary>
</indexterm><tasksummary><para>When the host is rebooted, the association between the devices and the
underlying storage must be re-established.</para>
</tasksummary><taskprerequisites><para>You have created at least one labeled zone. That zone is not being used
for cloning.</para>
</taskprerequisites><procedure><step><para>Reboot the system.</para>
</step><step><para>Log in as the <literal>root</literal> user.</para>
</step><step><para>Restart the zones service.</para><screen># <userinput>svcs zones</userinput>
STATE          STIME    FMRI
offline        -        svc:/system/zones:default</screen><screen># <userinput>svcadm restart svc:/system/zones:default</userinput></screen>
</step><step><para>Log out.</para><para>Regular users can now log in. Their session
is in a labeled zone.</para>
</step>
</procedure>
</task>
</sect1><sect1 id="txconf-50"><title>Creating Home Directories in Trusted Extensions</title><indexterm><primary>home directories</primary><secondary>creating</secondary>
</indexterm><indexterm><primary>creating</primary><secondary>home directories</secondary>
</indexterm><para>In Trusted Extensions, users need access to their home directories at every
label at which the users work. To make every home directory available to the
user requires that you create a multilevel home directory server, run the
automounter on the server, and export the home directories. On the client
side, you can run scripts to find the home directory for every zone for each
user, or you can have the user log in to the home directory server.</para><task id="txconf-52"><title>Create the Home Directory Server in Trusted Extensions</title><indexterm><primary>creating</primary><secondary>home directory server</secondary>
</indexterm><indexterm><primary>home directories</primary><secondary>creating server for</secondary>
</indexterm><taskprerequisites><para>You must be superuser, in the <literal>root</literal> role, or in the
Primary Administrator role.</para>
</taskprerequisites><procedure><step><para>Install and configure the home directory server with Trusted Extensions software.</para><itemizedlist><listitem><para>If you are cloning zones, make sure that you use a Solaris ZFS
snapshot that has empty home directories.</para>
</listitem><listitem><para>Because users require a home directory at every label that
they they can log in to, create every zone that a user can log in to. For
example, if you use the default <filename>label_encodings</filename> file,
you would create a zone for the <literal>PUBLIC</literal> label.</para>
</listitem>
</itemizedlist>
</step><step><para>If you are using UFS and not Solaris ZFS, enable the NFS
server to serve itself.</para><substeps><step><para>In the global zone, modify the <literal>automount</literal> entry
in the <filename>nsswitch.conf</filename> file.</para><para>Use the trusted
editor to edit the <filename>/etc/nsswitch.conf</filename> file. For the procedure,
see <olink targetptr="roles-10" remap="internal">How to Edit Administrative Files in Trusted Extensions</olink>.</para><screen>automount: files</screen>
</step><step><para>In the global zone, run the <command>automount</command> command.</para>
</step>
</substeps>
</step><step><para>For every labeled zone, follow the automount procedure in <olink targetptr="txconf-41" remap="internal">How to NFS Mount Files in a Labeled Zone</olink>. Then, return to this procedure.</para>
</step><step><para>Verify that the home directories have been created.</para><substeps><step><para>Log out of the home directory server.</para>
</step><step><para>As a regular user, log in to the home directory server.</para>
</step><step><para>In the login zone, open a terminal.</para>
</step><step><para>In the terminal window, verify that the user's home directory
exists.</para>
</step><step><para>Create workspaces for every zone that the user can work in.</para>
</step><step><para>In each zone, open a terminal window to verify that the user's
home directory exists.</para>
</step>
</substeps>
</step><step><para>Log out of the home directory server.</para>
</step>
</procedure>
</task><task id="txconf-56"><title>Enable Users to Access Their Home Directories
in Trusted Extensions</title><indexterm><primary>logging in</primary><secondary>to a home directory server</secondary>
</indexterm><indexterm><primary>home directories</primary><secondary>logging in and getting</secondary>
</indexterm><tasksummary><para>Users can initially log in to the home directory server to create a
home directory that can be shared with other systems. To create a home directory
at every label, each user must log in to the home directory server at every
label.</para><para>Alternatively, you, as administrator, can create a script to create
a mount point for home directories on each user's home system before the user
first logs in. The script creates mount points at every label at which the
user is permitted to work.</para>
</tasksummary><taskprerequisites><para>The home directory server for your Trusted Extensions domain is configured.</para>
</taskprerequisites><procedure remap="single-step"><step><para>Choose whether to allow direct login to the server, or whether
to run a script.</para><stepalternatives><step><para>Enable users to log in directly to the home directory server.</para><substeps><step><para>Instruct each user to log in to the home directory server.</para><para>After successful login, the user must log out.</para>
</step><step><para>Instruct each user to log in again, and this time, to choose a
different login label.</para><para>The user uses the label builder to choose
a different login label. After successful login, the user must log out.</para>
</step><step><para>Instruct each user to repeat the login process for every label
that the user is permitted to use.</para>
</step><step><para>Instruct the users to log in from their regular workstation.</para><para>Their home directory for their default label is available. When a user
changes the label of a session or adds a workspace at a different label, the
user's home directory for that label is mounted.</para>
</step>
</substeps>
</step><step><para>Write a script that creates a home directory mount point for every
user, and run the script.</para><screen>#!/bin/sh
#
for zoneroot in `/usr/sbin/zoneadm list -p | cut -d ":" -f4` ; do
	if [ $zoneroot != / ]; then
		prefix=$zoneroot/root/export
	
		for j in `getent passwd|tr ' ' _` ; do
			uid=`echo $j|cut -d ":" -f3`
			if [ $uid -ge 100 ]; then
				gid=`echo $j|cut -d ":" -f4`
				homedir=`echo $j|cut -d ":" -f6`
				mkdir -m 711 -p $prefix$homedir
				chown $uid:$gid $prefix$homedir
			fi
		done
	fi
done</screen><substeps><step><para>From the global zone, run this script on the NFS server.</para>
</step><step><para>Then, run this script on every multilevel desktop that the user
is going to log in to.</para>
</step>
</substeps>
</step>
</stepalternatives>
</step>
</procedure>
</task>
</sect1><sect1 id="txconf-64"><title>Adding Users and Hosts to an Existing
Trusted Network</title><para>If you have users who are defined in NIS maps, you can add them to your
network. </para><itemizedlist><para>To add hosts and labels to hosts, see the following procedures:</para><listitem><para>To add a host, you use the Computers and Networks tool set
in the Solaris Management Console. For details, see <olink targetptr="txconf-9" remap="internal">How to Add Hosts to the System's Known Network</olink>.</para><para>When you add a host to the LDAP server, add all IP addresses that are
associated with the host. All-zones addresses, including addresses for labeled
zones, must be added to the LDAP server.</para>
</listitem><listitem><para>To label a host, see <olink targetptr="managetnet-16" remap="internal">How to Assign a Security Template to a Host or a Group of Hosts</olink>.</para>
</listitem>
</itemizedlist><task id="txconf-65"><title>Add an NIS User to the LDAP Server</title><indexterm><primary>users</primary><secondary>adding from NIS server</secondary>
</indexterm><indexterm><primary>adding</primary><secondary>users by using <command>lpaddent</command></secondary>
</indexterm><indexterm><primary><command>lpaddent</command> command</primary>
</indexterm><taskprerequisites><para>You must be superuser, in the <literal>root</literal> role, or in the
Primary Administrator role.</para>
</taskprerequisites><procedure><step><para>From the NIS database, gather the information that you need.</para><substeps><step><para>Create a file from the user's entry in the <literal>aliases</literal> database.</para><screen>% ypcat -k aliases | grep <replaceable>login-name</replaceable> &gt; aliases.<replaceable>name</replaceable></screen>
</step><step><para>Create a file from the user's entry in the <literal>passwd</literal> database.</para><screen>% ypcat -k passwd | grep "<replaceable>Full Name</replaceable>" &gt; passwd.<replaceable>name</replaceable></screen>
</step><step><para>Create a file from the user's entry in the <literal>auto_home_</literal> database.</para><screen>% ypcat -k auto_home | grep <replaceable>login-name</replaceable> &gt; <literal>auto_home_</literal><replaceable>label</replaceable></screen>
</step>
</substeps>
</step><step><para>Reformat the information for LDAP and Trusted Extensions.</para><substeps><step><para>Use the <command>sed</command> command to reformat the <literal>aliases</literal> entry.</para><screen>% sed 's/ /:/g' aliases.<replaceable>login-name</replaceable> &gt; aliases</screen>
</step><step><para>Use the <command>nawk</command> command to reformat the <literal>passwd</literal> entry.</para><screen>% nawk -F: '{print $1":x:"$3":"$4":"$5":"$6":"$7}' passwd.<replaceable>name</replaceable> &gt; passwd</screen>
</step><step><para>Use the <command>nawk</command> command to create a <literal>shadow</literal> entry.</para><screen>% nawk -F: '{print $1":"$2":6445::::::"}' passwd.<replaceable>name</replaceable> &gt; shadow</screen>
</step><step><para>Use the <command>nawk</command> command to create a <literal>user_attr</literal> entry.</para><screen>% nawk -F: '{print $1"::::lock_after_retries=<replaceable>yes-or-no</replaceable>;profiles=<replaceable>user-profile, ...</replaceable>;
labelview=<replaceable>int-or-ext</replaceable>,<replaceable>show-or-hide</replaceable>;min_label=<replaceable>min-label</replaceable>;
clearance=<replaceable>max-label</replaceable>;type=normal;roles=<replaceable>role-name,...</replaceable>;
auths=<replaceable>auth-name,...</replaceable>"}' passwd.<replaceable>name</replaceable> &gt; user_attr</screen>
</step>
</substeps>
</step><step id="txconf-ldentries-1"><para>Copy the modified files to the <filename>/tmp</filename> directory on the LDAP server.</para><screen># cp aliases auto_home_internal passwd shadow user_attr /tmp/<replaceable>name</replaceable></screen>
</step><step><para>Add the entries in the files in <olink targetptr="txconf-ldentries-1" remap="internal">Step&nbsp;3</olink> to the databases on the LDAP server.</para><screen># /usr/sbin/ldapaddent -D "cn=directory manager" -w <replaceable>DM-password</replaceable> \
-a simple -f /tmp/<replaceable>name</replaceable>/aliases aliases
# /usr/sbin/ldapaddent -D "cn=directory manager" -w <replaceable>DM-password</replaceable> \
-a simple -f /tmp/<replaceable>name</replaceable>/auto_home_internal auto_home_internal
# /usr/sbin/ldapaddent -D "cn=directory manager" -w <replaceable>DM-password</replaceable> \
-a simple -f /tmp/<replaceable>name</replaceable>/passwd passwd
# /usr/sbin/ldapaddent -D "cn=directory manager" -w <replaceable>DM-password</replaceable> \
-a simple -f /tmp/<replaceable>name</replaceable>/shadow shadow
# /usr/sbin/ldapaddent -D "cn=directory manager" -w <replaceable>DM-password</replaceable> \
-a simple -f /tmp/<replaceable>name</replaceable>/user_attr user_attr</screen>
</step>
</procedure><example id="txconf-67"><title>Adding a User From an NIS Database to the LDAP Server</title><para>In the following example, the administrator adds a new user to the trusted
network. The user's information is stored originally in an NIS database. To
protect the LDAP server password, the administrator runs the <command>ldapaddent</command> commands
on the server.</para><para>In Trusted Extensions, the new user can allocate devices and assume the
Operator role. Because the user can assume a role, the user account does not
get locked out. The user's minimum label is <constant>PUBLIC</constant>. The
label at which the user works is <constant>INTERNAL</constant>, so <literal>jan</literal> is
added to the <filename>auto_home_internal</filename> database. The <filename>auto_home_internal</filename> database automounts <literal>jan</literal>'s home directory with
read-write permissions.</para><itemizedlist><listitem><para>On the LDAP server, the administrator extracts user information
from NIS databases.</para><screen># <userinput>ypcat -k aliases | grep jan.doe &gt; aliases.jan</userinput>
# <userinput>ypcat passwd | grep "Jan Doe" &gt; passwd.jan</userinput>
# <userinput>ypcat -k auto_home | grep jan.doe &gt; auto_home_internal</userinput></screen>
</listitem><listitem><para>Then, the administrator reformats the entries for LDAP.</para><screen># <userinput>sed 's/ /:/g' aliases.jan &gt; aliases</userinput>
# <userinput>nawk -F: '{print $1":x:"$3":"$4":"$5":"$6":"$7}' passwd.jan &gt; passwd</userinput>
# <userinput>nawk -F: '{print $1":"$2":6445::::::"}' passwd.jan &gt; shadow</userinput></screen>
</listitem><listitem><para>Then, the administrator creates a <filename>user_attr</filename> entry
for Trusted Extensions.</para><screen># <userinput>nawk -F: '{print $1"::::lock_after_retries=no;profiles=Media User;</userinput>
<userinput>labelview=internal,showsl;min_label=0x0002-08-08;</userinput>
<userinput>clearance=0x0004-08-78;type=normal;roles=oper;</userinput>
<userinput>auths=solaris.device.allocate"}' passwd.jan &gt; user_attr</userinput></screen>
</listitem><listitem><para>Then, the administrator copies the files to the <filename class="directory">/tmp/jan</filename> directory.</para><screen># <userinput>cp aliases auto_home_internal passwd shadow user_attr /tmp/jan</userinput></screen>
</listitem><listitem><para>Finally, the administrator populates the server with the files
in the <filename class="directory">/tmp/jan</filename> directory.</para><screen># <userinput>/usr/sbin/ldapaddent -D "cn=directory manager" -w a2b3c4d5e6 \</userinput>
<userinput>-a simple -f /tmp/jan/aliases aliases</userinput>
# <userinput>/usr/sbin/ldapaddent -D "cn=directory manager" -w a2b3c4d5e6 \</userinput>
<userinput>-a simple -f /tmp/jan/auto_home_internal auto_home_internal</userinput>
# <userinput>/usr/sbin/ldapaddent -D "cn=directory manager" -w a2b3c4d5e6 \</userinput>
<userinput>-a simple -f /tmp/jan/passwd passwd</userinput>
# <userinput>/usr/sbin/ldapaddent -D "cn=directory manager" -w a2b3c4d5e6 \</userinput>
<userinput>-a simple -f /tmp/jan/shadow shadow</userinput>
# <userinput>/usr/sbin/ldapaddent -D "cn=directory manager" -w a2b3c4d5e6 \</userinput>
<userinput>-a simple -f /tmp/jan/user_attr user_attr</userinput></screen>
</listitem>
</itemizedlist>
</example>
</task>
</sect1><sect1 id="txconf-trouble-1"><title>Troubleshooting Your Trusted Extensions Configuration</title><indexterm><primary>troubleshooting</primary><secondary>Trusted Extensions configuration</secondary>
</indexterm><indexterm><primary>Trusted Extensions configuration</primary><secondary>troubleshooting</secondary>
</indexterm><para>In Trusted Extensions, the labeled zones communicate with the X server through
the global zone. Therefore, the labeled zones must have usable routes to the
global zone. Also, options that were selected during a Solaris installation
can prevent Trusted Extensions from using interfaces to the global zone.</para><sect2 id="txconf-70"><title><command>netservices limited</command> Was
Run After Trusted Extensions Was Enabled</title><variablelist termlength="wholeline"><varlistentry><term><emphasis role="strong">Description:</emphasis></term><listitem><para>Instead of running the <command>netservices limited</command> command
before you enabled Trusted Extensions, you ran the command in the global zone
afterwards. Therefore, your labeled zones are unable to connect to the X server
in the global zone.</para>
</listitem>
</varlistentry><varlistentry><term><emphasis role="strong">Solution:</emphasis></term><listitem><para>Run the following commands to open the services that Trusted Extensions requires
to communicate between zones:</para><screen># <userinput>svccfg -s x11-server setprop options/tcp_listen = true</userinput>
# <userinput>svcadm enable svc:/network/rpc/rstat:default</userinput></screen>
</listitem>
</varlistentry>
</variablelist>
</sect2><sect2 id="cannotopenconsolewindowinlabeledzone"><title>Cannot Open
the Console Window in a Labeled Zone</title><indexterm><primary>troubleshooting</primary><secondary>console window not opening</secondary>
</indexterm><indexterm><primary>console window</primary><secondary>troubleshooting not opening</secondary>
</indexterm><variablelist termlength="wholeline"><varlistentry><term><emphasis role="strong">Description:</emphasis></term><listitem><para>When you attempt to open a console window in a labeled zone,
the following error appears in a dialog box:</para><screen>Action:DttermConsole,*,*,*,0 [Error]
Action not authorized.</screen>
</listitem>
</varlistentry><varlistentry><term><emphasis role="strong">Solution:</emphasis></term><listitem><para>Verify that the following two lines are present in each of
the zone entries in the <filename>/etc/security/exec_attr</filename> file:</para><screen>All Actions:solaris:act:::*;*;*;*;*:
All:solaris:act:::*;*;*;*;*:</screen><para>If these lines are not present, the Trusted Extensions package that adds
these entries was not installed in the labeled zones. In this case, re-create
the labeled zones. For the procedure, see <olink targetptr="txconf-20" remap="internal">Creating
Labeled Zones</olink>.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2><sect2 id="labeledzonecannotaccessxserver"><title>Labeled Zone Is Unable to
Access the X Server</title><indexterm><primary>troubleshooting</primary><secondary>accessing X server</secondary>
</indexterm><indexterm><primary>zones</primary><secondary>troubleshooting access</secondary>
</indexterm><indexterm><primary>accessing the X server</primary>
</indexterm><indexterm><primary>error messages</primary><secondary>troubleshooting</secondary>
</indexterm><indexterm><primary><literal>Action failed. Reconnect to Solaris Zone?</literal></primary>
</indexterm><indexterm><primary><literal>No route available</literal></primary>
</indexterm><indexterm><primary><literal>Cannot reach global zone</literal></primary>
</indexterm><variablelist termlength="wholeline"><varlistentry><term><emphasis role="strong">Description:</emphasis></term><listitem><itemizedlist><para>If a labeled zone cannot successfully access the X server, you might
see messages such as the following:</para><listitem><para><literal>Action failed. Reconnect to Solaris Zone?</literal></para>
</listitem><listitem><para><literal>No route available</literal></para>
</listitem><listitem><para><literal>Cannot reach globalzone-</literal><replaceable>hostname</replaceable><literal>:0</literal></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry><varlistentry><term><emphasis role="strong">Cause:</emphasis></term><listitem><itemizedlist><para>The labeled zones might not be able to access the X server for any of
the following reasons:</para><listitem><para>The zone is not initialized and is waiting for the <command>sysidcfg</command> process to complete.</para>
</listitem><listitem><para>The labeled zone's host name is not recognized by the naming
service that runs in the global zone.</para>
</listitem><listitem><para>No interface is specified as <literal>all-zones</literal>.</para>
</listitem><listitem><para>The labeled zone's network interface is down.</para>
</listitem><listitem><para>LDAP name lookups fail.</para>
</listitem><listitem><para>NFS mounts do not work.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry><varlistentry><term><emphasis role="strong">Steps toward a solution:</emphasis></term><listitem><orderedlist><para>Do the following:</para><listitem><para>Log in to the zone.</para><para>You can use the <command>zlogin</command> command
or the Zone Terminal Console action.</para><screen># <userinput>zlogin -z <replaceable>zone-name</replaceable></userinput></screen><para>If you cannot log in as superuser, use the <command>zlogin -S</command> command
to bypass authentication.</para>
</listitem><listitem><para>Verify that the zone is running.</para><screen># <userinput>zoneadm list</userinput></screen><para>If a zone has a status of <literal>running</literal>, the zone is running
at least one process.</para>
</listitem><listitem><para>Address any problems that prevent the labeled zones from accessing
the X server.</para><itemizedlist><listitem><para>Initialize the zone by completing the <command>sysidcfg</command> process.</para><para>Run the <command>sysidcfg</command> program interactively. Answer
the prompts in the Zone Terminal Console, or in the terminal window where
you ran the <command>zlogin</command> command.</para><itemizedlist><para><indexterm><primary><filename>/usr/sbin/txzonemgr</filename> script</primary></indexterm><indexterm><primary><filename>txzonemgr</filename> script</primary></indexterm><indexterm><primary>zones</primary><secondary><filename>txzonemgr</filename> script</secondary></indexterm>To run the <command>sysidcfg</command> process noninteractively,
you can do one of the following:</para><listitem><para>Specify the Initialize item for the <filename>/usr/sbin/txzonemgr</filename> script.</para><para>The Initialize item enables you to supply
default values to the <command>sysidcfg</command> questions.</para>
</listitem><listitem><para>Write your own <command>sysidcfg</command> script.</para><para>For
more information, see the <olink targetdoc="group-refman" targetptr="sysidcfg-4" remap="external"><citerefentry><refentrytitle>sysidcfg</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink> man
page.</para>
</listitem>
</itemizedlist>
</listitem><listitem><para>Verify that the X server is available to the zone.</para><para>Log
in to the labeled zone. Set the <systemitem class="resource">DISPLAY</systemitem> variable
to point to the X server, and open a window.</para><screen># DISPLAY=<replaceable>global-zone-hostname</replaceable>:<replaceable>n</replaceable>.<replaceable>n</replaceable>
# export DISPLAY
# /usr/openwin/bin/xclock</screen><para>If a labeled window does not appear, the zone networking
has not been configured correctly for that labeled zone.</para><note><para>If you are
running Trusted CDE starting with the Solaris 10&nbsp;5/09 release, see <olink targetptr="aptxconf-10" remap="internal">Resolve Local Zone to Global Zone Routing in Trusted CDE</olink>.</para>
</note>
</listitem><listitem><para>Configure the zone's host name with the naming service.</para><para>The zone's local <filename>/etc/hosts</filename> file is not used. Instead,
equivalent information must be specified in the global zone or on the LDAP
server. The information must include the IP address of the host name that
is assigned to the zone.</para>
</listitem><listitem><para>No interface is specified as <literal>all-zones</literal>.</para><para>Unless all your zones have IP addresses on the same subnet as the global
zone, you might need to configure an <literal>all-zones</literal> (shared)
interface. This configuration enables a labeled zone to connect to the X server
of the global zone. If you want to restrict remote connections to the X server
of the global zone, you can use <literal>vni0</literal> as the <literal>all-zones</literal> address.</para><para>If you do <emphasis>not</emphasis> want an <literal>all-zones</literal> interface
configured, you must provide a route to the global zone X server for each
zone. These routes must be configured in the global zone.</para>
</listitem><listitem><para>The labeled zone's network interface is down.</para><screen># <userinput>ifconfig -a</userinput></screen><para>Use the <command>ifconfig</command> command to verify that the labeled
zone's network interface is both <literal>UP</literal> and <literal>RUNNING</literal>.</para>
</listitem><listitem><para>LDAP name lookups fail.</para><para>Use the <command>ldaplist</command> command
to verify that each zone can communicate with the LDAP server or the LDAP
proxy server. On the LDAP server, verify that the zone is listed in the <filename>tnrhdb</filename> database.</para>
</listitem><listitem><para>NFS mounts do not work.</para><para>As superuser,
restart <command>automount</command> in the zone. Or, add a <command>crontab</command> entry
to run the <command>automount</command> command every five minutes.</para>
</listitem>
</itemizedlist>
</listitem>
</orderedlist>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1><sect1 id="txconf-18"><title>Additional Trusted Extensions Configuration Tasks</title><indexterm><primary>tasks and task maps</primary><secondary>Additional Trusted Extensions Configuration Tasks</secondary>
</indexterm><indexterm><primary>Additional Trusted Extensions Configuration Tasks</primary>
</indexterm><para>The following two tasks enable you to transfer exact copies of configuration
files to every Trusted Extensions system at your site. The final task enables
you to remove  Trusted Extensions customizations from a Solaris system.</para><task id="basic-52"><title>How to Copy Files to Portable Media in Trusted Extensions</title><indexterm><primary>allocating devices</primary><secondary>for copying data</secondary>
</indexterm><indexterm><primary>configuration files</primary><secondary>copying</secondary>
</indexterm><tasksummary><para>When copying to portable
media, label the media with the sensitivity label of the information.</para><note><para>During Trusted Extensions configuration, superuser or an equivalent
role copies administrative files to and from portable media. Label the media
with <constant>Trusted Path</constant>.</para>
</note>
</tasksummary><taskprerequisites><para>To copy administrative files, you must be superuser or in a role in
the global zone.</para>
</taskprerequisites><procedure><step><para>Allocate the appropriate device.</para><para>Use the Device Allocation
Manager, and insert clean media. &nbsp;For details, see <olink targetdoc="trssug" targetptr="ugelem-27" remap="external"><citetitle remap="section">How to Allocate a Device in Trusted Extensions</citetitle> in <citetitle remap="book">Solaris Trusted Extensions User&rsquo;s Guide</citetitle></olink>. </para><itemizedlist><listitem><para>In Solaris Trusted Extensions (CDE), a <emphasis>File Manager</emphasis> displays the
contents of the portable media.</para>
</listitem><listitem><para>In Solaris Trusted Extensions (GNOME), a <emphasis>File
Browser</emphasis> displays the contents.</para>
</listitem>
</itemizedlist><para>In In this procedure, File Manager is used to refer to this GUI.</para>
</step><step><para>Open a second File Manager.</para>
</step><step><para>Navigate to the folder that contains the files to be copied</para><para>For example, you might have copied files to an <filename class="directory">/export/clientfiles</filename> folder.</para>
</step><step><para>For each file, do the following:</para><substeps><step><para>Highlight the icon for the file.</para>
</step><step><para>Drag the file to the File Manager for the portable media.</para>
</step>
</substeps>
</step><step><para>Deallocate the device.</para><para>For details, see <olink targetdoc="trssug" targetptr="ugtour-12" remap="external"><citetitle remap="section">How to Deallocate a Device in Trusted Extensions</citetitle> in <citetitle remap="book">Solaris Trusted Extensions User&rsquo;s Guide</citetitle></olink>.</para>
</step><step><para>On the File Manager for the portable media, choose Eject from
the File menu.</para><note><para>Remember to physically affix a label to the media with the sensitivity
label of the copied files.</para>
</note>
</step>
</procedure><example id="txconf-copy-1"><title>Keeping Configuration Files Identical on All Systems</title><para>The system administrator wants to ensure that every machine is configured
with the same settings. So, on the first machine that is configured, she creates
a directory that cannot be deleted between reboots. In that directory, the
administrator places the files that should be identical or very similar on
all systems.</para><para>For example, she copies the Trusted Extensions toolbox that the Solaris Management Console uses
for the LDAP scope, <filename>/var/sadm/smc/toolboxes/tsol_ldap/tsol_ldap.tbx</filename>.
She has customized remote host templates in the <filename>tnrhtp</filename> file,
has a list of DNS servers, and audit configuration files. She also modified
the <filename>policy.conf</filename> file for her site. So, she copies the
files to the permanent directory.</para><screen># <userinput>mkdir /export/commonfiles</userinput>
# <userinput>cp  /etc/security/policy.conf \
/etc/security/audit_control \
/etc/security/audit_startup \
/etc/security/tsol/tnrhtp \
/etc/resolv.conf \
/etc/nsswitch.conf \
/export/commonfiles</userinput></screen><para>She uses the Device Allocation Manager to allocate a diskette in the
global zone, and transfers the files to the diskette. On a separate diskette,
labeled <constant>ADMIN_HIGH</constant>, she puts the <filename>label_encodings</filename> file
for the site.</para><para>When she copies the files onto a system, she modifies the <literal>dir:</literal> entries
in the <filename>/etc/security/audit_control</filename> file for that system.</para>
</example>
</task><task id="basic-25"><title>How to Copy Files From Portable Media in Trusted Extensions</title><tasksummary><para><indexterm><primary>media</primary><secondary>copying files from removable</secondary></indexterm><indexterm><primary>files</primary><secondary>copying from removable media</secondary></indexterm>It is safe practice to rename the original Trusted Extensions file
before replacing the file. When configuring a system, the <literal>root</literal> role
renames and copies administrative files.</para>
</tasksummary><taskprerequisites><para>To copy administrative
files, you must be superuser or in a role in the global zone.</para>
</taskprerequisites><procedure><step><para>Allocate the appropriate device.</para><para>For details, see <olink targetdoc="trssug" targetptr="ugelem-27" remap="external"><citetitle remap="section">How to Allocate a Device in Trusted Extensions</citetitle> in <citetitle remap="book">Solaris Trusted Extensions User&rsquo;s Guide</citetitle></olink>.</para><itemizedlist><listitem><para>In Solaris Trusted Extensions (CDE), a <emphasis>File Manager</emphasis> displays the
contents of the portable media.</para>
</listitem><listitem><para>In Solaris Trusted Extensions (GNOME), a <emphasis>File
Browser</emphasis> displays the contents.</para>
</listitem>
</itemizedlist><para>In this procedure, File Manager is used to refer to this GUI.</para>
</step><step><para>Insert the media that contains the administrative files.</para>
</step><step><para>If the system has a file of the same name, copy the original file
to a new name.</para><para>For example, add <filename>.orig</filename> to
the end of the original file:</para><screen># <userinput>cp /etc/security/tsol/tnrhtp /etc/security/tsol/tnrhtp.orig</userinput></screen>
</step><step><para>Open a File Manager.</para>
</step><step><para>Navigate to the desired destination directory, such as <filename>/etc/security/tsol</filename></para>
</step><step><para>For each file that you want to copy, do the following:</para><substeps><step><para>In the File Manager for the mounted media, highlight the icon
for the file.</para>
</step><step><para>Then, drag the file to the destination directory in the second
File Manager.</para>
</step>
</substeps>
</step><step><para>Deallocate the device.</para><para>For details, see <olink targetdoc="trssug" targetptr="ugtour-12" remap="external"><citetitle remap="section">How to Deallocate a Device in Trusted Extensions</citetitle> in <citetitle remap="book">Solaris Trusted Extensions User&rsquo;s Guide</citetitle></olink>.</para>
</step><step><para>When prompted, eject and remove the media.</para>
</step>
</procedure><example id="managedev-28"><title>Loading Audit Configuration Files in Trusted Extensions</title><para>In
this example, roles are not yet configured on the system. The <literal>root</literal> user
needs to copy configuration files to portable media. The contents of the media
will then  be copied to other systems. These files are to be copied to each
system that is configured with Trusted Extensions software.</para><para>The <literal>root</literal> user allocates the <literal>floppy_0</literal> device
in the Device Allocation Manager and responds <literal>yes</literal> to the
mount query. Then, the <literal>root</literal> user inserts the diskette with
the configuration files and copies them to the disk. The diskette is labeled <constant>Trusted Path</constant>.</para><para>To read from the media, the <literal>root</literal> user allocates the
device on the receiving host, then downloads the contents.</para><para><indexterm><primary>tape devices</primary><secondary>allocating</secondary></indexterm><indexterm><primary>allocating devices</primary><secondary>tape drive</secondary></indexterm>If the configuration files are on a tape, the <literal>root</literal> user allocates the <literal>mag_0</literal> device. If the
configuration files are on a CD-ROM, the <literal>root</literal> user allocates
the <literal>cdrom_0</literal> device.</para>
</example>
</task><task id="txconf-72"><title>How to Remove Trusted Extensions From the
System</title><indexterm><primary>Trusted Extensions</primary><secondary>disabling</secondary>
</indexterm><indexterm><primary>disabling</primary><secondary>Trusted Extensions</secondary>
</indexterm><indexterm><primary>removing Trusted Extensions</primary><see>disabling</see>
</indexterm><tasksummary><para>To remove Trusted Extensions from your Solaris system, you perform
specific steps to remove Trusted Extensions customizations to the Solaris system.</para>
</tasksummary><procedure><step><para>As in the Solaris OS, archive any data in the labeled zones that
you want to keep.</para>
</step><step><para><indexterm><primary>zones</primary><secondary>deleting</secondary></indexterm><indexterm><primary>deleting</primary><secondary>labeled zones</secondary></indexterm>Remove the labeled zones from the system.</para><para>For details,
see <olink targetdoc="group-sa" targetptr="z.inst.task-44" remap="external"><citetitle remap="section">How to Remove a Non-Global Zone</citetitle> in <citetitle remap="book">System Administration Guide:  Virtualization Using the Solaris Operating System</citetitle></olink>.</para>
</step><step><para><indexterm><primary><literal>labeld</literal> service</primary><secondary>disabling</secondary></indexterm>Disable the Trusted Extensions service.</para><screen># <userinput>svcadm disable labeld</userinput></screen>
</step><step><para>Run the <command>bsmunconv</command> command.</para><para>For
the effect of this command, see the <olink targetdoc="group-refman" targetptr="bsmunconv-1m" remap="external"><citerefentry><refentrytitle>bsmunconv</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page.</para>
</step><step performance="optional"><para>Reboot the system.</para>
</step><step><para>Configure the system.</para><para>Various services might need
to be configured for your Solaris system. Candidates include auditing,
basic networking, naming services, and file system mounts.</para>
</step>
</procedure>
</task>
</sect1>
</chapter><?Pub *0000177158 0?>