Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include optional configuration options #28

Merged
merged 5 commits into from
Jan 18, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 18 additions & 5 deletions bin/ovpn_genconfig
Original file line number Diff line number Diff line change
Expand Up @@ -41,21 +41,26 @@ usage() {
echo "optional arguments:"
echo " -d Disable NAT routing and default route"
echo " -c Enable client-to-client option"
echo " -D Disable built in external dns (google dns)"
echo " -N Configure NAT to access external server network"
echo " -m Set client MTU"
}

set -ex

OVPN_ENV=$OPENVPN/ovpn_env.sh
OVPN_SERVER=192.168.255.0/24
OVPN_DEFROUTE=1
OVPN_NAT=0
OVPN_DNS=1
OVPN_ROUTES=()
OVPN_PUSH=()

# Import defaults if present
[ -r "$OVPN_ENV" ] && source "$OVPN_ENV"

# Parse arguments
while getopts ":r:s:du:cp:" opt; do
while getopts ":r:s:du:cp:DNm:" opt; do
case $opt in
r)
OVPN_ROUTES+=("$OPTARG")
Expand All @@ -75,6 +80,15 @@ while getopts ":r:s:du:cp:" opt; do
p)
OVPN_PUSH+=("$OPTARG")
;;
D)
OVPN_DNS=0
;;
N)
OVPN_NAT=1
;;
m)
OVPN_MTU=$OPTARG
;;
\?)
set +x
echo "Invalid option: -$OPTARG" >&2
Expand Down Expand Up @@ -110,7 +124,7 @@ fi

export OVPN_SERVER OVPN_ROUTES OVPN_DEFROUTE
export OVPN_SERVER_URL OVPN_ENV OVPN_PROTO OVPN_CN OVPN_PORT
export OVPN_CLIENT_TO_CLIENT OVPN_PUSH
export OVPN_CLIENT_TO_CLIENT OVPN_PUSH OVPN_NAT OVPN_DNS OVPN_MTU

# Preserve config
if [ -f "$OVPN_ENV" ]; then
Expand Down Expand Up @@ -140,8 +154,6 @@ key-direction 0
keepalive 10 60
persist-key
persist-tun
push "dhcp-option DNS 8.8.4.4"
push "dhcp-option DNS 8.8.8.8"

proto $OVPN_PROTO
# Rely on Docker to do port mapping, internally always 1194
Expand All @@ -156,7 +168,8 @@ group nogroup
EOF

[ -n "$OVPN_CLIENT_TO_CLIENT" ] && echo "client-to-client" >> "$conf"

[ "$OVPN_DNS" == "1" ] && echo push "dhcp-option DNS 8.8.4.4" >> "$conf"
[ "$OVPN_DNS" == "1" ] && echo push "dhcp-option DNS 8.8.8.8" >> "$conf"
# Append Routes
for i in "${OVPN_ROUTES[@]}"; do
# If user passed "0" skip this, assume no extra routes
Expand Down
2 changes: 2 additions & 0 deletions bin/ovpn_getclient
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,5 @@ EOF
if [ "$OVPN_DEFROUTE" != "0" ];then
echo "redirect-gateway def1"
fi

[ -n "$OVPN_MTU" ] && echo "tun-mtu $OVPN_MTU"
2 changes: 1 addition & 1 deletion bin/ovpn_run
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ if [ ! -d "$OPENVPN/ccd" ]; then
fi

# Setup NAT forwarding if requested
if [ "$OVPN_DEFROUTE" != "0" ];then
if [ "$OVPN_DEFROUTE" != "0" ] || [ "$OVPN_NAT" == "1" ] ; then
iptables -t nat -C POSTROUTING -s $OVPN_SERVER -o eth0 -j MASQUERADE || {
iptables -t nat -A POSTROUTING -s $OVPN_SERVER -o eth0 -j MASQUERADE
}
Expand Down