SunScreen 3.1 Reference Manual

Appendix C Services and State Engines

This appendix describes the standard services, service groups, and state engines supported by SunScreen.

Standard Services

SunScreen is shipped with a number of predefined network services. TABLE C-1 lists the services in SunScreen, along with the state engine and discriminator (port, RPC program number, or type) for each service. Parameters (state engine modifiers, such as time-outs) and BROADCAST are indicated where applicable.

Table C-1 SunScreen Services

Service 

State Engine (forward filtering) 

Discriminator 

State Engine (reverse filtering) 

Discriminator 

echo

tcp

port 7 

 

 

discard

tcp

port 9 

 

 

systat

tcp

port 11 

 

 

daytime

tcp

port 13 

 

 

quote

tcp

port 17 

 

 

chargen

tcp

port 19 

 

 

ftp

ftp

port 21 

 

 

telnet

tcp

port 23 

 

 

smtp

tcp

port 25 

 

 

time

tcp

port 37 

 

 

whois

tcp

port 43 

 

 

nicname

tcp

port 43 

 

 

dns

tcp

port 53  

 

 

 

dns

port 53 

 

 

tftp

udp

port 69 parameters (60 -1 7) 

 

 

gopher

tcp

port 70 

 

 

finger

tcp

port 79 

 

 

www

tcp

port 80 

 

 

pop

tcp

ports 109-110 

 

 

auth

tcp

port 113 

 

 

ntp

udp

port 123 

 

 

nntp

tcp

port 119 

 

 

snmp

tcp

port 161  

 

 

 

udp

port 161 

 

 

snmp traps

udp_datagram

port 162 

 

 

rlogin

tcp

port 513 

 

 

rsh

rsh

port 514 

 

 

syslog

udp_datagram

port 514 

 

 

printer

tcp

port 515 

 

 

rip

udp_datagram

port 520 port 520 (BROADCAST) 

 

 

sqlnet 

sqlnet 

port 1521 

 

 

archie

udp

port 1525 parameters (360 -1 0) 

 

 

certificate discovery

udp

port 1640 parameters (60 1 1) 

 

 

remote administration

tcp

ports 3852-3853 

 

 

SecurID PIN

tcp

port 3855 

 

 

HA administration

tcp

port 3856 

 

 

HA heartbeat

ping

port 8 

 

 

HA

tcp

port 3856  

 

 

securid

udp

port 5500 

 

 

securidprop

tcp

port 5510 

 

 

real audio

realaudio

port 7070 

 

 

traceroute

udp_datagram

ports 33430-34000 

 

 

 

 

 

icmp

type 11 

 

 

icmp

type 3 

icmp echo-reply

icmp

type 0 

 

 

icmp unreach

icmp

type 3 

 

 

icmp quench

icmp

type 4 

 

 

icmp redirect

icmp

type 5 

 

 

icmp echo-request

icmp

type 8 

 

 

router announcement

icmp

type 9 type 9 (BROADCAST) 

 

 

router solicitation

icmp

type 10 type 10 (BROADCAST) 

 

 

icmp exceeded

icmp

type 11 

 

 

icmp params

icmp

type 12 

 

 

icmp info

icmp

types 13 14 15 16 17 18 

 

 

ping

ping

port 8 

 

 

router discovery

icmp

type 10 

 

 

 

 

type 10 (BROADCAST) 

icmp

type 9 type 9 (BROADCAST) 

rstat

rpc_udp

program no. 100001 

 

 

 

pmap_udp

program no. 100001 

 

 

rusers

rpc_udp

program no. 100002 

 

 

 

pmap_udp

program no. 100002 

 

 

nfs prog

pmap_udp

program no. 100003 

 

 

 

udp

port 2049 

 

 

 

tcp

port 2049 

 

 

nfs readonly prog

pmap_udp

program no. 100003 

 

 

 

nfsro

port 2049 

 

 

ypserv

nis

port 100004 

 

 

 

pmap_nis

program no. 100004 

 

 

 

pmap_nis

program no. 100004 (BROADCAST) 

 

 

mountd

rpc_udp

program no. 100005  

 

 

 

pmap_udp

program no. 100005 

 

 

ypbind

rpc_udp

program no. 100007 

 

 

 

pmap_udp

program no. 100007 

 

 

wall

rpc_udp

program no. 100008 

 

 

 

pmap_udp

program no. 100008 

 

 

yppasswd

rpc_udp

program no. 100009 

 

 

 

pmap_udp

program no. 100009 

 

 

rquota

rpc_udp

program no. 100011 

 

 

 

pmap_udp

program no. 100011 

 

 

spray

rpc_udp

program no. 100012 

 

 

 

pmap_udp

program no. 100012 

 

 

rex

rpc_udp

program no. 100017 

 

 

 

pmap_udp

program no. 100017 

 

 

klm

rpc_udp

program no. 100020 

 

 

 

pmap_udp

program no. 100020 

 

 

nlm

rpc_udp

program no. 100021 

 

 

 

pmap_udp

program no. 100021 

 

 

 

 

 

rpc_udp

program no. 100021 

 

 

pmap_udp

program no. 100021 

status

rpc_udp

program no. 100024 

 

 

 

pmap_udp

program no. 100024 

 

 

ypupdate

rpc_udp

program no. 100028 

 

 

 

pmap_udp

program no. 100028 

 

 

nfs acl

rpc_udp

program no. 100227 

 

 

 

pmap_udp

program no. 100227 

 

 

ospf

ip

type 89 (BROADCAST) 

 

 

skip

iptunnel

type 57 

 

 

 

 

type 79 

 

 

icmp all

icmp

 

 

 

 

* (BROADCAST) 

 

 

ip all

ip

 

 

ip mobile

ipmobile

 

 

ip tunnel3

iptunnel

 

 

ip forward

ipfwd

 

 

udp all

udpall

 

 

tcp all

tcpall

ports 0-3850 

 

 

 

 

ports 3854-65535 

 

 

rpc all

rpc_udp

 

 

rpc tcp all

rpc_tcp

 

 

pmap udp all

pmap_udp

* (BROADCAST) 

 

 

pmap tcp all

pmap_tcp

 

 

X11

tcp

ports 6000-6063 

 

 

pcnfsd

pmap_tcp pmap_udp rpc_tcp rpc_udp

program no. 150001 program no. 150001 program no. 150001 program no. 150001 

 

 

automount

pmap_tcp pmap_udp rpc_tcp rpc_udp

program no. 300019 program no. 300019 program no. 300019 program no. 300019 

 

 

ypxfrd

pmap_tcp

program no. 100069 

 

 

 

pmap_udp

program no. 100069 

 

 

 

rpc_tcp

program no. 100069 

 

 

 

rpc_udp

program no. 100069 

 

 

exec

tcp

program no. 512 

 

 

wais

tcp

port 210 

 

 

uucp

tcp

port 540 

 

 

irc

tcp

port 6670 

 

 

 

tcp

port 6680  

 

 

VDOLive

tcp tcp

port 7000 port 7010 

 

 

 

 

 

udp

port 32649 

CU See Me

udp_datagram

ports 7648-7652 

 

 

Vosaic

tcp

port 1235 

 

 

 

 

 

udp_datagram udp_datagram

ports 61801-61820 ports 20000-20020 

StreamWorks

udp_datagram

port 1558 

 

 

 

 

 

udp_datagram

port 1558  

CoolTalk

tcp udp_datagram

ports 6499-6500 port 13000 

udp_datagram

port 13000 

Backweb

udp

port 370 parameters (60 0 3) 

 

radius

udp

port 1645 

 

 

ssl

tcp

port 443 

 

 

who

udp_datagram

port 513 (BROADCAST) 

 

 

netstat

tcp

Port 15 

 

 

biff

udp_datagram

port 512 (BROADCAST) 

 

 

bootp

udp

port 67 (BROADCAST) parameters (60 0 3)  

 

 

kerberos

udp

port 88 

 

 

ntp-tcp

tco

port 123 

 

 

netbios name

udp

port 137 

 

 

netbios datagram

udp_datagram

port 138 

 

 

netbios session

tcp

port 139 

 

 

lpd

tcp

port 2766 

 

 

echo-udp

udp

port 7 

 

 

discard-udp

udp

port 9 

 

 

time-udp

udp

port 37 

 

 

daytime-udp

udp

port 13 

 

 

tcp-high-ports

tcp

ports 1024-65535 

 

 

udp-high-ports

udp

ports 1024-65535 

 

 

esp 

iptunnel 

IP protocol 50 

 

 

ah 

iptunnel 

IP protocol 51 

 

 

isakmp 

udp 

port 500 

 

 

ipv6 tunnel

iptunnel 

IP protocol 41 

 

 

Service information is stored in the common object registry. See "add service Subcommand" in Appendix B, Command-Line Reference.

ftp Service

The File Transfer Protocol (FTP) is used to copy files from one system to another. FTP is designed to work between hosts using different file structures and character sets.

SunScreen contains an ftp state engine to screen the FTP data connection. You specify the number for the FTP control port; the number for the FTP data port is one less than the FTP control port number. The predefined FTP service definition, ftp, uses the standard FTP control port number (21) and data connection port number (20).

FTP control connections time out after a period of inactivity. The FTP server typically closes the connect before this inactivity timeout occurs; however, if the timeout period elapses, the quit command can take 60 seconds or more to complete. During this time, FTP packets may be logged.

The ftp service supports both PASV and standard FTP connections. By default, ftp service verifies that the FTP data port is 20 for standard FTP connections. To communicate with FTP servers that do not use port 20 for the data port, modify the ftp service definition to set its three parameters to: 600 600 1. The first parameter is the control session timeout (600 seconds). The second parameter is the data session timeout (600 seconds). The third parameter is a flag; a value of 1 specifies that the system will not verify that the FTP data port is 20.

Note that this does not affect PASV FTP sessions, because they never use port 20 for the data connection.

traceroute Service

The traceroute service entry assumes that the UDP ports being used for traceroute are in the range of 33430-34000. If implementations of traceroute at your site use other ports, modify the port range as appropriate.

ip Services

The ip all service is provided for backward compatibility with previous SunScreen products. You can achieve better performance by using either the ip forward (for IP traffic in one direction) or the ip tunnel (for IP traffic in both directions) services instead.

Example of the old way using ip all:


"ip all" host1 host2 allow
"ip all" host2 host1 allow

Example of the new way using ip tunnel:


 "ip tunnel" host1 host2 allow

The ip mobile service is provided for use with mobile, remote clients. Like the ip tunnel service, ip mobile passes all IP traffic between a pair of addresses. Unlike the ip tunnel service, however, a rule specifying ip mobile forces the first connection to be made from the mobile client (a system with one of the addresses in Source Address).

Generally, ip mobile is used for SKIP-encrypted connections with the SKIP identity providing the authentication and access control. For example:


"ip mobile" Internet Mailhost SKIP-VERSION2

SunScreen can filter IP packets by IP protocol type alone. This is useful in special situations such as passing non-TCP/UDP protocols or when data are being encrypted.

If you want a Screen to pass IP packets by protocol type, you define a new service using either the ip, ip tunnel, ip mobile, or ip fwd state engine. Specify the protocol of the packets you wish to pass in decimal notation. If you specify * for the protocol, the service will pass all IP packets regardless of protocol type.

There are several predefined services included, such as skip (IP protocols 79 and 57), ip tunnel, ip mobile, and ip fwd.


Caution - Caution -

Using one of the state engines with a protocol specification of * (any protocol), can be dangerous, since any traffic would be allowable. State engines should only be used in special cases or if the data are part of an encrypted tunnel.


The predefined IP services do not pass broadcast traffic. If you want to pass broadcast traffic, you must define a new service or add broadcast to the predefined service.

VDOLive Service

The VDOLive service definition requires that the VDOLive clients be set to use a fixed port, which is port 32649 by default. You can modify the service definitions so that VDOLive will use another port.

CoolTalk Service

The CoolTalk service definition allows calls to be initiated but does not allow calls to be received. To receive calls, define a second rule with the addresses reversed. For example:


CoolTalk joe sam allow
CoolTalk sam joe allow

nfs readonly Service

The nfs readonly service allows read-only access to the NFSv3.0 file system. Read-related functions, such as lookup, read, and access, are allowed. Functions that are not read-related, such as rename and write, are blocked; traffic is not permitted to pass under the nfs readonly rule.

smtp (Electronic Mail) Service

Simple Mail Transfer Protocol (SMTP) is used to send electronic mail between two message transfer agents using TCP. SunScreen includes a predefined service definition, smtp, to send and receive SMTP mail on TCP port 25.

www (World-Wide-Web Access) Service

The World Wide Web provides a graphical user interface that enables users to browse a global network of services and documents. SunScreen contains a predefined service definition for WWW that passes TCP connections on port 80.

Not all WWW services on the Internet use port 80; many reside on ports with other numbers, such as 8000 or 8080. If you only allow outbound WWW access under the www service entry, users will not be able to connect to all WWW resources. To compensate, you can define a new TCP service that enumerates additional nonstandard WWW ports you want to allow, or you can allow TCP access to all ports outbound using the default service.


Caution - Caution -

Do not use the tcp all service to enable inbound www access to your public Web servers. This opens up a large security hole and allows outside users access to any TCP service on your machines. Instead, since you know which port your Web server uses (generally 80), you should use a more restrictive service rule, such as the www service definition.


dns Service

DNS traffic consists of both UDP and TCP traffic. SunScreen includes a state engine to handle the UDP DNS protocol. TCP DNS is handled through the normal TCP state engine. To screen DNS traffic, use the predefined dns service.

rip Service

The Routing Information Protocol (RIP) is a dynamic routing protocol commonly used by Internet routers. RIP messages are carried in UDP datagrams. SunScreen includes a predefined service (rip) for passing RIP packets using the udp-datagram state engine with broadcast enabled. This means that a rule allows RIP packets (including broadcasts) from source to destination.

It is usually sufficient to enable RIP in the default rule that passes RIP from the routers to all other addresses. This lets the SunScreen send and receive RIP packets without restriction. If you want to restrict RIP traffic, do not enable RIP using the default access rules; instead, define rules for RIP based on your security policy.

Service 

Source 

Destination 

Action 

routerouters * allow
route *routers allow

sqlnet Services

SunScreen contains an sqlnet state engine to screen Oracle SQL*Net protocol. SQL*Net is Oracle's remote data access protocol that enables client-server and server-server communications across networks.

An Oracle client connects to the server using the port address of the listener, which is normally defined as TCP port 1521 during Oracle installation. sqlnet service is defined as using TCP port 1521. If Oracle is installed using a different port for the listener, you can modify the service definition for sqlnet service accordingly.

SQL*Net connections are established in two ways. An Oracle client connects to the listener using TCP port 1521, and the connection is established with the listener process. With Oracle multithreaded servers and prespawned server processes, the client connects to the listener on TCP port 1521. The listener issues a redirect message back to the client containing an IP address and port number, and the client connects to this redirected IP address and port.

SunScreen supports both types of SQL*Net connections.

realaudio Services

SunScreen contains a service definition to handle RealAudio sessions. To screen RealAudio traffic, use the realaudio service.

icmp Services

SunScreen includes predefined services for screening ICMP packets such as ping. These services use the icmp state engine and allow ICMP ping request-and-response exchanges between a Source and Destination system. Use the predefined service ping if you want to provide ping access.

You can use the icmp state engine to create other services to pass ICMP messages of a specific type. Most of the common ICMP packets have entries in the predefined services, as shown in the following table:

Service 

Source 

Destination 

Action 

ping Inside Outside allow
icmp-unreach Outside Inside allow

The above rules allow Inside machines to ping Outside machines, but block Outside machines from sending ping messages to Inside machines. It also allows ICMP unreachable packets to be sent from Outside machines to Inside machines. Note that the ping service allows packets in two directions (ping-request packets from Source to Destination and ping-response packets from Destination to Source), while the icmp-unreach service only allows packets to flow in one direction (from Source to Destination).

esp Services

IPsec Encapsulating Security Payload (esp) uses IP protocol 50 and is used for traffic that has been encrypted or authenticated using IPsec.

ah Services

IPsec Authentication Header (ah) uses IP protocol 51 and is used for traffic that has been authenticated using IPsec.

isakmp Services

Internet Security Association and Key Management Protocol provides communication between security processes such as IKE key negotiation.

ipv6 tunnel Services

ipv6 uses IP protocol 41 and carries encapsulated IPv6 packets over an IPv4 link such as the Internet.

ipsec

IPsec is a service group that comprises the three packet types that are used in IPsec secure communication.

IP Packets

SunScreen can filter IP packets by IP protocol type alone. This is useful in special situations such as passing non-TCP/UDP protocols or when data are being encrypted.

To pass IP packets by protocol type, you need to define a new service using either the ip, ip tunnel, ip mobile, or ip fwd state engine. Specify the protocol of the packets you wish to pass. Note that protocol is always specified in decimal notation. If you specify  * for the protocol, this means to pass all IP packets regardless of protocol type.

There are several predefined services included, such as skip (IP protocols 79 and 57), ip tunnel, ip mobile, and ip fwd.


Caution - Caution -

Using one of the above state engines, especially with protocol specified as * (any protocol), is very dangerous. They should only be used in special cases or if the data are part of an encrypted tunnel.


The predefined IP services do not pass broadcast traffic. If you wish to pass broadcast traffic, you must define a new service or add broadcast to the predefined service.

Service 

Source 

Destination 

Action 

ping

Inside 

Outside 

accept 

icmp-unreach

Outside 

Inside 

accept 

The above rules allow Inside machines to ping Outside machines, but not vice versa. It also allows ICMP unreachable packets to be sent from Outside machines to Inside machines. Note that the ping service allows packets in two directions (ping-request packets from Source to Destination and ping-response packets from Destination to Source) while the icmp-unreach service only allows packets to flow in one direction (from Source to Destination).

ICMP Packets

SunScreen provides predefined services for screening ICMP packets including ping.

These services are built upon the icmp state engine and allow ICMP ping request-and-response exchange to occur between a Source and Destination system. Use the predefined service ping if you want to provide ping access.

The icmp state engine can also be used to create other services to pass ICMP messages of a specific type. Most of the common ICMP packets have entries in the predefined services.

Example:

The above rules allow Inside machines to ping Outside machines, but not vice versa. They also allow ICMP unreachable packets to be sent from Outside machines to Inside machines. Note that the ping service allows packets in two directions (ping-request packets from Source to Destination and ping-response packets from Destination to Source) while the icmp-unreach service only allows packets to flow in one direction (from Source to Destination).

TCP Services

SunScreen screens TCP services by destination port numbers. Most common TCP services are already defined in the service entries supplied with SunScreen.

If you need to define a new TCP service, define a new service entry specifying the tcp filter state machine. Specify the destination TCP port or ports of the service you wish to pass. If you specify * for the port, the service will pass all TCP services regardless of port. Note that some services, such as FTP and RSH, cannot be passed in this way. They are not simple TCP protocols. They make additional connections made in the reverse direction. These services must be specified as separate services if you wish to pass them.

The tcp state engine times out unused and silent connections five hours after a connection has been established. Since some systems repeatedly retransmit until they receive an error about a terminated TCP connection, you should configure a rule using the tcp service to send an ICMP rejection message, especially on your internal interfaces.

For example, the following rule allows telnet connections to be made from Inside machines to Outside machines.

Service 

Source 

Destination 

Action 

telnet

Inside 

Outside 

allow 

UDP Services

SunScreen contains several state engines to handle UDP protocols:

For all UDP engines, you define a new service entry specifying the well-known destination, UDP port. Specifying port * passes all UDP traffic.

ntp Service

SunScreen contains a state engine to handle the NTP protocol. The source and destination UDP ports numbers are fixed at port 123. To screen NTP traffic, use the ntp service. Broadcast NTP is not supported.

archie Service

SunScreen contains a service definition to handle the Archie UDP protocol. To screen Archie traffic, use the archie service.

rpc Service

SunScreen contains a state engine to handle the RPC protocols. This can safely screen RPC protocol as long as they use the portmapper and do not use dynamic RPC program values.

To define a new RPC service, add a new service entry using both the rpc_udp and pmap_udp state engines. You specify the well-known RPC program of the RPC service you wish to pass. If you specify * for the RPC program, the service entry passes all RPC services, regardless of program.

Several well-known RPC services, such as NFS and NIS, have been defined to include all the RPC and non-RPC protocols that these systems require.

Some NFS clients use the lock manager. Since a lock manager makes connections in both directions (to NFS server and from NFS server) you may need to use the nlm service when you allow NFS access.

Service 

Source 

Destination 

Action 

nfs Inside DMZ allow
nlm DMZ Inside allow

Broadcast port mapping (NIS) is not supported for encrypted connections.

Network Service Groups

Network services can be organized into service groups, so that a single rule can apply to multiple network services. TABLE C-2 lists the predefined service groups in SunScreen and the services that each group includes. Note that some services are members of more than one group, and other services are not included in any service group.

Table C-2 SunScreen Network Service Groups

Service Group Name 

Member Services 

common

tcp all

udp all

syslog

dns

rpc all

nfs prog

icmp all

rip

ftp

rsh

real audio

pmap udp all

pmap tcp all

rpc tcp all

nis

archie

traceroute

ping

daytime

daytime

daytime-udp

discard

discard

discard-udp

echo

echo

echo-udp

HA

HA heartbeat

HA administration

ipsec

esp

ah

isakmp

mosaic

www

ssl

gopher

ftp

archie

netbios

netbios name

netbios datagram

netbios session

nfs

mountd

nfs prog

rquota

nlm

status

nfs acl

nfs readonly

mountd

nfs readonly prog

rquota

nlm

status

nfs acl

nis

ypserv

yppasswd

ypupdate

ypbind

time

time

time-udp

State Engines

SunScreen includes a number of state engines that act as a protocol checker for services. For example, the ftp state engine checks port numbers when the ftp service is being used.

You cannot define new state engines, and you should not change which state engine is used by a predefined service. However, if you define a new service, you must specify the state engine the newly defined service will use.

Characteristics of State Engines

State engines have the following characteristics:

dns State Engine

The dns state engine is used for UDP DNS sessions. It looks inside the DNS responses and verifies that they have the same DNS ID as the request. The predefined service dns uses this state engine and is normally the only service to use this state engine. Note that since the DNS service also uses the TCP protocol, the predefined service dns also has a second entry using the tcp state engine.

The discriminator for the dns state engine is the UDP port number of the DNS service. This is normally 53.

The dns state engine has one parameter:

ftp State Engine

The ftp state engine is used for FTP sessions. This state engine understands the control protocol used by FTP sessions including parsing PORT commands. It supports both traditional and PASV modes. The ftp service is typically the only service that uses this state engine.

The discriminator for the ftp state engine is the port number of the control connection, which is normally 21. The port number of the data session is always one less than the control connection unless this is overridden by the parameters below.

The ftp state engine has the following parameters:

icmp State Engine

The icmp state engine is used for ICMP protocols. It allows one-direction ICMP traffic to flow.

The discriminator for the icmp state engine is the ICMP type of the packet.

The icmp state engine has no parameters.

ip State Engine

The ip state engine is a stateless filter that passes unidirectional IP traffic of a particular IP type. The data can only flow in the forward direction (From to To address). This state engine is supplied to provide backwards compatibility with the ip state engine in the SunScreen SPF-100. New service definitions should use either the ipfwd, iptunnel, or ipmobile state engines.

The discriminator for the ip state engine is the IP packet type.

The ip state engine has no parameters.

ipfwd State Engine

The ipfwd state engine allows unidirectional IP traffic of a certain IP type. The data can only flow in the forward direction (From to To address).

The discriminator for the ipfwd state engine is the IP packet type.

The ipfwd state engine has the following parameters:

ipmobile State Engine

The ipmobile state engine allows bidirectional IP traffic of a certain IP type. The first connection must be initiated by the From address in the rule. Subsequent connections can be initiated from either side as long as the cache entry has not timed out.

The discriminator for the ipmobile state engine is the IP packet type.

The ipmobile state engine has the following parameters:

iptunnel State Engine

The iptunnel state engine allows bidirectional IP traffic of a certain IP type. Either side of the connection can initiate connections.

The discriminator for the iptunnel state engine is the IP packet type.

The iptunnel state engine has the following parameters:

nis State Engine

The nis state engine is used to define services that are NIS UDP sessions. The predefined service ypserv uses the nis state engine and is normally the only service definition that uses this state engine.

The discriminator for this state engine is the RPC program number of the service. Normally, this is always 100004, the RPC program number for NIS.

The nis state engine has the following parameters:

ping State Engine

The ping state engine is used for an ICMP ping exchange. It allows ping requests in the forward direction and ping responses in the reverse direction.

The discriminator of the ping state engine is the ICMP type of the request packet. This is normally set to 8 to match that of an ICMP echo request packet.

The ping state engine has one parameter:

pmap_nis State Engine

The pmap_nis state engine is used for the portmap protocol used by NIS services. It monitors NIS portmap requests and responses and builds a table of host/port to NIS service mappings. The ypserv service is typically the only service definition that uses the pmap_nis state engine.

The discriminator for the pmap_nis state engine is the RPC program number of the service. This is always 100004, which is the RPC program number for NIS.

The pmap_nis state engine has the following parameters:

pmap_tcp State Engine

The pmap_tcp state engine is used for the TCP portmap protocol used by TCP RPC services. It monitors the TCP portmap requests and responses and builds a table of hosts and ports to RPC service mappings. Normally, a service definition for a TCP RPC service requires both a pmap_tcp and a rcp_tcp state engine entry. The discriminator for the pmap_tcp state engine is the RPC program number of the service.

The pmap_tcp state engine has the following parameters:

pmap_udp State Engine

The pmap_udp state engine is used for the UDP portmap protocol used by UDP services. It monitors the UDP portmap requests and responses and builds a table of hosts and ports to RPC service mappings. Normally, a service definition for a UDP RPC service requires both a pmap_udp and a rpc_udp state engine entry. The discriminator for the pmap_udp state engine is the RPC program number of the service.

The pmap_udp state engine has the following parameters:

realaudio State Engine

The realaudio state engine is used for RealAudio sessions. This state engine understands the control protocol used by these sessions including enabling the UDP ports used for the audio traffic. The realaudio service is typically the only service that uses this state engine. The discriminator for the realaudio state engine is the port number of the TCP control connection, which is normally 7070.

The realaudio state engine has one parameter:

rpc_tcp State Engine

The rpc_tcp state engine is used for RPC protocols that use the TCP protocol. Normally, a service definition for such a protocol requires both an rpc_tcp and pmap_tcp state engine entry. The discriminator for the rpc_tcp state engine is the RPC program number for the service.

The rpc_tcp state engine has one parameter:

rpc_udp State Engine

The rpc_udp state engine is used for RPC protocols that use the UDP protocol. Normally, a service definition for such a protocol requires both an rpc_udp and pmap_udp state engine entry. The discriminator for the rpc_udp state engine is the RPC program number for the service.

The rpc_udp state engine has the following parameters:

rsh State Engine

The rsh state engine is used for remote shell (rsh) sessions. This state engine understands the control protocol used by these sessions, including the enabling of the TCP connection used for stderr messages. The rsh service is typically the only service that uses this state engine. The discriminator for the rsh state engine is the port number of the RSH server. This is normally 514.

The rsh state engine has one parameter:

sqlnet State Engine

The sqlnet state engine is used for Oracle SQL*Net sessions.

It understands the network protocol used by SQL*Net, including redirected sessions (see "sqlnet Services"). The sqlnet service is typically the only service using the sqlnet state engine. Its discriminator is the port number of the Oracle listener, which is normally TCP port 1521.

The sqlnet service is typically the only service using this state engine. The discriminator for the sqlnet state engine is the port number of the Oracle listener, which is normally TCP port 1521.

tcp State Engine

The tcp state engine is used for TCP sessions. This state engine allows simple TCP connections. It cannot handle protocols, such as FTP or RSH, that have more complicated connection management protocols, especially if they open connections in the reverse direction. In those cases, the appropriate, more specific state engine should be used.

The discriminator for the tcp state engine is the port number of the TCP service.

The tcp state engine has one parameter:

tcpall State Engine

The tcpall state engine is used for TCP service definitions that specify a large range of ports such as the predefined service tcp all. Since it has a lower precedence than tcp, ftp, rsh, or realaudio, it does not override any of those services. Normally, this state engine is only used for the predefined service tcp all.

The discriminator for the tcpall state engine is the port number of the TCP service.

The tcpall state engine has the following parameter:

udp State Engine

The udp state engine is used for UDP services. It allows one or more responses to a UDP request. The requests are validated to make sure they come from the correct address and port and are sent to the correct address and port. The response source address and port checking can be modified using the parameters below.

The discriminator for the udp state engine is the port number of the UDP service.

The udp state engine has the following parameters:

udpall State Engine

The udpall state engine is used for UDP services where a large number of ports are specified. It has a lower precedence than the dns and udp state engines and does not override services defined with those state engines. It allows one or more responses to a UDP request. The requests are validated to make sure they come from the correct address and port and are sent to the correct address and port. The response source address and port checking can be modified using the parameters below.

The discriminator for the udpall state engine is the port number of the UDP service.

The udpall state engine has the following parameters:

udp_datagram State Engine

The udp_datagram state engine is used for one-way UDP protocols. It allows UDP packets to pass in the forward direction only. It is used for services that send UDP packets in one direction, such as syslog.

The discriminator for the udp_datagram state engine is the port number of the UDP service.

The udp_datagram state engine has no parameters.

udp_stateless State Engine

The udp_stateless state engine is used for stateless UDP session filtering. This engine is included for backwards compatibility with older SunScreen products, but has been replaced in most cases with stateful UDP filtering. Note that since it is stateless UDP packet filtering, services defined using this engine cannot safely validate that the responses go to the same port as the request.

The discriminator for the udp_stateless state engine is the port number of the UDP service.

The udp_stateless state engine has no parameters.