Fix ipv6 bugs

This commit is contained in:
MadeITBelgium 2017-09-22 16:55:16 +00:00
commit f4bc3f50c4
18 changed files with 243 additions and 87 deletions

View file

@ -55,6 +55,7 @@ get_domain_values 'web'
# Preparing domain values for the template substitution
local_ip=$(get_real_ip $IP)
ipv6=$IP6
if [ -z "$ALIAS" ]; then
ALIAS="$aliases"
else
@ -62,12 +63,35 @@ else
fi
prepare_web_domain_values
# Rebuilding vhost
del_web_config "$WEB_SYSTEM" "$TPL.tpl"
add_web_config "$WEB_SYSTEM" "$TPL.tpl"
if [ "$SSL" = 'yes' ]; then
del_web_config "$WEB_SYSTEM" "$TPL.stpl"
add_web_config "$WEB_SYSTEM" "$TPL.stpl"
if [ ! -z "$local_ip" ]; then
old=$local_ip
del_web_config "$WEB_SYSTEM" "$TPL.tpl"
add_web_config "$WEB_SYSTEM" "$TPL.tpl"
if [ "$SSL" = 'yes' ]; then
del_web_config "$WEB_SYSTEM" "$TPL.stpl"
add_web_config "$WEB_SYSTEM" "$TPL.stpl"
fi
# Rebuilding proxy configuration
if [ ! -z "$PROXY_SYSTEM" ] && [ ! -z "$PROXY" ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
add_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
if [ "$SSL" = 'yes' ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
add_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
fi
fi
fi
# Rebuilding vhost IPv6
if [ ! -z "$IP6" ]; then
old=$IP6
del_web_config "$WEB_SYSTEM" "$TPL.tpl"
add_web_config "$WEB_SYSTEM" "$TPL.tpl"
if [ "$SSL" = 'yes' ]; then
del_web_config "$WEB_SYSTEM" "$TPL.stpl"
add_web_config "$WEB_SYSTEM" "$TPL.stpl"
fi
fi
# Rebuilding proxy configuration
@ -78,6 +102,15 @@ if [ ! -z "$PROXY_SYSTEM" ] && [ ! -z "$PROXY" ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
add_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
fi
# Rebuilding proxy configuration
if [ ! -z "$PROXY_SYSTEM" ] && [ ! -z "$PROXY" ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
add_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
if [ "$SSL" = 'yes' ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
add_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
fi
fi
fi

View file

@ -57,6 +57,7 @@ fi
get_domain_values 'dns'
old=$IP
new=$ip
ipv6=$IP6
if [ -z "$old" ]; then
#Create new
@ -71,7 +72,6 @@ else
sed -i "s/$old/$ip/g" $USER_DATA/dns/$domain.conf
else
#Delete configs
ip=$old
remove_dns_config_records
fi
fi

View file

@ -55,6 +55,7 @@ fi
get_domain_values 'dns'
old=$IP6
new=$ipv6
ip=$IP
if [ -z "$old" ]; then
#Create new

View file

@ -36,7 +36,7 @@ fi
#----------------------------------------------------------#
# Parsing user ips
ip_list=$(grep -H "OWNER='$user'" $VESTA/data/ips/* | cut -f 1 -d:)
ip_list=$(grep -H -A10 "OWNER='$user'" $VESTA/data/ips/* |grep "VERSION='4'" | cut -f 1 -d '-')
for ip in $ip_list; do
ip=$(basename $ip)

63
bin/v-delete-user-ipv6s Executable file
View file

@ -0,0 +1,63 @@
#!/bin/bash
# info: delete user ips
# options: USER
#
# The function deletes all user's ip addresses.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument definition
user=$1
# Includes
source $VESTA/func/main.sh
source $VESTA/func/ipv6.sh
source $VESTA/conf/vesta.conf
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '1' "$#" 'USER'
is_format_valid 'user'
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
if [ "$user" = 'admin' ]; then
exit
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Parsing user ips
ip_list=$(grep -H -A10 "OWNER='$user'" $VESTA/data/ips/* |grep "VERSION='6'" | cut -f 1 -d '-')
for ip in $ip_list; do
ip=$(basename $ip)
# Checking webdomains and users
is_ip_key_empty '$U_WEB_DOMAINS'
is_ip_key_empty '$U_SYS_USERS'
# Assig ip to main account
update_ip_value '$OWNER' 'admin'
update_ip_value '$STATUS' 'dedicated'
increase_user_value 'admin' '$IP_OWNED'
increase_user_value 'admin' '$IP_AVAIL'
done
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Logging
log_event "$OK" "$ARGUMENTS"
exit

View file

@ -22,6 +22,7 @@ restart=$3
source $VESTA/func/main.sh
source $VESTA/func/domain.sh
source $VESTA/func/ip.sh
source $VESTA/func/ipv6.sh
source $VESTA/conf/vesta.conf
# Additional argument formatting
@ -56,55 +57,61 @@ fi
get_domain_values 'web'
local_ip=$(get_real_ip $IP)
# Deleting domain from web.conf
sed -i "/DOMAIN='$domain'/ d" $USER_DATA/web.conf
# Deleting vhost configuration IPv4
if [ ! -z "$local_ip" ]; then
old=$local_ip
del_web_config "$WEB_SYSTEM" "$TPL.tpl"
# Deleting SSL configuration and certificates
if [ "$SSL" = 'yes' ]; then
del_web_config "$WEB_SYSTEM" "$TPL.stpl"
rm -f $HOMEDIR/$user/conf/web/ssl.$domain.*
rm -f $USER_DATA/ssl/$domain.*
fi
# Deleting proxy
if [ ! -z "$PROXY_SYSTEM" ] && [ ! -z "$PROXY" ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
if [ "$SSL" = 'yes' ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
fi
if [ -e "/etc/$PROXY_SYSTEM/conf.d/01_caching_pool.conf" ]; then
sed -i "/=$domain:/d" /etc/$PROXY_SYSTEM/conf.d/01_caching_pool.conf
fi
fi
if [ -z "$IP6" ]; then
# Deleting domain from web.conf
sed -i "/DOMAIN='$domain'/ d" $USER_DATA/web.conf
fi
# Deleting vhost configuration IPv4
if [ ! -z "$ipv6" ]; then
old=$IP6
del_web_config "$WEB_SYSTEM" "$TPL.tpl"
if [ ! -z "$local_ip" ]; then
old=$local_ip
del_web_config "$WEB_SYSTEM" "$TPL.tpl"
# Deleting SSL configuration and certificates
if [ "$SSL" = 'yes' ]; then
del_web_config "$WEB_SYSTEM" "$TPL.stpl"
rm -f $HOMEDIR/$user/conf/web/ssl.$domain.*
rm -f $USER_DATA/ssl/$domain.*
fi
# Deleting SSL configuration and certificates
if [ "$SSL" = 'yes' ]; then
del_web_config "$WEB_SYSTEM" "$TPL.stpl"
rm -f $HOMEDIR/$user/conf/web/ssl.$domain.*
rm -f $USER_DATA/ssl/$domain.*
fi
# Deleting proxy
if [ ! -z "$PROXY_SYSTEM" ] && [ ! -z "$PROXY" ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
if [ "$SSL" = 'yes' ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
fi
if [ -e "/etc/$PROXY_SYSTEM/conf.d/01_caching_pool.conf" ]; then
sed -i "/=$domain:/d" /etc/$PROXY_SYSTEM/conf.d/01_caching_pool.conf
fi
fi
# Deleting proxy
if [ ! -z "$PROXY_SYSTEM" ] && [ ! -z "$PROXY" ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
if [ "$SSL" = 'yes' ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
fi
if [ -e "/etc/$PROXY_SYSTEM/conf.d/01_caching_pool.conf" ]; then
sed -i "/=$domain:/d" /etc/$PROXY_SYSTEM/conf.d/01_caching_pool.conf
fi
fi
fi
# Deleting vhost configuration IPv6
web_domain=$(grep DOMAIN $USER_DATA/web.conf |wc -l)
if [ ! -z "$IP6" ] && [ "$web_domain" -gt '0' ]; then
# Deleting domain from web.conf
sed -i "/DOMAIN='$domain'/d" $USER_DATA/web.conf
old=$IP6
del_web_config "$WEB_SYSTEM" "$TPL.tpl"
# Deleting SSL configuration and certificates
if [ "$SSL" = 'yes' ]; then
del_web_config "$WEB_SYSTEM" "$TPL.stpl"
rm -f $HOMEDIR/$user/conf/web/ssl.$domain.*
rm -f $USER_DATA/ssl/$domain.*
fi
# Deleting proxy
if [ ! -z "$PROXY_SYSTEM" ] && [ ! -z "$PROXY" ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
if [ "$SSL" = 'yes' ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
fi
if [ -e "/etc/$PROXY_SYSTEM/conf.d/01_caching_pool.conf" ]; then
sed -i "/=$domain:/d" /etc/$PROXY_SYSTEM/conf.d/01_caching_pool.conf
fi
fi
fi
# Deleting web stats
@ -140,7 +147,7 @@ rm -rf $HOMEDIR/$user/web/$domain
# Decreasing user counters
decrease_ip_value "$local_ip"
decrease_ipv6_value "$ipv6"
decrease_ipv6_value "$IP6"
decrease_user_value "$user" '$U_WEB_DOMAINS'
if [ "$SSL" = 'yes' ]; then
decrease_user_value "$user" '$U_WEB_SSL'

View file

@ -53,24 +53,48 @@ local_ip=$(get_real_ip $IP)
# Preparing domain values for the template substitution
prepare_web_domain_values
# Rebuilding vhost
del_web_config "$WEB_SYSTEM" "$TPL.tpl"
add_web_config "$WEB_SYSTEM" "$TPL.tpl"
if [ "$SSL" = 'yes' ]; then
del_web_config "$WEB_SYSTEM" "$TPL.stpl"
add_web_config "$WEB_SYSTEM" "$TPL.stpl"
fi
# Rebuilding proxy configuration
if [ ! -z "$PROXY_SYSTEM" ] && [ ! -z "$PROXY" ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
add_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
# Rebuilding vhost IPv4
if [ ! -z "$local_ip" ]; then
old=$local_ip
del_web_config "$WEB_SYSTEM" "$TPL.tpl"
add_web_config "$WEB_SYSTEM" "$TPL.tpl"
if [ "$SSL" = 'yes' ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
add_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
del_web_config "$WEB_SYSTEM" "$TPL.stpl"
add_web_config "$WEB_SYSTEM" "$TPL.stpl"
fi
# Rebuilding proxy configuration
if [ ! -z "$PROXY_SYSTEM" ] && [ ! -z "$PROXY" ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
add_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
if [ "$SSL" = 'yes' ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
add_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
fi
fi
fi
# Rebuilding vhost IPv6
if [ ! -z "$IP6" ]; then
old=$IP6
del_web_config "$WEB_SYSTEM" "$TPL.tpl"
add_web_config "$WEB_SYSTEM" "$TPL.tpl"
if [ "$SSL" = 'yes' ]; then
del_web_config "$WEB_SYSTEM" "$TPL.stpl"
add_web_config "$WEB_SYSTEM" "$TPL.stpl"
fi
# Rebuilding proxy configuration
if [ ! -z "$PROXY_SYSTEM" ] && [ ! -z "$PROXY" ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
add_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
if [ "$SSL" = 'yes' ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
add_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
fi
fi
fi
#----------------------------------------------------------#
# Vesta #

View file

@ -51,21 +51,45 @@ local_ip=$(get_real_ip $IP)
# Preparing domain values for the template substitution
prepare_web_domain_values
# Rebuilding vhost
del_web_config "$WEB_SYSTEM" "$TPL.tpl"
add_web_config "$WEB_SYSTEM" "$TPL.tpl"
if [ "$SSL" = 'yes' ]; then
del_web_config "$WEB_SYSTEM" "$TPL.stpl"
add_web_config "$WEB_SYSTEM" "$TPL.stpl"
fi
# Rebuilding proxy configuration
if [ ! -z "$PROXY_SYSTEM" ] && [ ! -z "$PROXY" ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
add_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
# Rebuilding vhost IPv4
if [ ! -z "$local_ip" ]; then
old=$local_ip
del_web_config "$WEB_SYSTEM" "$TPL.tpl"
add_web_config "$WEB_SYSTEM" "$TPL.tpl"
if [ "$SSL" = 'yes' ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
add_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
del_web_config "$WEB_SYSTEM" "$TPL.stpl"
add_web_config "$WEB_SYSTEM" "$TPL.stpl"
fi
# Rebuilding proxy configuration
if [ ! -z "$PROXY_SYSTEM" ] && [ ! -z "$PROXY" ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
add_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
if [ "$SSL" = 'yes' ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
add_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
fi
fi
fi
# Rebuilding vhost IPv6
if [ ! -z "$IP6" ]; then
old=$IP6
del_web_config "$WEB_SYSTEM" "$TPL.tpl"
add_web_config "$WEB_SYSTEM" "$TPL.tpl"
if [ "$SSL" = 'yes' ]; then
del_web_config "$WEB_SYSTEM" "$TPL.stpl"
add_web_config "$WEB_SYSTEM" "$TPL.stpl"
fi
# Rebuilding proxy configuration
if [ ! -z "$PROXY_SYSTEM" ] && [ ! -z "$PROXY" ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
add_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
if [ "$SSL" = 'yes' ]; then
del_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
add_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
fi
fi
fi

View file

@ -1,3 +1,4 @@
listen = *, ::
protocols = imap imaps pop3 pop3s
log_path = /var/log/dovecot.log
ssl_cert_file = /usr/local/vesta/ssl/certificate.crt

View file

@ -6,6 +6,7 @@ options {
version "get lost";
allow-transfer {"none";};
recursion no;
listen-on-v6 { any; };
};

View file

@ -1,4 +1,4 @@
protocols = imap pop3
listen = *
listen = *, ::
base_dir = /var/run/dovecot/
!include conf.d/*.conf

View file

@ -6,6 +6,7 @@ options {
version "get lost";
allow-transfer {"none";};
recursion no;
listen-on-v6 { any; };
};

View file

@ -1,4 +1,4 @@
protocols = imap pop3
listen = *
listen = *, ::
base_dir = /var/run/dovecot/
!include conf.d/*.conf

View file

@ -6,6 +6,7 @@ options {
version "get lost";
allow-transfer {"none";};
recursion no;
listen-on-v6 { any; };
};

View file

@ -1200,7 +1200,7 @@ $VESTA/bin/v-update-sys-ip
# Get main ipv6
ipv6=$(ip addr show | sed -e's/^.*inet6 \([^ ]*\)\/.*$/\1/;t;d' | grep -ve "^fe80" | tail -1)
if [ ! -z "$ipv6" ]; then
if [ ! -z "$ipv6" ] && [ "::1" != "$ipv6" ]; then
netmask="ip addr show | grep '$ipv6' | awk -F '/' '{print $2}' | awk '{print $1}'"
netmask=$(eval $netmask)
$VESTA/bin/v-add-sys-ipv6 $ipv6 $netmask

View file

@ -1245,7 +1245,7 @@ $VESTA/bin/v-update-sys-ip
# Get main ipv6
ipv6=$(ip addr show | sed -e's/^.*inet6 \([^ ]*\)\/.*$/\1/;t;d' | grep -ve "^fe80" | tail -1)
if [ ! -z "$ipv6" ]; then
if [ ! -z "$ipv6" ] && [ "::1" != "$ipv6" ]; then
netmask="ip addr show | grep '$ipv6' | awk -F '/' '{print $2}' | awk '{print $1}'"
netmask=$(eval $netmask)
$VESTA/bin/v-add-sys-ipv6 $ipv6 $netmask

View file

@ -1195,7 +1195,7 @@ $VESTA/bin/v-update-sys-ip
# Get main ipv6
ipv6=$(ip addr show | sed -e's/^.*inet6 \([^ ]*\)\/.*$/\1/;t;d' | grep -ve "^fe80" | tail -1)
if [ ! -z "$ipv6" ]; then
if [ ! -z "$ipv6" ] && [ "::1" != "$ipv6" ]; then
netmask="ip addr show | grep '$ipv6' | awk -F '/' '{print $2}' | awk '{print $1}'"
netmask=$(eval $netmask)
$VESTA/bin/v-add-sys-ipv6 $ipv6 $netmask

View file

@ -33,7 +33,7 @@ ipv6use=""
if [ ! -z "$ipv6" ] && [ "::1" != "$ipv6" ]; then
netmask="ip addr show | grep '$ipv6' | awk -F '/' '{print \$2}' | awk '{print \$1}'"
netmask=$(eval $netmask)
$VESTA/bin/v-add-sys-ipv6 $ipv6 $netmask
$BIN/v-add-sys-ipv6 $ipv6 $netmask
$BIN/v-update-firewall-ipv6
ipv6use=$ipv6
fi