Server IP : 195.201.23.43 / Your IP : 18.188.159.66 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/fail2ban/ |
Upload File : |
#!/usr/bin/perl # Create, update or delete a filter use strict; use warnings; no warnings 'redefine'; no warnings 'uninitialized'; require './fail2ban-lib.pl'; our (%in, %text, %config); &ReadParse(); &error_setup($text{'filter_err'}); my ($filter, $def); if ($in{'new'}) { # Create new filter object $def = { 'name' => 'Definition', 'members' => [ ] }; $filter = [ $def ]; } else { # Find existing filter ($filter) = grep { $_->[0]->{'file'} eq $in{'file'} } &list_filters(); $filter || &error($text{'filter_egone'}); ($def) = grep { $_->{'name'} eq 'Definition' } @$filter; $def || &error($text{'filter_edefgone'}); } my $file = $in{'file'}; if ($in{'delete'}) { # Just delete the filter my @users = &find_jail_by_filter($filter); @users && &error(&text('filter_einuse', join(" ", map { $_->{'name'} } @users))); &lock_all_config_files(); &delete_section($file, $def); &unlock_all_config_files(); } else { # Validate inputs my $file; if ($in{'new'}) { $in{'name'} =~ /^[a-z0-9\_\-]+$/i || &error($text{'filter_ename'}); $file = "$config{'config_dir'}/filter.d/$in{'name'}.conf"; -r $file && &error($text{'filter_eclash'}); } $in{'fail'} =~ /\S/ || &error($text{'filter_efail'}); # Create new section if needed &lock_all_config_files(); if ($in{'new'}) { &create_section($file, $def); } # Save directives within the section $in{'fail'} =~ s/\r//g; &save_directive("failregex", $in{'fail'}, $def); $in{'ignore'} =~ s/\r//g; &save_directive("ignoreregex", $in{'ignore'}, $def); &unlock_all_config_files(); } # Log and redirect &webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'update', 'filter', &filename_to_name($file)); &redirect("list_filters.cgi");Private