fix vpn host naming
[distro-setup] / vpn-mail-forward
1 #!/bin/bash
2
3 set -eE -o pipefail
4 trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
5 m() { printf "%s\n" "$*"; "$@"; }
6 gw=$(/usr/sbin/ip route | sed -rn 's/^default via .* dev (\S+).*/\1/p')
7 do-forward() {
8 cmd=$1; shift
9 for port; do
10 m /sbin/iptables -t nat $cmd PREROUTING -i $gw -p tcp -m tcp --dport $port -j DNAT --to-destination 10.8.0.4:$port
11 # we could leave these on all the time but its convenient to do it here
12 done
13 m /sbin/iptables $cmd FORWARD -i tun+ -o $gw -j ACCEPT
14 m /sbin/iptables $cmd FORWARD -i $gw -o tun+ -j ACCEPT
15 }
16
17 ports=(25 143 587)
18 case $1 in
19 start)
20 do-forward -A ${ports[@]}
21 ;;
22 stop)
23 do-forward -D ${ports[@]}
24 ;;
25 *)
26 echo "$0: error: expected 1 argument of start or stop"
27 exit 1
28 ;;
29 esac