Small fixes
parent
14f2e426c2
commit
61239e55fd
|
@ -29,7 +29,7 @@ ip="${1}"
|
||||||
qs="$(<<<"${2}" tr '&' '\n' | sed 's/?//')"
|
qs="$(<<<"${2}" tr '&' '\n' | sed 's/?//')"
|
||||||
|
|
||||||
# Check hostname
|
# Check hostname
|
||||||
hostname="$(<<<"${qs}" grep -oP 'name=(.*)' | xargs | tr -dc 'a-z0-9' | head -c10)"
|
hostname="$(<<<"${qs}" grep -oP 'name=(.*)' | sed 's/^name//' | xargs | tr -dc 'a-z0-9' | head -c10)"
|
||||||
printf '%s requested new peer with hostname %s\n' "${ip}" "${hostname}" >>"${LOGFILE}"
|
printf '%s requested new peer with hostname %s\n' "${ip}" "${hostname}" >>"${LOGFILE}"
|
||||||
[[ ${#hostname} -ge 3 ]] || (
|
[[ ${#hostname} -ge 3 ]] || (
|
||||||
printf 'Rejecting hostname %s because it is too short.\n' "${hostname}" >>"${LOGFILE}"
|
printf 'Rejecting hostname %s because it is too short.\n' "${hostname}" >>"${LOGFILE}"
|
||||||
|
@ -50,7 +50,7 @@ saved_token="$(grep "${ip}" "${TOKENS_FILE}" | cut -f2)"
|
||||||
# Check user
|
# Check user
|
||||||
username="$("${LIB_DIR}/ns_lookup_rdns" "${REMOTE_ADDR}" | cut -d'.' -f2)" || (
|
username="$("${LIB_DIR}/ns_lookup_rdns" "${REMOTE_ADDR}" | cut -d'.' -f2)" || (
|
||||||
printf 'User not found for %s\n' "${REMOTE_ADDR}" >>"${LOGFILE}"
|
printf 'User not found for %s\n' "${REMOTE_ADDR}" >>"${LOGFILE}"
|
||||||
printf 'User not found' | "${LIB)DIR}/http_res" 403
|
printf 'User not found' | "${LIB_DIR}/http_res" 403
|
||||||
exit 17
|
exit 17
|
||||||
)
|
)
|
||||||
printf '%s identified as %s.%s\n' "${ip}" "${hostname}" "${username}" >>"${LOGFILE}"
|
printf '%s identified as %s.%s\n' "${ip}" "${hostname}" "${username}" >>"${LOGFILE}"
|
||||||
|
@ -66,9 +66,9 @@ printf '%s' "${hostnames}" | grep -o "${hostname}" && (
|
||||||
# Collect/parse existing peer data
|
# Collect/parse existing peer data
|
||||||
# Create new IPs
|
# Create new IPs
|
||||||
peers="$(sudo "${LIB_DIR}/wg_peer_list" "${1}" tsv)" || exit 10
|
peers="$(sudo "${LIB_DIR}/wg_peer_list" "${1}" tsv)" || exit 10
|
||||||
hostnames="$(<<<"${peers}" awk '{print $0}' | cut -d'.' -f1)"
|
hostnames="$(<<<"${peers}" awk '{print $1}' | cut -d'.' -f1)"
|
||||||
ipv4s="$(<<<"${peers}" awk '{print $1}')"
|
ipv4s="$(<<<"${peers}" awk '{print $2}')"
|
||||||
ipv6s="$(<<<"${peers}" awk '{print $2}')"
|
ipv6s="$(<<<"${peers}" awk '{print $3}')"
|
||||||
usernumber="$(<<<"${ipv4s}" head -n1 | cut -d'.' -f3)"
|
usernumber="$(<<<"${ipv4s}" head -n1 | cut -d'.' -f3)"
|
||||||
used_ips="$(<<<"${ipv4s}" cut -d'.' -f3)\n$(<<<"${ipv6s}" cut -d'.' -f3)"
|
used_ips="$(<<<"${ipv4s}" cut -d'.' -f3)\n$(<<<"${ipv6s}" cut -d'.' -f3)"
|
||||||
used_hostnumbers="$(<<<"${used_ips}" sort | uniq)"
|
used_hostnumbers="$(<<<"${used_ips}" sort | uniq)"
|
||||||
|
@ -78,7 +78,7 @@ while printf '%s' "${used_hostnumbers}" | grep "${hostnumber}"
|
||||||
done
|
done
|
||||||
ipv4="${IPV4_NET%.*.*}.${usernumber}.${hostnumber}"
|
ipv4="${IPV4_NET%.*.*}.${usernumber}.${hostnumber}"
|
||||||
ipv6="${IPV6_NET%:*:*}:${usernumber}:${hostnumber}"
|
ipv6="${IPV6_NET%:*:*}:${usernumber}:${hostnumber}"
|
||||||
printf 'IP addresses for %s created:\t$%s %s\n' "${domain}" "${ipv4}" "${ipv6}" >>"${LOGFILE}"
|
printf 'IP addresses for %s created: %s %s\n' "${domain}" "${ipv4}" "${ipv6}" >>"${LOGFILE}"
|
||||||
# TODO: Check it or exit 11
|
# TODO: Check it or exit 11
|
||||||
|
|
||||||
# Create wg config
|
# Create wg config
|
||||||
|
@ -87,6 +87,7 @@ pubkey="$(echo "${privkey}" | /usr/bin/wg pubkey)"
|
||||||
address="${ipv4}/${IPV4_NET##*/},${ipv6}/${IPV6_NET##*/}"
|
address="${ipv4}/${IPV4_NET##*/},${ipv6}/${IPV6_NET##*/}"
|
||||||
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 # Ignore comments
|
||||||
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}" ]
|
if [ "${server_hostname}" == "${LOCAL_SERVER}" ]
|
||||||
|
@ -103,7 +104,7 @@ while IFS=$'\t' read -r server_hostname server_ipv4 server_ipv6 server_pubkey se
|
||||||
# TODO: clear existing progress and exit 16
|
# TODO: clear existing progress and exit 16
|
||||||
)
|
)
|
||||||
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}"
|
||||||
|
|
||||||
# Respond to user
|
# Respond to user
|
||||||
|
|
Loading…
Reference in New Issue