Merge branch 'master' of https://git.oopen.de/script/bind
This commit is contained in:
commit
fff7ba5408
@ -10,6 +10,8 @@
|
|||||||
# - error:
|
# - error:
|
||||||
# - 10: Missing option for zone definition
|
# - 10: Missing option for zone definition
|
||||||
# - 15: DKIM domain not supported by this nameserver
|
# - 15: DKIM domain not supported by this nameserver
|
||||||
|
# - 16: No responsible zone found
|
||||||
|
# - 17: No Nameserver found
|
||||||
# - 20: Adding Zone definition failed
|
# - 20: Adding Zone definition failed
|
||||||
# - 21: Adding Zonefile failed
|
# - 21: Adding Zonefile failed
|
||||||
# - 22: Change owner for newly created zonefile failed
|
# - 22: Change owner for newly created zonefile failed
|
||||||
@ -75,6 +77,9 @@ usage() {
|
|||||||
error:
|
error:
|
||||||
|
|
||||||
10: Missing option for zone definition
|
10: Missing option for zone definition
|
||||||
|
15: DKIM domain not supported by this nameserver
|
||||||
|
16: No responsible zone found
|
||||||
|
17: No Nameserver found
|
||||||
20: Add Zone definition failed
|
20: Add Zone definition failed
|
||||||
21: Adding Zonefile failed
|
21: Adding Zonefile failed
|
||||||
22: Change owner for newly created zonefile failed
|
22: Change owner for newly created zonefile failed
|
||||||
@ -347,7 +352,7 @@ fi
|
|||||||
|
|
||||||
if [[ -z "$ALLOW_TRANSFER_OPTION" ]] ; then
|
if [[ -z "$ALLOW_TRANSFER_OPTION" ]] ; then
|
||||||
error "Missing 'allow-update' option for zone definition .."
|
error "Missing 'allow-update' option for zone definition .."
|
||||||
clean_up
|
clean_up 10
|
||||||
else
|
else
|
||||||
# - Eliminate trailing ';' characters
|
# - Eliminate trailing ';' characters
|
||||||
# -
|
# -
|
||||||
@ -364,8 +369,8 @@ SOA_ADMIN_EMAIL="${SOA_ADMIN_EMAIL/@/.}"
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
zone="_domainkey.$dkim_domain"
|
new_dkim_zone="_domainkey.$dkim_domain"
|
||||||
zone_file="${ZONE_FILE_MASTER_DIR}/${zone}.${ZONE_FILE_SUFFIX}"
|
new_zone_file="${ZONE_FILE_MASTER_DIR}/${new_dkim_zone}.${ZONE_FILE_SUFFIX}"
|
||||||
_zone_configuration_exists=false
|
_zone_configuration_exists=false
|
||||||
|
|
||||||
|
|
||||||
@ -422,24 +427,45 @@ fi
|
|||||||
|
|
||||||
# - Get DNS server
|
# - Get DNS server
|
||||||
# -
|
# -
|
||||||
echononl "Get Namservers for domain '$dkim_domain'"
|
echononl "Get responsible zone for domain '$dkim_domain'.."
|
||||||
dns_servers="$(dig +short $dkim_domain NS)"
|
found=true
|
||||||
if [[ -n "$dns_servers" ]]; then
|
zone="${dkim_domain}"
|
||||||
|
dns_servers="$(dig +short $zone NS 2>/dev/null)"
|
||||||
|
while [[ -z "$dns_servers" ]] ; do
|
||||||
|
zone=${zone#*.}
|
||||||
|
if [[ ! $zone =~ \. ]]; then
|
||||||
|
found=false
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
dns_servers="$(dig +short $zone NS 2>/dev/null)"
|
||||||
|
done
|
||||||
|
if $found ; then
|
||||||
echo_ok
|
echo_ok
|
||||||
|
info "Found responsible zone for '${dkim_domain}': \033[37m\033[1m${zone}\033[m"
|
||||||
|
echononl "Get nameservers for domain '${zone}'.."
|
||||||
|
declare -i _count=0
|
||||||
|
for _dns_server in $dns_servers ; do
|
||||||
|
if [[ $_count -eq 0 ]]; then
|
||||||
|
_tmp_dns_server="$_dns_server"
|
||||||
|
else
|
||||||
|
_tmp_dns_server="$_tmp_dns_server $_dns_server"
|
||||||
|
fi
|
||||||
|
dns_server_arr+=("$_dns_server")
|
||||||
|
if [[ ${#dns_server_arr[@]} -eq 0 ]]; then
|
||||||
|
echo_failed
|
||||||
|
error "Determin DNS servers for domain '$zone' failed!"
|
||||||
|
clean_up 17
|
||||||
|
else
|
||||||
|
echo_ok
|
||||||
|
info "Found nameservers \033[37m\033[1m${_tmp_dns_server}\033[m"
|
||||||
|
fi
|
||||||
|
done
|
||||||
else
|
else
|
||||||
echo_failed
|
echo_failed
|
||||||
error "Determin DNS servers for domain '$dkim_domain' failed!"
|
error "No responsible zone for '$dkim_domain' found!"
|
||||||
clean_up 16
|
clean_up 16
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# - This is needed, because the dns servers are requested above, in
|
|
||||||
# - an IFS='' environment!
|
|
||||||
# -
|
|
||||||
declare -i i=0
|
|
||||||
for _dns_server in $dns_servers ; do
|
|
||||||
dns_server_arr+=("$_dns_server")
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
if ! $_zone_configuration_exists ; then
|
if ! $_zone_configuration_exists ; then
|
||||||
|
|
||||||
@ -461,9 +487,9 @@ if ! $_zone_configuration_exists ; then
|
|||||||
echononl "Add zone definition to '$ZONES_DECLARATION_FILE' .."
|
echononl "Add zone definition to '$ZONES_DECLARATION_FILE' .."
|
||||||
cat <<EOF >> $ZONES_DECLARATION_FILE 2> $log_file
|
cat <<EOF >> $ZONES_DECLARATION_FILE 2> $log_file
|
||||||
|
|
||||||
zone "${zone}" {
|
zone "${new_dkim_zone}" {
|
||||||
type master;
|
type master;
|
||||||
file "${zone_file}";
|
file "${new_zone_file}";
|
||||||
allow-update { key ${TSIG_KEY_NAME}. ; };
|
allow-update { key ${TSIG_KEY_NAME}. ; };
|
||||||
allow-transfer {$ALLOW_TRANSFER_OPTION};
|
allow-transfer {$ALLOW_TRANSFER_OPTION};
|
||||||
};
|
};
|
||||||
@ -483,7 +509,7 @@ fi
|
|||||||
# -
|
# -
|
||||||
echononl "Add zone definition to '$ZONES_DECLARATION_FILE' .."
|
echononl "Add zone definition to '$ZONES_DECLARATION_FILE' .."
|
||||||
_failed=false
|
_failed=false
|
||||||
cat <<EOF > "${zone_file}" 2> $log_file
|
cat <<EOF > "${new_zone_file}" 2> $log_file
|
||||||
\$TTL 43200
|
\$TTL 43200
|
||||||
@ IN SOA ${SOA_PRIMARY_MASTER}. ${SOA_ADMIN_EMAIL}. (
|
@ IN SOA ${SOA_PRIMARY_MASTER}. ${SOA_ADMIN_EMAIL}. (
|
||||||
0 ; serial
|
0 ; serial
|
||||||
@ -496,7 +522,7 @@ EOF
|
|||||||
if [[ $? -eq 0 ]]; then
|
if [[ $? -eq 0 ]]; then
|
||||||
|
|
||||||
for _dns_server in ${dns_server_arr[@]} ; do
|
for _dns_server in ${dns_server_arr[@]} ; do
|
||||||
echo "@ IN NS $_dns_server" >> "${zone_file}" 2> $log_file
|
echo "@ IN NS $_dns_server" >> "${new_zone_file}" 2> $log_file
|
||||||
if [[ $? -ne 0 ]] ; then
|
if [[ $? -ne 0 ]] ; then
|
||||||
_failed=true
|
_failed=true
|
||||||
fi
|
fi
|
||||||
@ -518,7 +544,7 @@ fi
|
|||||||
# - Change owner for newly created zone file
|
# - Change owner for newly created zone file
|
||||||
# -
|
# -
|
||||||
echononl "Change owner for newly created zone file.."
|
echononl "Change owner for newly created zone file.."
|
||||||
chown ${BIND_USER}:$BIND_GROUP "${ZONE_FILE_MASTER_DIR}/${zone}.zone" > $log_file 2>&1
|
chown ${BIND_USER}:$BIND_GROUP "${new_zone_file}" > $log_file 2>&1
|
||||||
if [[ $? -eq 0 ]]; then
|
if [[ $? -eq 0 ]]; then
|
||||||
echo_ok
|
echo_ok
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user