2013-07-11 19:39:21 +02:00
|
|
|
#
|
2016-04-05 19:13:55 +02:00
|
|
|
# Shorewall -- /usr/share/shorewall/action.SetEvent
|
2013-07-11 19:39:21 +02:00
|
|
|
#
|
2016-04-05 19:13:55 +02:00
|
|
|
# Set an Event
|
2013-07-11 19:39:21 +02:00
|
|
|
#
|
|
|
|
# Parameters:
|
2016-04-05 19:13:55 +02:00
|
|
|
#
|
|
|
|
# Event - Must start with a letter and be composed of letters, digits,
|
|
|
|
# '-', and '_'.
|
|
|
|
# Action - Action to perform after setting the event. Default is ACCEPT
|
|
|
|
# Src or Dest - 'src' (default) or 'dst'. Determines if the event is
|
|
|
|
# associated with the source address (src) or destination
|
|
|
|
# address (dst)
|
|
|
|
# Disposition - Disposition for any event generated.
|
2013-07-11 19:39:21 +02:00
|
|
|
#
|
2020-03-26 22:58:35 +01:00
|
|
|
# For additional information, see https://shorewall.org/Events.html
|
2013-07-11 19:39:21 +02:00
|
|
|
#
|
|
|
|
|
|
|
|
DEFAULTS -,ACCEPT,src
|
|
|
|
|
|
|
|
?begin perl
|
|
|
|
|
|
|
|
use Shorewall::Config;
|
|
|
|
use Shorewall::Chains;
|
|
|
|
use Shorewall::Rules;
|
|
|
|
use strict;
|
|
|
|
|
|
|
|
my ( $event, $action, $destination, $disposition ) = get_action_params( 4 );
|
|
|
|
|
|
|
|
require_capability 'RECENT_MATCH', 'Use of events', 's';
|
|
|
|
require_capability 'MARK_ANYWHERE', 'Use of events', 's';
|
|
|
|
|
|
|
|
fatal_error "An event name is required" unless supplied $event;
|
|
|
|
fatal_error "Invalid event name ($event)" unless $event =~ /^[a-zA-z][-\w]*$/;
|
|
|
|
fatal_error "Invalid Src or Dest ($destination)" unless $destination =~ /^(?:src|dst)$/;
|
|
|
|
|
|
|
|
set_action_disposition( $disposition) if supplied $disposition;
|
|
|
|
set_action_name_to_caller;
|
|
|
|
|
2017-09-08 18:47:12 +02:00
|
|
|
if ( ( $targets{$action} || 0 ) & NATRULE ) {
|
|
|
|
perl_action_helper( "${action}-", "" );
|
|
|
|
$action = 'ACCEPT';
|
|
|
|
}
|
|
|
|
|
2013-07-11 19:39:21 +02:00
|
|
|
if ( $destination eq 'dst' ) {
|
2015-04-25 21:56:36 +02:00
|
|
|
perl_action_helper( $action, '', '', "-m recent --name $event --set --rdest" );
|
2013-07-11 19:39:21 +02:00
|
|
|
} else {
|
2015-04-25 21:56:36 +02:00
|
|
|
perl_action_helper( $action, '', '', "-m recent --name $event --set --rsource" );
|
2013-07-11 19:39:21 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
1;
|
|
|
|
|
|
|
|
?end perl
|