1.\" Copyright (c) 2003 Networks Associates Technology, Inc. 2.\" All rights reserved. 3.\" 4.\" This software was developed for the FreeBSD Project by Chris Costello 5.\" at Safeport Network Services and Network Associates Labs, the 6.\" Security Research Division of Network Associates, Inc. under 7.\" DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the 8.\" DARPA CHATS research program. 9.\" 10.\" Redistribution and use in source and binary forms, with or without 11.\" modification, are permitted provided that the following conditions 12.\" are met: 13.\" 1. Redistributions of source code must retain the above copyright 14.\" notice, this list of conditions and the following disclaimer. 15.\" 2. Redistributions in binary form must reproduce the above copyright 16.\" notice, this list of conditions and the following disclaimer in the 17.\" documentation and/or other materials provided with the distribution. 18.\" 19.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND 20.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE 23.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 25.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29.\" SUCH DAMAGE. 30.\" 31.\" $FreeBSD$ 32.\" 33.Dd March 11, 2003 34.Dt MAC_PORTACL 4 35.Os 36.Sh NAME 37.Nm mac_portacl 38.Nd network port access control policy 39.Sh SYNOPSIS 40To compile the port access control policy into your kernel, 41place the following lines in your kernel 42configuration file: 43.Bd -ragged -offset indent 44.Cd "options MAC" 45.Cd "options MAC_PORTACL" 46.Ed 47.Pp 48Alternately, to load the port access control policy module at boot time, 49place the following line in your kernel configuration file: 50.Bd -ragged -offset indent 51.Cd "options MAC" 52.Ed 53.Pp 54and in 55.Xr loader.conf 5 : 56.Pp 57.Dl "mac_portacl_load=""YES""" 58.Sh DESCRIPTION 59The 60.Nm 61policy allows administrators to administratively limit binding to 62local 63.Tn UDP 64and 65.Tn TCP 66ports via the 67.Xr sysctl 8 68interface. 69.Pp 70In order to enable the 71.Nm 72policy, MAC policy must be enforced on sockets 73(see 74.Xr mac 4 ) , 75and the port(s) protected by 76.Nm 77must not be included in the range specified by 78the 79.Va net.inet.ip.portrange.reservedlow 80and 81.Va net.inet.ip.portrange.reservedhigh 82.Xr sysctl 8 83MIBs. 84.Ss Runtime Configuration 85The port access control list is specified in the 86.Va security.mac.portacl.rules 87.Xr sysctl 8 88MIB in the following format: 89.Pp 90.Sm off 91.Bd -literal -offset indent 92.Ar idtype 93.Li : 94.Ar id 95.Li : 96.Ar protocol 97.Li : 98.Ar port 99.Oo 100.Li , 101.Ar idtype 102.Li : 103.Ar id 104.Li : 105.Ar protocol 106.Li : 107.Ar port 108.Li , 109.Ar ... 110.Oc 111.Ed 112.Sm on 113.Pp 114.Bl -tag -width ".Ar protocol" 115.It Ar idtype 116Describes the type of subject match to be performed. 117Either 118.Li uid 119for user ID matching, or 120.Li gid 121for group ID matching. 122.It Ar id 123The user or group ID (depending on 124.Ar idtype ) 125allowed to bind to the specified port. 126.Bf -emphasis 127NOTE: User and group names are not valid; only the actual ID numbers 128may be used. 129.Ef 130.It Ar protocol 131Describes which protocol this entry applies to. 132Either 133.Li tcp 134or 135.Li udp 136are supported. 137.It Ar port 138Describes which port this entry applies to. 139.Bf -emphasis 140NOTE: MAC security policies may not override other security system policies 141by allowing accesses that they may deny, such as 142.Va net.inet.ip.portrange.reservedlow / 143.Va net.inet.ip.portrange.reservedhigh . 144.Ef 145If the specified port falls within the range specified, the 146.Nm 147entry will not function 148(i.e., even the specified user/group may not be able to bind to the specified 149port). 150.El 151.Sh SEE ALSO 152.Xr mac 3 , 153.Xr mac_biba 4 , 154.Xr mac_bsdextended 4 , 155.Xr mac_ifoff 4 , 156.Xr mac_mls 4 , 157.Xr mac_none 4 , 158.Xr mac_partition 4 , 159.Xr mac_seeotheruids 4 , 160.Xr mac_test 4 , 161.Xr mac 9 162.Sh HISTORY 163MAC first appeared in 164.Fx 5.0 . 165.Sh AUTHORS 166This software was contributed to the 167.Fx 168Project by NAI Labs, the Security Research Division of Network Associates 169Inc. under DARPA/SPAWAR contract N66001-01-C-8035 170.Pq Dq CBOSS , 171as part of the DARPA CHATS research program. 172