Files
webmin/bind8/setup_trusted.cgi
Joe Cooper b0e9415d01 strict/warn
2016-06-03 01:29:19 -07:00

53 lines
1.4 KiB
Perl
Executable File

#!/usr/local/bin/perl
# Add lookaside and trusted key records for ICS's DLV zone
use strict;
use warnings;
our (%access, %text, %config);
our $dnssec_dlv_zone;
our @dnssec_dlv_key;
require './bind8-lib.pl';
$access{'defaults'} || &error($text{'trusted_ecannot'});
&error_setup($text{'trusted_err'});
&ReadParse();
&lock_file(&make_chroot($config{'named_conf'}));
my $parent = &get_config_parent();
my $conf = $parent->{'members'};
my $options = &find("options", $conf);
# Enable DNSSEC
&save_directive($options, "dnssec-enable",
[ { 'name' => 'dnssec-enable',
'values' => [ 'yes' ] } ], 1);
if (&supports_dnssec_client() == 2) {
&save_directive($options, "dnssec-validation",
[ { 'name' => 'dnssec-validation',
'values' => [ 'yes' ] } ], 1);
}
# Lookaside
&save_directive($options, "dnssec-lookaside",
[ { 'name' => 'dnssec-lookaside',
'values' => [ ".", "trust-anchor", $dnssec_dlv_zone ] } ],
1);
# ICS's key
my $trusted = &find("trusted-keys", $conf);
if (!$trusted) {
# Need to create block
$trusted = { 'name' => 'trusted-keys',
'type' => 1,
'members' => [ ] };
&save_directive($parent, "trusted-keys", [ $trusted ]);
}
&save_directive($trusted, [ ],
[ { 'name' => $dnssec_dlv_zone,
'values' => \@dnssec_dlv_key } ], 1);
&flush_file_lines();
&unlock_file(&make_chroot($config{'named_conf'}));
&restart_bind();
&webmin_log("trusted");
&redirect("");