Fixed new usernumber generation
parent
bf943a1b92
commit
b42e861014
|
@ -89,8 +89,8 @@ fi
|
||||||
|
|
||||||
# Create new IPs
|
# Create new IPs
|
||||||
hostnumber='1'
|
hostnumber='1'
|
||||||
ipv4s="$(<<<"${peers}" | awk '{print $2,$3}' | tr ' ' '\n' | grep '\.' | cut -d'/' -f1)"
|
ipv4s="$(printf '%s\n' "${peers}" | awk '{print $2,$3}' | tr ' ' '\n' | grep '\.' | cut -d'/' -f1)"
|
||||||
ipv6s="$(<<<"${peers}" | awk '{print $2,$3}' | tr ' ' '\n' | grep '\:' | cut -d'/' -f1)"
|
ipv6s="$(printf '$s\n' "${peers}" | awk '{print $2,$3}' | tr ' ' '\n' | grep '\:' | cut -d'/' -f1)"
|
||||||
# Increment hostnumber from 1 until an unused one is found
|
# Increment hostnumber from 1 until an unused one is found
|
||||||
used_usernumbers="$(<<<"${ipv4s}" cut -d'.' -f3 | sort | uniq)"
|
used_usernumbers="$(<<<"${ipv4s}" cut -d'.' -f3 | sort | uniq)"
|
||||||
usernumber=1; while <<<"${used_usernumbers}" grep -q "${usernumber}"
|
usernumber=1; while <<<"${used_usernumbers}" grep -q "${usernumber}"
|
||||||
|
@ -105,41 +105,41 @@ if ! printf 'IP addresses for %s created: %s %s\n' "${domain:?}" "${ipv4:?}" "${
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Create wg config
|
# Create wg config
|
||||||
privkey="$(/usr/bin/wg genkey)"
|
#privkey="$(/usr/bin/wg genkey)"
|
||||||
pubkey="$(echo "${privkey}" | /usr/bin/wg pubkey)"
|
#pubkey="$(echo "${privkey}" | /usr/bin/wg pubkey)"
|
||||||
address="${ipv4}/${IPV4_NET##*/},${ipv6}/${IPV6_NET##*/}"
|
#address="${ipv4}/${IPV4_NET##*/},${ipv6}/${IPV6_NET##*/}"
|
||||||
|
|
||||||
# Update nameserver
|
# Update nameserver
|
||||||
if "${LIB_DIR}/ns_update_add" "${domain:?}" "${ipv4:?}" "${ipv6:?}"
|
#if "${LIB_DIR}/ns_update_add" "${domain:?}" "${ipv4:?}" "${ipv6:?}"
|
||||||
then printf 'Successfully added %s to DNS server.\n' "${domain}" >>"${LOGFILE}"
|
# then printf 'Successfully added %s to DNS server.\n' "${domain}" >>"${LOGFILE}"
|
||||||
else printf 'ERROR! Failed to add %s %s %s to DNS server!\n' "${domain}" "${ipv4}" "${ipv6}" >>"${LOGFILE}"
|
# else printf 'ERROR! Failed to add %s %s %s to DNS server!\n' "${domain}" "${ipv4}" "${ipv6}" >>"${LOGFILE}"
|
||||||
fi &
|
#fi &
|
||||||
|
|
||||||
# Create SSL cert
|
# Create SSL cert
|
||||||
if ! sudo mkdir "${SSL_CONFIG_DIR:?}/${username:?}/"; then
|
#if ! sudo mkdir "${SSL_CONFIG_DIR:?}/${username:?}/"; then
|
||||||
printf 'Failed to create directory %s/%s/:\n' "${SSL_CONFIG_DIR}" "${username}" >>"${LOGFILE}"
|
# printf 'Failed to create directory %s/%s/:\n' "${SSL_CONFIG_DIR}" "${username}" >>"${LOGFILE}"
|
||||||
exit 7
|
# exit 7
|
||||||
fi
|
#fi
|
||||||
if "${LIB_DIR}/ssl_peer_add" "${hostname:?}" "${username:?}" "IP:${ipv4},IP:${ipv6}"
|
#if "${LIB_DIR}/ssl_peer_add" "${hostname:?}" "${username:?}" "IP:${ipv4},IP:${ipv6}"
|
||||||
then printf 'Successfully signed SSL certs for %s\n' "${domain}" >>"${LOGFILE}"
|
# then printf 'Successfully signed SSL certs for %s\n' "${domain}" >>"${LOGFILE}"
|
||||||
else printf 'ERROR! Failed to create certs for %s with IPS: %s %s!\n' "${domain}" "${ipv4}" "${ipv6}" >>"${LOGFILE}"
|
# else printf 'ERROR! Failed to create certs for %s with IPS: %s %s!\n' "${domain}" "${ipv4}" "${ipv6}" >>"${LOGFILE}"
|
||||||
fi
|
#fi
|
||||||
|
|
||||||
# Do the wireguard and tell the user
|
# Do the wireguard and tell the user
|
||||||
server_blocks=''
|
#server_blocks=''
|
||||||
while IFS=$'\t' read -r server_hostname server_ipv4 server_ipv6 server_pubkey server_endpoint server_admin server_secret; do
|
#while IFS=$'\t' read -r server_hostname server_ipv4 server_ipv6 server_pubkey server_endpoint server_admin server_secret; do
|
||||||
[[ ${server_hostname:0:1} = \# ]] && continue
|
# [[ ${server_hostname:0:1} = \# ]] && continue
|
||||||
server_psk="$(/usr/bin/wg genpsk)"
|
# server_psk="$(/usr/bin/wg genpsk)"
|
||||||
server_blocks="${server_blocks}\n[Peer] # ${server_hostname}.${TLD}\nPublicKey=${server_pubkey}\nPresharedKey=${server_psk}\nAllowedIPs=${server_ipv4}/32,${server_ipv6}/128\nEndpoint=${server_endpoint}\n"
|
# server_blocks="${server_blocks}\n[Peer] # ${server_hostname}.${TLD}\nPublicKey=${server_pubkey}\nPresharedKey=${server_psk}\nAllowedIPs=${server_ipv4}/32,${server_ipv6}/128\nEndpoint=${server_endpoint}\n"
|
||||||
if [ "${server_hostname}" == "${LOCAL_SERVER}" ]; then
|
# if [ "${server_hostname}" == "${LOCAL_SERVER}" ]; then
|
||||||
# Add new user to local server
|
# # Add new user to local server
|
||||||
if "${LIB_DIR}/wg_peer_add" "${pubkey}" "${server_psk}" "${ipv4}/32,${ipv6}/128"; then
|
# if "${LIB_DIR}/wg_peer_add" "${pubkey}" "${server_psk}" "${ipv4}/32,${ipv6}/128"; then
|
||||||
printf 'Added %s to local wireguard server.\n' "${domain}" >>"${LOGFILE}"
|
# printf 'Added %s to local wireguard server.\n' "${domain}" >>"${LOGFILE}"
|
||||||
else
|
# else
|
||||||
printf 'ERROR! Failed to add %s to local wireguard server!\n' "${domain}" >>"${LOGFILE}"
|
# printf 'ERROR! Failed to add %s to local wireguard server!\n' "${domain}" >>"${LOGFILE}"
|
||||||
# TODO: clear existing progress
|
# # TODO: clear existing progress
|
||||||
exit 15
|
# exit 15
|
||||||
fi
|
# fi
|
||||||
# TODO: Send new user config to federated server
|
# TODO: Send new user config to federated server
|
||||||
#else
|
#else
|
||||||
# if "${LIB_DIR}/fed_peer_add" "${server_admin}" "${pubkey}" "${server_psk}" "${ipv4}/32,${ipv6}/128" "${server_secret}"; then
|
# if "${LIB_DIR}/fed_peer_add" "${server_admin}" "${pubkey}" "${server_psk}" "${ipv4}/32,${ipv6}/128" "${server_secret}"; then
|
||||||
|
@ -149,7 +149,7 @@ while IFS=$'\t' read -r server_hostname server_ipv4 server_ipv6 server_pubkey se
|
||||||
# # TODO: clear existing progress
|
# # TODO: clear existing progress
|
||||||
# exit 16
|
# exit 16
|
||||||
#fi
|
#fi
|
||||||
fi
|
# fi
|
||||||
done <"${SERVERS_FILE}"
|
#done <"${SERVERS_FILE}"
|
||||||
wg_config="[Interface] # ${hostname}.${username}.${TLD}\nPrivateKey=${privkey:?}\nAddress=${address:?}\n${WG_DNS}\n${server_blocks:?}"
|
#wg_config="[Interface] # ${hostname}.${username}.${TLD}\nPrivateKey=${privkey:?}\nAddress=${address:?}\n${WG_DNS}\n${server_blocks:?}"
|
||||||
<<<"${wg_config}" "${LIB_DIR}/http_res" 202
|
#<<<"${wg_config}" "${LIB_DIR}/http_res" 202
|
||||||
|
|
|
@ -12,3 +12,5 @@
|
||||||
[ ] admin user deleting backend
|
[ ] admin user deleting backend
|
||||||
[ ] Let users download ssl certs
|
[ ] Let users download ssl certs
|
||||||
[ ] Show QR code with new config
|
[ ] Show QR code with new config
|
||||||
|
[ ] Clean up bash file headings
|
||||||
|
[ ] Deploy on GF4
|
Loading…
Reference in New Issue