@@ -317,11 +317,33 @@ User processes that fire up sockets for network communications attribute
317317user identification values such as user and group ID to these sockets. Incoming
318318or outgoing communication with any socket is also assumed to be communicating with
319319the user that owns the process that fired the socket.
320+ .Pp
321+ Packet filtering by user or group controls data packet flows based on
322+ the user or group identity of the process that generated the traffic,
323+ or is waiting to receive traffic, rather than just traditional parameters
324+ like IP address, port number, and protocol.
325+ .Pp
326+ There are many situations where this is useful:
327+ .Bl -bullet -hang
328+ .It Finer-grained access control
329+ One can allow specific destinations to be accessed only by certain users
330+ or groups.
331+ .It Application level security
332+ Two processes are using a specific port, but only one should be allowed to
333+ access packets originating from a particular host.
334+ .It Improves isolation in multi-tenant systems
335+ Prevent an untrusted user from making any network connections
336+ .It Security hardening and containment
337+ A user application that has been exploited can be prevented from making
338+ network connections to a command-and-control server.
339+ .It Compliance and policy enforcement
340+ Can restrict access to particular networks to network administrators only.
341+ .El
320342This filtering process can be achieved by passing the user or group ID on the rule.
321343.Pp
322344.Dl pass out from all user jack group < 1000
323345.Pp
324- The above rule only allows by sockets of processes owned by user jack
346+ The above rule only allows sockets of processes owned by user jack
325347and belonging to a group with an id value of less than 1000.
326348.Pp
327349.Dl block in from all user > 100 group wheel
0 commit comments