diff options
Diffstat (limited to 'usr/src/man/man8/svc.ipfd.8')
| -rw-r--r-- | usr/src/man/man8/svc.ipfd.8 | 626 |
1 files changed, 626 insertions, 0 deletions
diff --git a/usr/src/man/man8/svc.ipfd.8 b/usr/src/man/man8/svc.ipfd.8 new file mode 100644 index 0000000000..eb1c6876fb --- /dev/null +++ b/usr/src/man/man8/svc.ipfd.8 @@ -0,0 +1,626 @@ +'\" te +.\" To view license terms, attribution, and copyright for IP Filter, the default path is /usr/lib/ipf/IPFILTER.LICENCE. If the Solaris operating environment has been installed anywhere other than the default, modify the given path to access the file at the installed +.\" location. +.\" Copyright (c) 2009, Sun Microsystems, Inc. All Rights Reserved +.\" Copyright 2016 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org> +.TH SVC.IPFD 8 "Dec 30, 2015" +.SH NAME +svc.ipfd \- IP Filter firewall monitoring daemon +.SH SYNOPSIS +.LP +.nf +\fB/lib/svc/bin/svc.ipfd\fR +.fi + +.LP +.nf +\fBsvc:/network/ipfilter:default\fR +.fi + +.SH DESCRIPTION +.LP +The \fBsvc.ipfd\fR daemon monitors actions on services that use firewall +configuration and initiates update services' IP Filter configuration. The +daemon allows the system to react to changes in system's firewall configuration +in an incremental fashion, at a per-service level. +.sp +.LP +A service's firewall policy is activated when it is enabled, deactivated when +it is disabled, and updated when its configuration property group is modified. +\fBsvc.ipfd\fR monitors the services management facility (SMF) repository for +these actions and invokes the IP Filter rule-generation process to carry out +the service's firewall policy. +.sp +.LP +This daemon is started by the \fBnetwork/ipfilter\fR service either through the +\fBstart\fR or \fBrefresh\fR method. Thus, the daemon inherits the environment +variables and credentials from the method and runs as root with all zone +privileges. +.SS "Firewall Static Configuration" +.LP +A static definition describes a service's network resource configuration that +is used to generate service-specific IPF rules. The per-service +\fBfirewall_context\fR property group contains a service's static definition, +similar to the \fBinetd\fR property group in \fBinetd\fR managed services. This +property group supports: +.sp +.ne 2 +.na +\fB\fBfirewall_context/name\fR\fR +.ad +.sp .6 +.RS 4n +For non-\fBinetd\fR services. The IANA name or RPC name, equivalent to the +\fBinetd/name\fR property. +.RE + +.sp +.ne 2 +.na +\fB\fBfirewall_context/isrpc\fR\fR +.ad +.sp .6 +.RS 4n +For non-\fBinetd\fR services. A boolean property where a \fBtrue\fR value +indicates an RPC service, equivalent to the \fBinetd/isrpc\fR property. For RPC +services, the value of \fBfirewall_context/name\fR is not an IANA name but is +either an RPC program number or name. See \fBrpc\fR(5). +.RE + +.sp +.LP +Additionally, some services may require a mechanism to generate and supply +their own IPF rules. An optional property \fBipf_method\fR, provides a +mechanism to allow such custom rule generation: +.sp +.ne 2 +.na +\fB\fBfirewall_context/ipf_method\fR\fR +.ad +.sp .6 +.RS 4n +A command. Normally a script that generates IPF rules for a service. The +framework does not generate rules for services with this property definition. +Rather, the framework expects these services to provide their own rules. +.RE + +.sp +.LP +A service's \fBipf_method\fR specifies a command that takes an additional +argument, its own fault management resource identifier (FMRI), and generates +the service's firewall rules and outputs those rules to stdout. To generate +rules for a service with the \fBipf_method\fR property, the framework execs the +command specified in \fBipf_method\fR, passing the service FMRI as the +additional argument, and stores the rules for that service by redirecting the +command output, the rules, to the service's rule file. Because an +\fBipf_method\fR is \fBexec\fR'ed from the context of either the +\fBnetwork/ipfilter\fR \fBstart\fR or \fBrefresh\fR method process, it inherits +the execution context and runs as root. +.sp +.LP +The service static configuration is delivered by the service developer and not +intended to be modified by users. These properties are only modified upon +installation of an updated service definition. +.SS "Firewall Policy Configuration" +.LP +A per-service property group, \fBfirewall_config\fR, stores the services' +firewall policy configuration. Because \fBnetwork/ipfilter:default\fR is +responsible for two firewall policies, the Global Default and Global Override +system-wide policies (as explained in \fBipfilter\fR(7)), it has two property +groups, \fBfirewall_config_default\fR and \fBfirewall_config_override\fR, to +store the respective system-wide policies. +.sp +.LP +Below are the properties, their possible values, and corresponding semantics: +.sp +.ne 2 +.na +\fB\fBpolicy\fR\fR +.ad +.sp .6 +.RS 4n +The \fBpolicy\fR has the following modes: +.sp +.ne 2 +.na +\fB\fBnone\fR policy mode\fR +.ad +.sp .6 +.RS 4n +No access restriction. For a global policy, this mode allows all incoming +traffic. For a service policy, this mode allows all incoming traffic to its +service. +.RE + +.sp +.ne 2 +.na +\fB\fBdeny\fR policy mode\fR +.ad +.sp .6 +.RS 4n +More restrictive than \fBnone\fR. This mode allows incoming traffic from all +sources except those specified in the \fBapply_to\fR property. +.RE + +.sp +.ne 2 +.na +\fB\fBallow\fR policy mode\fR +.ad +.sp .6 +.RS 4n +Most restrictive mode. This mode blocks incoming traffic from all sources +except those specified in the \fBapply_to\fR property. +.RE + +.RE + +.sp +.ne 2 +.na +\fB\fBblock-policy\fR\fR +.ad +.sp .6 +.RS 4n +The \fBblock-policy\fR property defines the handling of packets that +are blocked by the filter. It has the following modes: +.sp +.ne 2 +.na +\fB\fBnone\fR block-policy mode\fR +.ad +.sp .6 +.RS 4n +Block by dropping packets. +.RE + +.sp +.ne 2 +.na +\fB\fBreturn\fR block-policy mode\fR +.ad +.sp .6 +.RS 4n +Block by returning RST (for TCP) or ICMP messages (for other +protocols) to the sender of the blocked packets. +.RE + +.RE + +.sp +.ne 2 +.na +\fB\fBapply_to\fR\fR +.ad +.sp .6 +.RS 4n +A multi-value property listing IPv4 network source entities to enforce the +chosen policy mode. Packets coming from the entities listed in \fBapply_to\fR +property will be denied if policy is \fBdeny\fR and allowed if policy is +\fBallow\fR. The syntax for possible values are: +.sp +.in +2 +.nf +host: host:\fIIP\fR "host:192.168.84.14" +subnet: network:\fIIP/netmask\fR "network:129.168.1.5/24" +ippool: pool:\fIpool number\fR "pool:77" +interface: if:\fIinterface_name\fR "if:e1000g0" +.fi +.in -2 +.sp + +.RE + +.sp +.ne 2 +.na +\fB\fBapply_to_6\fR\fR +.ad +.sp .6 +.RS 4n +A multi-value property listing IPv6 network source entities to enforce the +chosen policy mode. Packets coming from the entities listed in \fBapply_to_6\fR +property will be denied if policy is \fBdeny\fR and allowed if policy is +\fBallow\fR. The syntax for possible values are: +.sp +.in +2 +.nf +host: host:\fIIP\fR "host:2001:DB8::12ff:fe34:5678" +subnet: network:\fIIP/netmask\fR "network:2001:DB8::/32" +ippool: pool:\fIpool number\fR "pool:77" +interface: if:\fIinterface_name\fR "if:e1000g0" +.fi +.in -2 +.sp + +.RE + +.sp +.ne 2 +.na +\fB\fBexceptions\fR\fR +.ad +.sp .6 +.RS 4n +A multi-value property listing IPv4 network source entities to be excluded from +the \fBapply_to\fR list. For example, when \fBdeny\fR policy is applied to a +subnet, exceptions can be made to some hosts in that subnet by specifying them +in the \fBexceptions\fR property. This property has the same value syntax as +\fBapply_to\fR property. +.RE + +.sp +.ne 2 +.na +\fB\fBexceptions_6\fR\fR +.ad +.sp .6 +.RS 4n +A multi-value property listing IPv6 network source entities to be excluded from +the \fBapply_to_6\fR list. For example, when \fBdeny\fR policy is applied to a +subnet, exceptions can be made to some hosts in that subnet by specifying them +in the \fBexceptions_6\fR property. This property has the same value syntax as +\fBapply_to_6\fR property. +.RE + +.sp +.ne 2 +.na +\fB\fBtarget\fR\fR +.ad +.sp .6 +.RS 4n +A multi-value property listing IPv4 network destination entities to enforce the +chosen policy mode. Packets directed to the destination entities listed in +\fBtarget\fR property will be denied if policy is \fBdeny\fR and allowed if +policy is \fBallow\fR. This property has the same value syntax as \fBapply_to\fR +property, with the notable exception that specifying network interfaces is not +supported. +.RE + +.sp +.ne 2 +.na +\fB\fBtarget_6\fR\fR +.ad +.sp .6 +.RS 4n +A multi-value property listing IPv6 network destination entities to enforce the +chosen policy mode. Packets directed to the destination entities listed in +\fBtarget_6\fR property will be denied if policy is \fBdeny\fR and allowed if +policy is \fBallow\fR. This property has the same value syntax as +\fBapply_to_6\fR property, with the notable exception that specifying network +interfaces is not supported. +.RE + +.sp +.LP +For individual network services only: +.sp +.ne 2 +.na +\fB\fBfirewall_config/policy\fR\fR +.ad +.sp .6 +.RS 4n +A service's policy can also be set to \fBuse_global\fR. Services with +\fBuse_global\fR policy mode inherit the Global Default firewall policy. +.RE + +.sp +.ne 2 +.na +\fB\fBfirewall_config/block_policy\fR\fR +.ad +.sp .6 +.RS 4n +A service's block policy can also be set to \fBuse_global\fR. Services with +\fBuse_global\fR block policy mode inherit the Global Default firewall block +policy. +.RE + +.sp +.LP +For the Global Default only: +.sp +.ne 2 +.na +\fB\fBfirewall_config_default/policy\fR\fR +.ad +.sp .6 +.RS 4n +Global Default policy, \fBfirewall_config\fR property group in +\fBsvc:/network/ipfilter:default\fR, can also be set to \fBcustom\fR. Users can +set \fBpolicy\fR to \fBcustom\fR to use prepopulated IP Filter configuration, +for example, an existing IP Filter configuration or custom configurations that +cannot be provided by the framework. This Global Default-only policy mode +allows users to supply a text file containing the complete set of IPF rules. +When \fBcustom\fR mode is selected, the specified set of IPF rules is +\fBcomplete\fR and the framework will not generate IPF rules from configured +firewall policies. +.RE + +.sp +.ne 2 +.na +\fB\fBfirewall_config_default/custom_policy_file\fR\fR +.ad +.sp .6 +.RS 4n +A file path to be used when Global Default policy is set to \fBcustom\fR. The +file contains a set of IPF rules that provide the desired IP Filter +configuration. For example, users with existing IPF rules in +\fB/etc/ipf/ipf.conf\fR can execute the following commands to use the existing +rules: +.RS +4 +.TP +1. +Set custom policy: +.sp +.in +2 +.nf +# \fBsvccfg -s ipfilter:default setprop \e +firewall_config_default/policy = astring: "custom"\fR +.fi +.in -2 +.sp + +.RE +.RS +4 +.TP +2. +Specify custom file: +.sp +.in +2 +.nf +# \fBsvccfg -s ipfilter:default setprop \e +firewall_config_default/custom_policy_file = astring: \e\fR +\fB"/etc/ipf/ipf.conf"\fR +.fi +.in -2 +.sp + +.RE +.RS +4 +.TP +3. +Refresh configuration: +.sp +.in +2 +.nf +# \fBsvcadm refresh ipfilter:default\fR +.fi +.in -2 +.sp + +.RE +.RE + +.sp +.ne 2 +.na +\fB\fBfirewall_config_default/open_ports\fR\fR +.ad +.sp .6 +.RS 4n +Non-service program requiring allowance of its incoming traffic can request +that the firewall allow traffic to its communication ports. This multi-value +property contains protocol and port(s) tuple in the form: +.sp +.in +2 +.nf +"{tcp | udp}:{\fIPORT\fR | \fIPORT\fR-\fIPORT\fR}" +.fi +.in -2 +.sp + +.RE + +.sp +.LP +Initially, the system-wide policies are set to \fBnone\fR and network services' +policies are set to \fBuse_global\fR. Enabling \fBnetwork/ipfilter\fR activates +the firewall with an empty set of IP Filter rules, since system-wide policy is +\fBnone\fR and all services inherit that policy. To configure a more +restrictive policy, use \fBsvccfg\fR(8) to modify network services and +system-wide policies. +.sp +.LP +A user configures firewall policy by modifying the service's +\fBfirewall_config\fR property group. A new authorization, +\fBsolaris.smf.value.firewall.config\fR, is created to allow delegation of the +firewall administration privilege to users. Users with Service Operator +privileges will need this new authorization to be able to configure firewall +policy. +.SS "Firewall Availability" +.LP +During boot, a firewall is configured for enabled services prior to the +starting of those services. Thus, services are protected on boot. While the +system is running, administrative actions such as service restarting, enabling, +and refreshing may cause a brief service vulnerability during which the service +runs while its firewall is being configured. +.sp +.LP +\fBsvc.ipfd\fR monitors a service's start and stop events and configures or +unconfigures a service's firewall at the same time that SMF is starting or +stopping the service. Because the two operations are simultaneous, there is a +possible window of exposure (less than a second) if the service is started +before its firewall configuration completed. RPC services typically listen on +ephemeral addresses, which are not known until the services are actually +running. Thus RPC services are subjected to similar exposure since their +firewalls are not configured until the services are running. +.SS "Developer Documentation" +.LP +Services providing remote capabilities are encouraged to participate in the +firewall framework to control network access to the service. While framework +integration is not mandatory, remote access to services that are not integrated +in the framework may not function correctly when a system-wide policy is +configured. +.sp +.LP +Integrating a service into the framework is as straightforward as defining two +additional property groups and their corresponding properties in the service +manifest. IP Filter rules are generated when a user enables the service. In the +non-trivial case of custom rule generation, where a shell script is required, +there are existing scripts that can be used as examples. +.sp +.LP +The additional property groups, \fBfirewall_config\fR and +\fBfirewall_context\fR, stores firewall policy configuration and provides +static firewall definition, respectively. Below is a summary of new property +groups and properties and their appropriate default values. +.sp +.LP +Firewall policy configuration: +.sp +.ne 2 +.na +\fB\fBfirewall_config\fR\fR +.ad +.sp .6 +.RS 4n +Access to the system is protected by a new authorization definition and a +user-defined property type. The new authorization should be assigned to the +property group \fBvalue_authorization\fR property in a way such as: +.sp +.in +2 +.nf +<propval name='value_authorization' type='astring' +value='solaris.smf.value.firewall.config' /> +.fi +.in -2 +.sp + +A third party should follow the service symbol namespace convention to generate +a user-defined type. Sun-delivered services can use +\fBcom.sun,fw_configuration\fR as the property type. +.sp +See "Firewall Policy Configuration," above, for more information. +.RE + +.sp +.ne 2 +.na +\fB\fBfirewall_config/policy\fR\fR +.ad +.sp .6 +.RS 4n +This property's initial value should be \fBuse_global\fR since services, by +default, inherit the Global Default firewall policy. +.RE + +.sp +.ne 2 +.na +\fB\fBfirewall_config/apply_to\fR\fR +.ad +.sp .6 +.RS 4n +An empty property, this property has no initial value. +.RE + +.sp +.ne 2 +.na +\fB\fBfirewall_config/exceptions\fR\fR +.ad +.sp .6 +.RS 4n +An empty property, this property has no initial value. +.RE + +.sp +.LP +Firewall static definition: +.sp +.ne 2 +.na +\fB\fBfirewall_context\fR\fR +.ad +.sp .6 +.RS 4n +A third party should follow service symbol namespace convention to generate a +user-defined type, Sun delivered services can use \fBcom.sun,fw_definition\fR +as the property type. +.sp +See "Firewall Static Configuration," above, for more information. +.RE + +.sp +.ne 2 +.na +\fB\fBfirewall_context/name\fR\fR +.ad +.sp .6 +.RS 4n +Service with well-known, IANA defined port, which can be obtained by +\fBgetservbyname\fR(3SOCKET). The service's IANA name is stored in this +property. For RPC services, the RPC program number is stored in this property. +.RE + +.sp +.ne 2 +.na +\fB\fBfirewall_context/isrpc\fR\fR +.ad +.sp .6 +.RS 4n +For RPC services, this property should be created with its value set to +\fBtrue\fR. +.RE + +.sp +.ne 2 +.na +\fB\fBfirewall_context/ipf_method\fR\fR +.ad +.sp .6 +.RS 4n +In general, the specified firewall policy is used to generate IP Filter rules +to the service's communication port, derived from the +\fBfirewall_context/name\fR property. Services that do not have IANA-defined +ports and are not RPC services will need to generate their own IP Filter rules. +Services that generate their own rules may choose not to have +\fBfirewall_context/name\fR and \fBfirewall_context/isrpc\fR properties. See +the following services: +.sp +.in +2 +.nf +svc:/network/ftp:default +svc:/network/nfs/server:default +svc:/network/ntp:default +.fi +.in -2 +.sp + +\&...and others with the \fBipf_method\fR for guidance. +.RE + +.SH ATTRIBUTES +.LP +See \fBattributes\fR(7) for descriptions of the following attributes: +.sp + +.sp +.TS +box; +c | c +l | l . +ATTRIBUTE TYPE ATTRIBUTE VALUE +_ +Interface Stability Committed +.TE + +.SH SEE ALSO +.LP +.BR svcprop (1), +.BR svcs (1), +.BR getservbyname (3SOCKET), +.BR rpc (5), +.BR attributes (7), +.BR ipfilter (7), +.BR smf (7), +.BR ipf (8), +.BR svcadm (8), +.BR svccfg (8) |
