To see all my blog posts on IP filtering see here.
With Communications Server(CS) on z/OS you can manage IP traffic in your TCPIP image. You can allow or deny a IP packet.
You can define
- Default rules to allow traffic, in TCPIP Profile
- To define a set of named rules using Policy agent. These can allow or deny access
- Individual dynamic rules which can be automated, for example external monitors, using DMD
Dynamic rules
You can use the Unix command ipsec -F to add,delete or modify individual rules. These rules might be generated by an external monitoring scheme, which can say to devices
“we seem to have a problem – use this rule to stop traffic from this destination while the CS people investigate and update the rules in the policy agent”
an example is
ipsec -F add srcip 10.1.0.2 destip all prot icmp dir inbound mode block log yes loglimit 1 lifetime 30 -N COLIN1 -p TCPIP
This defines a rule called COLIN1 on TCPIP address space TCPIP. Note you can specify a global rule for all TCPIP address spaces, by specifying -G instead of -p TCPIP
- Source IP address 10.1.0.2
- Destination IP address all
- Only ICMP prototols
- Direction inbound
- Mode block. You can use Simulate to allow the packet – but to write an event to the log. This is useful when building rules.
- Log – write it to the syslogd log
- Loglimit – this logs at an average rate of 1 event per 5 minutes – so you can avoid flooding the logs.
- Lifetime – this rule expires after 30 minutes.
Display all dynamic rules
ipsec -F display -p TCPIP
and delete it
ipsec -F delete -N COLIN1 -p TCPIP
When you add a rule, you get information In the log such as
EZD1723I Defensive filter added: 11/21/2023 08:58:10.86 filter rule= COLIN1 ext= 1 sipaddr= 10.1.0.2 / 32 dipaddr= 0.0.0.0 / 0 proto= icmp(1) type= all code= all fragmentsonly= no dir= inbound routing= local mode= block log= yes lifetime= 30 userid= IBMUSER global= no loglimit= 1
Log limited output
If you specify loglimit:
The value specifies the limit of the average rate of filter-match messages generated in a 5-minute interval for a defensive filter.
You get a trace message like
EZD0838I Defensive filter packet would have been denied messages limited: 11/21/2023 13:04:22.92 filter_rule= COLIN2 filter_ext= 1 filter_sipaddr= 10.1.0.2 / 32 filter_dipaddr= 0.0.0.0 / 0 filter_proto= icmp(1) type= 8 code= all filter_fragmentsonly= no filter_dir= inbound filter_routing= local suppressed_count= 274
This shows there were 274 suppressed messages
EZD0838I:This message is issued when limiting of filter match messages was requested for a defensive filter and at least one “packet would have been denied” message (EZD1722I) for the defensive filter was suppressed during the preceding five minutes.
Suppressed counts: The number of “packet would have been denied” messages (EZD1722I) for the defensive filter that were suppressed during the preceding five minutes.
One thought on “CS IP filtering: defining dynamic rules for IP traffic”