Skip to content

Commit 30a8f16

Browse files
authored
Add more checks to make sure ipv6 and 4 keep working (hestiacp#2564)
* Add more checks to make sure ipv6 and 4 keep working * Update bugged test * Add check for incorrect hash
1 parent 8fa96d3 commit 30a8f16

File tree

4 files changed

+100
-51
lines changed

4 files changed

+100
-51
lines changed

bin/v-check-user-hash

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# Argument definition
1414
user=$1
1515
hash=$2; HIDE=2
16-
ip=${3-127.0.0.1}
16+
ip46=${3-127.0.0.1}
1717

1818
# Includes
1919
# shellcheck source=/etc/hestiacp/hestia.conf
@@ -32,7 +32,7 @@ date=$(echo "$time_n_date" |cut -f 2 -d \ )
3232
#----------------------------------------------------------#
3333

3434
check_args '2' "$#" 'USER HASH'
35-
is_format_valid 'user'
35+
is_format_valid 'user' 'ip46'
3636

3737
# Checking user
3838
if [ ! -d "$HESTIA/data/users/$user" ] && [ "$user" != 'root' ]; then
@@ -47,7 +47,7 @@ is_hash_valid
4747
# Checking empty hash
4848
if [[ -z "$hash" ]]; then
4949
echo "Error: password missmatch"
50-
echo "$date $time $user $ip failed to login" >> $HESTIA/log/auth.log
50+
echo "$date $time $user $ip46 failed to login" >> $HESTIA/log/auth.log
5151
exit 9
5252
fi
5353

@@ -70,7 +70,7 @@ then
7070
method='sha-512'
7171
else
7272
echo "Error: password missmatch"
73-
echo "$date $time $user $ip failed to login" >> $HESTIA/log/auth.log
73+
echo "$date $time $user $ip46 failed to login" >> $HESTIA/log/auth.log
7474
exit 9
7575
fi
7676
else
@@ -81,14 +81,14 @@ fi
8181
# Checking salt
8282
if [ -z "$salt" ]; then
8383
echo "Error: password missmatch"
84-
echo "$date $time $user $ip failed to login" >> $HESTIA/log/auth.log
84+
echo "$date $time $user $ip46 failed to login" >> $HESTIA/log/auth.log
8585
exit 9
8686
fi
8787

8888
# Comparing hashes
8989
if [[ "$shadow" != "$hash" ]]; then
9090
echo "Error: password missmatch"
91-
echo "$date $time $user $ip failed to login" >> $HESTIA/log/auth.log
91+
echo "$date $time $user $ip46 failed to login" >> $HESTIA/log/auth.log
9292
exit 9
9393
fi
9494

@@ -97,6 +97,6 @@ fi
9797
#----------------------------------------------------------#
9898

9999
# Logging
100-
echo "$date $time $user $ip successfully logged in" >> $HESTIA/log/auth.log
100+
echo "$date $time $user $ip46 successfully logged in" >> $HESTIA/log/auth.log
101101

102102
exit

bin/v-check-user-password

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
# Argument definition
1414
user=$1
1515
password=$2; HIDE=2
16-
ip=${3-127.0.0.1}
17-
return_hash=$4
16+
ip46=${3-127.0.0.1}
17+
return_hash=${4-no}
1818

1919
# Includes
2020
# shellcheck source=/etc/hestiacp/hestia.conf
@@ -32,23 +32,20 @@ date=$(echo "$time_n_date" |cut -f 2 -d \ )
3232
# Verifications #
3333
#----------------------------------------------------------#
3434

35-
check_args '2' "$#" 'USER PASSWORD RETURN_HASH'
36-
is_format_valid 'user'
35+
check_args '2' "$#" 'USER PASSWORD [ip] [RETURN_HASH]'
36+
is_format_valid 'user' 'password' 'ip46'
3737

3838
# Checking user
3939
if [ ! -d "$HESTIA/data/users/$user" ]; then
4040
echo "Error: password missmatch"
41-
echo "$date $time $user $ip failed to login" >> $HESTIA/log/auth.log
41+
echo "$date $time $user $ip46 failed to login" >> $HESTIA/log/auth.log
4242
exit 9
4343
fi
4444

45-
# Checking user password
46-
is_password_valid
47-
4845
# Checking empty password
4946
if [[ -z "$password" ]]; then
5047
echo "Error: password missmatch"
51-
echo "$date $time $user $ip failed to login" >> $HESTIA/log/auth.log
48+
echo "$date $time $user $ip46 failed to login" >> $HESTIA/log/auth.log
5249
exit 9
5350
fi
5451

@@ -81,15 +78,15 @@ fi
8178

8279
if [ -z "$salt" ]; then
8380
echo "Error: password missmatch"
84-
echo "$date $time $user $ip failed to login" >> $HESTIA/log/auth.log
81+
echo "$date $time $user $ip46 failed to login" >> $HESTIA/log/auth.log
8582
exit 9
8683
fi
8784

8885
if [ "$method" = "yescrypt" ]; then
8986
hash=$(mkpasswd "$password" "$shadow")
9087
if [ $? -ne 0 ]; then
9188
echo "Error: password missmatch"
92-
echo "$date $time $user $ip failed to login" >> $HESTIA/log/auth.log
89+
echo "$date $time $user $ip46 failed to login" >> $HESTIA/log/auth.log
9390
exit 9
9491
fi
9592
else
@@ -98,7 +95,7 @@ else
9895
hash=$($BIN/v-generate-password-hash "$method" "$salt" <<< "$password")
9996
if [[ -z "$hash" ]]; then
10097
echo "Error: password missmatch"
101-
echo "$date $time $user $ip failed to login" >> $HESTIA/log/auth.log
98+
echo "$date $time $user $ip46 failed to login" >> $HESTIA/log/auth.log
10299
exit 9
103100
fi
104101
fi
@@ -107,7 +104,7 @@ fi
107104
result=$(grep "^$user:$hash:" /etc/shadow 2>/dev/null)
108105
if [[ -z "$result" ]]; then
109106
echo "Error: password missmatch"
110-
echo "$date $time $user $ip failed to login" >> $HESTIA/log/auth.log
107+
echo "$date $time $user $ip46 failed to login" >> $HESTIA/log/auth.log
111108
exit 9
112109
fi
113110

bin/v-get-user-salt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
# Argument definition
1414
user=$1
15-
ip=${2-127.0.0.1}
15+
ip46=${2-127.0.0.1}
1616
format=${3-shell}
1717

1818
# Includes
@@ -63,13 +63,13 @@ csv_list() {
6363
#----------------------------------------------------------#
6464

6565

66-
check_args '1' "$#" 'USER [IP] [SALT]'
67-
is_format_valid 'user' 'ip'
66+
check_args '1' "$#" 'USER [IP] [FORMAT]'
67+
is_format_valid 'user' 'ip46'
6868

6969
# Checking user
7070
if [ ! -d "$HESTIA/data/users/$user" ]; then
7171
echo "Error: password missmatch"
72-
echo "$date $time $user $ip failed to login" >> $HESTIA/log/auth.log
72+
echo "$date $time $user $ip46 failed to login" >> $HESTIA/log/auth.log
7373
exit 9
7474
fi
7575

@@ -93,12 +93,12 @@ then
9393
method='sha-512'
9494
else
9595
echo "Error: password missmatch"
96-
echo "$date $time $user $ip failed to login" >> $HESTIA/log/auth.log
96+
echo "$date $time $user $ip46 failed to login" >> $HESTIA/log/auth.log
9797
exit 9
9898
fi
9999
elif [[ "$shadow" =~ ! ]]; then
100100
echo "Error: Account has been suspended"
101-
echo "$date $time $user $ip has been suspended" >> $HESTIA/log/auth.log
101+
echo "$date $time $user $ip46 has been suspended" >> $HESTIA/log/auth.log
102102
exit 5
103103
else
104104
salt=${shadow:0:2}
@@ -107,7 +107,7 @@ fi
107107

108108
if [ -z "$salt" ]; then
109109
echo "Error: password missmatch"
110-
echo "$date $time $user $ip failed to login" >> $HESTIA/log/auth.log
110+
echo "$date $time $user $ip46 failed to login" >> $HESTIA/log/auth.log
111111
exit 9
112112
fi
113113

0 commit comments

Comments
 (0)