Server IP : 195.201.23.43 / Your IP : 3.136.106.107 Web Server : Apache System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 User : kdecoratie ( 1041) PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/share/webmin/firewalld/ |
Upload File : |
#!/usr/bin/perl # Create, update or delete a forwarding rule use strict; use warnings; no warnings 'redefine'; no warnings 'uninitialized'; require './firewalld-lib.pl'; our (%in, %text); &error_setup($text{'forward_err'}); &ReadParse(); # Get the zone and rule my @zones = &list_firewalld_zones(); my ($zone) = grep { $_->{'name'} eq $in{'zone'} } @zones; $zone || &error($text{'port_ezone'}); my ($oldport, $oldproto, $olddstport, $olddstaddr); if ($in{'id'}) { ($oldport, $oldproto, $olddstport, $olddstaddr) = split(/\//, $in{'id'}); } my $logport; if ($in{'delete'}) { # Just remove the existing rule my $err = &delete_firewalld_forward($zone, $oldport, $oldproto, $olddstport, $olddstaddr); &error($err) if ($err); $logport = $oldport; } else { # Validate inputs my $port = &parse_port_field(\%in, ''); my $proto = $in{'proto'}; my $dstport = &parse_port_field(\%in, 'dst'); my $dstaddr; if (!$in{'dstaddr_def'}) { &check_ipaddress($in{'dstaddr'}) || &error($text{'forward_edstaddr'}); $dstaddr = $in{'dstaddr'}; } $dstport || $dstaddr || &error($text{'forward_eneither'}); # Create or update forward if (!$in{'new'}) { my $err = &delete_firewalld_forward($zone, $oldport, $oldproto, $olddstport, $olddstaddr); &error($err) if ($err); } my $err = &create_firewalld_forward($zone, $port, $proto, $dstport, $dstaddr); &error($err) if ($err); $logport = $port; } &webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'update', 'forward', $logport); &redirect("index.cgi?zone=".&urlize($zone->{'name'}));Private