mirror of
https://github.com/pivpn/pivpn.git
synced 2024-12-18 19:00:15 +00:00
changes for devuan
- To simplify further additions to PLAT or OSCN, use the case command for checking - Treat Devuan as Debian - Add /sbin:/usr/sbin to PATH before calling ifconfig - Ensure net-tools is installed so we have ifconfig
This commit is contained in:
parent
a4cff2b65f
commit
2eb11cad0c
1 changed files with 110 additions and 85 deletions
|
@ -61,14 +61,14 @@ dhcpcdFile=/etc/dhcpcd.conf
|
||||||
# Next see if we are on a tested and supported OS
|
# Next see if we are on a tested and supported OS
|
||||||
function noOS_Support() {
|
function noOS_Support() {
|
||||||
whiptail --msgbox --backtitle "INVALID OS DETECTED" --title "Invalid OS" "We have not been able to detect a supported OS.
|
whiptail --msgbox --backtitle "INVALID OS DETECTED" --title "Invalid OS" "We have not been able to detect a supported OS.
|
||||||
Currently this installer supports Raspbian jessie, Ubuntu 14.04 (trusty), and Ubuntu 16.04 (xenial).
|
Currently this installer supports Raspbian (or Devuan) jessie, Ubuntu 14.04 (trusty), and Ubuntu 16.04 (xenial).
|
||||||
If you think you received this message in error, you can post an issue on the GitHub at https://github.com/pivpn/pivpn/issues." ${r} ${c}
|
If you think you received this message in error, you can post an issue on the GitHub at https://github.com/pivpn/pivpn/issues." ${r} ${c}
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
function maybeOS_Support() {
|
function maybeOS_Support() {
|
||||||
if (whiptail --backtitle "Not Supported OS" --title "Not Supported OS" --yesno "You are on an OS that we have not tested but MAY work.
|
if (whiptail --backtitle "Not Supported OS" --title "Not Supported OS" --yesno "You are on an OS that we have not tested but MAY work.
|
||||||
Currently this installer supports Raspbian jessie, Ubuntu 14.04 (trusty), and Ubuntu 16.04 (xenial).
|
Currently this installer supports Raspbian (or Devuan) jessie, Ubuntu 14.04 (trusty), and Ubuntu 16.04 (xenial).
|
||||||
Would you like to continue anyway?" ${r} ${c}) then
|
Would you like to continue anyway?" ${r} ${c}) then
|
||||||
echo "::: Did not detect perfectly supported OS but,"
|
echo "::: Did not detect perfectly supported OS but,"
|
||||||
echo "::: Continuing installation at user's own risk..."
|
echo "::: Continuing installation at user's own risk..."
|
||||||
|
@ -85,15 +85,22 @@ distro_check() {
|
||||||
PLAT=$(lsb_release -si)
|
PLAT=$(lsb_release -si)
|
||||||
OSCN=$(lsb_release -sc) # We want this to be trusty xenial or jessie
|
OSCN=$(lsb_release -sc) # We want this to be trusty xenial or jessie
|
||||||
|
|
||||||
if [[ $PLAT == "Ubuntu" || $PLAT == "Raspbian" || $PLAT == "Debian" ]]; then
|
case ${PLAT} in
|
||||||
if [[ $OSCN != "trusty" && $OSCN != "xenial" && $OSCN != "jessie" ]]; then
|
Ubuntu|Raspbian|Debian|Devuan)
|
||||||
maybeOS_Support
|
case ${OSCN} in
|
||||||
fi
|
trusty|xenial|jessie)
|
||||||
else
|
;;
|
||||||
|
*)
|
||||||
|
maybeOS_Support
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
noOS_Support
|
noOS_Support
|
||||||
fi
|
;;
|
||||||
|
esac
|
||||||
# else get info from os-release
|
# else get info from os-release
|
||||||
elif grep -q debian /etc/os-release; then
|
elif grep -q -e debian -e devuan /etc/os-release; then
|
||||||
if grep -q jessie /etc/os-release; then
|
if grep -q jessie /etc/os-release; then
|
||||||
PLAT="Raspbian"
|
PLAT="Raspbian"
|
||||||
OSCN="jessie"
|
OSCN="jessie"
|
||||||
|
@ -355,6 +362,7 @@ setStaticIPv4() {
|
||||||
|
|
||||||
setNetwork() {
|
setNetwork() {
|
||||||
# Sets the Network IP and Mask correctly
|
# Sets the Network IP and Mask correctly
|
||||||
|
export PATH=${PATH}:/sbin:/usr/sbin
|
||||||
LOCALMASK=$(ifconfig "${pivpnInterface}" | awk '/Mask:/{ print $4;} ' | cut -c6-)
|
LOCALMASK=$(ifconfig "${pivpnInterface}" | awk '/Mask:/{ print $4;} ' | cut -c6-)
|
||||||
LOCALIP=$(ifconfig "${pivpnInterface}" | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*')
|
LOCALIP=$(ifconfig "${pivpnInterface}" | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*')
|
||||||
IFS=. read -r i1 i2 i3 i4 <<< "$LOCALIP"
|
IFS=. read -r i1 i2 i3 i4 <<< "$LOCALIP"
|
||||||
|
@ -420,15 +428,19 @@ update_package_cache() {
|
||||||
timestampAsDate=$(date -d @"${timestamp}" "+%b %e")
|
timestampAsDate=$(date -d @"${timestamp}" "+%b %e")
|
||||||
today=$(date "+%b %e")
|
today=$(date "+%b %e")
|
||||||
|
|
||||||
if [[ ${PLAT} == "Ubuntu" || ${PLAT} == "Debian" ]]; then
|
case ${PLAT} in
|
||||||
if [[ ${OSCN} == "trusty" || ${OSCN} == "jessie" || ${OSCN} == "wheezy" ]]; then
|
Ubuntu|Debian|Devuan)
|
||||||
wget -O - https://swupdate.openvpn.net/repos/repo-public.gpg| $SUDO apt-key add -
|
case ${OSCN} in
|
||||||
echo "deb http://swupdate.openvpn.net/apt $OSCN main" | $SUDO tee /etc/apt/sources.list.d/swupdate.openvpn.net.list > /dev/null
|
trusty|jessie|wheezy)
|
||||||
echo -n "::: Adding OpenVPN repo for $PLAT $OSCN ..."
|
wget -O - https://swupdate.openvpn.net/repos/repo-public.gpg| $SUDO apt-key add -
|
||||||
$SUDO apt-get -qq update & spinner $!
|
echo "deb http://swupdate.openvpn.net/apt $OSCN main" | $SUDO tee /etc/apt/sources.list.d/swupdate.openvpn.net.list > /dev/null
|
||||||
echo " done!"
|
echo -n "::: Adding OpenVPN repo for $PLAT $OSCN ..."
|
||||||
fi
|
$SUDO apt-get -qq update & spinner $!
|
||||||
fi
|
echo " done!"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
if [ ! "${today}" == "${timestampAsDate}" ]; then
|
if [ ! "${today}" == "${timestampAsDate}" ]; then
|
||||||
#update package lists
|
#update package lists
|
||||||
|
@ -489,11 +501,14 @@ stopServices() {
|
||||||
# Stop openvpn
|
# Stop openvpn
|
||||||
$SUDO echo ":::"
|
$SUDO echo ":::"
|
||||||
$SUDO echo -n "::: Stopping OpenVPN service..."
|
$SUDO echo -n "::: Stopping OpenVPN service..."
|
||||||
if [[ $PLAT == "Ubuntu" || $PLAT == "Debian" ]]; then
|
case ${PLAT} in
|
||||||
$SUDO service openvpn stop || true
|
Ubuntu|Debian|Devuan)
|
||||||
else
|
$SUDO service openvpn stop || true
|
||||||
$SUDO systemctl stop openvpn.service || true
|
;;
|
||||||
fi
|
*)
|
||||||
|
$SUDO systemctl stop openvpn.service || true
|
||||||
|
;;
|
||||||
|
esac
|
||||||
$SUDO echo " done."
|
$SUDO echo " done."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -509,15 +524,19 @@ checkForDependencies() {
|
||||||
timestampAsDate=$(date -d @"$timestamp" "+%b %e")
|
timestampAsDate=$(date -d @"$timestamp" "+%b %e")
|
||||||
today=$(date "+%b %e")
|
today=$(date "+%b %e")
|
||||||
|
|
||||||
if [[ $PLAT == "Ubuntu" || $PLAT == "Debian" ]]; then
|
case ${PLAT} in
|
||||||
if [[ $OSCN == "trusty" || $OSCN == "jessie" || $OSCN == "wheezy" ]]; then
|
Ubuntu|Debian|Devuan)
|
||||||
wget -O - https://swupdate.openvpn.net/repos/repo-public.gpg| $SUDO apt-key add -
|
case ${OSCN} in
|
||||||
echo "deb http://swupdate.openvpn.net/apt $OSCN main" | $SUDO tee /etc/apt/sources.list.d/swupdate.openvpn.net.list > /dev/null
|
trusty|jessie|wheezy)
|
||||||
echo -n "::: Adding OpenVPN repo for $PLAT $OSCN ..."
|
wget -O - https://swupdate.openvpn.net/repos/repo-public.gpg| $SUDO apt-key add -
|
||||||
$SUDO apt-get -qq update & spinner $!
|
echo "deb http://swupdate.openvpn.net/apt $OSCN main" | $SUDO tee /etc/apt/sources.list.d/swupdate.openvpn.net.list > /dev/null
|
||||||
echo " done!"
|
echo -n "::: Adding OpenVPN repo for $PLAT $OSCN ..."
|
||||||
fi
|
$SUDO apt-get -qq update & spinner $!
|
||||||
fi
|
echo " done!"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
if [ ! "$today" == "$timestampAsDate" ]; then
|
if [ ! "$today" == "$timestampAsDate" ]; then
|
||||||
#update package lists
|
#update package lists
|
||||||
|
@ -541,7 +560,7 @@ checkForDependencies() {
|
||||||
echo ":::"
|
echo ":::"
|
||||||
echo "::: Checking dependencies:"
|
echo "::: Checking dependencies:"
|
||||||
|
|
||||||
dependencies=( openvpn git dhcpcd5 tar wget grep iptables-persistent dnsutils expect whiptail )
|
dependencies=( openvpn git dhcpcd5 tar wget grep iptables-persistent dnsutils expect whiptail net-tools)
|
||||||
for i in "${dependencies[@]}"; do
|
for i in "${dependencies[@]}"; do
|
||||||
echo -n "::: Checking for $i..."
|
echo -n "::: Checking for $i..."
|
||||||
if [ "$(dpkg-query -W -f='${Status}' "$i" 2>/dev/null | grep -c "ok installed")" -eq 0 ]; then
|
if [ "$(dpkg-query -W -f='${Status}' "$i" 2>/dev/null | grep -c "ok installed")" -eq 0 ]; then
|
||||||
|
@ -938,11 +957,14 @@ confNetwork() {
|
||||||
if [[ $noUFW -eq 1 ]]; then
|
if [[ $noUFW -eq 1 ]]; then
|
||||||
echo 1 > /tmp/noUFW
|
echo 1 > /tmp/noUFW
|
||||||
$SUDO iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o "$IPv4dev" -j MASQUERADE
|
$SUDO iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o "$IPv4dev" -j MASQUERADE
|
||||||
if [[ $PLAT == "Ubuntu" || $PLAT == "Debian" ]]; then
|
case ${PLAT} in
|
||||||
$SUDO iptables-save | $SUDO tee /etc/iptables/rules.v4 > /dev/null
|
Ubuntu|Debian|Devuan)
|
||||||
else
|
$SUDO iptables-save | $SUDO tee /etc/iptables/rules.v4 > /dev/null
|
||||||
$SUDO netfilter-persistent save
|
;;
|
||||||
fi
|
*)
|
||||||
|
$SUDO netfilter-persistent save
|
||||||
|
;;
|
||||||
|
esac
|
||||||
else
|
else
|
||||||
echo 0 > /tmp/noUFW
|
echo 0 > /tmp/noUFW
|
||||||
fi
|
fi
|
||||||
|
@ -1293,12 +1315,15 @@ main() {
|
||||||
|
|
||||||
echo "::: Restarting services..."
|
echo "::: Restarting services..."
|
||||||
# Start services
|
# Start services
|
||||||
if [[ $PLAT == "Ubuntu" || $PLAT == "Debian" ]]; then
|
case ${PLAT} in
|
||||||
$SUDO service openvpn start
|
Ubuntu|Debian|Devuan)
|
||||||
else
|
$SUDO service openvpn start
|
||||||
$SUDO systemctl enable openvpn.service
|
;;
|
||||||
$SUDO systemctl start openvpn.service
|
*)
|
||||||
fi
|
$SUDO systemctl enable openvpn.service
|
||||||
|
$SUDO systemctl start openvpn.service
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
echo "::: done."
|
echo "::: done."
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue