Browse Source

Improve DNS SEC Public key information display (#3676)

https://forum.hestiacp.com/t/dnssec-show-key-tag-field/9805
Jaap Marcus 2 years ago
parent
commit
6ec3509d34
2 changed files with 23 additions and 8 deletions
  1. 10 7
      bin/v-list-dnssec-public-key
  2. 13 1
      web/templates/pages/list_dns_public.php

+ 10 - 7
bin/v-list-dnssec-public-key

@@ -42,11 +42,12 @@ is_object_valid 'dns' 'DOMAIN' "$domain"
 json_list() {
 	echo '{'
 	echo '    "'$DOMAIN'": {
-       "RECORD": "'$record'",
-       "FLAG": "'$flag'",
-       "ALGORITHM": "'$algorithm'",
-       "KEY": "'$key'",
-       "DS":"'$ds'"
+		"RECORD": "'$record'",
+		"KEYTAG": "'$keytag'",
+		"FLAG": "'$flag'",
+		"ALGORITHM": "'$algorithm'",
+		"KEY": "'$key'",
+		"DS":"'$ds'"
     }'
 	echo '}'
 }
@@ -54,7 +55,8 @@ json_list() {
 # SHELL list function
 shell_list() {
 	echo "RECORD:    $record"
-	echo "DS:        $DS"
+	echo "DS:        $ds"
+	echo "KEYTAG:    $keytag"
 	echo "FLAG:      $flag"
 	echo "ALGORITHM: $algorithm"
 	echo "KEY:       $key"
@@ -77,10 +79,11 @@ parse_object_kv_list $(grep "DOMAIN='$domain'" $USER_DATA/dns.conf)
 
 if [ -n "$KEY" ]; then
 	record=$(cat "/var/cache/bind/K$domain_idn.+013+$KEY.key" | grep DNSKEY)
+	ds=$(dnssec-dsfromkey "/var/cache/bind/K$domain_idn.+013+$KEY.key")
+	keytag=$(echo "$ds" | cut -d' ' -f4)
 	flag=$(echo "$record" | cut -d' ' -f5)
 	algorithm=$(echo "$record" | cut -d' ' -f7)
 	key="$(echo "$record" | cut -d' ' -f8) $(echo "$record" | cut -d' ' -f9)"
-	ds=$(dnssec-dsfromkey "/var/cache/bind/K$domain_idn.+013+$KEY.key")
 fi
 
 case $format in

+ 13 - 1
web/templates/pages/list_dns_public.php

@@ -89,10 +89,22 @@
 		</div>
 		<div class="l-unit animate__animated animate__fadeIn js-unit">
 			<div class="l-unit__col l-unit__col--right">
-				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b><?= _("Key Tag / Flag") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b><?= _("Key Type / Flag") ?></b></div>
 				<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="form-control" value="<?php echo $flag; ?>"></b></div>
 			</div>
 		</div>
+		<div class="l-unit animate__animated animate__fadeIn js-unit">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b><?= _("Key Tag") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="form-control" value="<?php echo $data[$domain]["KEYTAG"]; ?>"></b></div>
+			</div>
+		</div>
+		<div class="l-unit animate__animated animate__fadeIn js-unit">
+			<div class="l-unit__col l-unit__col--right">
+				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b><?= _("Flag") ?></b></div>
+				<div class="clearfix l-unit__stat-col--left wide-3"><b><input type="text" class="form-control" value="<?php echo $data[$domain]["FLAG"]; ?>"></b></div>
+			</div>
+		</div>
 		<div class="l-unit animate__animated animate__fadeIn js-unit">
 			<div class="l-unit__col l-unit__col--right">
 				<div class="clearfix l-unit__stat-col--left u-text-center u-pt10"><b><?= _("Algorithm") ?></b></div>