⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.93
Server IP:
65.108.141.171
Server:
Linux server.heloix.com 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
7.4.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
webmin
/
syslog-ng
/
Edit File: save_filter.cgi
#!/usr/bin/perl # Create, update or delete a log filter require './syslog-ng-lib.pl'; &ReadParse(); &error_setup($text{'filter_err'}); # Get the old filter $conf = &get_config(); if (!$in{'new'}) { @filters = &find("filter", $conf); ($filter) = grep { $_->{'value'} eq $in{'old'} } @filters; $filter || &error($text{'filter_egone'}); $old = $filter; } else { $filter = { 'name' => 'filter', 'type' => 1, 'members' => [ ] }; } &lock_all_files($conf); if ($in{'delete'}) { # Just delete it! &check_dependencies('filter', $in{'old'}) && &error(&text('fdelete_eused', $in{'old'})); &save_directive($conf, undef, $filter, undef, 0); } else { # Validate inputs, and update object $in{'name'} =~ /^[a-z0-9_]+$/i || &error($text{'filter_ename'}); if ($in{'new'} || $in{'old'} ne $in{'name'}) { ($clash) = grep { $_->{'value'} eq $in{'name'} } @filters; $clash && &error($text{'filter_eclash'}); } $filter->{'values'} = [ $in{'name'} ]; # Clear out current values $filter->{'members'} = [ ]; if ($in{'mode'} == 0) { if ($in{'priority'}) { # Add selected priorities @pris = split(/\0/, $in{'pri'}); @pris || &error($text{'filter_epris'}); @pris = map { (",", $_) } @pris; shift(@pris); # remove first , push(@{$filter->{'members'}}, "and", { 'name' => 'priority', 'type' => 0, 'values' => \@pris }); } if ($in{'facility'}) { # Add selected facilities @facs = split(/\0/, $in{'fac'}); @facs || &error($text{'filter_efacs'}); @facs = map { (",", $_) } @facs; shift(@facs); # remove first , push(@{$filter->{'members'}}, "and", { 'name' => 'facility', 'type' => 0, 'values' => \@facs }); } if ($in{'program'}) { $in{'prog'} =~ /^\S+$/ || &error($text{'filter_eprog'}); push(@{$filter->{'members'}}, "and", { 'name' => 'program', 'type' => 0, 'values' => [ $in{'prog'} ] }); } if ($in{'match'}) { $in{'re'} =~ /\S/ || &error($text{'filter_ematch'}); push(@{$filter->{'members'}}, "and", { 'name' => 'match', 'type' => 0, 'values' => [ $in{'re'} ] }); } if ($in{'host'}) { $in{'hn'} =~ /^\S+$/ || &error($text{'filter_ehost'}); push(@{$filter->{'members'}}, "and", { 'name' => 'host', 'type' => 0, 'values' => [ $in{'hn'} ] }); } if ($in{'netmask'}) { &check_ipaddress($in{'net'}) || &error($text{'filter_enet'}); &check_ipaddress($in{'mask'}) || &error($text{'filter_emask'}); push(@{$filter->{'members'}}, "and", { 'name' => 'netmask', 'type' => 0, 'values' => [ $in{'net'}."/".$in{'mask'} ] }); } if (@{$filter->{'members'}}) { # Remove first 'and' shift(@{$filter->{'members'}}); } else { &error($text{'filter_enone'}); } } else { # Parse boolean expression (in a temp file), and add to values $temp = &transname(); &open_tempfile(TEMP, ">$temp", 0, 1); &print_tempfile(TEMP, "filter xxx {\n"); &print_tempfile(TEMP, $in{'bool'},"\n"); &print_tempfile(TEMP, "};\n"); &close_tempfile(TEMP); eval { $main::error_must_die = 1; ($tfilter) = &read_config_file($temp); }; $@ && &error($text{'filter_ebool'}); unlink($temp); $filter->{'members'} = $tfilter->{'members'}; } # Actually update the object &save_directive($conf, undef, $old, $filter, 0); # Update dependent log targets if (!$in{'new'}) { &rename_dependencies('filter', $in{'old'}, $in{'name'}); } } &unlock_all_files(); &webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify', 'filter', $in{'old'} || $in{'name'}); &redirect("list_filters.cgi");
Simpan