Initial commit
This commit is contained in:
72
vpn.bash
Executable file
72
vpn.bash
Executable 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 $@
|
||||||
Reference in New Issue
Block a user