Refactor openFirewall() and add support for x11vnc/vncserver
This commit is contained in:
59
installJRMC
59
installJRMC
@@ -900,11 +900,14 @@ EOF"
|
|||||||
|
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Open the default JRiver Media Center ports using the system firewall tool
|
# Opens ports using the system firewall tool
|
||||||
|
# Arguments
|
||||||
|
# Takes one argument, the pre-specified name of the service to enable
|
||||||
# Requires:
|
# Requires:
|
||||||
# ID
|
# ID
|
||||||
# _bash_cmd
|
# _bash_cmd
|
||||||
# _firewall_cmd
|
# _firewall_cmd
|
||||||
|
# _port
|
||||||
# Returns:
|
# Returns:
|
||||||
# 0 if ports opened sucessfully, 1 if not
|
# 0 if ports opened sucessfully, 1 if not
|
||||||
#######################################
|
#######################################
|
||||||
@@ -912,26 +915,40 @@ EOF"
|
|||||||
|
|
||||||
_runDebug "${FUNCNAME[0]}"
|
_runDebug "${FUNCNAME[0]}"
|
||||||
|
|
||||||
|
# Create OS-specific port rules based on argument (service) name
|
||||||
|
local -a _f_ports # for firewall_cmd
|
||||||
|
local _u_ports # for ufw
|
||||||
|
if [[ "$1" == "jriver" ]]; then
|
||||||
|
_f_ports=("52100-52200/tcp" "1900/udp")
|
||||||
|
_u_ports="52100:52200/tcp|1900/udp"
|
||||||
|
elif [[ "$1" =~ ^(x11vnc|vncserver)$ ]]; then
|
||||||
|
_f_ports=("$_port/tcp")
|
||||||
|
_u_ports="$_port/tcp"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Open the ports
|
||||||
if [[ "$ID" =~ ^(fedora|centos)$ ]] && [[ -x $(command -v firewall-cmd) ]]; then
|
if [[ "$ID" =~ ^(fedora|centos)$ ]] && [[ -x $(command -v firewall-cmd) ]]; then
|
||||||
if ! firewall-cmd --get-services | grep -q jriver; then
|
if ! _firewall_cmd --get-services | grep -q "$1"; then
|
||||||
_firewall_cmd --permanent --new-service=jriver > /dev/null 2>&1
|
_firewall_cmd --permanent --new-service="$1" > /dev/null 2>&1
|
||||||
_firewall_cmd --permanent --service=jriver --set-description="JRiver Media Center Media Server" > /dev/null 2>&1
|
_firewall_cmd --permanent --service="$1" --set-description="$1 installed by installJRMC" > /dev/null 2>&1
|
||||||
_firewall_cmd --permanent --service=jriver --set-short="jriver" > /dev/null 2>&1
|
_firewall_cmd --permanent --service="$1" --set-short="$1" > /dev/null 2>&1
|
||||||
_firewall_cmd --permanent --service=jriver --add-port=52100-52200/tcp > /dev/null 2>&1
|
for _f_port in "${_f_ports[@]}"; do
|
||||||
_firewall_cmd --permanent --service=jriver --add-port=1900/udp > /dev/null 2>&1
|
_firewall_cmd --permanent --service="$1" --add-port="$_f_port" > /dev/null 2>&1
|
||||||
_firewall-cmd --add-service jriver --permanent > /dev/null 2>&1
|
done
|
||||||
|
_firewall-cmd --add-service "$1" --permanent > /dev/null 2>&1
|
||||||
_firewall_cmd --reload > /dev/null 2>&1
|
_firewall_cmd --reload > /dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
elif [[ "$ID" =~ ^(ubuntu|debian)$ ]] && [[ -x $(command -v ufw) ]]; then
|
elif [[ "$ID" =~ ^(ubuntu|debian)$ ]] && [[ -x $(command -v ufw) ]]; then
|
||||||
if [[ ! -f "/etc/ufw/applications.d/jriver.service" ]]; then
|
if [[ ! -f "/etc/ufw/applications.d/$1.service" ]]; then
|
||||||
_bash_cmd "cat <<-EOF > /etc/ufw/applications.d/jriver.service
|
_bash_cmd "cat <<-EOF > /etc/ufw/applications.d/$1.service
|
||||||
[jriver]
|
[$1]
|
||||||
title=JRiver Media Center
|
title=$1
|
||||||
description=Allows JRiver Media Server access
|
description=$1 installed by installJRMC
|
||||||
ports=52100:52200/tcp|1900/udp
|
ports=$_u_ports
|
||||||
EOF"
|
EOF"
|
||||||
fi
|
fi
|
||||||
_firewall_cmd allow jriver > /dev/null 2>&1
|
_firewall_cmd app update "$1"
|
||||||
|
_firewall_cmd allow "$1" > /dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# shellcheck disable=SC2181
|
# shellcheck disable=SC2181
|
||||||
@@ -1127,8 +1144,7 @@ EOF"
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Alert user to the likely vnc port
|
declare -g _port=$(( ${_display#:} + 5900 ))
|
||||||
local _port=$(( ${_display#:} + 5900 ))
|
|
||||||
|
|
||||||
_bash_cmd "cat <<-EOF > $_service_fname
|
_bash_cmd "cat <<-EOF > $_service_fname
|
||||||
[Unit]
|
[Unit]
|
||||||
@@ -1162,6 +1178,8 @@ EOF"
|
|||||||
|
|
||||||
[[ -z $_display ]] && _display="${DISPLAY:-":0"}"
|
[[ -z $_display ]] && _display="${DISPLAY:-":0"}"
|
||||||
|
|
||||||
|
declare -g _port=$(( ${_display#:} + 5900 ))
|
||||||
|
|
||||||
# Get current desktop resolution
|
# Get current desktop resolution
|
||||||
# TODO: may need to break this out into its own function and get smarter at identifying multi-monitors
|
# TODO: may need to break this out into its own function and get smarter at identifying multi-monitors
|
||||||
local _res
|
local _res
|
||||||
@@ -1192,6 +1210,7 @@ EOF"
|
|||||||
_systemctl_reload && \
|
_systemctl_reload && \
|
||||||
_systemctl_start "$_service_name" && \
|
_systemctl_start "$_service_name" && \
|
||||||
_systemctl_enable "$_service_name"
|
_systemctl_enable "$_service_name"
|
||||||
|
echo "x11vnc running on localhost:$_port"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1322,7 +1341,7 @@ EOF"
|
|||||||
_installMCFromRepo
|
_installMCFromRepo
|
||||||
_symlinkCerts
|
_symlinkCerts
|
||||||
_restoreLicense
|
_restoreLicense
|
||||||
_openFirewall
|
_openFirewall "jriver"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Build RPM from source DEB
|
# Build RPM from source DEB
|
||||||
@@ -1343,7 +1362,7 @@ EOF"
|
|||||||
_installPackage --noquery "$_mcrpm"
|
_installPackage --noquery "$_mcrpm"
|
||||||
_symlinkCerts
|
_symlinkCerts
|
||||||
_restoreLicense
|
_restoreLicense
|
||||||
_openFirewall
|
_openFirewall "jriver"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1356,6 +1375,7 @@ EOF"
|
|||||||
;;
|
;;
|
||||||
x11vnc)
|
x11vnc)
|
||||||
_serviceX11VNC
|
_serviceX11VNC
|
||||||
|
_openFirewall "x11vnc"
|
||||||
;;
|
;;
|
||||||
mediaserver)
|
mediaserver)
|
||||||
_serviceMediaserver
|
_serviceMediaserver
|
||||||
@@ -1365,6 +1385,7 @@ EOF"
|
|||||||
;;
|
;;
|
||||||
mediacenter-vncserver)
|
mediacenter-vncserver)
|
||||||
_serviceVNC
|
_serviceVNC
|
||||||
|
_openFirewall "vncserver"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
esac
|
esac
|
||||||
|
|||||||
Reference in New Issue
Block a user