%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 49.231.201.246 / Your IP : 216.73.216.248 Web Server : Apache/2.4.18 (Ubuntu) System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 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_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/webmin/firewalld/ |
Upload File : |
#!/usr/bin/perl # Block given IP use strict; use warnings; no warnings 'redefine'; no warnings 'uninitialized'; require './firewalld-lib.pl'; our (%in, %text); &ReadParse(); # Setup error messages my $allow = $in{'allow'} ? 1 : 0; # Get the type &error_setup($allow ? $text{'allow_err'} : $text{'block_err'}); # Get the zone my @zones = &list_firewalld_zones(); my ($zone) = grep { $_->{'name'} eq $in{'zone'} } @zones; $zone || &error($text{'port_ezone'}); # Get the IP my $ip = $in{'ip'}; $ip || &error($text{'block_eip'}); # Validate the IPv4 or IPv6 address/mask my $mask = $ip =~ s/(\/\d+)$// ? $1 : ""; $ip =~ s/\Q$mask\E// if ($mask); &check_ipaddress($ip) || &check_ip6address($ip) || &error($text{'block_eip'}); # Block the IP my $perm = $in{'permanent'} ? 'perm' : ''; my ($out, $rs) = &rich_rule('add', { 'rule' => &construct_rich_rule( 'source address' => "$ip$mask", 'action' => $allow ? 'accept' : undef, 'priority' => $allow ? -32767 : -32766, ), 'zone' => $zone->{'name'}, 'permanent' => $perm }); &error($out) if ($rs); &apply_firewalld() if ($perm); &webmin_log("ip", "${perm}block", "$ip$mask"); &redirect("index.cgi?zone=".&urlize($zone->{'name'}));