Linux mail.vriendennsm.nl 6.1.0-51-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.177-1 (2026-07-16) x86_64
Apache/2.4.68 (Debian)
Server IP : 217.154.75.17 & Your IP : 216.73.216.195
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
webmin /
fail2ban /
Delete
Unzip
Name
Size
Permission
Date
Action
help
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
images
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
lang
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
CHANGELOG
110
B
-rw-r--r--
2026-07-17 21:17
atboot.cgi
919
B
-rwxr-xr-x
2026-07-17 21:22
backup_config.pl
771
B
-rwxr-xr-x
2026-07-17 21:17
config
100
B
-rw-r--r--
2026-07-17 21:17
config-debian-linux
118
B
-rw-r--r--
2026-07-17 21:17
config-redhat-linux
118
B
-rw-r--r--
2026-07-17 21:17
config-syno-linux
100
B
-rw-r--r--
2026-07-17 21:17
config.info
196
B
-rw-r--r--
2026-07-17 21:17
config.info.ca
249
B
-rw-r--r--
2026-07-17 21:17
config.info.de
202
B
-rw-r--r--
2026-07-17 21:17
config.info.fr
231
B
-rw-r--r--
2026-07-17 21:17
config.info.ms
201
B
-rw-r--r--
2026-07-17 21:17
config.info.no
203
B
-rw-r--r--
2026-07-17 21:17
config.info.pl
232
B
-rw-r--r--
2026-07-17 21:17
delete_actions.cgi
877
B
-rwxr-xr-x
2026-07-17 21:22
delete_filters.cgi
877
B
-rwxr-xr-x
2026-07-17 21:22
delete_jails.cgi
624
B
-rwxr-xr-x
2026-07-17 21:22
edit_action.cgi
2.12
KB
-rwxr-xr-x
2026-07-17 21:22
edit_config.cgi
3.01
KB
-rwxr-xr-x
2026-07-17 21:22
edit_filter.cgi
1.67
KB
-rwxr-xr-x
2026-07-17 21:22
edit_jail.cgi
4.51
KB
-rwxr-xr-x
2026-07-17 21:22
edit_jaildef.cgi
2.71
KB
-rwxr-xr-x
2026-07-17 21:22
edit_manual.cgi
1.05
KB
-rwxr-xr-x
2026-07-17 21:22
fail2ban-lib.pl
19.28
KB
-rw-r--r--
2026-07-17 21:17
index.cgi
2.15
KB
-rwxr-xr-x
2026-07-17 21:22
install_check.pl
465
B
-rwxr-xr-x
2026-07-17 21:17
jail_blocks.cgi
2.18
KB
-rwxr-xr-x
2026-07-17 21:22
list_actions.cgi
1.15
KB
-rwxr-xr-x
2026-07-17 21:22
list_filters.cgi
1.2
KB
-rwxr-xr-x
2026-07-17 21:22
list_jails.cgi
1.55
KB
-rwxr-xr-x
2026-07-17 21:22
list_status.cgi
3.02
KB
-rwxr-xr-x
2026-07-17 21:22
log_parser.pl
804
B
-rwxr-xr-x
2026-07-17 21:17
module.info
201
B
-rw-r--r--
2026-07-17 21:17
module.info.ar
0
B
-rw-r--r--
2026-07-17 21:17
module.info.ar.auto
233
B
-rw-r--r--
2026-07-17 21:17
module.info.bg
0
B
-rw-r--r--
2026-07-17 21:17
module.info.bg.auto
239
B
-rw-r--r--
2026-07-17 21:17
module.info.ca
149
B
-rw-r--r--
2026-07-17 21:17
module.info.cs
0
B
-rw-r--r--
2026-07-17 21:17
module.info.cs.auto
161
B
-rw-r--r--
2026-07-17 21:17
module.info.da
0
B
-rw-r--r--
2026-07-17 21:17
module.info.da.auto
157
B
-rw-r--r--
2026-07-17 21:17
module.info.de
138
B
-rw-r--r--
2026-07-17 21:17
module.info.el
0
B
-rw-r--r--
2026-07-17 21:17
module.info.el.auto
291
B
-rw-r--r--
2026-07-17 21:17
module.info.es
0
B
-rw-r--r--
2026-07-17 21:17
module.info.es.auto
152
B
-rw-r--r--
2026-07-17 21:17
module.info.eu
0
B
-rw-r--r--
2026-07-17 21:17
module.info.eu.auto
157
B
-rw-r--r--
2026-07-17 21:17
module.info.fa
0
B
-rw-r--r--
2026-07-17 21:17
module.info.fa.auto
220
B
-rw-r--r--
2026-07-17 21:17
module.info.fi
0
B
-rw-r--r--
2026-07-17 21:17
module.info.fi.auto
175
B
-rw-r--r--
2026-07-17 21:17
module.info.fr
0
B
-rw-r--r--
2026-07-17 21:17
module.info.fr.auto
180
B
-rw-r--r--
2026-07-17 21:17
module.info.hr
0
B
-rw-r--r--
2026-07-17 21:17
module.info.hr.auto
141
B
-rw-r--r--
2026-07-17 21:17
module.info.hu
0
B
-rw-r--r--
2026-07-17 21:17
module.info.hu.auto
159
B
-rw-r--r--
2026-07-17 21:17
module.info.it
0
B
-rw-r--r--
2026-07-17 21:17
module.info.it.auto
163
B
-rw-r--r--
2026-07-17 21:17
module.info.ja
0
B
-rw-r--r--
2026-07-17 21:17
module.info.ja.auto
187
B
-rw-r--r--
2026-07-17 21:17
module.info.ko
0
B
-rw-r--r--
2026-07-17 21:17
module.info.ko.auto
167
B
-rw-r--r--
2026-07-17 21:17
module.info.ms
161
B
-rw-r--r--
2026-07-17 21:17
module.info.nl
0
B
-rw-r--r--
2026-07-17 21:17
module.info.nl.auto
156
B
-rw-r--r--
2026-07-17 21:17
module.info.no
36
B
-rw-r--r--
2026-07-17 21:17
module.info.no.auto
114
B
-rw-r--r--
2026-07-17 21:17
module.info.pl
158
B
-rw-r--r--
2026-07-17 21:17
module.info.pt
0
B
-rw-r--r--
2026-07-17 21:17
module.info.pt.auto
161
B
-rw-r--r--
2026-07-17 21:17
module.info.pt_BR
0
B
-rw-r--r--
2026-07-17 21:17
module.info.pt_BR.auto
167
B
-rw-r--r--
2026-07-17 21:17
module.info.ru
0
B
-rw-r--r--
2026-07-17 21:17
module.info.ru.auto
249
B
-rw-r--r--
2026-07-17 21:17
module.info.sk
0
B
-rw-r--r--
2026-07-17 21:17
module.info.sk.auto
174
B
-rw-r--r--
2026-07-17 21:17
module.info.sv
0
B
-rw-r--r--
2026-07-17 21:17
module.info.sv.auto
164
B
-rw-r--r--
2026-07-17 21:17
module.info.tr
0
B
-rw-r--r--
2026-07-17 21:17
module.info.tr.auto
173
B
-rw-r--r--
2026-07-17 21:17
module.info.uk
0
B
-rw-r--r--
2026-07-17 21:17
module.info.uk.auto
236
B
-rw-r--r--
2026-07-17 21:17
module.info.zh
0
B
-rw-r--r--
2026-07-17 21:17
module.info.zh.auto
118
B
-rw-r--r--
2026-07-17 21:17
module.info.zh_TW
0
B
-rw-r--r--
2026-07-17 21:17
module.info.zh_TW.auto
124
B
-rw-r--r--
2026-07-17 21:17
restart.cgi
334
B
-rwxr-xr-x
2026-07-17 21:22
save_action.cgi
1.86
KB
-rwxr-xr-x
2026-07-17 21:22
save_config.cgi
1.23
KB
-rwxr-xr-x
2026-07-17 21:22
save_filter.cgi
1.69
KB
-rwxr-xr-x
2026-07-17 21:22
save_jail.cgi
4.41
KB
-rwxr-xr-x
2026-07-17 21:22
save_jaildef.cgi
1.57
KB
-rwxr-xr-x
2026-07-17 21:22
save_manual.cgi
620
B
-rwxr-xr-x
2026-07-17 21:22
start.cgi
326
B
-rwxr-xr-x
2026-07-17 21:22
stop.cgi
322
B
-rwxr-xr-x
2026-07-17 21:22
syslog_logs.pl
599
B
-rwxr-xr-x
2026-07-17 21:17
unblock_jail.cgi
578
B
-rwxr-xr-x
2026-07-17 21:22
unblock_jailed_ip.cgi
666
B
-rwxr-xr-x
2026-07-17 21:22
Save
Rename
#!/usr/bin/perl # Create, update or delete a jail use strict; use warnings; no warnings 'redefine'; no warnings 'uninitialized'; require './fail2ban-lib.pl'; our (%in, %text, %config); &ReadParse(); &error_setup($text{'jail_err'}); my $jail; my @jails = &list_jails(); if ($in{'new'}) { # Create new jail object my $jfile = "$config{'config_dir'}/jail.conf"; my $jlfile = "$config{'config_dir'}/jail.local"; $jail = { 'members' => [ ], 'file' => -r $jlfile ? $jlfile : $jfile }; } else { # Find existing jail ($jail) = grep { $_->{'name'} eq $in{'name'} } @jails; $jail || &error($text{'jail_egone'}); } if ($in{'delete'}) { # Just delete the jail &lock_all_config_files(); &delete_section($jail->{'file'}, $jail, $jail->{'file'} =~ /jail.local$/ ? 1 : 0); &unlock_all_config_files(); } else { # Validate inputs my $file; $in{'name'} =~ /^[a-z0-9\_\-]+$/i || &error($text{'jail_ename'}); $jail->{'name'} = $in{'name'}; if ($in{'new'} || $in{'name'} ne $in{'old'}) { # Check for clash my ($clash) = grep { $_->{'name'} eq $in{'name'} } @jails; $clash && &error($text{'jail_eclash'}); } # Validate backend !$in{'backend'} || $in{'backend'} =~ /^(auto|systemd|polling|gamin|pyinotify|\%\(\w+\)s)$/ || &error($text{'jail_ebackend'}); # Validate ports (1234 or 1234:1245 or 1234:1245,1250,http or 1238,http,https) $in{'port'} =~ s/\s+//g if ($in{'port'}); !$in{'port'} || $in{'port'} =~ /^(?:\d{1,5}(:\d{1,5})?|[a-zA-Z][a-zA-Z0-9-]*)(?:,(?:\d{1,5}(:\d{1,5})?|[a-zA-Z][a-zA-Z0-9-]*))*$/ || &error($text{'jail_eports'}); # Parse and validate actions my @actions; for(my $i=0; defined($in{"action_$i"}); $i++) { next if (!$in{"action_$i"}); my @opts; if ($in{"name_$i"}) { $in{"name_$i"} =~ /^(%\(\S+\))?[A-Za-z0-9\.\_\-]+$/ || &error(&text('jail_eaname', $i+1)); push(@opts, "name=".$in{"name_$i"}); } if ($in{"port_$i"}) { my @p = split(/,/, $in{"port_$i"}); foreach my $p (split(/,/, $in{"port_$i"})) { $p =~ /^\d+$/ || $p =~ /^\d+:\d+$/ || getservbyname($p, $in{"protocol_$i"} || "tcp") || $p =~ /%\(\S+\)s/ || &error(&text('jail_eport', $i+1)); } if (@p > 1) { push(@opts, "port="."\"".$in{"port_$i"}."\""); } else { push(@opts, "port=".$in{"port_$i"}); } } if ($in{"protocol_$i"}) { push(@opts, "protocol=".$in{"protocol_$i"}); } if ($in{"others_$i"}) { my $others = $in{"others_$i"}; $others =~ s/^\s+//; $others =~ s/\s+$//; push(@opts, $others) if (length($others)); } my $action = $in{"action_$i"}; $action .= "[".join(", ", @opts)."]" if (@opts); push(@actions, $action); } # Split and validate log file paths my @logpaths = grep { /\S/ } split(/\r?\n/, $in{'logpath'}); @logpaths || &error($text{'jail_elogpaths'}); foreach my $l (@logpaths) { $l =~ s/^\s*//; $l =~ s/\s*$//; $l =~ /^\/\S+$/ || $l =~ /^\%\(/ || &error($text{'jail_elogpath'}); } # Validate various counters foreach my $f ("maxretry", "findtime", "bantime") { $in{$f.'_def'} || $in{$f} =~ /^\-?\d+(\.\d+)?[mhdwy]?$/ || &error($text{'jail_e'.$f}); } # Split and validate IPs to ignore my @ignoreips = $in{'ignoreip_def'} ? ( ) : split(/\s+/, $in{'ignoreip'}); foreach my $ip (@ignoreips) { &check_ipaddress($ip) || &check_ip6address($ip) || ($ip =~ /^([0-9\.]+)\/(\d+)/ && &check_ipaddress("$1")) || &to_ipaddress($ip) || &error($text{'jail_eignoreip'}); } # Create new section or rename existing if needed &lock_all_config_files(); if ($in{'new'}) { &create_section($jail->{'file'}, $jail); } elsif ($in{'name'} ne $in{'old'}) { &modify_section($jail->{'file'}, $jail); } # Save directives within the section &save_directive("enabled", $in{'enabled'} ? 'true' : 'false', $jail); &save_directive("filter", $in{'filter'} || undef, $jail); &save_directive("backend", $in{'backend'} || undef, $jail); &save_directive("port", $in{'port'} || undef, $jail); &save_directive("action", @actions ? join("\n", @actions) : undef, $jail); &save_directive("logpath", join("\n", @logpaths), $jail); foreach my $f ("maxretry", "findtime", "bantime") { &save_directive($f, $in{$f."_def"} ? undef : $in{$f}, $jail); } &save_directive("ignoreip", @ignoreips ? join(" ", @ignoreips) : undef, $jail); &unlock_all_config_files(); } # Log and redirect &webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'update', 'jail', $jail->{'name'}); &redirect("list_jails.cgi");