move iptables/nat functionality to a function (setupIptablesAndRouting)

This allows iptables rule update to be overridden by creating/supplying
that function in, for example, ovpn_env.sh
This commit is contained in:
r0p0s3c 2017-02-14 15:34:24 -05:00
parent f4351bb0dd
commit a2adb59d69

View File

@ -35,6 +35,18 @@ function addArg {
fi fi
} }
function setupIptablesAndRouting {
iptables -t nat -C POSTROUTING -s $OVPN_SERVER -o $OVPN_NATDEVICE -j MASQUERADE || {
iptables -t nat -A POSTROUTING -s $OVPN_SERVER -o $OVPN_NATDEVICE -j MASQUERADE
}
for i in "${OVPN_ROUTES[@]}"; do
iptables -t nat -C POSTROUTING -s "$i" -o $OVPN_NATDEVICE -j MASQUERADE || {
iptables -t nat -A POSTROUTING -s "$i" -o $OVPN_NATDEVICE -j MASQUERADE
}
done
}
addArg "--config" "$OPENVPN/openvpn.conf" addArg "--config" "$OPENVPN/openvpn.conf"
source "$OPENVPN/ovpn_env.sh" source "$OPENVPN/ovpn_env.sh"
@ -53,14 +65,7 @@ fi
# Setup NAT forwarding if requested # Setup NAT forwarding if requested
if [ "$OVPN_DEFROUTE" != "0" ] || [ "$OVPN_NAT" == "1" ] ; then if [ "$OVPN_DEFROUTE" != "0" ] || [ "$OVPN_NAT" == "1" ] ; then
iptables -t nat -C POSTROUTING -s $OVPN_SERVER -o $OVPN_NATDEVICE -j MASQUERADE || { setupIptablesAndRouting
iptables -t nat -A POSTROUTING -s $OVPN_SERVER -o $OVPN_NATDEVICE -j MASQUERADE
}
for i in "${OVPN_ROUTES[@]}"; do
iptables -t nat -C POSTROUTING -s "$i" -o $OVPN_NATDEVICE -j MASQUERADE || {
iptables -t nat -A POSTROUTING -s "$i" -o $OVPN_NATDEVICE -j MASQUERADE
}
done
fi fi
# Use a hacky hardlink as the CRL Needs to be readable by the user/group # Use a hacky hardlink as the CRL Needs to be readable by the user/group
@ -85,4 +90,3 @@ fi
echo "Running 'openvpn ${ARGS[@]} ${USER_ARGS[@]}'" echo "Running 'openvpn ${ARGS[@]} ${USER_ARGS[@]}'"
exec openvpn ${ARGS[@]} ${USER_ARGS[@]} exec openvpn ${ARGS[@]} ${USER_ARGS[@]}