<?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="txnet-1"><?Pub Tag atict:info tracking="on" ref="0"?><?Pub Tag atict:user
user="sharonr" fullname="Sharon Veach"?><title>Trusted Networking (Overview)</title><indexterm><primary>trusted network</primary><secondary>concepts</secondary>
</indexterm><highlights><para>This chapter describes trusted networking concepts and mechanisms in Trusted Extensions.</para><itemizedlist remap="jumplist"><listitem><para><olink targetptr="txnet-2" remap="internal">The Trusted Network</olink></para>
</listitem><listitem><para><olink targetptr="tnetov-40" remap="internal">Network Security Attributes in
Trusted Extensions</olink></para>
</listitem><listitem><para><olink targetptr="tnetov-2" remap="internal">Trusted Network Fallback Mechanism</olink></para>
</listitem><listitem><para><olink targetptr="txnet-3" remap="internal">Overview of Routing in Trusted
Extensions</olink></para>
</listitem><listitem><para><olink targetptr="txnet-26" remap="internal">Administration of Routing in Trusted
Extensions</olink></para>
</listitem>
</itemizedlist>
</highlights><sect1 id="txnet-2"><title>The Trusted Network</title><indexterm><primary>trusted network</primary><secondary>labels and MAC enforcement</secondary>
</indexterm><indexterm><primary>mandatory access control (MAC)</primary><secondary>enforcing on the network</secondary>
</indexterm><itemizedlist><para>Trusted Extensions assigns security attributes to zones, hosts, and networks.
These attributes ensure that the following security features are enforced
on the network:</para><listitem><para>Data is properly labeled in network communications.</para>
</listitem><listitem><para>Mandatory access control (MAC) rules are enforced when data
is sent or received across a local network and when file systems are mounted.</para>
</listitem><listitem><para>MAC rules are enforced when data is routed to distant networks.</para>
</listitem><listitem><para>MAC rules are enforced when data is routed to zones.</para>
</listitem>
</itemizedlist><para>In Trusted Extensions, network packets are protected by MAC. Labels are
used for MAC decisions. Data is labeled explicitly or implicitly with a sensitivity
label. A label has an ID field, a classification or &ldquo;level&rdquo; field,
and a compartment or &ldquo;category&rdquo; field. Data must pass an accreditation
check. This check  determines if the label is well formed, and if the label
lies within the accreditation range of the receiving host. Well-formed packets
that are within the receiving host's accreditation range are granted access.</para><para>IP packets that are exchanged between trusted systems can be labeled. Trusted Extensions supports
Commercial IP Security Option (CIPSO) labels. A CIPSO label on a packet serves
to classify, segregate, and route IP packets. Routing decisions compare the
sensitivity label of the data with the label of the destination.</para><para>Typically on a trusted network, the label is generated by a sending
host and processed by the receiving host. However, a trusted router can also
add or strip labels while forwarding packets in a trusted network. A sensitivity
label is mapped to a CIPSO label before transmission. The CIPSO label is embedded
in the IP packet. Typically, a packet sender and the packet's receiver operate
at the same label.</para><para>Trusted networking software ensures that the Trusted Extensions security
policy is enforced even when the subjects (processes) and objects (data) are
located on different hosts. Trusted Extensions networking preserves MAC across
distributed applications.</para><sect2 id="txnet-5"><title>Trusted Extensions Data Packets</title><para><indexterm><primary>network packets</primary></indexterm><indexterm><primary>host types</primary><secondary>networking</secondary></indexterm>Trusted Extensions data
packets include a CIPSO label option. The data packets can be sent over IPv4
or IPv6 networks.</para><para>In the standard IPv4 format, the IPv4 header with options is followed
by a TCP, UDP, or SCTP header and then the actual data. The Trusted Extensions version
of an IPv4 packet uses the CIPSO option in the IP header for the security
attributes.</para><informaltable frame="topbot"><tgroup cols="3" colsep="0" rowsep="0"><?PubTbl tgroup dispwid="5.91in"?><colspec colwidth="60.48*" colsep="1"/><colspec colname="colspec2" colwidth="37.98*"/><colspec colname="colspec0" colwidth="22.65*"/><tbody><row><entry><para>IPv4 Header With CIPSO Option</para>
</entry><entry><para>TCP, UDP, or SCTP</para>
</entry><entry colname="colspec0"><para>Data</para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable><para>In the standard IPv6 format, an IPv6 header with extensions is followed
by a TCP, UDP, or SCTP header and then the actual data. The Trusted Extensions IPv6
packet includes a multilevel security option in the header extensions.</para><informaltable frame="topbot"><tgroup cols="3" colsep="0" rowsep="0"><colspec colname="colspec3" colwidth="60.48*"/><colspec colname="colspec4" colwidth="37.98*"/><colspec colname="colspec5" colwidth="22.65*"/><?PubTbl tgroup dispwid="5.89in"?><tbody><row><entry colsep="1"><para>IPv6 Header With Extensions</para>
</entry><entry><para>TCP, UDP, or SCTP</para>
</entry><entry><para>Data</para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2><sect2 id="tnetov-42"><title>Trusted Network Communications</title><indexterm><primary>hosts</primary><secondary>networking concepts</secondary>
</indexterm><indexterm><primary>networking concepts</primary>
</indexterm><para>Trusted Extensions supports labeled and unlabeled hosts on a trusted network.
LDAP is a fully supported naming service. Various commands and GUIs enable
the network to be administered.</para><itemizedlist><para>Systems that run Trusted Extensions software support network communications
between Trusted Extensions hosts and any of the following types of systems:</para><listitem><para>Other systems that are running Trusted Extensions</para>
</listitem><listitem><para>Systems that are running operating systems that do not recognize
security attributes, but do support TCP/IP, such as Solaris systems,
other <trademark class="registered">UNIX</trademark> systems, Microsoft Windows,
and Macintosh OS systems</para>
</listitem><listitem><para>Systems that are running other trusted operating systems that
recognize CIPSO labels</para>
</listitem>
</itemizedlist><itemizedlist><para>As in the Solaris OS, Trusted Extensions network communications and services
can be managed by a naming service. Trusted Extensions adds the following interfaces
to Solaris network interfaces:</para><listitem><para>Trusted Extensions adds three network configuration databases, <filename>tnzonecfg</filename>, <filename>tnrhdb</filename>, and <filename>tnrhtp</filename>.
For details, see <olink targetptr="txnet-53" remap="internal">Network Configuration Databases
in Trusted Extensions</olink>.</para>
</listitem><listitem><para>The Trusted Extensions version of the naming service switch file, <filename>nsswitch.conf</filename>, includes entries for the <filename>tnrhtp</filename> and <filename>tnrhdb</filename> databases. These entries can be modified to suit each site's
configuration.</para><para>Trusted Extensions uses the LDAP naming service to
centrally manage configuration files that define hosts, networks, and users.
The default <filename>nsswitch.conf</filename> entries for the trusted network
databases for the LDAP naming service follow:</para><screen># Trusted Extensions
tnrhtp: files ldap
tnrhdb: files ldap</screen><para>The LDAP naming service on a Sun Java System Directory Server is the only fully supported naming
service in Trusted Extensions. For information about the use of LDAP on a system
that is configured with Trusted Extensions, see <olink targetptr="manageldap-1" remap="internal">Chapter&nbsp;15, Trusted Extensions and LDAP (Overview)</olink>.</para>
</listitem><listitem><para>Trusted Extensions adds tools to the Solaris Management Console. The console is used
to centrally manage zones, hosts, and networks. The network tools are described
in <olink targetptr="txtool-8" remap="internal">Solaris Management Console Tools</olink>.</para><para>The <olink targetptr="trp-part-1" remap="internal">Part&nbsp;I,
Initial Configuration of Trusted Extensions</olink> describes how to define
zones and hosts when you configure the network. For additional details, see <olink targetptr="managetnet-1" remap="internal">Chapter&nbsp;19, Managing Networks in Trusted Extensions (Tasks)</olink>.</para>
</listitem><listitem><para>Trusted Extensions adds commands to administer trusted networking. Trusted Extensions also
adds options to the Solaris network commands. For a description of these
commands, see <olink targetptr="txnet-36" remap="internal">Network Commands in Trusted Extensions</olink>.</para>
</listitem>
</itemizedlist>
</sect2><sect2 id="txnet-53"><title>Network Configuration Databases in Trusted Extensions</title><indexterm><primary>network databases</primary><secondary>description</secondary>
</indexterm><indexterm><primary>databases</primary><secondary>trusted network</secondary>
</indexterm><itemizedlist><para>Trusted Extensions loads three network configuration databases into the
kernel. These databases are used in accreditation checks as data is transmitted
from one host to another host.</para><listitem><para><filename>tnzonecfg</filename> &ndash; This local database
stores zone attributes that are security-related. The attributes for each
zone specify the zone label and the zone's access to single-level and multilevel
ports. Another attribute handles responses to control messages, such as <command>ping</command>. The labels for zones are defined in the <filename>label_encodings</filename> file. 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> and <olink targetdoc="group-refman" targetptr="smtnzonecfg-1m" remap="external"><citerefentry><refentrytitle>smtnzonecfg</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man pages. For a discussion of multilevel ports, see <olink targetptr="managezones-31" remap="internal">Zones and Multilevel Ports</olink>.</para>
</listitem><listitem><para><filename>tnrhtp</filename> &ndash; This database stores templates
that describe the security attributes of hosts and gateways. <filename>tnrhtp</filename> can
be a local database or stored on the LDAP server. Hosts and gateways use the
attributes of the destination host and next-hop gateway to enforce MAC when
sending traffic. When receiving traffic, hosts and gateways use the attributes
of the sender. For details of the security attributes, see <olink targetptr="txnet-29" remap="internal">Trusted Network Security Attributes</olink>. For more
information, see the <olink targetdoc="group-refman" targetptr="smtnrhtp-1m" remap="external"><citerefentry><refentrytitle>smtnrhtp</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page.</para>
</listitem><listitem><para><filename>tnrhdb</filename> &ndash; This database holds the
IP addresses and network prefixes (fallback mechanism) that correspond to
all hosts that are allowed to communicate. <filename>tnrhdb</filename> can
be a local database or stored on the LDAP server. Each host or network prefix
is assigned a security template from the <filename>tnrhtp</filename> database.
The attributes in the template define the attributes of the assigned host.
For more information, see the <olink targetdoc="group-refman" targetptr="smtnrhdb-1m" remap="external"><citerefentry><refentrytitle>smtnrhdb</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page.</para>
</listitem>
</itemizedlist><para>In Trusted Extensions, the Solaris Management Console has been extended to handle these databases.
For details, see <olink targetptr="txtool-8" remap="internal">Solaris Management Console Tools</olink>.</para>
</sect2><sect2 id="txnet-36"><title>Network Commands in Trusted Extensions</title><itemizedlist><para>Trusted Extensions adds the following commands to administer trusted networking:</para><listitem><para><indexterm><primary><command>tnchkdb</command> command</primary><secondary>description</secondary></indexterm><command>tnchkdb</command> &ndash;
This command is used to verify the correctness of the trusted network databases.
The <command>tnchkdb</command> command is used whenever you change a security
template (<filename>tnrhtp</filename>), a security template assignment (<filename>tnrhdb</filename>), or the configuration of a zone (<filename>tnzonecfg</filename>).
The Solaris Management Console tools run this command automatically when a database is modified.
For details, see the <olink targetdoc="group-refman" targetptr="tnchkdb-1m" remap="external"><citerefentry><refentrytitle>tnchkdb</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page.</para>
</listitem><listitem><para><indexterm><primary><command>tnctl</command> command</primary><secondary>description</secondary></indexterm><command>tnctl</command> &ndash;
This command can be used to update the trusted network information in the
kernel. <command>tnctl</command> is also a system service. A restart with
the command <command>svcadm restart /network/tnctl</command> refreshes the
kernel cache from the trusted network databases on the local system. The Solaris Management Console tools
run this command automatically when a database is modified in the Files scope.
For details, see the <olink targetdoc="group-refman" targetptr="tnctl-1m" remap="external"><citerefentry><refentrytitle>tnctl</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page.</para>
</listitem><listitem><para><indexterm><primary><command>tnd</command> command</primary><secondary>description</secondary></indexterm><command>tnd</command> &ndash;
This daemon pulls <filename>tnrhdb</filename> and <filename>tnrhtp</filename> information
from the LDAP directory. <command>tnd</command> is started at boot time as
a service, as in <command>svcadm start /network/tnd</command>. This command
also can be used for debugging and for changing the polling interval. 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>
</listitem><listitem><para><indexterm><primary><command>tninfo</command> command</primary><secondary>description</secondary></indexterm><command>tninfo</command> &ndash;
This command displays the details of the current state of the trusted network
kernel cache. The output can be filtered by host name, zone, or security template.
For details, see the <olink targetdoc="group-refman" targetptr="tninfo-1m" remap="external"><citerefentry><refentrytitle>tninfo</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page.</para>
</listitem>
</itemizedlist><itemizedlist><para>Trusted Extensions adds options to the following Solaris network commands:</para><listitem><para><indexterm><primary><command>ifconfig</command> command</primary></indexterm><command>ifconfig</command> &ndash; The <option role="nodash">all-zones</option> interface flag for this command makes the specified interface available
to every zone on the system. The appropriate zone to deliver data to is determined
by the label that is associated with the data. For details, see the <olink targetdoc="group-refman" targetptr="ifconfig-1m" remap="external"><citerefentry><refentrytitle>ifconfig</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page.</para>
</listitem><listitem><para><indexterm><primary><command>netstat</command> command</primary></indexterm><command>netstat</command> &ndash; The <option>R</option> option
extends Solaris <command>netstat</command> usage to display Trusted Extensions-specific
information, such as security attributes for multilevel sockets and routing
table entries. The extended security attributes include the label of the peer,
and whether the socket is specific to a zone, or available to several zones.
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>
</listitem><listitem><para><indexterm><primary><command>route</command> command</primary></indexterm><command>route</command> &ndash; The <option>secattr</option> option
extends Solaris <command>route</command> usage to display the security
attributes of the route. The value of the option has the following format:</para><screen>min_sl=<replaceable>label</replaceable>,max_sl=<replaceable>label</replaceable>,doi=<replaceable>integer</replaceable>,cipso</screen><para>The <literal>cipso</literal> keyword is optional and set by default.
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>
</listitem><listitem><para><indexterm><primary><command>snoop</command> command</primary></indexterm><command>snoop</command> &ndash; As in the Solaris OS, the <option>v</option> option
to this command can be used to display the IP headers in detail. In Trusted Extensions,
the headers contain label information.</para>
</listitem>
</itemizedlist>
</sect2><sect2 id="txnet-29"><title>Trusted Network Security Attributes</title><para>Network administration in Trusted Extensions is based on security templates.
A security template describes a set of hosts that have common protocols and
identical security attributes.</para><para>Security attributes are administratively assigned to systems, both hosts
and routers, by means of templates. The security administrator administers
templates and assigns them to systems. If a system does not have an assigned
template, no communications are allowed with that system.</para><itemizedlist><para>Every template is named, and includes the following:</para><listitem><para>A host type of either Unlabeled or CIPSO. The protocol that
is used for network communications is determined by the host type of the template.</para><para>The host type is used to determine whether to use CIPSO options
and affects MAC. See <olink targetptr="txnet-34" remap="internal">Host Type and Template Name
in Security Templates</olink>.</para>
</listitem><listitem><para>A set of security attributes that are applied to each host
type.</para>
</listitem>
</itemizedlist><para>For more detail about host types and security attributes, see <olink targetptr="tnetov-40" remap="internal">Network Security Attributes in Trusted Extensions</olink>.</para>
</sect2>
</sect1><sect1 id="tnetov-40"><title>Network Security Attributes in Trusted Extensions</title><para>Trusted Extensions is installed with a default set of security templates.
When a template is assigned to a host, the security values in the template
are applied to the host. In Trusted Extensions, both unlabeled hosts and labeled
hosts on the network are assigned security attributes by means of a template.
Hosts that are not assigned a security template cannot be reached. The templates
can be stored locally, or in the LDAP naming service on the Sun Java System Directory Server.</para><para>Templates can be assigned directly or indirectly to a host. Direct assignment
assigns a template to a particular IP address. Indirect assignment assigns
a template to a network address that includes the host. Hosts that do not
have a security template cannot communicate with hosts that are configured
with Trusted Extensions. For an explanation of direct assignment and indirect
assignment, see <olink targetptr="tnetov-2" remap="internal">Trusted Network Fallback Mechanism</olink>.</para><para>Templates are modified or created by using the Security Templates tool
in the Solaris Management Console. The Security Templates tool enforces the completion of the required
fields in the templates. Which fields are required is based on the host type.</para><itemizedlist><para>Each host type has its own set of additional required and optional security
attributes. The following security attributes are specified in security templates:</para><listitem><para><indexterm><primary>host types</primary><secondary>remote host templates</secondary></indexterm><emphasis role="strong">Host type</emphasis> &ndash;
Defines whether the packets are labeled with CIPSO security labels or not
labeled at all.</para>
</listitem><listitem><para><indexterm><primary>labels</primary><secondary>default in remote host templates</secondary></indexterm><emphasis role="strong">Default
label</emphasis> &ndash; Defines the level of trust of the unlabeled host.
Packets that are sent by an unlabeled host are read at this label by the receiving Trusted Extensions host
or gateway.</para><para>The Default label attribute is specific to the unlabeled
host type. For details, see the <olink targetdoc="group-refman" targetptr="smtnrhtp-1m" remap="external"><citerefentry><refentrytitle>smtnrhtp</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page and the following
sections.</para>
</listitem><listitem><para><indexterm><primary>DOI</primary><secondary>remote host templates</secondary></indexterm><emphasis role="strong">DOI</emphasis> &ndash; A positive,
non-zero integer that identifies the domain of interpretation. The DOI is
used to indicate which set of label encodings applies to a network communication
or network entity. Labels with different DOIs, even if otherwise identical,
are disjoint. For unlabeled hosts, the DOI applies to the default label. In Trusted Extensions,
the default value is <literal>1</literal>.</para>
</listitem><listitem><para><indexterm><primary>minimum labels</primary><secondary>remote host templates</secondary></indexterm><emphasis role="strong">Minimum label</emphasis> &ndash;
Defines the bottom of the label accreditation range. Hosts and next-hop gateways
do not receive packets that are below the minimum label that is specified
in their template.</para>
</listitem><listitem><para><indexterm><primary>maximum labels</primary><secondary>remote host templates</secondary></indexterm><emphasis role="strong">Maximum label</emphasis> &ndash;
Defines the top of the label accreditation range. Hosts and next-hop gateways
do not receive packets that are higher than the maximum label that is specified
in their template.</para>
</listitem><listitem><para><indexterm><primary>security label set</primary><secondary>remote host templates</secondary></indexterm><emphasis role="strong">Security label
set</emphasis> &ndash; Optional. Specifies a discrete set of security labels
for a security template. In addition to their accreditation range that is
determined by the maximum and minimum label, hosts that are assigned to a
template with a security label set can send and receive packets that match
any one of the labels in the label set. The maximum number of labels that
can be specified is four.</para>
</listitem>
</itemizedlist><sect2 id="txnet-34"><title>Host Type and Template Name in Security Templates</title><indexterm><primary>host types</primary><secondary>table of templates and protocols</secondary>
</indexterm><indexterm><primary>trusted network</primary><secondary>host types</secondary>
</indexterm><indexterm><primary>host types</primary><secondary>networking</secondary>
</indexterm><itemizedlist><para>Trusted Extensions supports two host types in the trusted network databases
and provides two default templates:</para><listitem><para><emphasis role="strong">CIPSO host type &ndash;</emphasis> Intended
for hosts that run trusted operating systems.  Trusted Extensions supplies the
template named <literal>cipso</literal> for this host type.</para><para>The
Common IP Security Option (CIPSO) protocol is used to specify security labels
that are passed in the IP options field. CIPSO labels are derived automatically
from the data's label. Tag type 1 is used to pass the CIPSO security label.
This label is then used to make security checks at the IP level and to label
the data in the network packet.</para>
</listitem><listitem><para><emphasis role="strong">Unlabeled host type -</emphasis> Intended
for hosts that use standard networking protocols but do not support CIPSO
options. Trusted Extensions supplies the template named <literal>admin_low</literal> for
this host type.</para><para>This host type is assigned to hosts that run the Solaris OS or
other unlabeled operating systems. This host type gives provides a default
label and a default clearance to apply to communications with the unlabeled
host. Also, a label range or a set of discrete labels can be specified to
allow the sending of packets to an unlabeled gateway for forwarding.</para>
</listitem>
</itemizedlist><caution><para>The <constant>admin_low</constant> template provides an example
for constructing unlabeled templates with site-specific labels. While the <constant>admin_low</constant> template is required for the installation of Trusted Extensions,
the security settings might not be appropriate for normal system operations.
Retain the provided templates without modification for system maintenance
and support reasons.</para>
</caution>
</sect2><sect2 id="txnet-32"><title>Default Label in Security Templates</title><para>Templates for the unlabeled host type specify a default label. This
label is used to control communications with hosts whose operating systems
are not aware of labels, such as Solaris systems. The default label
that is assigned reflects the level of trust that is appropriate for the host
and its users.</para><para>Because communications with unlabeled hosts are essentially limited
to the default label, these hosts are also referred to as <emphasis>single-label
hosts</emphasis>.</para>
</sect2><sect2 id="tnetov-89"><title>Domain of Interpretation in Security Templates</title><para>Organizations that use the same Domain of Interpretation (DOI) agree
among themselves to interpret label information and other security attributes
in the same way. When Trusted Extensions performs a label comparison, a check
is made as to whether the DOI is equal.</para><para>A Trusted Extensions system enforces label policy on one DOI value. All
zones on a Trusted Extensions system must operate at the same DOI. A Trusted Extensions system
does not provide exception handling on packets that are received from a system
that uses a different DOI.</para><para>If your site uses a DOI value that is different from the default value,
you must add this value to the <filename>/etc/system</filename> file, and
change the value in every security template. For the initial procedure, see <olink targetptr="txconf-92" remap="internal">Configure the
Domain of Interpretation</olink>. To configure the DOI in every security
template, see <olink targetptr="managetnet-47" remap="internal">Example&nbsp;19&ndash;1</olink>.</para>
</sect2><sect2 id="tnetov-88"><title>Label Range in Security Templates</title><itemizedlist><para>The minimum label and maximum label attributes are used to establish
the label range for labeled and unlabeled hosts. These attributes are used
to do the following:</para><listitem><para>To set the range of labels that can be used when communicating
with a remote CIPSO host</para><para>In order for a packet to be sent to a
destination host, the label of the packet must be within the label range assigned
to the destination host in the security template for that host.</para>
</listitem><listitem><para>To set a label range for packets that are being forwarded
through a CIPSO gateway or an unlabeled gateway</para><para>The label range
can be specified in the template for an unlabeled host type. The label range
enables the host to forward packets that are not necessarily at the label
of the host, but are within a specified label range.</para>
</listitem>
</itemizedlist>
</sect2><sect2 id="txnet-50"><title>Security Label Set in Security Templates</title><para>The security label set defines at most four discrete labels at which
packets can be accepted, forwarded, or sent by the remote host. This attribute
is optional. By default, no security label set is defined.</para>
</sect2>
</sect1><sect1 id="tnetov-2"><title>Trusted Network Fallback Mechanism</title><para><indexterm><primary>fallback mechanism</primary><secondary>in <filename>tnrhdb</filename></secondary></indexterm><indexterm><primary>remote hosts</primary><secondary>using fallback mechanism in <filename>tnrhdb</filename></secondary></indexterm><indexterm><primary><filename>tnrhdb</filename> database</primary><secondary>fallback mechanism</secondary></indexterm><indexterm><primary>IP addresses</primary><secondary>fallback mechanism in <filename>tnrhdb</filename></secondary></indexterm>The <filename>tnrhdb</filename> database can assign a security
template to a particular host either directly or indirectly. Direct assignment
assigns a template to a host's IP address. Indirect assignment is handled
by a fallback mechanism. The trusted network software first looks for an entry
that specifically assigns the host's IP address to a template. If the software
does not find a specific entry for the host, it looks for the &ldquo;longest
prefix of matching bits&rdquo;. You can indirectly assign a host to a security
template when the IP address of the host falls within the &ldquo;longest prefix
of matching bits&rdquo; of an IP address with a fixed prefix length.</para><para>In IPv4, you can make an indirect assignment by subnet. When you make
an indirect assignment by using 4, 3, 2, or 1 trailing zero (0) octets, the
software calculates a prefix length of 0, 8, 16, or 24, respectively. Entries
3 &ndash; 6 in <olink targetptr="txnet-tbl-7" remap="internal">Table&nbsp;18&ndash;1</olink> illustrate
this fallback mechanism.</para><para>You can also set a fixed prefix length by adding a slash (/) followed
by the number of fixed bits. IPv4 network addresses can have a prefix length
between 1 &ndash; 32. IPv6 network addresses can have a prefix length between
1 &ndash; 128.</para><para>The following table
provides fallback address and host address examples. If an address within
the set of fallback addresses is directly assigned, the fallback mechanism
is not used for that address.</para><table frame="topbot" id="txnet-tbl-7"><title><filename>tnrhdb</filename> Host Address and Fallback
Mechanism Entries</title><tgroup cols="3" colsep="0" rowsep="0"><colspec colname="colspec2" colwidth="16.95*"/><colspec colname="colspec0" colwidth="59.64*"/><colspec colname="colspec1" colwidth="73.40*"/><thead><row rowsep="1"><entry><para>IP Version</para>
</entry><entry><para><filename>tnrhdb</filename> Entry</para>
</entry><entry><para>Addresses Covered</para>
</entry>
</row>
</thead><tbody><row><entry morerows="10" rowsep="1"><para>IPv4</para>
</entry><entry rowsep="1"><screen>192.168.118.57:cipso</screen><screen>192.168.118.57/32:cipso</screen>
</entry><entry rowsep="1"><screen>192.168.118.57</screen><para>The <literal>/32</literal> sets
a prefix length of 32 fixed bits.</para>
</entry>
</row><row><entry rowsep="1"><screen>192.168.118.128/26:cipso</screen>
</entry><entry rowsep="1"><para>From <literal>192.168.118.0</literal> through <literal>192.168.118.63</literal></para>
</entry>
</row><row><entry rowsep="1"><screen>192.168.118.0:cipso</screen><screen>192.168.118.0/24:cipso</screen>
</entry><entry rowsep="1"><para>All addresses
on <literal>192.168.118.</literal> network</para>
</entry>
</row><row><entry rowsep="1"><screen>192.168.0.0/24:cipso</screen>
</entry><entry rowsep="1"><para>All addresses on <literal>192.168.0.</literal> network.</para>
</entry>
</row><row><entry rowsep="1"><screen>192.168.0.0:cipso</screen><screen>192.168.0.0/16:cipso</screen>
</entry><entry rowsep="1"><para>All addresses on <literal>192.168.</literal> network</para>
</entry>
</row><row><entry colname="colspec0" rowsep="1"><screen>192.0.0.0:cipso</screen><screen>192.0.0.0/8:cipso</screen>
</entry><entry colname="colspec1" rowsep="1"><para>All addresses on <literal>192.</literal> network</para>
</entry>
</row><row><entry><screen>192.168.0.0/32:cipso</screen>
</entry><entry><para>Network address <literal>192.168.0.0</literal>. Not a wildcard address.</para>
</entry>
</row><row><entry><screen>192.168.118.0/32:cipso</screen>
</entry><entry><para>Network address <literal>192.168.118.0</literal>. Not a wildcard address.</para>
</entry>
</row><row><entry><screen>192.0.0.0/32:cipso</screen>
</entry><entry><para>Network
address <literal>192.0.0.0</literal>. Not a wildcard address.</para>
</entry>
</row><row><entry><screen>0.0.0.0/32:cipso</screen>
</entry><entry><para>Host address <literal>0.0.0.0</literal>. Not a wildcard address.</para>
</entry>
</row><row><entry rowsep="1"><screen>0.0.0.0:cipso</screen>
</entry><entry rowsep="1"><para>All addresses on all networks</para>
</entry>
</row><row><?PubTbl row rht="0.34in"?><entry morerows="2" rowsep="1"><para>IPv6</para>
</entry><entry><screen>2001\:DB8\:22\:5000\:\:21f7:cipso</screen>
</entry><entry><screen>2001:DB8:22:5000::21f7</screen>
</entry>
</row><row><entry><screen>2001\:DB8\:22\:5000\:\:0/52:cipso</screen>
</entry><entry><para>From <literal>2001:DB8:22:5000::0</literal> through <literal>2001:DB8:22:5fff:ffff:ffff:ffff:ffff</literal></para>
</entry>
</row><row><entry><screen>0\:\:0/0:cipso</screen>
</entry><entry><para>All addresses on all networks</para>
</entry>
</row>
</tbody>
</tgroup>
</table><para><indexterm><primary><filename>tnrhdb</filename> database</primary><secondary>0.0.0.0 host address</secondary></indexterm>Note that the <literal>0.0.0.0/32</literal> address
matches the specific address, <literal>0.0.0.0</literal>. The <filename>tnrhdb</filename> entry <literal>0.0.0.0/32:admin_low</literal> is useful on a system where the literal address, <literal>0.0.0.0</literal>, is used as a source IP address. For example, DHCP clients
contact the DHCP server as <literal>0.0.0.0</literal> before the server provides
the clients with an IP address.</para><para>To create a <filename>tnrhdb</filename> entry
on a Sun Ray server that serves DHCP clients, see <olink targetptr="managetnet-35" remap="internal">Example&nbsp;19&ndash;13</olink>. Because <literal>0.0.0.0:admin_low</literal> is the default wildcard entry, see <olink targetptr="managetnet-8" remap="internal">How
to Limit the Hosts That Can Be Contacted on the Trusted Network</olink> for
issues to consider before removing or changing this default.</para><para>For more information about prefix lengths in IPv4 and IPv6 addresses,
see <olink targetdoc="group-sa" targetptr="exlvx" remap="external"><citetitle remap="section">Designing Your CIDR IPv4 Addressing Scheme</citetitle> in <citetitle remap="book">System Administration Guide: IP Services</citetitle></olink> and <olink targetdoc="group-sa" targetptr="ipv6-overview-10" remap="external"><citetitle remap="section">IPv6 Addressing Overview</citetitle> in <citetitle remap="book">System Administration Guide: IP Services</citetitle></olink>.</para>
</sect1><sect1 id="txnet-3"><title>Overview of Routing in Trusted Extensions</title><para><indexterm><primary>routing</primary></indexterm>In Trusted Extensions,
routes between hosts on different networks must maintain security at each
step in the transmission. Trusted Extensions adds extended security attributes
to the routing protocols in the Solaris OS. Unlike the Solaris OS, this Trusted Extensions release
does not support dynamic routing. For details about specifying static routing,
see the <option>p</option> option in the <olink targetdoc="group-refman" targetptr="route-1m" remap="external"><citerefentry><refentrytitle>route</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page.</para><para>Gateways and routers route packets. In this discussion, the terms &ldquo;gateway&rdquo;
and &ldquo;router&rdquo; are used interchangeably.</para><para>For communications between hosts on the same subnet, accreditation checks
are performed at endpoints only because no routers are involved. Label range
checks are performed at the source. If the receiving host is running Trusted Extensions software,
label range checks are also performed at the destination.</para><para>When the source and destination hosts are on different subnets, the
packet is sent from the source host to a gateway. The label range of the destination
and the first-hop gateway is checked at the source when a route is selected.
The gateway forwards the packet to the network where the destination host
is connected. A packet might go through several gateways before reaching the
destination.</para><sect2 id="tnetov-14"><title>Background on Routing</title><para>On Trusted Extensions gateways, label range checks are performed in certain
cases. A Trusted Extensions system that is routing a packet between two unlabeled
hosts compares the default label of the source host to the default label of
the destination host. When the unlabeled hosts share a default label, the
packet is routed.</para><para>Each gateway maintains a list of routes to all destinations. Standard Solaris routing
makes choices to optimize the route. Trusted Extensions provides additional software
to check security requirements that apply to the route choices. The Solaris choices
that do not satisfy security requirements are skipped.</para>
</sect2><sect2 id="txnet-13"><title>Routing Table Entries in Trusted Extensions</title><indexterm><primary>routing</primary><secondary>tables</secondary>
</indexterm><indexterm><primary>security attributes</primary>
</indexterm><para>The routing table entries in Trusted Extensions can incorporate security
attributes. Security attributes can include a <literal>cipso</literal> keyword.
Security attributes must include a maximum label, a minimum label, and a DOI.</para><para>For entries that do not provide security attributes, the attributes
in the gateway's security template are used.</para>
</sect2><sect2 id="txnet-14"><title>Trusted Extensions Accreditation Checks</title><indexterm><primary>routing</primary><secondary>accreditation checks</secondary>
</indexterm><indexterm><primary>accreditation checks</primary>
</indexterm><para>Trusted Extensions software determines the suitability of a route for security
purposes. The software runs a series of tests called <emphasis>accreditation
checks</emphasis> on the source host, the destination host, and the intermediate
gateways.</para><note><para>In the following discussion, an accreditation check for a label
range also means a check for a security label set.</para>
</note><para>The accreditation check verifies the label range and CIPSO label information.
The security attributes for a route are obtained from the routing table entry,
or from the security template of the gateway if the entry has no security
attributes.</para><para><indexterm><primary>trusted network</primary><secondary>default labeling</secondary></indexterm>For incoming communications, the Trusted Extensions software obtains
labels from the packets themselves, whenever possible. Obtaining labels from
packets is only possible when the messages are sent from systems that support
labels. When a label is not available from the packet, a default label is
assigned to the message from trusted networking database files. These labels
are then used during accreditation checks. Trusted Extensions enforces several
checks on outgoing messages, forwarded messages, and incoming messages.</para><sect3 id="txnet-15"><title>Source Accreditation Checks</title><itemizedlist><para>The following accreditation checks are performed on the sending process
or sending zone:</para><listitem><para>For all destinations, the label of the data must be within
the label range of the next hop in the route, that is, the first hop. And,
the label must be contained in the first-hop gateway's security attributes.</para>
</listitem><listitem><para>For all destinations, the DOI of an outgoing packet must match
the DOI of the destination host. The DOI must also match the DOI of all hops
along the route, including its first-hop gateway.</para>
</listitem><listitem><itemizedlist><para>When the destination host is an unlabeled host, one of the following
conditions must be satisfied:</para><listitem><para>The sending host's label must match the destination host's
default label.</para>
</listitem><listitem><para>The sending host is privileged to perform cross-label communication,
and the sender's label dominates the destination's default label.</para>
</listitem><listitem><para>The sending host is privileged to perform cross-label communication,
and the sender's label is <constant>ADMIN_LOW</constant>. That is, the sender
is sending from the global zone.</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist><note><para>A first-hop check occurs when a message is being sent through
a gateway from a host on one network to a host on another network.</para>
</note>
</sect3><sect3 id="txnet-16"><title>Gateway Accreditation Checks</title><indexterm><primary>gateways</primary><secondary>accreditation checks</secondary>
</indexterm><itemizedlist><para>On a Trusted Extensions gateway system,the following accreditation checks
are performed for the next-hop gateway:</para><listitem><para>If the incoming packet is unlabeled, the packet inherits the
source host's default label from the <filename>tnrhdb</filename> entry. Otherwise,
the packet receives the indicated CIPSO label.</para>
</listitem><listitem><itemizedlist><para>Checks for forwarding a packet proceed similar to source accreditation:</para><listitem><para>For all destinations, the label of the data must be within
the label range of the next hop. And, the label must be contained in the security
attributes of the next-hop host.</para>
</listitem><listitem><para>For all destinations, the DOI of an outgoing packet must match
the DOI of the destination host. The DOI must also match the DOI of the next-hop
host.</para>
</listitem><listitem><para>The label of an unlabeled packet must match the destination
host's default label.</para>
</listitem><listitem><para>The label of a CIPSO packet must be within the destination
host's label range.</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</sect3><sect3 id="txnet-17"><title>Destination Accreditation Checks</title><itemizedlist><para>When a Trusted Extensions host receives data, the software performs the
following checks:</para><listitem><para>If the incoming packet is unlabeled, the packet inherits the
source host's default label from the <filename>tnrhdb</filename> entry. Otherwise,
the packet receives the indicated CIPSO label.</para>
</listitem><listitem><para>The label and DOI for the packet must be consistent with the
destination zone or destination process's label and DOI. The exception is
when a process is listening on a port. The listening process can receive a
packet if the process is privileged to perform cross-label communications,
and the process is either in the global zone or has a label that dominates
the packet's label.</para>
</listitem>
</itemizedlist>
</sect3>
</sect2>
</sect1><sect1 id="txnet-26"><title>Administration of Routing in Trusted Extensions</title><para><indexterm><primary>routing</primary><secondary>concepts</secondary></indexterm>Trusted Extensions supports several methods for routing communications
between networks. In the Security Administrator role, you can set up routes
that enforce the degree of security required by your site's security policy.</para><itemizedlist><para>For example, sites can restrict communications outside the local network
to a single label. This label is applied to publicly available information.
Labels such as <literal>UNCLASSIFIED</literal> or <literal>PUBLIC</literal> can
indicate public information. To enforce the restriction, these sites assign
a single-label template to the network interface that is connected to the
external network. For more details about TCP/IP and routing, see the following:</para><listitem><para><olink targetdoc="group-sa" targetptr="ipplan-37" remap="external"><citetitle remap="section">Planning for Routers on Your Network</citetitle> in <citetitle remap="book">System Administration Guide: IP Services</citetitle></olink></para>
</listitem><listitem><para><olink targetdoc="group-sa" targetptr="ipconfig-63" remap="external"><citetitle remap="section">Configuring Systems on the Local Network</citetitle> in <citetitle remap="book">System Administration Guide: IP Services</citetitle></olink></para>
</listitem><listitem><para><olink targetdoc="group-sa" targetptr="ipv6-admintasks-2" remap="external"><citetitle remap="section">Major TCP/IP Administrative Tasks (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: IP Services</citetitle></olink></para>
</listitem><listitem><para><olink targetdoc="sysadv3" targetptr="chapter2-4" remap="external"><citetitle remap="section">Preparing Your Network for the DHCP Service (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: IP Services</citetitle></olink></para>
</listitem>
</itemizedlist><sect2 id="tnetov-23"><title>Choosing Routers in Trusted Extensions</title><indexterm><primary>routing</primary><secondary>tables</secondary>
</indexterm><itemizedlist><para>Trusted Extensions hosts offer the highest degree of trust as routers. Other
types of routers might not recognize Trusted Extensions security attributes. Without
administrative action, packets can be routed through routers that do not provide
MAC security protection.</para><listitem><para>CIPSO routers drop packets when they do not find the correct
type of information in the IP options section of the packet. For example,
a CIPSO router drops a packet if it does not find a CIPSO option in the IP
options when the option is required, or when the DOI in the IP options is
not consistent with the destination's accreditation.</para>
</listitem><listitem><para>Other types of routers that are not running Trusted Extensions software
can be configured to either pass the packets or drop the packets that include
the CIPSO option. Only CIPSO-aware gateways such as Trusted Extensions provides
can use the contents of the CIPSO IP option to enforce MAC.</para>
</listitem>
</itemizedlist><para>To support trusted routing, the Solaris Express Community Edition  routing
tables are extended to include Trusted Extensions security attributes. The attributes
are described in <olink targetptr="txnet-13" remap="internal">Routing Table Entries in Trusted
Extensions</olink>. Trusted Extensions supports static routing, in which the administrator
creates routing table entries manually. For details, see the <option>p</option> option
in the <olink targetdoc="group-refman" targetptr="route-1m" remap="external"><citerefentry><refentrytitle>route</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page.</para><para>The routing software tries to find a route to the destination host in
the routing tables. When the host is not explicitly named, the routing software
looks for an entry for the subnetwork where the host resides. When neither
the host nor the network where the host resides is defined, the host sends
the packet to a default gateway, if defined. Multiple default gateways can
be defined, and each is treated equally.</para><para>In this release of Trusted Extensions, the security administrator sets up
routes manually, and then manually changes the routing table when conditions
change. For example, many sites have a single gateway that communicates with
the outside world. In these cases, the single gateway can be statically defined
as the <emphasis>default</emphasis> on each host on the network. Dynamic routing
support might be available in future releases of Trusted Extensions.</para>
</sect2><sect2 id="txnet-18"><title>Gateways in Trusted Extensions</title><indexterm><primary>routing</primary><secondary>example of</secondary>
</indexterm><indexterm><primary>gateways</primary><secondary>example of</secondary>
</indexterm><indexterm><primary>trusted network</primary><secondary>example of routing</secondary>
</indexterm><para>An example of routing in Trusted Extensions follows. The diagram and table
show three potential routes between Host 1 and Host 2.</para><figure id="txnet-fig-1"><title id="txnet-22">Typical Trusted Extensions Routes
and Routing Table Entries</title><mediaobject><imageobject><imagedata entityref="fig.gateways.epsi"/>
</imageobject><textobject><simpara>The context describes the graphic.</simpara>
</textobject>
</mediaobject>
</figure><informaltable frame="topbot"><tgroup cols="5" colsep="0" rowsep="0"><colspec colname="colspec2" colwidth="33.30*"/><colspec colname="colspec3" colwidth="65.12*"/><colspec colname="colspec5" colwidth="54.75*"/><colspec colname="colspec6" colwidth="54.01*"/><colspec colname="colspec7" colwidth="34.75*"/><thead><row rowsep="1"><entry colname="colspec2"><para>Route</para>
</entry><entry colname="colspec3"><para>First-Hop Gateway</para>
</entry><entry colname="colspec5"><para>Minimum Label</para>
</entry><entry colname="colspec6"><para>Maximum Label</para>
</entry><entry colname="colspec7"><para>DOI</para>
</entry>
</row>
</thead><tbody><row><entry colname="colspec2"><para>#1</para>
</entry><entry colname="colspec3"><para>Gateway 1</para>
</entry><entry colname="colspec5"><para><literal>CONFIDENTIAL</literal></para>
</entry><entry colname="colspec6"><para><literal>SECRET</literal></para>
</entry><entry colname="colspec7"><para>1</para>
</entry>
</row><row><entry colname="colspec2"><para>#2</para>
</entry><entry colname="colspec3"><para>Gateway 3</para>
</entry><entry colname="colspec5"><para><constant>ADMIN_LOW</constant></para>
</entry><entry colname="colspec6"><para><constant>ADMIN_HIGH</constant></para>
</entry><entry colname="colspec7"><para>1</para>
</entry>
</row><row><entry colname="colspec2"><para>#3</para>
</entry><entry colname="colspec3"><para>Gateway 5</para>
</entry><entry colname="colspec5"><para></para>
</entry><entry colname="colspec6"><para></para>
</entry><entry colname="colspec7"><para></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable><itemizedlist><listitem><para>Route #1 can transmit packets within the label range of <literal>CONFIDENTIAL</literal> to <literal>SECRET</literal>.</para>
</listitem><listitem><para>Route #2 can transmit packets from <constant>ADMIN_LOW</constant> to <constant>ADMIN_HIGH</constant>.</para>
</listitem><listitem><para>Route #3 does not specify routing information. Therefore,
its security attributes are derived from the template in the <filename>tnrhtp</filename> database
for Gateway 5.</para>
</listitem>
</itemizedlist>
</sect2><sect2 id="txnet-19"><title>Routing Commands in Trusted Extensions</title><indexterm><primary>routing</primary><secondary>commands in Trusted Extensions</secondary>
</indexterm><itemizedlist><para>To show labels and extended security attributes for sockets, Trusted Extensions modifies
the following Solaris network commands:</para><listitem><para>The <command>netstat -rR</command> command displays the security
attributes in routing table entries.</para>
</listitem><listitem><para>The <command>netstat -aR</command> command displays the security
attributes for sockets.</para>
</listitem><listitem><para>The <command>route -p</command> command with the <option role="nodash">add</option> or <option role="nodash">delete</option> option
changes the routing table entries.</para>
</listitem>
</itemizedlist><para>For details, see the <olink targetdoc="group-refman" targetptr="netstat-1m" remap="external"><citerefentry><refentrytitle>netstat</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> and <olink targetdoc="group-refman" targetptr="route-1m" remap="external"><citerefentry><refentrytitle>route</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man pages.</para><para>For examples, see <olink targetptr="managetnet-4" remap="internal">How to Configure Routes
With Security Attributes</olink>.</para>
</sect2>
</sect1>
</chapter><?Pub *0000054111 0?>