HEX
Server: Apache/2.4.65 (Debian)
System: Linux srv39710 6.1.0-41-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.158-1 (2025-11-09) x86_64
User: root (0)
PHP: 8.4.11
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
Upload Files
File: //var/lib/dpkg/info/ispmanager-pkg-wireguard.postinst
#!/bin/bash
# postinst script for coremanager
#
# see: dh_installdeb(1)

#set -e

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <postinst> `abort-remove'
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package

COREDIR=/usr/local/mgr5
. ${COREDIR}/lib/pkgsh/ispmgr_pkg_funcs.sh
WIREGUARD_CONF=/etc/wireguard/wg0.conf
SCRIPTS_FOLDER=/etc/wireguard/scripts
POST_UP_SCRIPT=${SCRIPTS_FOLDER}/add-nat-routing.sh
POST_DOWN_SCRIPT=${SCRIPTS_FOLDER}/remove-nat-routing.sh
POST_UP_TEMPLATE=${COREDIR}/etc/templates/default/wireguard-add-routing.template
POST_DOWN_TEMPLATE=${COREDIR}/etc/templates/default/wireguard-remove-routing.template
POST_UP_V4_TEMPLATE=${COREDIR}/etc/templates/default/wireguard-add-routing-ipv4.template
POST_DOWN_V4_TEMPLATE=${COREDIR}/etc/templates/default/wireguard-remove-routing-ipv4.template
POST_UP_V6_TEMPLATE=${COREDIR}/etc/templates/default/wireguard-add-routing-ipv6.template
POST_DOWN_V6_TEMPLATE=${COREDIR}/etc/templates/default/wireguard-remove-routing-ipv6.template
WIREGUARD_DEFAULT_NAME="wg0"
WIREGUARD_DEFAULT_PORT="51830"
WIREGUARD_DEFAULT_ADDR="10.100.10.1/24"
WIREGUARD_DEFAULT_ADDR_V6="fd42:42:42:42::/112"


case $1 in
    configure)

	if ! grep "net.ipv4.ip_forward=1" /etc/sysctl.conf; then
		echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
	else
		if ! grep "net.ipv4.ip_forward=1" /etc/sysctl.conf | grep -v "^#"; then
			sed '/net.ipv4.ip_forward=1/s/^#//' -i /etc/sysctl.conf
		fi
	fi
	if ! grep "net.ipv6.conf.all.forwarding=1" /etc/sysctl.conf; then
		echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.conf
	else
		if ! grep "net.ipv6.conf.all.forwarding=1" /etc/sysctl.conf | grep -v "^#"; then
			sed '/net.ipv6.conf.all.forwarding=1/s/^#//' -i /etc/sysctl.conf
		fi
	fi
	sysctl -p
	DEV=$(ip route | awk '$1=="default" {print $5}')
	IP=$(ip addr show dev ${DEV} | awk '$1=="inet" {print $2}'| cut -d/ -f1 | awk '{print $1}')
	if [[ $IP =~ .*:.* ]]; then
		ADDR=${WIREGUARD_DEFAULT_ADDR_V6}
	else
		ADDR=${WIREGUARD_DEFAULT_ADDR}
	fi
	if [ ! -d ${SCRIPTS_FOLDER} ]; then
		mkdir ${SCRIPTS_FOLDER}
		cp ${POST_UP_TEMPLATE} ${POST_UP_SCRIPT}
		cp ${POST_DOWN_TEMPLATE} ${POST_DOWN_SCRIPT}
		sed -i "s|__WG_NAME__|${WIREGUARD_DEFAULT_NAME}|g" ${POST_UP_SCRIPT}
		sed -i "s|__WG_NAME__|${WIREGUARD_DEFAULT_NAME}|g" ${POST_DOWN_SCRIPT}
		sed -i "s|__PORT__|${WIREGUARD_DEFAULT_PORT}|g" ${POST_UP_SCRIPT}
		sed -i "s|__PORT__|${WIREGUARD_DEFAULT_PORT}|g" ${POST_DOWN_SCRIPT}
		if [[ $IP =~ .*:.* ]]; then
			cat ${POST_UP_V6_TEMPLATE} >> ${POST_UP_SCRIPT}
			cat ${POST_DOWN_V6_TEMPLATE} >> ${POST_DOWN_SCRIPT}
			sed -i "s|__INTERFACE_V6__|${DEV}|g" ${POST_UP_SCRIPT}
			sed -i "s|__INTERFACE_V6__|${DEV}|g" ${POST_DOWN_SCRIPT}
			sed -i "s|__ADDR_V6__|${ADDR}|g" ${POST_UP_SCRIPT}
			sed -i "s|__ADDR_V6__|${ADDR}|g" ${POST_DOWN_SCRIPT}
		else
			cat ${POST_UP_V4_TEMPLATE} >> ${POST_UP_SCRIPT}
			cat ${POST_DOWN_V4_TEMPLATE} >> ${POST_DOWN_SCRIPT}
			sed -i "s|__INTERFACE__|${DEV}|g" ${POST_UP_SCRIPT}
			sed -i "s|__INTERFACE__|${DEV}|g" ${POST_DOWN_SCRIPT}
			sed -i "s|__ADDR__|${ADDR}|g" ${POST_UP_SCRIPT}
			sed -i "s|__ADDR__|${ADDR}|g" ${POST_DOWN_SCRIPT}
		fi
		chmod u+x ${POST_UP_SCRIPT}
		chmod u+x ${POST_DOWN_SCRIPT}
	fi
	if [ ! -f ${WIREGUARD_CONF} ]; then
		WG_KEY=$(wg genkey)
		cat > ${WIREGUARD_CONF} << EOF
[Interface]
PrivateKey = ${WG_KEY}
Address = ${ADDR}
ListenPort = ${WIREGUARD_DEFAULT_PORT}
PostUp = ${POST_UP_SCRIPT}
PostDown = ${POST_DOWN_SCRIPT}
EOF
	fi
	MakeConfigLink wireguard wireguard
	systemctl enable wg-quick@wg0.service
	systemctl start wg-quick@wg0.service
	ReloadMgr ${ISPMGR}

    ;;

    abort-upgrade|abort-remove|abort-deconfigure)
    ;;

    *)
        echo "postinst called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.



exit 0