Initial commit

This commit is contained in:
2024-12-08 20:08:12 +00:00
commit 0322faeaf3

72
vpn.bash Executable file
View File

@@ -0,0 +1,72 @@
#!/usr/bin/env bash
function stopvpn() {
mapfile -t vpn_pid <<< "$(pgrep openfortivpn)$(pgrep openvpn)"
for pid in ${vpn_pid[@]}; do
if [[ -n "$pid" ]]; then
echo "Kill process $pid."
sudo kill "$pid"
fi
done
if [[ -e /etc/systemd/resolved.conf.d/openvpn.conf ]]; then
sudo rm /etc/systemd/resolved.conf.d/openvpn.conf
sudo systemctl reload systemd-resolved
fi
}
function fortivpn() {
read -e -p 'Password: ' -s pass
echo "Start openfortivpn with realm $1."
sudo sh <<EOF
openfortivpn \
ccvpn.it.cs.nycu.edu.tw \
--username "$USER" \
--realm "$1" \
--password "$pass" \
>/dev/null </dev/null 2>/dev/null & disown
EOF
}
function ovpn() {
echo "Start openvpn."
# Workaround, since openvpn didn't accept dns option for no reason
sudo mkdir -p /etc/systemd/resolved.conf.d/
cat > /tmp/vpn-resolved << 'EOF'
[Resolve]
DNS=192.168.10.254
Domains=konchin.com
EOF
sudo mv /tmp/vpn-resolved /etc/systemd/resolved.conf.d/openvpn.conf
sudo systemctl reload systemd-resolved
sudo sh <<EOF
openvpn --config "$1" \
>/dev/null </dev/null 2>/dev/null & disown
EOF
}
function main() {
case "$1" in
s|stop)
stopvpn
;;
p|prod)
stopvpn
fortivpn prod
;;
t|test)
stopvpn
fortivpn test
;;
h|home)
stopvpn
ovpn "$HOME/.secret/openvpn/desktop.ovpn"
;;
esac
}
main $@