#!/usr/bin/perl # Show a form for editing or creating an jail use strict; use warnings; no warnings 'redefine'; no warnings 'uninitialized'; require './fail2ban-lib.pl'; our (%in, %text); &ReadParse(); # Get default jail my @jails = &list_jails(); my ($def) = grep { $_->{'name'} eq 'DEFAULT' } @jails; # Show header and get the jail object my ($jail); if ($in{'new'}) { &ui_print_header(undef, $text{'jail_title1'}, ""); $jail = { }; } else { &ui_print_header(undef, $text{'jail_title2'}, ""); ($jail) = grep { $_->{'name'} eq $in{'name'} } @jails; $jail || &error($text{'jail_egone'}); } print &ui_form_start("save_jail.cgi", "post"); print &ui_hidden("new", $in{'new'}); print &ui_hidden("old", $in{'name'}); print &ui_table_start($text{'jail_header'}, undef, 2); # Jail name print &ui_table_row($text{'jail_name'}, &ui_textbox("name", $jail->{'name'}, 30)); # Enabled or disabled? my $enabled = &find_value("enabled", $jail); print &ui_table_row($text{'jail_enabled'}, &ui_yesno_radio("enabled", $enabled =~ /true|yes|1/i)); # Filter to match my @filters = &list_filters(); my $filter = &find_value("filter", $jail); print &ui_table_row($text{'jail_filter'}, &ui_select("filter", $filter, [ [ undef, "<$text{'default'}>" ], map { &filename_to_name($_->[0]->{'file'}) } @filters ], 1, 0, $filter ? 1 : 0)); # Actions to run my $actionlist = &find("action", $jail); my @actions = &list_actions(); my $atable = &ui_columns_start([ $text{'jail_action'}, $text{'jail_aname'}, $text{'jail_port'}, $text{'jail_protocol'}, $text{'jail_others'}, ]); my $i = 0; foreach my $a (@{$actionlist->{'words'}}, undef) { my $action; my %opts; if ($a && $a =~ /^(\S.*\S)\[(.*)\]$/) { $action = $1; %opts = map { my ($n, $v) = split(/=/, $_); $v =~ s/^"(.*)"/$1/; ($n, $v) } split(/,\s+/, $2); } else { $action = $a; } my @oopts = grep { !/^(name|port|protocol)$/ } (keys %opts); $atable .= &ui_columns_row([ &ui_select("action_$i", $action, [ [ "", " " ], map { &filename_to_name($_->[0]->{'file'}) } @actions ], 1, 0, $action ? 1 : 0), &ui_textbox("name_$i", $opts{'name'}, 15), &ui_textbox("port_$i", $opts{'port'}, 6), &ui_select("protocol_$i", $opts{'protocol'}, [ [ '', ' ' ], [ 'tcp', 'TCP' ], [ 'udp', 'UDP' ], [ 'icmp', 'ICMP' ] ]), &ui_textbox("others_$i", join(" ", map { $_."=".$opts{$_} } @oopts), 40), ]); $i++; } $atable .= &ui_columns_end(); print &ui_table_row($text{'jail_actions'}, $atable); # Log file paths my $logpath = &find_value("logpath", $jail); print &ui_table_row($text{'jail_logpath'}, &ui_textarea("logpath", $logpath, 5, 80, "hard")); # Matches needed my $def_maxretry = &find_value("maxretry", $def) || 3; my $maxretry = &find_value("maxretry", $jail); print &ui_table_row($text{'jail_maxretry'}, &ui_opt_textbox("maxretry", $maxretry, 6, $text{'default'}." (".$def_maxretry.")")); # Time to scan over my $def_findtime = &find_value("findtime", $def) || 600; my $findtime = &find_value("findtime", $jail); print &ui_table_row($text{'jail_findtime'}, &ui_opt_textbox("findtime", $findtime, 6, $text{'default'}." (".$def_findtime.")")); # Time to ban for my $def_bantime = &find_value("bantime", $def) || 600; my $bantime = &find_value("bantime", $jail); print &ui_table_row($text{'jail_bantime'}, &ui_opt_textbox("bantime", $bantime, 6, $text{'default'}." (".$def_bantime.")")); # IPs to ignore my $def_ignoreip = &find_value("ignoreip", $def) || "127.0.0.1"; my $ignoreip = &find_value("ignoreip", $jail); print &ui_table_row($text{'jail_ignoreip'}, &ui_opt_textbox("ignoreip", $ignoreip, 40, $text{'default'}." (".$def_ignoreip.")")); print &ui_table_end(); if ($in{'new'}) { print &ui_form_end([ [ undef, $text{'create'} ] ]); } else { print &ui_form_end([ [ undef, $text{'save'} ], [ 'delete', $text{'delete'} ] ]); } &ui_print_footer("list_jails.cgi", $text{'jails_return'});
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
help | Folder | 0755 |
|
|
images | Folder | 0755 |
|
|
lang | Folder | 0755 |
|
|
CHANGELOG | File | 110 B | 0644 |
|
atboot.cgi | File | 919 B | 0755 |
|
backup_config.pl | File | 771 B | 0755 |
|
config | File | 100 B | 0644 |
|
config-debian-linux | File | 118 B | 0644 |
|
config-redhat-linux | File | 118 B | 0644 |
|
config-syno-linux | File | 100 B | 0644 |
|
config.info | File | 196 B | 0644 |
|
config.info.ca | File | 249 B | 0644 |
|
config.info.de | File | 202 B | 0644 |
|
config.info.fr | File | 231 B | 0644 |
|
config.info.ms | File | 201 B | 0644 |
|
config.info.no | File | 203 B | 0644 |
|
config.info.pl | File | 232 B | 0644 |
|
delete_actions.cgi | File | 877 B | 0755 |
|
delete_filters.cgi | File | 877 B | 0755 |
|
delete_jails.cgi | File | 624 B | 0755 |
|
edit_action.cgi | File | 2.12 KB | 0755 |
|
edit_config.cgi | File | 1.67 KB | 0755 |
|
edit_filter.cgi | File | 1.67 KB | 0755 |
|
edit_jail.cgi | File | 3.91 KB | 0755 |
|
edit_jaildef.cgi | File | 2.57 KB | 0755 |
|
edit_manual.cgi | File | 1.05 KB | 0755 |
|
fail2ban-lib.pl | File | 13.86 KB | 0644 |
|
index.cgi | File | 2.15 KB | 0755 |
|
install_check.pl | File | 465 B | 0755 |
|
list_actions.cgi | File | 1.15 KB | 0755 |
|
list_filters.cgi | File | 1.2 KB | 0755 |
|
list_jails.cgi | File | 1.55 KB | 0755 |
|
list_status.cgi | File | 3.04 KB | 0755 |
|
log_parser.pl | File | 804 B | 0755 |
|
module.info | File | 201 B | 0644 |
|
module.info.af | File | 0 B | 0644 |
|
module.info.af.auto | File | 150 B | 0644 |
|
module.info.ar | File | 0 B | 0644 |
|
module.info.ar.auto | File | 233 B | 0644 |
|
module.info.be | File | 0 B | 0644 |
|
module.info.be.auto | File | 225 B | 0644 |
|
module.info.bg | File | 0 B | 0644 |
|
module.info.bg.auto | File | 239 B | 0644 |
|
module.info.ca | File | 149 B | 0644 |
|
module.info.cs | File | 0 B | 0644 |
|
module.info.cs.auto | File | 161 B | 0644 |
|
module.info.da | File | 0 B | 0644 |
|
module.info.da.auto | File | 157 B | 0644 |
|
module.info.de | File | 138 B | 0644 |
|
module.info.el | File | 0 B | 0644 |
|
module.info.el.auto | File | 291 B | 0644 |
|
module.info.es | File | 0 B | 0644 |
|
module.info.es.auto | File | 152 B | 0644 |
|
module.info.eu | File | 0 B | 0644 |
|
module.info.eu.auto | File | 157 B | 0644 |
|
module.info.fa | File | 0 B | 0644 |
|
module.info.fa.auto | File | 220 B | 0644 |
|
module.info.fi | File | 0 B | 0644 |
|
module.info.fi.auto | File | 175 B | 0644 |
|
module.info.fr | File | 0 B | 0644 |
|
module.info.fr.auto | File | 180 B | 0644 |
|
module.info.he | File | 0 B | 0644 |
|
module.info.he.auto | File | 201 B | 0644 |
|
module.info.hr | File | 0 B | 0644 |
|
module.info.hr.auto | File | 141 B | 0644 |
|
module.info.hu | File | 0 B | 0644 |
|
module.info.hu.auto | File | 159 B | 0644 |
|
module.info.it | File | 0 B | 0644 |
|
module.info.it.auto | File | 163 B | 0644 |
|
module.info.ja | File | 0 B | 0644 |
|
module.info.ja.auto | File | 187 B | 0644 |
|
module.info.ko | File | 0 B | 0644 |
|
module.info.ko.auto | File | 167 B | 0644 |
|
module.info.lt | File | 0 B | 0644 |
|
module.info.lt.auto | File | 171 B | 0644 |
|
module.info.lv | File | 0 B | 0644 |
|
module.info.lv.auto | File | 162 B | 0644 |
|
module.info.ms | File | 161 B | 0644 |
|
module.info.mt | File | 0 B | 0644 |
|
module.info.mt.auto | File | 176 B | 0644 |
|
module.info.nl | File | 0 B | 0644 |
|
module.info.nl.auto | File | 156 B | 0644 |
|
module.info.no | File | 36 B | 0644 |
|
module.info.no.auto | File | 114 B | 0644 |
|
module.info.pl | File | 158 B | 0644 |
|
module.info.pt | File | 0 B | 0644 |
|
module.info.pt.auto | File | 161 B | 0644 |
|
module.info.pt_BR | File | 0 B | 0644 |
|
module.info.pt_BR.auto | File | 167 B | 0644 |
|
module.info.ro | File | 0 B | 0644 |
|
module.info.ro.auto | File | 186 B | 0644 |
|
module.info.ru | File | 0 B | 0644 |
|
module.info.ru.auto | File | 249 B | 0644 |
|
module.info.sk | File | 0 B | 0644 |
|
module.info.sk.auto | File | 174 B | 0644 |
|
module.info.sl | File | 0 B | 0644 |
|
module.info.sl.auto | File | 147 B | 0644 |
|
module.info.sv | File | 0 B | 0644 |
|
module.info.sv.auto | File | 164 B | 0644 |
|
module.info.th | File | 0 B | 0644 |
|
module.info.th.auto | File | 326 B | 0644 |
|
module.info.tr | File | 0 B | 0644 |
|
module.info.tr.auto | File | 173 B | 0644 |
|
module.info.uk | File | 0 B | 0644 |
|
module.info.uk.auto | File | 236 B | 0644 |
|
module.info.ur | File | 0 B | 0644 |
|
module.info.ur.auto | File | 272 B | 0644 |
|
module.info.vi | File | 0 B | 0644 |
|
module.info.vi.auto | File | 203 B | 0644 |
|
module.info.zh | File | 0 B | 0644 |
|
module.info.zh.auto | File | 118 B | 0644 |
|
module.info.zh_TW | File | 0 B | 0644 |
|
module.info.zh_TW.auto | File | 124 B | 0644 |
|
restart.cgi | File | 334 B | 0755 |
|
save_action.cgi | File | 1.86 KB | 0755 |
|
save_config.cgi | File | 975 B | 0755 |
|
save_filter.cgi | File | 1.69 KB | 0755 |
|
save_jail.cgi | File | 3.71 KB | 0755 |
|
save_jaildef.cgi | File | 1.49 KB | 0755 |
|
save_manual.cgi | File | 620 B | 0755 |
|
start.cgi | File | 326 B | 0755 |
|
stop.cgi | File | 322 B | 0755 |
|
syslog_logs.pl | File | 599 B | 0755 |
|
unblock_jail.cgi | File | 708 B | 0755 |
|