<?Pub UDT _bookmark _target?><?Pub EntList bsol dash hellip gt lt minus?><?Pub CX solbook(book(title()bookinfo()part()part(title()partintro()chapter()?><chapter id="managetnet-1"><?Pub Tag atict:info tracking="on" ref="0"?><?Pub Tag
atict:user user="sharonr" fullname="Sharon Veach"?><title>Managing Networks
in Trusted Extensions (Tasks)</title><indexterm><primary>administering</primary><secondary>trusted networking</secondary>
</indexterm><indexterm><primary>administering</primary><secondary>network in Trusted Extensions</secondary>
</indexterm><indexterm><primary>configuring</primary><secondary>trusted network</secondary>
</indexterm><highlights><para>This chapter provides implementation details and procedures for securing
a Solaris Trusted Extensions network.</para><itemizedlist remap="jumplist"><listitem><para><olink targetptr="managetnet-6" remap="internal">Managing the Trusted Network
(Task Map)</olink></para>
</listitem><listitem><para><olink targetptr="managetnet-3" remap="internal">Configuring Trusted Network
Databases (Task Map)</olink></para>
</listitem><listitem><para><olink targetptr="managetnet-14" remap="internal">Configuring Routes and Checking
Network Information in Trusted Extensions (Task Map)</olink></para>
</listitem><listitem><para><olink targetptr="managetnet-2" remap="internal">Troubleshooting the Trusted
Network (Task Map)</olink></para>
</listitem>
</itemizedlist>
</highlights><sect1 id="managetnet-6"><title>Managing the Trusted Network (Task
Map)</title><indexterm><primary>Managing Trusted Networking (Task Map)</primary>
</indexterm><indexterm><primary>tasks and task maps</primary><secondary>Managing Trusted Networking (Task Map)</secondary>
</indexterm><para>The following table points to the task maps for common trusted networking
procedures.</para><informaltable frame="all" pgwide="1"><tgroup cols="3" colsep="1" rowsep="1"><colspec colwidth="33*"/><colspec colwidth="33*"/><colspec colwidth="33*"/><thead><row><entry><para>Task</para>
</entry><entry><para>Description</para>
</entry><entry><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row><entry><para>Configure network databases.</para>
</entry><entry><para>Creates remote host templates,and assigns hosts to the templates.</para>
</entry><entry><para><olink targetptr="managetnet-3" remap="internal">Configuring Trusted Network Databases
(Task Map)</olink></para>
</entry>
</row><row><entry><para>Configure routing, and check network databases and network information
in the kernel.</para>
</entry><entry><para>Configures static routes that enable labeled packets to reach their
destination through labeled and unlabeled gateways.</para><para>Also, displays the state of your network.</para>
</entry><entry><para><olink targetptr="managetnet-14" remap="internal">Configuring Routes and Checking Network
Information in Trusted Extensions (Task Map)</olink></para>
</entry>
</row><row><entry><para>Troubleshoot networking problems.</para>
</entry><entry><para>Steps to take when diagnosing network problems with labeled packets.</para>
</entry><entry><para><olink targetptr="managetnet-2" remap="internal">Troubleshooting the Trusted Network
(Task Map)</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect1><sect1 id="managetnet-3"><title>Configuring Trusted Network Databases (Task
Map)</title><indexterm><primary>Configuring Trusted Network Databases (Task Map)</primary>
</indexterm><indexterm><primary>tasks and task maps</primary><secondary>Configuring Trusted Network Databases (Task Map)</secondary>
</indexterm><indexterm><primary>administering</primary><secondary>trusted network databases</secondary>
</indexterm><indexterm><primary>trusted network</primary><secondary>using templates</secondary>
</indexterm><indexterm><primary>IP addresses</primary><secondary>in <filename>tnrhdb</filename> file</secondary>
</indexterm><indexterm><primary>Computers and Networks tool</primary><secondary>modifying <filename>tnrhdb</filename> database</secondary>
</indexterm><indexterm><primary>Security Templates tool</primary><secondary>modifying <filename>tnrhdb</filename></secondary>
</indexterm><indexterm><primary>trusted network</primary><secondary>editing local files</secondary>
</indexterm><indexterm><primary>IP addresses</primary><secondary>in <filename>tnrhdb</filename> database</secondary>
</indexterm><indexterm><primary><filename>tnrhdb</filename> database</primary><secondary>configuring</secondary>
</indexterm><indexterm><primary>hosts</primary><secondary>assigning a template</secondary>
</indexterm><indexterm><primary>remote host templates</primary><secondary>assigning</secondary>
</indexterm><indexterm><primary>Security Templates tool</primary><secondary>modifying <filename>tnrhdb</filename></secondary>
</indexterm><indexterm><primary>hosts</primary><secondary>assigning a template</secondary>
</indexterm><indexterm><primary>fallback mechanism</primary><secondary>for remote hosts</secondary>
</indexterm><indexterm><primary>fallback mechanism</primary><secondary>using for network configuration</secondary>
</indexterm><indexterm><primary><filename>tnrhdb</filename> database</primary><secondary>fallback mechanism</secondary>
</indexterm><indexterm><primary><filename>tnrhdb</filename> database</primary><secondary>wildcard address</secondary>
</indexterm><indexterm><primary>Solaris Management Console</primary><secondary>administering trusted network</secondary>
</indexterm><indexterm><primary>trusted network</primary><secondary>administering with Solaris Management Console</secondary>
</indexterm><para>Trusted Extensions software includes the <filename>tnrhtp</filename> and <filename>tnrhdb</filename> databases. These databases provide labels for remote hosts
that contact the system. The Solaris Management Console provides the GUI that you use to administer
these databases.</para><informaltable frame="all" pgwide="1"><tgroup cols="3" colsep="1" rowsep="1"><colspec colwidth="33*"/><colspec colwidth="33*"/><colspec colwidth="33*"/><thead><row><entry><para>Task</para>
</entry><entry><para>Description</para>
</entry><entry><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row><entry><para>Determine if your site requires customized security templates.</para>
</entry><entry><para>Evaluates the existing templates for the security requirements of your
site.</para>
</entry><entry><para><olink targetptr="managetnet-22" remap="internal">How to Determine If You Need Site-Specific
Security Templates</olink></para>
</entry>
</row><row><entry><para>Access the Security Templates tool in the Solaris Management Console.</para>
</entry><entry><para>Accesses the tool for modifying trusted network databases.</para>
</entry><entry><para><olink targetptr="managetnet-15" remap="internal">How to Open the Trusted Networking
Tools</olink></para>
</entry>
</row><row><entry morerows="7" rowsep="1"><para>Modify security templates.</para>
</entry><entry><para>Modifies the definitions of security attributes in your trusted network
by modifying the trusted network databases.</para>
</entry><entry><para><olink targetptr="managetnet-20" remap="internal">How to Construct a Remote Host Template</olink></para>
</entry>
</row><row><entry><para>Changes the DOI to a value different from <literal>1</literal>.</para>
</entry><entry><para><olink targetptr="managetnet-47" remap="internal">Example&nbsp;19&ndash;1</olink></para>
</entry>
</row><row><entry><para>Creates a security template for labeled hosts that restrict communication
between other hosts to a single label.</para>
</entry><entry><para><olink targetptr="managetnet-48" remap="internal">Example&nbsp;19&ndash;2</olink></para>
</entry>
</row><row><entry><para>Creates a security template for unlabeled hosts that operate as single-label
gateways.</para>
</entry><entry><para><olink targetptr="managetnet-23" remap="internal">Example&nbsp;19&ndash;3</olink></para>
</entry>
</row><row><entry><para>Creates a security template for hosts with a restricted label range.</para>
</entry><entry><para><olink targetptr="managetnet-24" remap="internal">Example&nbsp;19&ndash;4</olink></para>
</entry>
</row><row><entry><para>Creates a security template for a host that specifies a set of discrete
labels in its label range.</para>
</entry><entry><para><olink targetptr="managetnet-25" remap="internal">Example&nbsp;19&ndash;5</olink></para>
</entry>
</row><row><entry><para>Creates a security template for unlabeled systems and networks.</para>
</entry><entry><para><olink targetptr="txconf-49" remap="internal">Example&nbsp;19&ndash;6</olink></para>
</entry>
</row><row><entry><para>Creates a security template for two developer systems.</para>
</entry><entry><para><olink targetptr="txconf-51" remap="internal">Example&nbsp;19&ndash;7</olink></para>
</entry>
</row><row><entry><para>Add hosts to the known network.</para>
</entry><entry><para>Adds systems and networks to the trusted network.</para>
</entry><entry><para><olink targetptr="txconf-9" remap="internal">How to Add Hosts to the System's Known Network</olink></para>
</entry>
</row><row><entry><para>Provide remote host access by using wildcard entries.</para>
</entry><entry><para>Allows hosts within a range of IP addresses to communicate with a system
by indirectly assigning each host to the same security template.</para>
</entry><entry><para><olink targetptr="managetnet-26" remap="internal">Example&nbsp;19&ndash;8</olink></para><para><olink targetptr="managetnet-27" remap="internal">Example&nbsp;19&ndash;9</olink></para><para><olink targetptr="managetnet-28" remap="internal">Example&nbsp;19&ndash;10</olink></para>
</entry>
</row><row><entry morerows="1" rowsep="1"><para>Change the <literal>admin_low</literal> wildcard entry in the <filename>tnrhdb</filename> file.</para>
</entry><entry><para>Increases security by replacing the wildcard entry with specific addresses
for the host to contact at boot time.</para>
</entry><entry><para><olink targetptr="managetnet-8" remap="internal">How to Limit the Hosts That Can Be Contacted
on the Trusted Network</olink></para>
</entry>
</row><row><entry><para>Increases security by replacing the wildcard entry with a network of
labeled hosts as the default.</para>
</entry><entry><para><olink targetptr="managetnet-43" remap="internal">Example&nbsp;19&ndash;11</olink></para>
</entry>
</row><row><entry><para>Create an
entry for the host address <literal>0.0.0.0</literal></para>
</entry><entry><para>Configures
a Sun Ray server to accept the initial contact from a remote client</para>
</entry><entry><para><olink targetptr="managetnet-35" remap="internal">Example&nbsp;19&ndash;13</olink></para>
</entry>
</row><row><entry><para>Assign security templates.</para>
</entry><entry><para>Associates a template with an IP address or list of contiguous IP addresses.</para>
</entry><entry><para><olink targetptr="managetnet-16" remap="internal">How to Assign a Security Template to
a Host or a Group of Hosts</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable><task id="managetnet-22"><title>How to Determine If You Need Site-Specific
Security Templates</title><taskprerequisites><para>You must be in the Security Administrator role in the global zone.</para>
</taskprerequisites><procedure><step><para>Familiarize yourself with the Trusted Extensions templates.</para><para>Read
the <filename>tnrhtp</filename> file on a local host. The comments in the
file are helpful. You can also view the security attribute values in the Security
Templates tool in the Solaris Management Console.</para><itemizedlist><listitem><para>The default templates match any installation. The label range
for each template is <constant>ADMIN_LOW</constant> to <constant>ADMIN_HIGH</constant>.</para>
</listitem><listitem><para>The <literal>cipso</literal> template defines a CIPSO host
type whose DOI is <literal>1</literal>. The label range for the template is <constant>ADMIN_LOW</constant> to <constant>ADMIN_HIGH</constant>.</para>
</listitem><listitem><para>The <literal>admin_low</literal> template defines an unlabeled
host whose DOI is <literal>1</literal>. The template's default label is <constant>ADMIN_LOW</constant>. The label range for the template is <constant>ADMIN_LOW</constant> to <constant>ADMIN_HIGH</constant>. In the default configuration, the address <literal>0.0.0.0</literal> is assigned to this template. Therefore, all non-CIPSO hosts are
treated as hosts that operate at the <constant>ADMIN_LOW</constant> security
label.</para>
</listitem>
</itemizedlist>
</step><step><para>Keep the default templates.</para><para>For support purposes,
do not delete or modify the default templates. You can change the host that
is assigned these default templates. For an example, see <olink targetptr="managetnet-8" remap="internal">How to Limit the Hosts That Can Be Contacted on the
Trusted Network</olink>.</para>
</step><step><para>Create new templates if you want to do any of the following:</para><itemizedlist><listitem><para>Limit the label range of a host or a group of hosts.</para>
</listitem><listitem><para>Create a single-label host.</para>
</listitem><listitem><para>Create a host that recognizes a few discrete labels.</para>
</listitem><listitem><para>Use a different DOI than <literal>1</literal>.</para>
</listitem><listitem><para>Require a default label for unlabeled hosts that is not <constant>ADMIN_LOW</constant>.</para>
</listitem>
</itemizedlist><para>For details, see <olink targetptr="managetnet-20" remap="internal">How to Construct a
Remote Host Template</olink>.</para>
</step>
</procedure>
</task><task id="managetnet-15"><title>How to Open the Trusted Networking
Tools</title><indexterm><primary>Solaris Management Console</primary><secondary>Security Templates tool</secondary>
</indexterm><indexterm><primary>Security Templates tool</primary><secondary>using</secondary>
</indexterm><indexterm><primary>Trusted Network tools</primary><secondary>using</secondary>
</indexterm><taskprerequisites><para>You must be in the global zone in a role that can modify network security.
For example, roles that are assigned the Information Security or Network Security
rights profile can modify security settings. The Security Administrator role
includes these profiles.</para><para>To use the LDAP toolbox, 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><para>For details, see <olink targetptr="confsys-21" remap="internal">Initialize the Solaris Management Console Server in
Trusted Extensions</olink>.</para>
</step><step><para>Use the appropriate tool.</para><itemizedlist><listitem><para>To modify a template, use the Security Templates tool.</para><para>All currently defined templates display in the right pane. When you
select or create a template, online help is available in the left pane.</para>
</listitem><listitem><para>To assign a host to a template, use the Security Templates
tool.</para>
</listitem><listitem><para>To create a host that can be assigned to a template, use the
Computers and Networks tool.</para>
</listitem><listitem><para>To assign a label to a zone, use the Trusted Network Zones
tool. For more information about zones in Trusted Extensions, see <olink targetptr="managezones-1" remap="internal">Chapter&nbsp;16, Managing Zones in Trusted Extensions (Tasks)</olink>.</para>
</listitem>
</itemizedlist>
</step>
</procedure>
</task><task id="managetnet-20"><title>How to Construct a Remote Host Template</title><indexterm><primary>security attributes</primary><secondary>setting for remote hosts</secondary>
</indexterm><indexterm><primary><filename>tnrhtp</filename> database</primary><secondary>adding to</secondary>
</indexterm><indexterm><primary>administering</primary><secondary>remote host templates</secondary>
</indexterm><indexterm><primary>remote host templates</primary><secondary>creating</secondary>
</indexterm><taskprerequisites><para>You must be in the global zone in a role that can modify network security.
For example, roles that are assigned the Information Security or Network Security
rights profiles can modify security settings. The Security Administrator role
includes these profiles.</para>
</taskprerequisites><procedure><step><para>In the Solaris Management Console, navigate to the Security Templates tool.</para><para>See <olink targetptr="managetnet-15" remap="internal">How to Open the Trusted Networking Tools</olink> for
the steps.</para>
</step><step><para>Under Computers and Networks, double-click Security Templates.</para><para>The existing templates are displayed in the View pane. These templates
describe the security attributes for hosts that this system can contact. These
hosts include CIPSO hosts that are running Trusted Extensions and unlabeled hosts.</para>
</step><step><para>Examine the <filename>cipso</filename> template.</para><para>View
which hosts and which networks are already assigned this template.</para>
</step><step><para>Examine the <filename>admin_low</filename> template.</para><para>View
which hosts and which networks are already assigned this template.</para>
</step><step><para>Create a template.</para><para>If the provided templates do not
sufficiently describe the hosts that can be in communication with this system,
choose Add Template from the Action menu.</para><para>Use the online help for assistance. Before assigning hosts to the templates,
create all the templates that your site requires.</para>
</step><step performance="optional"><para>Modify an existing template that is not
a default template.</para><para>Double-click the template, and use the online
help for assistance. You can change the assigned hosts or the assigned networks.</para>
</step>
</procedure><example id="managetnet-47"><title>Creating a Security Template With a Different DOI Value</title><para>In this example, the security administrator's network has a DOI whose
value is different from <literal>1</literal>. The team that initially configured
the system has completed <olink targetptr="txconf-92" remap="internal">Configure the
Domain of Interpretation</olink>.</para><para>First, the security administrator confirms the value of the DOI in the <filename>/etc/system</filename> file:</para><screen># <userinput>grep doi /etc/system</userinput>
set default_doi = 4</screen><para>Then, in the Security Templates tool, for every template that the administrator
creates, the value of <literal>doi</literal> is set to <literal>4</literal>.
For the single-label system that is described in <olink targetptr="managetnet-48" remap="internal">Example&nbsp;19&ndash;2</olink>, the security administrator creates the following
template:</para><screen>template: CIPSO_PUBLIC
host_type: CIPSO
doi: <userinput>4</userinput>
min_sl: PUBLIC
max_sl: PUBLIC</screen>
</example><example id="managetnet-48"><title>Creating a Security Template That Has a Single Label</title><para>In this example, the security administrator wants to create a gateway
that can only pass packets at a single label, <literal>PUBLIC</literal>. Using
the Security Templates tool in the Solaris Management Console, the administrator creates a template
and assigns the gateway host to the template.</para><para>First, the gateway host and IP address are added to the Computers and
Networks tool.</para><screen>gateway-1
192.168.131.75</screen><para>Then, the template is created in the Security Templates tool.&nbsp;
The following are the values in the template:</para><screen>template: <userinput>CIPSO_PUBLIC</userinput>
host_type: <userinput>CIPSO</userinput>
doi: <userinput>1</userinput>
min_sl: <userinput>PUBLIC</userinput>
max_sl: <userinput>PUBLIC</userinput></screen><para>The tool supplies the hexadecimal value for <literal>PUBLIC</literal>, <literal>0X0002-08-08</literal>.</para><para>Finally, the <literal>gateway-1</literal> host is assigned to the template
by its name and IP address.</para><screen>gateway-1
192.168.131.75</screen><para>On a local host, the <filename>tnrhtp</filename> entry appears similar
to the following:</para><screen>cipso_public:host_type=cipso;doi=1;min_sl=0X0002-08-08;max_sl=0X0002-08-08;</screen><para>On a local host, the <filename>tnrhdb</filename> entry appears similar
to the following:</para><screen># gateway-1
192.168.131.75:cipso_public</screen>
</example><example id="managetnet-23"><title>Creating a Security Template for an Unlabeled Router</title><para>Any IP router can forward messages with CIPSO labels even though the
router does not explicitly support labels. Such an unlabeled  router needs
a default label to define the level at which connections to the router, perhaps
for router management, need to be handled. In this example, the security administrator
creates a router that can forward traffic at any label, but all direct communication
with the router is handled at the default label, <literal>PUBLIC</literal>.</para><para>In the Solaris Management Console, the administrator creates a template and assigns the gateway
host to the template.</para><para>First, the router and its IP address are added to the Computers and
Networks tool.</para><screen>router-1
192.168.131.82</screen><para>Then, the template is created in the Security Templates tool. The following
values are in the template:</para><screen>Template Name: <userinput>UNL_PUBLIC</userinput>
Host Type: <userinput>UNLABELED</userinput>
DOI: <userinput>1</userinput>
Default Label: <userinput>PUBLIC</userinput>
Minimum Label: <userinput>ADMIN_LOW</userinput>
Maximum Label: <userinput>ADMIN_HIGH</userinput></screen><para>The tool supplies the hexadecimal value for the labels.</para><para>Finally, the <literal>router-1</literal> router is assigned to the template
by its name and IP address.</para><screen>router-1
192.168.131.82</screen>
</example><example id="managetnet-24"><title>Creating a Security Template That Has a Limited Label Range</title><para>In this example, the security administrator wants to create a gateway
that restricts packets to a narrow label range. In the Solaris Management Console, the administrator
creates a template and assigns the gateway host to the template.</para><para>First, the host and its IP address are added to the Computers and Networks
tool.</para><screen>gateway-ir
192.168.131.78</screen><para>Then, the template is created in the Security Templates tool. The following
values are in the template:</para><screen>Template Name: <userinput>CIPSO_IUO_RSTRCT</userinput>
Host Type: <userinput>CIPSO</userinput>
DOI: <userinput>1</userinput>
Minimum Label: <userinput>CONFIDENTIAL : INTERNAL USE ONLY</userinput>
Maximum Label: <userinput>CONFIDENTIAL : RESTRICTED</userinput></screen><para>The tool supplies the hexadecimal value for the labels.</para><para>Finally, the <literal>gateway-ir</literal> gateway is assigned to the
template by its name and IP address.</para><screen>gateway-ir
192.168.131.78</screen>
</example><example id="managetnet-25"><title>Creating a Security Template That Has a Security Label Set</title><para>In this example, the security administrator wants to create a security
template that recognizes two labels only. In the Solaris Management Console, the administrator
creates a template and assigns the gateway host to the template.</para><para>First, each host and IP address that is going to use this template is
added to the Computers and Networks tool.</para><screen>host-slset1
192.168.132.21

host-slset2
192.168.132.22

host-slset3
192.168.132.23

host-slset4
192.168.132.24</screen><para>Then, the template is created in the Security Templates tool. The following
values are in the template:</para><screen>Template Name: <userinput>CIPSO_PUB_RSTRCT</userinput>
Host Type: <userinput>CIPSO</userinput>
DOI: <userinput>1</userinput>
Minimum Label: <userinput>PUBLIC</userinput>
Maximum Label: <userinput>CONFIDENTIAL : RESTRICTED</userinput>
SL Set: <userinput>PUBLIC, CONFIDENTIAL : RESTRICTED</userinput></screen><para>The tool supplies the hexadecimal value for the labels.</para><para>Finally, the range of IP addresses are assigned to the template by using
the Wildcard button and a prefix.</para><screen>192.168.132.0/17</screen>
</example><example id="txconf-49"><title>Creating an Unlabeled Template at the Label <constant>PUBLIC</constant></title><para>In this example, the security administrator allows a subnetwork of Solaris systems
to have the <constant>PUBLIC</constant> label in the trusted network. The
template has the following values:</para><screen>Template Name: public
Host Type: Unlabeled
Default Label: Public
Minimum Label: Public
Maximum Label: Public
DOI: 1

Wildcard Entry: 10.10.0.0
Prefix: 16</screen><para>All systems on the <literal>10.10.0.0</literal> subnetwork are handled
at the label <constant>PUBLIC</constant>.</para>
</example><example id="txconf-51"><title>Creating a Labeled Template for Developers</title><para>In this example, the security administrator creates a <constant>SANDBOX</constant> template.
This template is assigned to systems that are used by developers of trusted
software. The two systems that are assigned this template create and test
labeled programs. However, their tests do not affect the other labeled systems,
because the label <constant>SANDBOX</constant> is disjoint from the other
labels on the network.</para><screen>Template Name: cipso_sandbox
Host Type: CIPSO
Minimum Label: SANDBOX
Maximum Label: SANDBOX
DOI: 1

Hostname: DevMachine1
IP Address: 196.168.129.129

Hostname: DevMachine2
IP Address: 196.168.129.102</screen><para>The developers who use these systems can communicate with each other
at the label <constant>SANDBOX</constant>.</para>
</example>
</task><task id="txconf-9"><title>How to Add Hosts to the System's Known
Network</title><indexterm><primary>Solaris Management Console</primary><secondary>Computers and Networks tool</secondary>
</indexterm><indexterm><primary>Computers and Networks tool</primary><secondary>adding known hosts</secondary>
</indexterm><indexterm><primary>hosts</primary><secondary>entering in network files</secondary>
</indexterm><indexterm><primary><filename>/etc/hosts</filename> file</primary>
</indexterm><tasksummary><para>The Computers tool in the Solaris Management Console is identical to the Computers tool in
the Solaris OS. This procedure is provided here for your convenience. After the
hosts are known, you then assign the hosts to a security template.</para>
</tasksummary><taskprerequisites><para>You must be in an administrator who can manage networks. For example,
roles that include the Network Management or System Administrator rights profiles
can manage networks.</para>
</taskprerequisites><procedure><step><para>In the Solaris Management Console, navigate to the Computers tool.</para><para>For
details, see <olink targetptr="managetnet-15" remap="internal">How to Open the Trusted Networking
Tools</olink>.</para>
</step><step><para>In the Computers tool, confirm that you want to view all computers
on the network.</para>
</step><step><para>Add a host that this system can contact.</para><para>You must
add every host that this system might contact, including any static routers
and any audit servers.</para><substeps><step><para>From the Action menu, choose Add Computer.</para>
</step><step><para>Identify the host by name and IP address.</para>
</step><step performance="optional"><para>Provide additional information about the
host.</para>
</step><step><para>To add the host, click Apply.</para>
</step><step><para>When the entries are complete, click OK.</para>
</step>
</substeps>
</step><step><para>Add a group of hosts that this system can contact.</para><para>Use
the online help to add groups of hosts by using a network IP address.</para>
</step>
</procedure>
</task><task id="managetnet-16"><title>How to Assign a Security Template
to a Host or a Group of Hosts</title><indexterm><primary>Security Templates tool</primary><secondary>assigning templates</secondary>
</indexterm><indexterm><primary>Computers and Networks tool</primary><secondary>adding known hosts</secondary>
</indexterm><indexterm><primary>hosts</primary><secondary>assigning to security template</secondary>
</indexterm><indexterm><primary>interfaces</primary><secondary>assigning to security template</secondary>
</indexterm><indexterm><primary><filename>/etc/hosts</filename> file</primary>
</indexterm><indexterm><primary><filename>tnrhdb</filename> database</primary><secondary>adding to</secondary>
</indexterm><indexterm><primary>administering</primary><secondary>remote host database</secondary>
</indexterm><indexterm><primary>remote host templates</primary><secondary>assigning to hosts</secondary>
</indexterm><taskprerequisites><para>You must be in the Security Administrator role in the global zone.</para><para>All hosts that you want to assign to a template must exist in the Computers
and Networks tool. For details, see <olink targetptr="txconf-9" remap="internal">How to Add
Hosts to the System's Known Network</olink>.</para>
</taskprerequisites><procedure><step><para>In the Solaris Management Console, navigate to the Security Templates tool.</para><para>For
details, see <olink targetptr="managetnet-15" remap="internal">How to Open the Trusted Networking
Tools</olink>.</para>
</step><step><para>Double-click the appropriate template name.</para>
</step><step><para>Click the Hosts Assigned to Template tab.</para>
</step><step><para>To assign the template to a single host, do the following:</para><substeps><step><para>In the Hostname field, type the host's name.</para>
</step><step><para>In the IP Address field, type the host's address.</para>
</step><step><para>Click the Add button.</para>
</step><step><para>To save your changes, click OK.</para>
</step>
</substeps>
</step><step><para>To assign a template to a group of hosts with contiguous addresses,
do the following:</para><substeps><step><para>Click Wildcard.</para>
</step><step><para>In the IP Address field, type the IP address.</para>
</step><step><para>In the Prefix field, type the prefix that describes the group
of contiguous addresses.</para>
</step><step><para>Click the Add button.</para>
</step><step><para>To save your changes, click OK.</para>
</step>
</substeps>
</step>
</procedure><example id="managetnet-26"><title>Adding an IPv4 Network as a Wildcard Entry</title><para>In the following example, a security administrator assigns several IPv4
subnetworks to the same security template. In the Hosts Assigned to Template
tab, the administrator adds the following wildcard entries:</para><screen>IP Address: 192.168.113.0
IP address: 192.168.75.0</screen>
</example><example id="managetnet-27"><title>Adding a List of IPv4 Hosts as a Wildcard Entry</title><para>In the following example, a security administrator assigns contiguous
IPv4 addresses that are not along octet boundaries to the same security template.
In the Hosts Assigned to Template tab, the administrator adds the following
wildcard entries:</para><screen>IP Address: 192.168.113.100
Prefix Length: 25</screen><para>This wildcard entry covers the address range of <literal>192.168.113.0</literal> to <literal>192.168.113.127</literal>. The address includes <literal>192.168.113.100</literal>.</para>
</example><example id="managetnet-28"><title>Adding a List of IPv6 Hosts as a Wildcard Entry</title><para>In the following example, a security administrator assigns contiguous
IPv6 addresses to the same security template. In the Hosts Assigned to Template
tab, the administrator adds the following wildcard entries:</para><screen>IP Address: 2001:a08:3903:200::0
Prefix Length: 56</screen><para>This wildcard entry covers the address range of <literal>2001:a08:3903:200::0</literal> to <literal>2001:a08:3903:2ff:ffff:ffff:ffff:ffff</literal>. The
address includes <literal>2001:a08:3903:201:20e:cff:fe08:58c</literal>.</para>
</example>
</task><task id="managetnet-8"><title>How to Limit the Hosts That Can Be Contacted
on the Trusted Network</title><indexterm><primary>trusted network</primary><secondary>0.0.0.0 <filename>tnrhdb</filename> entry</secondary>
</indexterm><indexterm><primary>protecting</primary><secondary>labeled hosts from contact by arbitrary unlabeled hosts</secondary>
</indexterm><indexterm><primary>limiting</primary><secondary>defined hosts on the network</secondary>
</indexterm><indexterm><primary>protecting</primary><secondary>from access by arbitrary hosts</secondary>
</indexterm><tasksummary><para>This procedure protects labeled hosts from being contacted by arbitrary
unlabeled hosts. When Trusted Extensions is installed, this default template defines
every host on the network. Use this procedure to enumerate specific unlabeled
hosts.</para><para>The local <filename>tnrhdb</filename> file on each system is used to
contact the network at boot time. By default, every host that is not provided
with a CIPSO template is defined by the <literal>admin_low</literal> template.
This template assigns every system that is not otherwise defined (<literal>0.0.0.0</literal>) to be an unlabeled system with the default label of <literal>admin_low</literal>.</para><caution><para><indexterm><primary><filename>tnrhdb</filename> database</primary><secondary>0.0.0.0 wildcard address</secondary></indexterm>The default <constant>admin_low</constant> template can be a security risk on a Trusted Extensions network. If
site security requires strong protection, the security administrator can remove
the <literal>0.0.0.0</literal> wildcard entry after the system is installed.
The entry must be replaced with entries for every host that the system contacts
during boot.</para><para>For example, DNS servers, home directory servers,
audit servers, broadcast and multicast addresses, and routers must be in the
local <filename>tnrhdb</filename> file after the <literal>0.0.0.0</literal> wildcard
entry is removed.</para><para><indexterm><primary><filename>tnrhdb</filename> database</primary><secondary>0.0.0.0 host address</secondary></indexterm>If an application initially recognizes
clients at the host address <literal>0.0.0.0</literal>, then you must add
the <literal>0.0.0.0/32:admin_low</literal> host entry to the <filename>tnrhdb</filename> database.
For example, to receive initial connection requests from potential Sun Ray
clients, Sun Ray servers must include this entry. Then, when the server recognizes
the clients, the clients are provided an IP address and connected as CIPSO
clients.</para>
</caution>
</tasksummary><taskprerequisites><para>You must be in the Security Administrator role in the global zone.</para><para>All hosts that are to be contacted at boot time must exist in the Computers
and Networks tool.</para>
</taskprerequisites><procedure><step><para>In the Solaris Management Console, navigate to the Security Templates tool in the Files
scope.</para><para>The Files scope protects the system during boot. To access
the Security Templates tool, see <olink targetptr="managetnet-15" remap="internal">How to Open
the Trusted Networking Tools</olink>.</para>
</step><step><para>Modify the hosts that are assigned to the <literal>admin_low</literal> template.</para><substeps><step><para>Double-click the <literal>admin_low</literal> template.</para><para>Every
host that is added can be contacted during boot at the label <constant>ADMIN_LOW</constant>.</para>
</step><step><para>Click the Hosts Assigned to Template tab.</para><para>Every host
that is added can be contacted during boot at the label <constant>ADMIN_LOW</constant>.</para>
</step><step><para>Add each unlabeled host that must be contacted at boot time.</para><para>For details, see <olink targetptr="managetnet-16" remap="internal">How to Assign a Security
Template to a Host or a Group of Hosts</olink>.</para><para>Include every on-link router that is not running Trusted Extensions, through
which this host must communicate.</para>
</step><step><para>Add the ranges of hosts that must be contacted at boot time.</para>
</step><step><para>Remove the <literal>0.0.0.0</literal> entry.</para>
</step>
</substeps>
</step><step><para>Modify the hosts that are assigned to the <literal>cipso</literal> template.</para><substeps><step><para>Double-click the <literal>cipso</literal> template.</para><para>Every
host that is added can be contacted during boot.</para>
</step><step><para>Click the Hosts Assigned to Template tab.</para><para>Every host
that is added can be contacted during boot at the label <constant>ADMIN_LOW</constant>.</para>
</step><step><para>Add each labeled host that must be contacted at boot time.</para><para>For details, see <olink targetptr="managetnet-16" remap="internal">How to Assign a Security
Template to a Host or a Group of Hosts</olink>.</para><itemizedlist><listitem><para>Include the LDAP server.</para>
</listitem><listitem><para>Include every on-link router that is running Trusted Extensions,
through which this host must communicate</para>
</listitem><listitem><para>Make sure that all network interfaces are assigned to the
template.</para>
</listitem><listitem><para>Include broadcast addresses.</para>
</listitem>
</itemizedlist>
</step><step><para>Add the ranges of hosts that must be contacted at boot time.</para>
</step>
</substeps>
</step><step><para>Verify that the host assignments allow the system to boot.</para>
</step>
</procedure><example id="managetnet-43"><title>Changing the Label of the <literal>0.0.0.0</literal> <filename>tnrhdb</filename> Entry</title><para>In this example, the security administrator creates a public gateway
system. The administrator removes the <literal>0.0.0.0</literal> entry from
the <literal>admin_low</literal> template and assigns the entry to an unlabeled
template that is named <literal>public</literal>. The system then recognizes
any system that is not listed in its <filename>tnrhdb</filename> file as an
unlabeled system with the security attributes of the <literal>public</literal> security
template.</para><para>The following describes an unlabeled template that was created specifically
for public gateways.</para><screen>Template Name: public
Host Type: Unlabeled
Default Label: Public
Minimum Label: Public
Maximum Label: Public
DOI: 1</screen>
</example><example id="managetnet-45"><title>Enumerating Computers to Contact During Boot in the <filename>tnrhdb</filename> Database</title><para>The following example shows the local <filename>tnrhdb</filename> database
with entries for an LDAP client with two network interfaces. The client communicates
with another network and with routers.</para><screen>127.0.0.1:cipso       <lineannotation>Loopback address</lineannotation>
192.168.112.111:cipso <lineannotation>Interface 1 of this host</lineannotation>
192.168.113.111:cipso <lineannotation>Interface 2 of this host</lineannotation>
10.6.6.2:cipso        <lineannotation>LDAP server</lineannotation>
192.168.113.6:cipso   <lineannotation>Audit server</lineannotation>
192.168.112.255:cipso <lineannotation>Subnet broadcast address</lineannotation>
192.168.113.255:cipso <lineannotation>Subnet broadcast address</lineannotation>
192.168.113.1:cipso   <lineannotation>Router</lineannotation>
192.168.117.0:cipso   <lineannotation>Another Trusted Extensions network</lineannotation>
192.168.112.12:public <lineannotation>Specific network router</lineannotation>
192.168.113.12:public <lineannotation>Specific network router</lineannotation>
224.0.0.2:public      <lineannotation>Multicast address</lineannotation>
255.255.255.255:admin_low <lineannotation>Broadcast address</lineannotation></screen>
</example><example id="managetnet-35"><title>Making the Host Address <literal>0.0.0.0</literal> a Valid <filename>tnrhdb</filename> Entry</title><para><indexterm><primary>Sun Ray systems</primary><secondary>enabling initial contact between client and server</secondary></indexterm><indexterm><primary><command>utadm</command> command</primary><secondary>default Sun Ray server configuration</secondary></indexterm>In this example, the security administrator configures a Sun Ray
server to accept initial connection requests from potential clients. The server
is using a private topology and is using the defaults:</para><screen># <userinput>utadm -a bge0</userinput></screen><para>First, the administrator determines the Solaris Management Console domain name:</para><screen>SMCserver # <userinput>/usr/sadm/bin/dtsetup scopes</userinput>
Getting list of managable scopes...
Scope 1 file:/machine1.ExampleCo.COM/machine1.ExampleCo.COM</screen><para>Then, the administrator adds the entry for client initial connection
to the Sun Ray server's <filename>tnrhdb</filename> database. Because the
administrator is testing, the default wildcard address is still used for all
unknown addresses:</para><screen>SunRayServer # <userinput>/usr/sadm/bin/smtnrhdb \</userinput>
<userinput>add -D file:/machine1.ExampleCo.COM/machine1.ExampleCo.COM \</userinput>
<userinput>-- -w 0.0.0.0 -p 32 -n admin_low</userinput>
Authenticating as user: root

Please enter a string value for: password :: 
... from machine1.ExampleCo.COM was successful.</screen><para>After this command, the <filename>tnhrdb</filename> database appears
similar to the following. The result of the <command>smtnrhdb</command> command
is highlighted:</para><screen>## tnrhdb database
## Sun Ray server address
       192.168.128.1:cipso
## Sun Ray client addresses on 192.168.128 network
       192.168.128.0/24:admin_low
## Initial address for new clients
       <userinput>0.0.0.0/32:admin_low</userinput>
## Default wildcard address
0.0.0.0:admin_low
<lineannotation>Other addresses to be contacted at boot</lineannotation></screen><screen># <userinput>tnchkdb -h /etc/security/tsol/tnrhdb</userinput></screen><para>After this phase of testing succeeds, the administrator makes the configuration
more secure by removing the default wildcard address, checks the syntax of
the <filename>tnrhdb</filename> database, and tests again. The final <filename>tnhrdb</filename> database appears similar to the following:</para><screen>## tnrhdb database
## Sun Ray server address
       192.168.128.1:cipso
## Sun Ray client addresses on 192.168.128 network
       192.168.128.0/24:admin_low
## Initial address for new clients
       0.0.0.0/32:admin_low
## 0.0.0.0:admin_low - no other systems can enter network at admin_low
<lineannotation>Other addresses to be contacted at boot</lineannotation></screen>
</example>
</task>
</sect1><sect1 id="managetnet-14"><title>Configuring Routes and Checking Network Information
in Trusted Extensions (Task Map)</title><indexterm><primary>Configuring Routes and Checking Network Information in Trusted Extensions (Task Map)</primary>
</indexterm><indexterm><primary>tasks and task maps</primary><secondary>Configuring Routes and Checking Network Information in Trusted Extensions (Task Map)</secondary>
</indexterm><para>The following task map describes tasks to configure the network and
to verify the configuration.</para><informaltable frame="all" pgwide="1"><tgroup cols="3" colsep="1" rowsep="1"><colspec colwidth="33*"/><colspec colwidth="33*"/><colspec colwidth="33*"/><thead><row><entry><para>Task</para>
</entry><entry><para>Description</para>
</entry><entry><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row><entry><para>Configure static routes.</para>
</entry><entry><para>Manually describes the best route from one host to another host.</para>
</entry><entry><para><olink targetptr="managetnet-4" remap="internal">How to Configure Routes With Security
Attributes</olink></para>
</entry>
</row><row><entry><para>Check the accuracy of the local network databases.</para>
</entry><entry><para>Uses the <command>tnchkdb</command> command to check the syntactic validity
of the local network databases.</para>
</entry><entry><para><olink targetptr="managetnet-32" remap="internal">How to Check the Syntax of Trusted
Network Databases</olink></para>
</entry>
</row><row><entry><para>Compare the network database entries with the entries in the kernel
cache.</para>
</entry><entry><para>Uses the <command>tninfo</command> command to determine if the kernel
cache has been updated with the latest database information.</para>
</entry><entry><para><olink targetptr="managetnet-34" remap="internal">How to Compare Trusted Network Database
Information With the Kernel Cache</olink></para>
</entry>
</row><row><entry><para>Synchronize the kernel cache with the network databases.</para>
</entry><entry><para>Uses the <command>tnctl</command> command to update the kernel cache
with up-to-date network database information on a running system.</para>
</entry><entry><para><olink targetptr="managetnet-36" remap="internal">How to Synchronize the Kernel Cache
With Trusted Network Databases</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable><task id="managetnet-4"><title>How to Configure Routes With Security
Attributes</title><indexterm><primary>routing</primary><secondary>static with security attributes</secondary>
</indexterm><indexterm><primary>routing</primary><secondary>using <command>route</command> command</secondary>
</indexterm><indexterm><primary>security attributes</primary><secondary>using in routing</secondary>
</indexterm><indexterm><primary>administering</primary><secondary>routes with security attributes</secondary>
</indexterm><indexterm><primary>configuring</primary><secondary>routes with security attributes</secondary>
</indexterm><taskprerequisites><para>You must be in the Security Administrator role in the global zone.</para>
</taskprerequisites><procedure><step><para>Add every destination host and gateway that you are using to route
packets over the trusted network.</para><para>The addresses are added to the
local <filename>/etc/hosts</filename> file, or to its equivalent on the LDAP
server. Use the Computers and Networks tool in the Solaris Management Console. The Files scope
modifies the <filename>/etc/hosts</filename> file. The LDAP scope modifies
the entries on the LDAP server. For details, see <olink targetptr="txconf-9" remap="internal">How
to Add Hosts to the System's Known Network</olink>.</para>
</step><step><para>Assign each destination host, network, and gateway to a security
template.</para><para>The addresses are added to the local <filename>/etc/security/tsol/tnrhdb</filename> file, or to its equivalent on the LDAP server. Use the Security
Templates tool in the Solaris Management Console. For details, see <olink targetptr="managetnet-16" remap="internal">How
to Assign a Security Template to a Host or a Group of Hosts</olink>.</para>
</step><step><para>Set up the routes.</para><para>In a terminal window, use the <command>route add</command> command to specify routes.</para><para>The first entry sets up a default route. The entry specifies a gateway's
address, <literal>192.168.113.1</literal>, to use when no specific route is
defined for either the host or the packet's destination.</para><screen># <userinput>route add default 192.168.113.1  -static</userinput></screen><para>For details, see the <olink targetdoc="group-refman" targetptr="route-1m" remap="external"><citerefentry><refentrytitle>route</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page.</para>
</step><step><para>Set up one or more network entries.</para><para>Use the <option>secattr</option> flag to specify security attributes.</para><para>In the following list of commands, the second line shows a network entry.
The third line shows a network entry with a label range of <literal>PUBLIC</literal> to <literal>CONFIDENTIAL : INTERNAL USE ONLY</literal>.</para><screen># <userinput>route add default 192.168.113.36</userinput>
# <userinput>route add -net 192.168.102.0 gateway-101</userinput>
# <userinput>route add -net 192.168.101.0 gateway-102 \</userinput>
<userinput>-secattr min_sl=&ldquo;PUBLIC&rdquo;,max_sl=&rdquo;CONFIDENTIAL : INTERNAL USE ONLY&rdquo;,doi=1</userinput></screen>
</step><step><para>Set up one or more host entries.</para><para>The new fourth line
shows a host entry for the single-label host, <literal>gateway-pub</literal>. <literal>gateway-pub</literal> has a label range of <literal>PUBLIC</literal> to <literal>PUBLIC</literal>.</para><screen># route add default 192.168.113.36
# route add -net 192.168.102.0 gateway-101
# route add -net 192.168.101.0 gateway-102 \
-secattr min_sl="PUBLIC",max_sl="CONFIDENTIAL : INTERNAL USE ONLY",doi=1
# <userinput>route add -host 192.168.101.3 gateway-pub \</userinput>
<userinput>-secattr min_sl="PUBLIC",max_sl="PUBLIC",doi=1</userinput></screen>
</step>
</procedure><example id="managetnet-46"><title>Adding a Route With a Label Range of <literal>CONFIDENTIAL : INTERNAL
USE ONLY</literal> to <literal>CONFIDENTIAL : RESTRICTED</literal></title><para>The following <command>route</command> command adds to the routing table
the hosts at <literal>192.168.115.0</literal> with <literal>192.168.118.39</literal> as
its gateway. The label range is from <literal>CONFIDENTIAL : INTERNAL USE
ONLY</literal> to <literal>CONFIDENTIAL : RESTRICTED</literal>, and the DOI
is <literal>1</literal>.</para><screen>$ <userinput>route add -net 192.168.115.0 192.168.118.39 \</userinput>
<userinput>-secattr min_sl="CONFIDENTIAL : INTERNAL USE ONLY",max_sl="CONFIDENTIAL : RESTRICTED",doi=1</userinput></screen><para>The result of the added hosts is shown with the <command>netstat -rR</command> command.
In the following excerpt, the other routes are replaced by ellipses (...).</para><screen>$ <userinput>netstat -rRn</userinput>
...
192.168.115.0        192.168.118.39        UG       0      0  
        min_sl=CNF : INTERNAL USE ONLY,max_sl=CNF : RESTRICTED,DOI=1,CIPSO
...</screen>
</example>
</task><task id="managetnet-32"><title>How to Check the Syntax of Trusted
Network Databases</title><tasksummary><para><indexterm><primary>trusted network</primary><secondary>checking syntax of files</secondary></indexterm><indexterm><primary>verifying</primary><secondary>syntax of network databases</secondary></indexterm>The <command>tnchkdb</command> command checks that the syntax of each network database is accurate.
The Solaris Management Console runs this command automatically when you use the Security Templates
tool or the Trusted Network Zones tool. Typically, you run this command to
check the syntax of database files that you are configuring for future use.</para>
</tasksummary><taskprerequisites><para>You must be in the global zone in a role that can check network settings.
The Security Administrator role and the System Administrator role can check
these settings.</para>
</taskprerequisites><procedure remap="single-step"><step><para>In a terminal window, run the <command>tnchkdb</command> command.</para><screen>$ tnchkdb [-h <replaceable>tnrhdb-path</replaceable>] [-t <replaceable>tnrhtp-path</replaceable>] [-z <replaceable>tnzonecfg-path</replaceable>]
checking /etc/security/tsol/tnrhtp ...
checking /etc/security/tsol/tnrhdb ...
checking /etc/security/tsol/tnzonecfg ...</screen>
</step>
</procedure><example id="managetnet-41"><title>Testing the Syntax of a Trial Network Database</title><para>In this example, the security administrator is testing a network database
file for possible use. Initially, the administrator uses the wrong option.
The results of the check are printed on the line for the <filename>tnrhdb</filename> file:</para><screen>$ <userinput>tnchkdb -h /opt/secfiles/trial.tnrhtp</userinput>
checking /etc/security/tsol/tnrhtp ...
checking /opt/secfiles/trial.tnrhtp ...
line 12: Illegal name: min_sl=ADMIN_LOW;max_sl=ADMIN_HIGH
line 14: Illegal name: min_sl=ADMIN_LOW;max_sl=ADMIN_HIGH
checking /etc/security/tsol/tnzonecfg ...</screen><para>When the security administrator checks the file by using the <option>t</option> option,
the command confirms that the syntax of the trial <filename>tnrhtp</filename> database
is accurate:</para><screen>$ <userinput>tnchkdb -t /opt/secfiles/trial.tnrhtp</userinput>
checking /opt/secfiles/trial.tnrhtp ...
checking /etc/security/tsol/tnrhdb ...
checking /etc/security/tsol/tnzonecfg ...</screen>
</example>
</task><task id="managetnet-34"><title>How to Compare Trusted Network Database
Information With the Kernel Cache</title><tasksummary><para>The network databases might contain information that is not cached in
the kernel. This procedure checks that the information is identical. When
you use the Solaris Management Console to update the network, the kernel cache is updated with
network database information. The <command>tninfo</command> command is useful
during testing and for debugging.</para>
</tasksummary><taskprerequisites><para>You must be in the global zone in a role that can check network settings.
The Security Administrator role and the System Administrator role can check
these settings.</para>
</taskprerequisites><procedure remap="single-step"><step><para>In a terminal window, run the <command>tninfo</command> command.</para><itemizedlist><listitem><para><command>tninfo -h <replaceable>hostname</replaceable></command> displays
the IP address and template for the specified host.</para>
</listitem><listitem><para><command>tninfo -t <replaceable>templatename</replaceable></command> displays
the following information:</para><screen>template: <replaceable>template-name</replaceable>
host_type: either CIPSO or UNLABELED
doi: 1
min_sl: <replaceable>minimum-label</replaceable>
hex: <replaceable>minimum-hex-label</replaceable>
max_sl: <replaceable>maximum-label</replaceable>
hex:<replaceable>maximum-hex-label</replaceable></screen>
</listitem><listitem><para><command>tninfo -m <replaceable>zone-name</replaceable></command> displays
the multilevel port (MLP) configuration of a zone.</para>
</listitem>
</itemizedlist>
</step>
</procedure><example id="managetnet-33"><title>Displaying Multilevel Ports on a Host</title><indexterm><primary>administering</primary><secondary>multilevel ports</secondary>
</indexterm><indexterm><primary>multilevel ports (MLPs)</primary><secondary>administering</secondary>
</indexterm><para>In this example, a system is configured with several labeled zones.
All zones share the same IP address. Some zones are also configured with zone-specific
addresses. In this configuration, the TCP port for web browsing, port <literal>8080</literal>, is an MLP on a shared interface in the public zone. The administrator
has also set up <command>telnet</command>, TCP port <literal>23</literal>,
to be an MLP in the public zone. Because these two MLPs are on a shared interface,
no other zone, including the global zone, can receive packets on the shared
interface on ports <literal>8080</literal> and <literal>23</literal>.</para><para>In addition, the TCP port for <command>ssh</command>, port <literal>22</literal>,
is a per-zone MLP in the public zone. The public zone's <command>ssh</command> service
can receive any packets on its zone-specific address within the address's
label range.</para><para>The following command shows the MLPs for the public zone:</para><screen>$ <userinput>tninfo -m public</userinput>
private: 22/tcp
shared:  23/tcp;8080/tcp</screen><para>The following command shows the MLPs for the global zone. Note that
ports <literal>23</literal> and <literal>8080</literal> cannot be MLPs in
the global zone because the global zone shares the same address with the public
zone:</para><screen>$ <userinput>tninfo -m global</userinput>
private: 111/tcp;111/udp;514/tcp;515/tcp;631/tcp;2049/tcp;
         6000-6003/tcp;38672/tcp;60770/tcp;
shared:  6000-6003/tcp</screen>
</example>
</task><task id="managetnet-36"><title>How to Synchronize the Kernel Cache With Trusted
Network Databases</title><tasksummary><para>When the kernel has not been updated with trusted network database information,
you have several ways to update the kernel cache. The Solaris Management Console runs this command
automatically when you use the Security Templates tool or the Trusted Network
Zones tool.</para>
</tasksummary><taskprerequisites><para>You must be in the Security Administrator role in the global zone.</para>
</taskprerequisites><procedure remap="single-step"><step><para><indexterm><primary><command>tnctl</command> command</primary><secondary>updating kernel cache</secondary></indexterm>To synchronize the
kernel cache with network databases, run one of the following commands:</para><stepalternatives><step><para>Restart the <command>tnctl</command> service.</para><caution><para>Do not use this method on systems that obtain their trusted
network database information from an LDAP server. The local database information
would overwrite the information that is obtained from the LDAP server.</para>
</caution><screen>$ <userinput>svcadm restart  svc:/network/tnctl</userinput></screen><para>This command reads all information from the local trusted network databases
into the kernel.</para>
</step><step><para>Update the kernel cache for your recently added entries.</para><screen>$ tnctl -h <replaceable>hostname</replaceable></screen><para>This command reads only the information from the chosen option into
the kernel. For details about the options, see <olink targetptr="managetnet-37" remap="internal">Example&nbsp;19&ndash;17</olink> and the <olink targetdoc="group-refman" targetptr="tnctl-1m" remap="external"><citerefentry><refentrytitle>tnctl</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page.</para>
</step><step><para>Change the <command>tnd</command> polling interval.</para><para>This
does not update the kernel cache. However, you can shorten the polling interval
to update the kernel cache more frequently. For details, see the example in
the <olink targetdoc="group-refman" targetptr="tnd-1m" remap="external"><citerefentry><refentrytitle>tnd</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page.</para>
</step><step><para>Refresh the <command>tnd</command>.</para><para>This Service Management
Facility (SMF) command triggers an immediate update of the kernel with recent
changes to trusted network databases.</para><screen>$ <userinput>svcadm refresh svc:/network/tnd</userinput></screen>
</step><step><para>Restart the <command>tnd</command> by using SMF.</para><screen>$ <userinput>svcadm restart svc:/network/tnd</userinput></screen><caution><para>Avoid running the <command>tnd</command> command to restart
the <command>tnd</command>. This command can interrupt communications that
are currently succeeding.</para>
</caution>
</step>
</stepalternatives>
</step>
</procedure><example id="managetnet-37"><title>Updating the Kernel With Your Latest <filename>tnrhdb</filename> Entries</title><para>In this example, the administrator has added three addresses to the
local <filename>tnrhdb</filename> database. First, the administrator removed
the <literal>0.0.0.0</literal> wildcard entry.</para><screen>$ <userinput>tnctl -d -h 0.0.0.0:admin_low</userinput></screen><para>Then, the administrator views the format of the final three entries
in the <filename>/etc/security/tsol/tnrhdb</filename> database:</para><screen>$ <userinput>tail /etc/security/tsol/tnrhdb</userinput>
#\:\:0:admin_low
127.0.0.1:cipso
#\:\:1:cipso
192.168.103.5:admin_low
192.168.103.0:cipso
0.0.0.0/32:admin_low</screen><para>Then, the administrator updates the kernel cache:</para><screen>$ <userinput>tnctl -h 192.168.103.5</userinput>
<userinput>tnctl -h 192.168.103.0</userinput>
<userinput>tnctl -h 0.0.0.0/32</userinput></screen><para>Finally, the administrator verifies that the kernel cache is updated.
The output for the first entry is similar to the following:</para><screen>$ <userinput>tninfo -h 192.168.103.5</userinput>
IP Address: 192.168.103.5
Template: admin_low</screen>
</example><example id="managetnet-44"><title>Updating Network Information in the Kernel</title><para><indexterm><primary><command>tnctl</command> command</primary><secondary>using</secondary></indexterm>In this example, the administrator updates the trusted
network with a public print server, and then checks that the kernel settings
are correct.</para><screen>$ <userinput>tnctl -h public-print-server</userinput>
$ <userinput>tninfo -h public-print-server</userinput>
IP Address: 192.168.103.55
Template: PublicOnly
$ <userinput>tninfo -t PublicOnly</userinput>
==================================
Remote Host Template Table Entries
----------------------------------
template: PublicOnly
host_type: CIPSO
doi: 1
min_sl: PUBLIC
hex: 0x0002-08-08
max_sl: PUBLIC
hex: 0x0002-08-08</screen>
</example>
</task>
</sect1><sect1 id="managetnet-2"><title>Troubleshooting the Trusted Network (Task
Map)</title><indexterm><primary>troubleshooting</primary><secondary>network</secondary>
</indexterm><indexterm><primary>Troubleshooting the Trusted Network (Task Map)</primary>
</indexterm><indexterm><primary>tasks and task maps</primary><secondary>Troubleshooting the Trusted Network (Task Map)</secondary>
</indexterm><para>The following task map describes tasks to debug your network.</para><informaltable frame="all" pgwide="1"><tgroup cols="3" colsep="1" rowsep="1"><colspec colwidth="33*"/><colspec colwidth="33*"/><colspec colwidth="33*"/><thead><row><entry><para>Task</para>
</entry><entry><para>Description</para>
</entry><entry><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row><entry morerows="1" rowsep="1"><para>Determine why two hosts cannot communicate.</para>
</entry><entry><para>Checks that the interfaces on a single system are up.</para>
</entry><entry><para><olink targetptr="txconf-10" remap="internal">How to Verify That a Host's Interfaces
Are Up</olink></para>
</entry>
</row><row><entry><para>Uses debugging tools when two hosts cannot communicate 	with each other.</para>
</entry><entry><para><olink targetptr="managetnet-19" remap="internal">How to Debug the Trusted Extensions
Network</olink></para>
</entry>
</row><row><entry><para>Determine why an LDAP client cannot reach the LDAP server.</para>
</entry><entry><para>Troubleshoots the loss of connection between an LDAP server and a client.</para>
</entry><entry><para><olink targetptr="manageldap-4" remap="internal">How to Debug a Client Connection to
the LDAP Server</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable><task id="txconf-10"><title>How to Verify That a Host's Interfaces
Are Up</title><indexterm><primary>troubleshooting</primary><secondary>verifying interface is up</secondary>
</indexterm><indexterm><primary>verifying</primary><secondary>interface is up</secondary>
</indexterm><indexterm><primary>interfaces</primary><secondary>verifying they are up</secondary>
</indexterm><tasksummary><para>Use this procedure if your system does not communicate with other hosts
as expected.</para>
</tasksummary><taskprerequisites><para>You must be in the global zone in a role that can check network settings.
The Security Administrator role and the System Administrator role can check
these settings.</para>
</taskprerequisites><procedure><step><para>Verify that the system's network interface is up.</para><para>The
following output shows that the system has two network interfaces, <literal>hme0</literal> and <literal>hme0:3</literal>. Neither interface is up.</para><screen># <userinput>ifconfig -a</userinput>
...
hme0: flags=1000843&lt;BROADCAST,RUNNING,MULTICAST,IPv4&gt; mtu 1500 index 2
         inet 192.168.0.11 netmask ffffff00 broadcast 192.168.0.255
hme0:3 flags=1000843&lt;BROADCAST,RUNNING,MULTICAST,IPv4&gt; mtu 1500 index 2
         inet 192.168.0.12 netmask ffffff00 broadcast 192.168.0.255</screen>
</step><step><para>If the interface is not up, bring it up and then verify that it
is up.</para><para>The following output shows that both interfaces are up.</para><screen># <userinput>ifconfig hme0 up</userinput>
# <userinput>ifconfig -a</userinput>
...
hme0: flags=1000843&lt;<userinput>UP</userinput>,BROADCAST,RUNNING,MULTICAST,...
hme0:3 flags=1000843&lt;<userinput>UP</userinput>,BROADCAST,RUNNING,MULTICAST,..</screen>
</step>
</procedure>
</task><task id="managetnet-19"><title>How to Debug the Trusted Extensions Network</title><indexterm><primary>troubleshooting</primary><secondary>trusted network</secondary>
</indexterm><tasksummary><para><indexterm><primary><command>snoop</command> command</primary></indexterm><indexterm><primary><command>netstat</command> command</primary></indexterm><indexterm><primary>commands</primary><secondary>troubleshooting networking</secondary></indexterm>To debug two hosts that should be communicating but are not, you
can use Trusted Extensions and Solaris debugging tools. For example, Solaris network
debugging commands such as <command>snoop</command> and <command>netstat</command> are
available. For details, see the <olink targetdoc="group-refman" targetptr="snoop-1m" remap="external"><citerefentry><refentrytitle>snoop</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> and <olink targetdoc="group-refman" targetptr="netstat-1m" remap="external"><citerefentry><refentrytitle>netstat</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man pages.
For commands that are specific to Trusted Extensions, see <olink targetptr="txtool-tbl-4" remap="internal">Table&nbsp;8&ndash;4</olink>.</para><itemizedlist><listitem><para>For problems with contacting labeled zones, see <olink targetptr="managezones-6" remap="internal">Managing Zones (Task Map)</olink>.</para>
</listitem><listitem><para>For debugging NFS mounts, see <olink targetptr="managefiles-20" remap="internal">How
to Troubleshoot Mount Failures in Trusted Extensions</olink>.</para>
</listitem><listitem><para>For debugging LDAP communications, see <olink targetptr="manageldap-4" remap="internal">How to Debug a Client Connection to the LDAP Server</olink>.</para>
</listitem>
</itemizedlist>
</tasksummary><taskprerequisites><para>You must be in the global zone in a role that can check network settings.
The Security Administrator role or the System Administrator role can check
these settings.</para>
</taskprerequisites><procedure><step><para>To troubleshoot the <command>tnd</command> daemon, change the
polling interval and collect debugging information.</para><para>For details,
see the <olink targetdoc="group-refman" targetptr="tnd-1m" remap="external"><citerefentry><refentrytitle>tnd</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page.</para>
</step><step><para>Check that the hosts that cannot communicate are using the same
naming service.</para><substeps><step><para>On each host, check the <filename>nsswitch.conf</filename> file.</para><substeps><step><para>Check the values for the Trusted Extensions databases in the <filename>nsswitch.conf</filename> file.</para><para>For example, at a site that uses LDAP to administer
the network, the entries are similar to the following:</para><screen># Trusted Extensions
tnrhtp: files ldap
tnrhdb: files ldap</screen>
</step><step><para>If the values are different, correct the <filename>nsswitch.conf</filename> file.</para><para><indexterm><primary>actions</primary><secondary>Name Service Switch</secondary></indexterm><indexterm><primary>Name Service Switch action</primary></indexterm>To modify these entries, the system administrator uses the Name
Service Switch action. For details, see <olink targetptr="commontasks-42" remap="internal">How
to Start CDE Administrative Actions in Trusted Extensions</olink>. This action
preserves the required DAC and MAC file permissions.</para>
</step>
</substeps>
</step><step><para>Check that the LDAP naming service is configured.</para><screen>$ ldaplist -l</screen>
</step><step><para>Check that both hosts are in the LDAP naming service.</para><screen>$ ldaplist -l hosts | grep <replaceable>hostname</replaceable></screen>
</step>
</substeps>
</step><step><para>Check that each host is defined correctly.</para><substeps><step><para>Use the Solaris Management Console to verify the definitions.</para><itemizedlist><listitem><para>In the Security Templates tool, check that each host is assigned
to a security template that is compatible with the security template of the
other host.</para>
</listitem><listitem><para>For an an unlabeled system, check that the default label assignment
is correct.</para>
</listitem><listitem><para>In the Trusted Network Zones tool, check that the multilevel
ports (MLPs) are correctly configured.</para>
</listitem>
</itemizedlist>
</step><step><para>Use the command line to check that the network information in
the kernel is current.</para><para>Check that the assignment in each host's
kernel cache matches the assignment on the network, and on the other host.</para><para><indexterm><primary><command>tninfo</command> command</primary><secondary>using</secondary></indexterm>To get security information for the source, destination,
and gateway hosts in the transmission, use the <command>tninfo</command> command.</para><stepalternatives><step><para>Display the IP address and the assigned security template for
a given host.</para><screen>$ tninfo -h <replaceable>hostname</replaceable>
IP Address: <replaceable>IP-address</replaceable>
Template: <replaceable>template-name</replaceable></screen>
</step><step><para>Display a template definition.</para><screen>$ tninfo -t <replaceable>template-name</replaceable>
template: <replaceable>template-name</replaceable>
host_type: <replaceable>one of</replaceable> CIPSO <replaceable>or</replaceable> UNLABELED
doi: 1
min_sl: <replaceable>minimum-label</replaceable>
hex: <replaceable>minimum-hex-label</replaceable>
max_sl: <replaceable>maximum-label</replaceable>
hex: <replaceable>maximum-hex-label</replaceable></screen>
</step><step><para>Display the MLPs for a zone.</para><screen>$ tninfo -m <replaceable>zone-name</replaceable>
private: <replaceable>ports-that-are-specific-to-this-zone-only</replaceable>
shared: <replaceable>ports-that-the-zone-shares-with-other-zones</replaceable></screen>
</step>
</stepalternatives>
</step>
</substeps>
</step><step><para>Fix any incorrect information.</para><itemizedlist><listitem><para>To change or check network security information, use the Solaris Management Console tools.
For details, see <olink targetptr="managetnet-15" remap="internal">How to Open the Trusted
Networking Tools</olink></para>
</listitem><listitem><para>To update the kernel cache, restart the <command>tnctl</command> service
on the host whose information is out of date. Allow some time for this process
to complete. Then, refresh the <command>tnd</command> service. If the refresh
fails, try restarting the <command>tnd</command> service. For details, see <olink targetptr="managetnet-36" remap="internal">How to Synchronize the Kernel Cache With Trusted
Network Databases</olink>.</para><para>Rebooting clears the kernel cache.
At boot time, the cache is populated with database information. The <filename>nsswitch.conf</filename> file determines whether local databases or LDAP databases are
used to populate the kernel.</para>
</listitem>
</itemizedlist>
</step><step><para>Collect transmission information to help you in debugging.</para><stepalternatives><step><para>Verify your routing configuration.</para><para>Use the <command>get</command> subcommand
to the <command>route</command> command.</para><screen>$ route get [ip] -secattr sl=<replaceable>label</replaceable>,doi=<replaceable>integer</replaceable></screen><para>For details, see the <olink targetdoc="group-refman" targetptr="route-1m" remap="external"><citerefentry><refentrytitle>route</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page.</para>
</step><step><para>View the label information in packets.</para><para>Use the <command>snoop
-v</command> command.</para><para>The <option>v</option> option displays the details of packet headers,
including label information. This command provides a lot of detail, so you
might want to restrict the packets that the command examines. For details,
see the <olink targetdoc="group-refman" targetptr="snoop-1m" remap="external"><citerefentry><refentrytitle>snoop</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page.</para>
</step><step><para>View the routing table entries and the security attributes on
sockets.</para><para>Use the <option>R</option> option with the <command>netstat
-a|-r</command> command.</para><para>The <option>aR</option> option displays extended security attributes
for sockets. The <option>rR</option> option displays routing table entries.
For details, see the <olink targetdoc="group-refman" targetptr="netstat-1m" remap="external"><citerefentry><refentrytitle>netstat</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page.</para>
</step>
</stepalternatives>
</step>
</procedure>
</task><task id="manageldap-4"><title>How to Debug a Client Connection
to the LDAP Server</title><indexterm><primary>LDAP</primary><secondary>troubleshooting</secondary>
</indexterm><indexterm><primary>troubleshooting</primary><secondary>LDAP</secondary>
</indexterm><tasksummary><para>Misconfiguration of the client entry on the LDAP server can prevent
the client from communicating with the server. Similarly, misconfiguration
of files on the client can prevent communication. Check the following entries
and files when attempting to debug a client-server communication problem.</para>
</tasksummary><taskprerequisites><para>You must be in the Security Administrator role in the global zone on
the LDAP client.</para>
</taskprerequisites><procedure><step><para><indexterm><primary><command>tninfo</command> command</primary><secondary>using</secondary></indexterm>Check that the remote host template
for the LDAP server and for the gateway to the LDAP server are correct.</para><screen># tninfo -h <replaceable>LDAP-server</replaceable>
# route get <replaceable>LDAP-server</replaceable>
# tninfo -h <replaceable>gateway-to-LDAP-server</replaceable></screen><para>If a remote host template assignment is incorrect, assign the host to
the correct template by using the Security Templates tool in the Solaris Management Console.</para>
</step><step><para>Check and correct the <filename>/etc/hosts</filename> file.</para><para>Your system, the interfaces for the labeled zones on your system, the
gateway to the LDAP server, and the LDAP server must be listed in the file.
You might have more entries.</para><para>Look for duplicate entries. Remove any entries that are labeled zones
on other systems. For example, if <literal>Lserver</literal> is the name of
your LDAP server, and <literal>LServer-zones</literal> is the shared interface
for the labeled zones, remove <literal>LServer-zones</literal> from <filename>/etc/hosts</filename>.</para>
</step><step><para>If you are using DNS, check and correct the entries in the <filename>resolv.conf</filename> file.</para><screen># more resolv.conf
search <replaceable>list of domains</replaceable>
domain <replaceable>domain-name</replaceable>
nameserver <replaceable>IP-address</replaceable>

...
nameserver <replaceable>IP-address</replaceable></screen>
</step><step><para>Check that the <filename>tnrhdb</filename> and <filename>tnrhtp</filename> entries
in the <filename>nsswitch.conf</filename> file are accurate.</para>
</step><step><para>Check that the client is correctly configured on the server.</para><screen># ldaplist -l tnrhdb <replaceable>client-IP-address</replaceable></screen>
</step><step><para>Check that the interfaces for your labeled zones are correctly
configured on the LDAP server.</para><screen># ldaplist -l tnrhdb <replaceable>client-zone-IP-address</replaceable></screen>
</step><step><para>Verify that you can <command>ping</command> the LDAP server from
all currently running zones.</para><screen># ldapclient list
...
NS_LDAP_SERVERS= <replaceable>LDAP-server-address</replaceable>
# zlogin <replaceable>zone-name1</replaceable> ping <replaceable>LDAP-server-address</replaceable>
<replaceable>LDAP-server-address</replaceable> is alive
# zlogin <replaceable>zone-name2</replaceable> ping <replaceable>LDAP-server-address</replaceable>
<replaceable>LDAP-server-address</replaceable> is alive
...</screen>
</step><step><para>Configure LDAP and reboot.</para><substeps><step><para>Run the Create LDAP Client action.</para><para>This action re-establishes
the global zone as a client of the LDAP server.</para>
</step><step><para>In every labeled zone, re-establish the zone as a client of the
LDAP server.</para><screen># zlogin <replaceable>zone-name1</replaceable>
# ldapclient init \
-a profileName=<replaceable>profileName</replaceable> \
-a domainName=<replaceable>domain</replaceable> \
-a proxyDN=<replaceable>proxyDN</replaceable> \
-a proxyPassword=<replaceable>password</replaceable> <replaceable>LDAP-Server-IP-Address</replaceable>
# exit
# zlogin <replaceable>zone-name2</replaceable> ...</screen>
</step><step><para>Halt all zones, lock the file systems, and reboot.</para><para>If
you are using Solaris ZFS, halt the zones and lock the file systems
before rebooting. If you are not using ZFS, you can reboot without halting
the zones and locking the file systems.</para><screen># zoneadm list
# zoneadm -z <replaceable>zone-name</replaceable> halt
# lockfs -fa
# reboot</screen>
</step>
</substeps>
</step>
</procedure>
</task>
</sect1>
</chapter><?Pub *0000078150 0?>