2007-04-12 20:24:50 +00:00
|
|
|
#!/usr/local/bin/perl
|
|
|
|
# index.cgi
|
|
|
|
# Display existing IPsec tunnels
|
|
|
|
|
|
|
|
require './ipsec-lib.pl';
|
|
|
|
|
|
|
|
# Make sure the ipsec command exists
|
|
|
|
if (!&has_command($config{'ipsec'}) ||
|
|
|
|
!(($ipsec_version, $ipsec_program) = &get_ipsec_version(\$out))) {
|
|
|
|
&ui_print_header(undef, $text{'index_title'}, "", "intro", 1, 1, 0,
|
|
|
|
&help_search_link("freeswan", "doc", "google"));
|
|
|
|
print "<p>",&text('index_eipsec', "<tt>$config{'ipsec'}</tt>",
|
2021-09-28 16:30:05 +03:00
|
|
|
"@{[&get_webprefix()]}/config.cgi?$module_name"),"<p>\n";
|
2007-04-12 20:24:50 +00:00
|
|
|
if ($out) {
|
|
|
|
print &text('index_out',
|
|
|
|
"<tt>$config{'ipsec'} --version</tt>"),"\n";
|
|
|
|
print "<pre>$out</pre>\n";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
&ui_print_header(undef, $text{'index_title'}, "", "intro", 1, 1, 0,
|
|
|
|
&help_search_link("freeswan", "doc", "google"), undef, undef,
|
|
|
|
&text('index_version2', $ipsec_version, $ipsec_program));
|
|
|
|
|
|
|
|
# Make sure the config file exists
|
|
|
|
if (!-r $config{'file'}) {
|
|
|
|
print "<p>",&text('index_econfig', "<tt>$config{'file'}</tt>",
|
2021-09-28 16:30:05 +03:00
|
|
|
"@{[&get_webprefix()]}/config.cgi?$module_name"),"<p>\n";
|
2007-04-12 20:24:50 +00:00
|
|
|
}
|
|
|
|
else {
|
|
|
|
# Check for the host secret
|
|
|
|
if (!&got_secret()) {
|
|
|
|
# No key setup yet .. offer to create one
|
|
|
|
print "<p><b>",&text('index_nokey',
|
|
|
|
"<tt>$config{'secrets'}</tt>"),"</b><br>\n";
|
|
|
|
print "<center><form action=newkey.cgi>\n";
|
|
|
|
print "<input type=submit ",
|
|
|
|
"value='$text{'index_newkey'}'>\n";
|
|
|
|
printf "<input name=host size=20 value='%s'>\n",
|
|
|
|
&get_system_hostname();
|
|
|
|
print "</form></center>\n";
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
# Show icons for connections
|
|
|
|
print &ui_subheading($text{'index_header1'});
|
|
|
|
@conf = &get_config();
|
|
|
|
@conns = grep { $_->{'name'} eq 'conn' } @conf;
|
|
|
|
if (@conns) {
|
|
|
|
foreach $c (@conns) {
|
|
|
|
push(@links, "edit.cgi?idx=".
|
|
|
|
$c->{'index'});
|
|
|
|
if ($c->{'value'} eq '%default') {
|
|
|
|
push(@titles, "<i>$text{'index_defconn'}</i>");
|
|
|
|
$has_default++;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
push(@titles,
|
|
|
|
&text('index_conn',
|
|
|
|
"<tt>$c->{'value'}</tt>"));
|
|
|
|
push(@start, $c->{'value'});
|
|
|
|
}
|
|
|
|
push(@icons, "images/conn.gif");
|
|
|
|
}
|
|
|
|
&icons_table(\@links, \@titles, \@icons);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
print "<b>$text{'index_none'}</b><p>\n";
|
|
|
|
}
|
2014-06-08 11:46:00 -04:00
|
|
|
print &ui_link("edit.cgi?new=1",$text{'index_add'});
|
2007-04-12 20:24:50 +00:00
|
|
|
if (!$has_default) {
|
|
|
|
print " " x 3;
|
2014-06-08 11:46:00 -04:00
|
|
|
print &ui_link("edit.cgi?new=2",$text{'index_adddef'});
|
2007-04-12 20:24:50 +00:00
|
|
|
}
|
|
|
|
print " " x 3;
|
|
|
|
print "<a href=import_form.cgi>$text{'index_import'}</a>";
|
|
|
|
print "<p>\n";
|
|
|
|
|
|
|
|
# Show icons for various options
|
2008-05-10 03:07:43 +00:00
|
|
|
print &ui_hr();
|
2007-04-12 20:24:50 +00:00
|
|
|
print &ui_subheading($text{'index_header2'});
|
|
|
|
@links = ( "edit_config.cgi", "showkey.cgi",
|
|
|
|
"list_secrets.cgi" );
|
|
|
|
@titles = ( $text{'config_title'},
|
|
|
|
$text{'showkey_title'},
|
|
|
|
$text{'secrets_title'} );
|
|
|
|
@icons = ( "images/config.gif", "images/showkey.gif",
|
|
|
|
"images/secrets.gif" );
|
|
|
|
if ($ipsec_version =~ /(\d+)/ && $1 >= 2) {
|
|
|
|
@policies = &list_policies();
|
|
|
|
foreach $p (@policies) {
|
|
|
|
push(@links, "edit_policy.cgi?policy=$p");
|
|
|
|
push(@titles, $text{'policy_desc_'.$p} ||
|
|
|
|
&text('policy_desc', $p));
|
|
|
|
push(@icons, "images/policy.gif");
|
|
|
|
}
|
|
|
|
$got_policies = 1;
|
|
|
|
}
|
|
|
|
&icons_table(\@links, \@titles, \@icons, 4);
|
|
|
|
if (!@policies && $got_policies) {
|
|
|
|
print "<b>",&text('index_nopol',
|
2021-09-28 16:30:05 +03:00
|
|
|
"@{[&get_webprefix()]}/config.cgi?$module_name"),"</b><p>\n";
|
2007-04-12 20:24:50 +00:00
|
|
|
}
|
|
|
|
|
2008-05-10 03:07:43 +00:00
|
|
|
print &ui_hr();
|
2007-04-12 20:24:50 +00:00
|
|
|
print "<table width=100%>\n";
|
|
|
|
|
|
|
|
# Start connection button
|
|
|
|
if (@start && &is_ipsec_running()) {
|
|
|
|
print "<form action=up.cgi>\n";
|
|
|
|
print "<td><input type=submit ",
|
|
|
|
"value='$text{'index_up'}'>\n";
|
|
|
|
print "<select name=conn>\n";
|
|
|
|
foreach $s (@start) {
|
2013-11-08 22:29:09 +08:00
|
|
|
printf "<option %s>%s</option>\n",
|
2007-04-12 20:24:50 +00:00
|
|
|
$config{'conn'} eq $s ? "selected"
|
|
|
|
: "", $s;
|
|
|
|
}
|
|
|
|
print "</select></td>\n";
|
|
|
|
print "<td>$text{'index_updesc'}</td>\n";
|
|
|
|
print "</tr></form>\n";
|
|
|
|
}
|
|
|
|
|
|
|
|
# Start/stop/restart ipsec buttons
|
|
|
|
if (&is_ipsec_running()) {
|
|
|
|
print "<form action=restart.cgi><tr>\n";
|
|
|
|
print "<td><input type=submit ",
|
|
|
|
"value='$text{'index_restart'}'></td>\n";
|
|
|
|
print "<td>$text{'index_restartdesc'}</td>\n";
|
|
|
|
print "</tr></form>\n";
|
|
|
|
|
|
|
|
print "<form action=stop.cgi><tr>\n";
|
|
|
|
print "<td><input type=submit ",
|
|
|
|
"value='$text{'index_stop'}'></td>\n";
|
|
|
|
print "<td>$text{'index_stopdesc'}</td>\n";
|
|
|
|
print "</tr></form>\n";
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
print "<form action=start.cgi><tr>\n";
|
|
|
|
print "<td><input type=submit ",
|
|
|
|
"value='$text{'index_start'}'></td>\n";
|
|
|
|
print "<td>$text{'index_startdesc'}</td>\n";
|
|
|
|
print "</tr></form>\n";
|
|
|
|
}
|
|
|
|
|
|
|
|
# Show boot-time start button
|
|
|
|
if (&foreign_check("init")) {
|
|
|
|
&foreign_require("init", "init-lib.pl");
|
|
|
|
$starting = &init::action_status("ipsec");
|
|
|
|
print "<form action=bootup.cgi>\n";
|
|
|
|
print "<input type=hidden name=starting ",
|
|
|
|
"value='$starting'>\n";
|
|
|
|
print "<td nowrap><input type=submit ",
|
|
|
|
"value='$text{'index_boot'}'>\n";
|
|
|
|
printf "<input type=radio name=boot ".
|
|
|
|
"value=1 %s> %s\n",
|
|
|
|
$starting == 2 ? "checked" : "",
|
|
|
|
$text{'yes'};
|
|
|
|
printf "<input type=radio name=boot ".
|
|
|
|
"value=0 %s> %s</td>\n",
|
|
|
|
$starting == 2 ? "" : "checked",
|
|
|
|
$text{'no'};
|
|
|
|
print "<td>$text{'index_bootdesc'}</td>\n";
|
|
|
|
print "</form></tr>\n";
|
|
|
|
}
|
|
|
|
|
|
|
|
print "</table>\n";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&ui_print_footer("/", $text{'index'});
|
|
|
|
|