@@ -95,10 +95,12 @@ usage() {
95
95
echo " optional arguments:"
96
96
echo " -2 Enable two factor authentication using Google Authenticator."
97
97
echo " -a Authenticate packets with HMAC using the given message digest algorithm (auth)."
98
+ echo " -b Disable 'push block-outside-dns'"
98
99
echo " -c Enable client-to-client option"
99
100
echo " -C A list of allowable TLS ciphers delimited by a colon (cipher)."
100
- echo " -d Disable NAT routing and default route"
101
+ echo " -d Disable default route"
101
102
echo " -D Do not push dns servers"
103
+ echo " -k Set keepalive. Default: '10 60'"
102
104
echo " -m Set client MTU"
103
105
echo " -N Configure NAT to access external server network"
104
106
echo " -t Use TAP device (instead of TUN device)"
@@ -157,19 +159,22 @@ OVPN_NAT=0
157
159
OVPN_DNS=1
158
160
OVPN_DEVICE=" tun"
159
161
OVPN_DEVICEN=0
162
+ OVPN_KEEPALIVE=" 10 60"
160
163
OVPN_DNS_SERVERS=(" 8.8.8.8" " 8.8.4.4" )
161
164
TMP_DNS_SERVERS=()
162
165
OVPN_TLS_CIPHER=' '
163
166
OVPN_CIPHER=' '
164
167
OVPN_AUTH=' '
165
168
OVPN_EXTRA_CONFIG=' '
166
169
CUSTOM_ROUTE_CONFIG=' '
170
+ OVPN_COMP_LZO=0
171
+ OVPN_DISABLE_PUSH_BLOCK_DNS=0
167
172
168
173
# Import defaults if present
169
174
[ -r " $OVPN_ENV " ] && source " $OVPN_ENV "
170
175
171
176
# Parse arguments
172
- while getopts " :a:e:E:C:T:r:s:du:cp:n :DNmf:tz2" opt; do
177
+ while getopts " :a:e:E:C:T:r:s:du:bcp:n:k :DNmf:tz2" opt; do
173
178
case $opt in
174
179
a)
175
180
OVPN_AUTH=" $OPTARG "
@@ -195,10 +200,14 @@ while getopts ":a:e:E:C:T:r:s:du:cp:n:DNmf:tz2" opt; do
195
200
;;
196
201
d)
197
202
OVPN_DEFROUTE=0
203
+ OVPN_DISABLE_PUSH_BLOCK_DNS=1
198
204
;;
199
205
u)
200
206
OVPN_SERVER_URL=$OPTARG
201
207
;;
208
+ b)
209
+ OVPN_DISABLE_PUSH_BLOCK_DNS=1
210
+ ;;
202
211
c)
203
212
OVPN_CLIENT_TO_CLIENT=1
204
213
;;
@@ -214,6 +223,9 @@ while getopts ":a:e:E:C:T:r:s:du:cp:n:DNmf:tz2" opt; do
214
223
N)
215
224
OVPN_NAT=1
216
225
;;
226
+ k)
227
+ OVPN_KEEPALIVE=" $OPTARG "
228
+ ;;
217
229
m)
218
230
OVPN_MTU=$OPTARG
219
231
;;
265
277
# Apply defaults
266
278
[ -z " $OVPN_PROTO " ] && OVPN_PROTO=udp
267
279
[ -z " $OVPN_PORT " ] && OVPN_PORT=1194
268
- [ -z " $CUSTOM_ROUTE_CONFIG " ] && process_route_config " 192.168.254.0/24"
280
+ [ -z " $CUSTOM_ROUTE_CONFIG " ] && [ " $OVPN_DEFROUTE " == " 1 " ] && process_route_config " 192.168.254.0/24"
269
281
270
282
# Save extra client config from temp file only if temp file is not empty
271
283
if [ -s " $TMP_EXTRA_CLIENT_CONFIGFILE " ]; then
@@ -277,6 +289,7 @@ export OVPN_SERVER_URL OVPN_ENV OVPN_PROTO OVPN_CN OVPN_PORT
277
289
export OVPN_CLIENT_TO_CLIENT OVPN_PUSH OVPN_NAT OVPN_DNS OVPN_MTU OVPN_DEVICE
278
290
export OVPN_TLS_CIPHER OVPN_CIPHER OVPN_AUTH
279
291
export OVPN_COMP_LZO
292
+ export OVPN_DISABLE_PUSH_BLOCK_DNS
280
293
export OVPN_OTP_AUTH
281
294
export OVPN_FRAGMENT
282
295
export OVPN_ADDITIONAL_CLIENT_CONFIG
@@ -316,7 +329,7 @@ cert $EASYRSA_PKI/issued/${OVPN_CN}.crt
316
329
dh $EASYRSA_PKI /dh.pem
317
330
tls-auth $EASYRSA_PKI /ta.key
318
331
key-direction 0
319
- keepalive 10 60
332
+ keepalive $OVPN_KEEPALIVE
320
333
persist-key
321
334
persist-tun
322
335
@@ -330,15 +343,18 @@ user nobody
330
343
group nogroup
331
344
EOF
332
345
333
- # only block outside dns when we take the default route
334
- [ " $OVPN_DEFROUTE " == " 1" ] && process_push_config " block-outside-dns"
346
+ if [ " ${OVPN_DISABLE_PUSH_BLOCK_DNS} " == " 1" ]; then
347
+ echo " Disable default push of 'block-outside-dns'"
348
+ else
349
+ process_push_config " block-outside-dns"
350
+ fi
335
351
336
352
[ -n " $OVPN_TLS_CIPHER " ] && echo " tls-cipher $OVPN_TLS_CIPHER " >> " $conf "
337
353
[ -n " $OVPN_CIPHER " ] && echo " cipher $OVPN_CIPHER " >> " $conf "
338
354
[ -n " $OVPN_AUTH " ] && echo " auth $OVPN_AUTH " >> " $conf "
339
355
340
356
[ -n " ${OVPN_CLIENT_TO_CLIENT:- } " ] && echo " client-to-client" >> " $conf "
341
- [ -n " ${ OVPN_COMP_LZO:- } " ] && echo " comp-lzo" >> " $conf "
357
+ [ " $ OVPN_COMP_LZO" == " 1 " ] && echo " comp-lzo" >> " $conf "
342
358
343
359
[ -n " ${OVPN_FRAGMENT:- } " ] && echo " fragment $OVPN_FRAGMENT " >> " $conf "
344
360
0 commit comments