Skip to content

Commit e3d7d38

Browse files
committed
Improve VPN setup
- Retrieve latest supported Libreswan version before install - Cleanup
1 parent a4e4f45 commit e3d7d38

File tree

4 files changed

+80
-140
lines changed

4 files changed

+80
-140
lines changed

vpnsetup_alpine.sh

Lines changed: 20 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ check_vz() {
6060

6161
check_os() {
6262
os_type=$(lsb_release -si 2>/dev/null)
63-
os_arch=$(uname -m | tr -dc 'A-Za-z0-9_-')
6463
[ -z "$os_type" ] && [ -f /etc/os-release ] && os_type=$(. /etc/os-release && printf '%s' "$ID")
6564
case $os_type in
6665
[Aa]lpine)
@@ -133,9 +132,6 @@ check_dns() {
133132

134133
start_setup() {
135134
bigecho "VPN setup in progress... Please be patient."
136-
# shellcheck disable=SC2154
137-
trap 'dlo=$dl;dl=$LINENO' DEBUG 2>/dev/null
138-
trap 'finish $? $((dlo+1))' EXIT
139135
mkdir -p /opt/src
140136
cd /opt/src || exit 1
141137
}
@@ -174,18 +170,17 @@ install_fail2ban() {
174170
) || exiterr2
175171
}
176172

177-
get_ikev2_script() {
178-
bigecho "Downloading IKEv2 script..."
179-
ikev2_url="https://github.com/hwdsl2/setup-ipsec-vpn/raw/master/extras/ikev2setup.sh"
180-
(
181-
set -x
182-
wget -t 3 -T 30 -q -O ikev2.sh "$ikev2_url"
183-
) || /bin/rm -f ikev2.sh
184-
[ -s ikev2.sh ] && chmod +x ikev2.sh && ln -s /opt/src/ikev2.sh /usr/bin 2>/dev/null
173+
get_swan_ver() {
174+
base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0"
175+
swan_ver_url="$base_url/swanver-$os_type-$os_ver"
176+
swan_ver_latest=$(wget -t 3 -T 15 -qO- "$swan_ver_url" | head -n 1)
177+
SWAN_VER=4.6
178+
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then
179+
SWAN_VER="$swan_ver_latest"
180+
fi
185181
}
186182

187183
check_libreswan() {
188-
SWAN_VER=4.6
189184
ipsec_ver=$(/usr/local/sbin/ipsec --version 2>/dev/null)
190185
swan_ver_old=$(printf '%s' "$ipsec_ver" | sed -e 's/.*Libreswan U\?//' -e 's/\( (\|\/K\).*//')
191186
[ "$swan_ver_old" = "$SWAN_VER" ]
@@ -235,6 +230,16 @@ EOF
235230
fi
236231
}
237232

233+
get_ikev2_script() {
234+
bigecho "Downloading IKEv2 script..."
235+
ikev2_url="https://github.com/hwdsl2/setup-ipsec-vpn/raw/master/extras/ikev2setup.sh"
236+
(
237+
set -x
238+
wget -t 3 -T 30 -q -O ikev2.sh "$ikev2_url"
239+
) || /bin/rm -f ikev2.sh
240+
[ -s ikev2.sh ] && chmod +x ikev2.sh && ln -s /opt/src/ikev2.sh /usr/bin 2>/dev/null
241+
}
242+
238243
create_vpn_config() {
239244
bigecho "Creating VPN configuration..."
240245

@@ -497,27 +502,6 @@ IKEv2 guide: https://git.io/ikev2
497502
EOF
498503
}
499504

500-
check_swan_ver() {
501-
swan_ver_url="https://dl.ls20.com/v1/$os_type/$os_ver/swanver?arch=$os_arch&ver=$SWAN_VER"
502-
[ "$1" != "0" ] && swan_ver_url="$swan_ver_url&e=$2"
503-
swan_ver_latest=$(wget -t 3 -T 15 -qO- "$swan_ver_url" | head -n 1)
504-
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$' \
505-
&& [ "$1" = "0" ] && [ -n "$SWAN_VER" ] && [ "$SWAN_VER" != "$swan_ver_latest" ] \
506-
&& printf '%s\n%s' "$SWAN_VER" "$swan_ver_latest" | sort -C -V; then
507-
cat <<EOF
508-
Note: A newer version of Libreswan ($swan_ver_latest) is available.
509-
To update, run:
510-
wget https://git.io/vpnupgrade -O vpnup.sh && sudo sh vpnup.sh
511-
512-
EOF
513-
fi
514-
}
515-
516-
finish() {
517-
check_swan_ver "$1" "$2"
518-
exit "$1"
519-
}
520-
521505
vpnsetup() {
522506
check_root
523507
check_vz
@@ -530,9 +514,10 @@ vpnsetup() {
530514
detect_ip
531515
install_vpn_pkgs
532516
install_fail2ban
533-
get_ikev2_script
517+
get_swan_ver
534518
get_libreswan
535519
install_libreswan
520+
get_ikev2_script
536521
create_vpn_config
537522
update_sysctl
538523
update_iptables

vpnsetup_amzn.sh

Lines changed: 20 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ check_root() {
5353
}
5454

5555
check_os() {
56-
os_arch=$(uname -m | tr -dc 'A-Za-z0-9_-')
5756
if ! grep -qs "Amazon Linux release 2" /etc/system-release; then
5857
exiterr "This script only supports Amazon Linux 2."
5958
fi
@@ -115,9 +114,6 @@ check_dns() {
115114

116115
start_setup() {
117116
bigecho "VPN setup in progress... Please be patient."
118-
# shellcheck disable=SC2154
119-
trap 'dlo=$dl;dl=$LINENO' DEBUG 2>/dev/null
120-
trap 'finish $? $((dlo+1))' EXIT
121117
mkdir -p /opt/src
122118
cd /opt/src || exit 1
123119
}
@@ -174,18 +170,17 @@ install_fail2ban() {
174170
) || exiterr2
175171
}
176172

177-
get_ikev2_script() {
178-
bigecho "Downloading IKEv2 script..."
179-
ikev2_url="https://github.com/hwdsl2/setup-ipsec-vpn/raw/master/extras/ikev2setup.sh"
180-
(
181-
set -x
182-
wget -t 3 -T 30 -q -O ikev2.sh "$ikev2_url"
183-
) || /bin/rm -f ikev2.sh
184-
[ -s ikev2.sh ] && chmod +x ikev2.sh && ln -s /opt/src/ikev2.sh /usr/bin 2>/dev/null
173+
get_swan_ver() {
174+
base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0"
175+
swan_ver_url="$base_url/swanver-amzn-2"
176+
swan_ver_latest=$(wget -t 3 -T 15 -qO- "$swan_ver_url" | head -n 1)
177+
SWAN_VER=4.6
178+
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then
179+
SWAN_VER="$swan_ver_latest"
180+
fi
185181
}
186182

187183
check_libreswan() {
188-
SWAN_VER=4.6
189184
ipsec_ver=$(/usr/local/sbin/ipsec --version 2>/dev/null)
190185
swan_ver_old=$(printf '%s' "$ipsec_ver" | sed -e 's/.*Libreswan U\?//' -e 's/\( (\|\/K\).*//')
191186
[ "$swan_ver_old" = "$SWAN_VER" ]
@@ -237,6 +232,16 @@ EOF
237232
fi
238233
}
239234

235+
get_ikev2_script() {
236+
bigecho "Downloading IKEv2 script..."
237+
ikev2_url="https://github.com/hwdsl2/setup-ipsec-vpn/raw/master/extras/ikev2setup.sh"
238+
(
239+
set -x
240+
wget -t 3 -T 30 -q -O ikev2.sh "$ikev2_url"
241+
) || /bin/rm -f ikev2.sh
242+
[ -s ikev2.sh ] && chmod +x ikev2.sh && ln -s /opt/src/ikev2.sh /usr/bin 2>/dev/null
243+
}
244+
240245
create_vpn_config() {
241246
bigecho "Creating VPN configuration..."
242247

@@ -510,27 +515,6 @@ IKEv2 guide: https://git.io/ikev2
510515
EOF
511516
}
512517

513-
check_swan_ver() {
514-
swan_ver_url="https://dl.ls20.com/v1/amzn/2/swanver?arch=$os_arch&ver=$SWAN_VER"
515-
[ "$1" != "0" ] && swan_ver_url="$swan_ver_url&e=$2"
516-
swan_ver_latest=$(wget -t 3 -T 15 -qO- "$swan_ver_url" | head -n 1)
517-
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$' \
518-
&& [ "$1" = "0" ] && [ -n "$SWAN_VER" ] && [ "$SWAN_VER" != "$swan_ver_latest" ] \
519-
&& printf '%s\n%s' "$SWAN_VER" "$swan_ver_latest" | sort -C -V; then
520-
cat <<EOF
521-
Note: A newer version of Libreswan ($swan_ver_latest) is available.
522-
To update, run:
523-
wget https://git.io/vpnupgrade -O vpnup.sh && sudo sh vpnup.sh
524-
525-
EOF
526-
fi
527-
}
528-
529-
finish() {
530-
check_swan_ver "$1" "$2"
531-
exit "$1"
532-
}
533-
534518
vpnsetup() {
535519
check_root
536520
check_os
@@ -544,9 +528,10 @@ vpnsetup() {
544528
install_vpn_pkgs_1
545529
install_vpn_pkgs_2
546530
install_fail2ban
547-
get_ikev2_script
531+
get_swan_ver
548532
get_libreswan
549533
install_libreswan
534+
get_ikev2_script
550535
create_vpn_config
551536
create_f2b_config
552537
update_sysctl

vpnsetup_centos.sh

Lines changed: 20 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ check_vz() {
6262

6363
check_os() {
6464
os_type=centos
65-
os_arch=$(uname -m | tr -dc 'A-Za-z0-9_-')
6665
rh_file="/etc/redhat-release"
6766
if grep -qs "Red Hat" "$rh_file"; then
6867
os_type=rhel
@@ -135,9 +134,6 @@ check_dns() {
135134

136135
start_setup() {
137136
bigecho "VPN setup in progress... Please be patient."
138-
# shellcheck disable=SC2154
139-
trap 'dlo=$dl;dl=$LINENO' DEBUG 2>/dev/null
140-
trap 'finish $? $((dlo+1))' EXIT
141137
mkdir -p /opt/src
142138
cd /opt/src || exit 1
143139
}
@@ -229,18 +225,17 @@ install_fail2ban() {
229225
) || exiterr2
230226
}
231227

232-
get_ikev2_script() {
233-
bigecho "Downloading IKEv2 script..."
234-
ikev2_url="https://github.com/hwdsl2/setup-ipsec-vpn/raw/master/extras/ikev2setup.sh"
235-
(
236-
set -x
237-
wget -t 3 -T 30 -q -O ikev2.sh "$ikev2_url"
238-
) || /bin/rm -f ikev2.sh
239-
[ -s ikev2.sh ] && chmod +x ikev2.sh && ln -s /opt/src/ikev2.sh /usr/bin 2>/dev/null
228+
get_swan_ver() {
229+
base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0"
230+
swan_ver_url="$base_url/swanver-$os_type-$os_ver"
231+
swan_ver_latest=$(wget -t 3 -T 15 -qO- "$swan_ver_url" | head -n 1)
232+
SWAN_VER=4.6
233+
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then
234+
SWAN_VER="$swan_ver_latest"
235+
fi
240236
}
241237

242238
check_libreswan() {
243-
SWAN_VER=4.6
244239
ipsec_ver=$(/usr/local/sbin/ipsec --version 2>/dev/null)
245240
swan_ver_old=$(printf '%s' "$ipsec_ver" | sed -e 's/.*Libreswan U\?//' -e 's/\( (\|\/K\).*//')
246241
[ "$swan_ver_old" = "$SWAN_VER" ]
@@ -292,6 +287,16 @@ EOF
292287
fi
293288
}
294289

290+
get_ikev2_script() {
291+
bigecho "Downloading IKEv2 script..."
292+
ikev2_url="https://github.com/hwdsl2/setup-ipsec-vpn/raw/master/extras/ikev2setup.sh"
293+
(
294+
set -x
295+
wget -t 3 -T 30 -q -O ikev2.sh "$ikev2_url"
296+
) || /bin/rm -f ikev2.sh
297+
[ -s ikev2.sh ] && chmod +x ikev2.sh && ln -s /opt/src/ikev2.sh /usr/bin 2>/dev/null
298+
}
299+
295300
create_vpn_config() {
296301
bigecho "Creating VPN configuration..."
297302

@@ -606,27 +611,6 @@ IKEv2 guide: https://git.io/ikev2
606611
EOF
607612
}
608613

609-
check_swan_ver() {
610-
swan_ver_url="https://dl.ls20.com/v1/$os_type/$os_ver/swanver?arch=$os_arch&ver=$SWAN_VER"
611-
[ "$1" != "0" ] && swan_ver_url="$swan_ver_url&e=$2"
612-
swan_ver_latest=$(wget -t 3 -T 15 -qO- "$swan_ver_url" | head -n 1)
613-
if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$' \
614-
&& [ "$1" = "0" ] && [ -n "$SWAN_VER" ] && [ "$SWAN_VER" != "$swan_ver_latest" ] \
615-
&& printf '%s\n%s' "$SWAN_VER" "$swan_ver_latest" | sort -C -V; then
616-
cat <<EOF
617-
Note: A newer version of Libreswan ($swan_ver_latest) is available.
618-
To update, run:
619-
wget https://git.io/vpnupgrade -O vpnup.sh && sudo sh vpnup.sh
620-
621-
EOF
622-
fi
623-
}
624-
625-
finish() {
626-
check_swan_ver "$1" "$2"
627-
exit "$1"
628-
}
629-
630614
vpnsetup() {
631615
check_root
632616
check_vz
@@ -642,9 +626,10 @@ vpnsetup() {
642626
install_vpn_pkgs_2
643627
install_vpn_pkgs_3
644628
install_fail2ban
645-
get_ikev2_script
629+
get_swan_ver
646630
get_libreswan
647631
install_libreswan
632+
get_ikev2_script
648633
create_vpn_config
649634
create_f2b_config
650635
update_sysctl

0 commit comments

Comments
 (0)