diff --git a/config/action.d/pf.conf b/config/action.d/pf.conf index ea70d894..b7476fa2 100644 --- a/config/action.d/pf.conf +++ b/config/action.d/pf.conf @@ -72,17 +72,12 @@ tablename = f2b protocol = tcp -# Option: port -# Notes.: specifies port to monitor -# Values: [ NUM | STRING ] Default: -# -#port = telnet # Option: actiontype # Notes.: defines additions to the blocking rule # Values: leave empty to block all attempts from the host -# Default: Value of the allports -actiontype = any +# Default: Value of the multiport +actiontype = # Option: allports # Notes.: default addition to block all ports diff --git a/fail2ban/tests/servertestcase.py b/fail2ban/tests/servertestcase.py index d39847ca..7557a501 100644 --- a/fail2ban/tests/servertestcase.py +++ b/fail2ban/tests/servertestcase.py @@ -1370,14 +1370,14 @@ class ServerConfigReaderTests(LogCaptureTestCase): ), 'ip6-unban': ( r"`echo -2001:db8:: > /proc/net/xt_recent/f2b-j-w-iptables-xtre6`", - ), + ), }), - # pf allports -- + # pf default -- multiport on default port (tag set in jail.conf, but not in this test case) ('j-w-pf', 'pf[name=%(__name__)s]', { 'ip4': (), 'ip6': (), 'start': ( '`echo "table persist counters" | pfctl -f-`', - '`echo "block proto tcp from to any" | pfctl -f-`', + '`echo "block proto tcp from to any port " | pfctl -f-`', ), 'stop': ( '`pfctl -sr 2>/dev/null | grep -v f2b-j-w-pf | pfctl -f-`', @@ -1391,7 +1391,7 @@ class ServerConfigReaderTests(LogCaptureTestCase): 'ip6-ban': ("`pfctl -t f2b-j-w-pf -T add 2001:db8::`",), 'ip6-unban': ("`pfctl -t f2b-j-w-pf -T delete 2001:db8::`",), }), - # pf multiport -- + # pf multiport with custom port -- ('j-w-pf-mp', 'pf[actiontype=][name=%(__name__)s, port=http]', { 'ip4': (), 'ip6': (), 'start': ( @@ -1410,6 +1410,25 @@ class ServerConfigReaderTests(LogCaptureTestCase): 'ip6-ban': ("`pfctl -t f2b-j-w-pf-mp -T add 2001:db8::`",), 'ip6-unban': ("`pfctl -t f2b-j-w-pf-mp -T delete 2001:db8::`",), }), + # pf allports -- + ('j-w-pf-ap', 'pf[actiontype=][name=%(__name__)s]', { + 'ip4': (), 'ip6': (), + 'start': ( + '`echo "table persist counters" | pfctl -f-`', + '`echo "block proto tcp from to any" | pfctl -f-`', + ), + 'stop': ( + '`pfctl -sr 2>/dev/null | grep -v f2b-j-w-pf-ap | pfctl -f-`', + '`pfctl -t f2b-j-w-pf-ap -T flush`', + '`pfctl -t f2b-j-w-pf-ap -T kill`', + ), + 'ip4-check': ("`pfctl -sr | grep -q f2b-j-w-pf-ap`",), + 'ip6-check': ("`pfctl -sr | grep -q f2b-j-w-pf-ap`",), + 'ip4-ban': ("`pfctl -t f2b-j-w-pf-ap -T add 192.0.2.1`",), + 'ip4-unban': ("`pfctl -t f2b-j-w-pf-ap -T delete 192.0.2.1`",), + 'ip6-ban': ("`pfctl -t f2b-j-w-pf-ap -T add 2001:db8::`",), + 'ip6-unban': ("`pfctl -t f2b-j-w-pf-ap -T delete 2001:db8::`",), + }), # firewallcmd-multiport -- ('j-w-fwcmd-mp', 'firewallcmd-multiport[name=%(__name__)s, bantime="10m", port="http,https", protocol="tcp", chain="INPUT"]', { 'ip4': (' ipv4 ', 'icmp-port-unreachable'), 'ip6': (' ipv6 ', 'icmp6-port-unreachable'),