Browse Source

Fix issues with DNSSEC (#3001)

* Fix rebuild + icon in list_dns

* Prevent master="ip" overwritten multiple times

* Add option to add / edit DS key

* Fix issue when value is empty
Jaap Marcus 3 years ago
parent
commit
7fd2e532ad

+ 13 - 12
bin/v-add-remote-dns-domain

@@ -33,7 +33,7 @@ source_conf "$HESTIA/conf/hestia.conf"
 check_args '2' "$#" 'USER DOMAIN [FLUSH]'
 is_format_valid 'user' 'domain'
 if [ -n "$flush" ]; then
-    is_type_valid "records yes no" "$flush" 
+    is_type_valid "records yes no" "$flush"
 fi
 is_system_enabled "$DNS_CLUSTER" 'DNS_CLUSTER'
 is_procces_running
@@ -56,13 +56,18 @@ if [ -z "$str" ]; then
     fi
     exit
 fi
+if [ "$DNS_CLUSTER_SYSTEM" = "zone" ]; then
+    str=$(echo "$str" | sed "s/SLAVE='no'/SLAVE='yes'/g");
+    str=$(echo "$str" | sed "s/SLAVE=''/SLAVE='yes'/g");
+    ip=$($BIN/v-list-sys-ips plain | cut -f1);
+    str=$(echo "$str" | sed "s/MASTER=''/MASTER='$ip'/g");
+fi
 
 IFS=$'\n'
 for cluster in $(grep "SUSPENDED='no'" $HESTIA/conf/dns-cluster.conf); do
-    
     # Reset user, password and hash vars
     clear_dns_cluster_settings
-    
+
     # Parsing remote dns host parameters
     parse_object_kv_list "$cluster"
 
@@ -70,32 +75,28 @@ for cluster in $(grep "SUSPENDED='no'" $HESTIA/conf/dns-cluster.conf); do
     parse_object_kv_list "$str"
 
     if [ "$DNS_CLUSTER_SYSTEM" = "zone" ]; then
-        str=$(echo "$str" | sed "s/SLAVE='no'/SLAVE='yes'/g");
-        ip=$($BIN/v-list-sys-ips plain | cut -f1);
-        str=$(echo "$str" | sed "s/MASTER='*'/MASTER='$ip'/g");
-            
         # Syncing domain data
         cluster_cmd v-insert-dns-domain $DNS_USER "$str" $HOSTNAME $flush 'no'
         check_result $? "$HOST connection failed" "$E_CONNECT"
-        
+
         cluster_cmd v-rebuild-dns-domain $DNS_USER $domain 'yes' 'no'
         check_result $? "$HOST connection failed" "$E_CONNECT"
-        
+
         rndc notify $domain  > /dev/null 2>&1
     else
         # Syncing domain data
         cluster_cmd v-insert-dns-domain $DNS_USER "$str" $HOSTNAME $flush 'no'
         check_result $? "$HOST connection failed" "$E_CONNECT"
-    
+
         # Syncing domain records
         tmp_file="/tmp/vst-sync.$DOMAIN"
         cluster_file $USER_DATA/dns/$DOMAIN.conf $tmp_file
         check_result $? "$HOST connection failed" "$E_CONNECT"
-    
+
         # Inserting synced records
         cluster_cmd v-insert-dns-records $DNS_USER $DOMAIN $tmp_file 'no'
         check_result $? "$HOST connection failed" "$E_CONNECT"
-    
+
         # Rebuilding dns zone
         cluster_cmd v-rebuild-dns-domain $DNS_USER $domain 'yes' 'no'
         check_result $? "$HOST connection failed" "$E_CONNECT"

+ 4 - 4
install/upgrade/versions/1.7.0.sh

@@ -18,13 +18,13 @@
 upgrade_config_set_value 'UPGRADE_UPDATE_WEB_TEMPLATES' 'no'
 upgrade_config_set_value 'UPGRADE_UPDATE_DNS_TEMPLATES' 'no'
 upgrade_config_set_value 'UPGRADE_UPDATE_MAIL_TEMPLATES' 'no'
-upgrade_config_set_value 'UPGRADE_REBUILD_USERS' 'no'
+upgrade_config_set_value 'UPGRADE_REBUILD_USERS' 'yes'
 upgrade_config_set_value 'UPGRADE_UPDATE_FILEMANAGER_CONFIG' 'false'
 
 # Make sure to sync install quoteshell arg
-if [ "$FILE_MANAGER" = "true" ]; then 
+if [ "$FILE_MANAGER" = "true" ]; then
     $HESTIA/bin/v-delete-sys-filemanager quiet
-    $HESTIA/bin/v-add-sys-filemanager quiet  
+    $HESTIA/bin/v-add-sys-filemanager quiet
 fi
 
 packages=$(ls --sort=time $HESTIA/data/packages |grep .pkg)
@@ -32,4 +32,4 @@ for package in $packages; do
     if [ -z "$(grep -e 'RATE_LIMIT' $HESTIA/data/packages/$package)" ]; then
        echo "RATE_LIMIT='200'" >> $HESTIA/data/packages/$package
     fi
-done
+done

+ 1 - 0
web/templates/pages/add_dns_rec.html

@@ -41,6 +41,7 @@
             <option value="CAA" <?php if ($v_type == 'CAA') echo "selected"; ?>>CAA</option>
             <option value="CNAME" <?php if ($v_type == 'CNAME') echo "selected"; ?>>CNAME</option>
             <option value="DNSKEY" <?php if ($v_type == 'DNSKEY') echo "selected"; ?>>DNSKEY</option>
+            <option value="DS" <?php if ($v_type == 'DS') echo "selected"; ?>>DS</option>
             <option value="IPSECKEY" <?php if ($v_type == 'IPSECKEY') echo "selected"; ?>>IPSECKEY</option>
             <option value="KEY" <?php if ($v_type == 'KEY') echo "selected"; ?>>KEY</option>
             <option value="MX" <?php if ($v_type == 'MX') echo "selected"; ?>>MX</option>

+ 1 - 0
web/templates/pages/edit_dns_rec.html

@@ -42,6 +42,7 @@
             <option value="CAA" <?php if ($v_type == 'CAA') echo "selected"; ?>>CAA</option>
             <option value="CNAME" <?php if ($v_type == 'CNAME') echo "selected"; ?>>CNAME</option>
             <option value="DNSKEY" <?php if ($v_type == 'DNSKEY') echo "selected"; ?>>DNSKEY</option>
+            <option value="DS" <?php if ($v_type == 'DS') echo "selected"; ?>>DS</option>
             <option value="IPSECKEY" <?php if ($v_type == 'IPSECKEY') echo "selected"; ?>>IPSECKEY</option>
             <option value="KEY" <?php if ($v_type == 'KEY') echo "selected"; ?>>KEY</option>
             <option value="MX" <?php if ($v_type == 'MX') echo "selected"; ?>>MX</option>

+ 1 - 1
web/templates/pages/list_dns.html

@@ -92,7 +92,7 @@
         $spnd_icon = 'fa-pause';
         $spnd_confirmation = _('SUSPEND_DOMAIN_CONFIRMATION');
       }
-      if ($data[$key]['DNSSEC'] == 'no') {
+      if ($data[$key]['DNSSEC'] !== 'yes') {
         $dnssec_icon = 'fa-times-circle';
       } else {
         $dnssec_icon = 'fa-check-circle';