pivpn/ciscripts/startup.sh
2022-08-01 22:38:19 +02:00

62 lines
1.2 KiB
Bash

#!/bin/bash
interface=$(ip -o link |
awk '{print $2}' |
cut -d ':' -f 1 |
cut -d '@' -f 1 |
grep -v -w 'lo' |
head -1)
ipaddress=$(ip addr show "${interface}" |
grep -o -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}/[0-9]{2}")
gateway=$(ip route show | awk '/default/ {print $3}')
hostname="pivpn.test"
err() {
echo "[$(date +'%Y-%m-%dT%H:%M:%S%z')]: $*" >&2
}
common() {
sed -i "s/INTERFACE/${interface}/g" "${vpnconfig}"
sed -i "s|IPADDRESS|${ipaddress}|g" "${vpnconfig}"
sed -i "s/GATEWAY/${gateway}/g" "${vpnconfig}"
}
openvpn() {
vpnconfig="ciscripts/ci_openvpn.conf"
twofour=1
common
sed -i "s/2POINT4/${twofour}/g" "${vpnconfig}"
cat "${vpnconfig}"
exit 0
}
wireguard() {
vpnconfig="ciscripts/ci_wireguard.conf"
common
cat "${vpnconfig}"
exit 0
}
if [[ "$#" -lt 1 ]]; then
err "specifiy a VPN protocol to prepare"
exit 1
else
chmod +x auto_install/install.sh
sudo hostnamectl set-hostname "${hostname}"
cat /etc/os-release
while true; do
case "${1}" in
-o | --openvpn)
openvpn
;;
-w | --wireguard)
wireguard
;;
*)
err "unknown vpn protocol"
exit 1
;;
esac
done
fi