Reengineed the code. Generalized the package. Cloud configurators are modules.
This commit is contained in:
@@ -4,47 +4,48 @@ set -e
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
# ── Read debconf answers ──────────────────────────────────────────────
|
||||
db_get cloud-router/local_addrs; CLOUD_ROUTER_LOCAL_ADDRS="$RET"
|
||||
db_get cloud-router/local_fqdn; CLOUD_ROUTER_LOCAL_FQDN="$RET"
|
||||
db_get cloud-router/local_id_mode; CLOUD_ROUTER_LOCAL_ID_MODE="$RET"
|
||||
db_get cloud-router/local_cidrs; CLOUD_ROUTER_LOCAL_CIDRS="$RET"
|
||||
db_get cloud-router/remote_addrs; CLOUD_ROUTER_REMOTE_ADDRS="$RET"
|
||||
db_get cloud-router/remote_id; CLOUD_ROUTER_REMOTE_ID="$RET"
|
||||
db_get cloud-router/psk; CLOUD_ROUTER_PSK="$RET"
|
||||
db_get cloud-router/remote_cidrs; CLOUD_ROUTER_REMOTE_CIDRS="$RET"
|
||||
db_get cloud-router/router_int_gateway_ip; CLOUD_ROUTER_ROUTER_INT_GATEWAY_IP="$RET"
|
||||
db_get cloud-router/p2s_address_pool; CLOUD_ROUTER_P2S_ADDRESS_POOL="$RET"
|
||||
db_get cloud-router/wg_enabled; CLOUD_ROUTER_WG_ENABLED="$RET"
|
||||
db_get cloud-router/wg_address; CLOUD_ROUTER_WG_ADDRESS="$RET"
|
||||
db_get cloud-router/wg_listen_port; CLOUD_ROUTER_WG_LISTEN_PORT="$RET"
|
||||
# --- Read the installer's answers ---
|
||||
db_get vpn-router/platform; VPN_ROUTER_PLATFORM="$RET"
|
||||
db_get vpn-router/external_interface; VPN_ROUTER_EXTERNAL_INTERFACE="$RET"
|
||||
db_get vpn-router/internal_interface; VPN_ROUTER_INTERNAL_INTERFACE="$RET"
|
||||
db_get vpn-router/local_fqdn; VPN_ROUTER_LOCAL_FQDN="$RET"
|
||||
db_get vpn-router/local_id_mode; VPN_ROUTER_LOCAL_ID_MODE="$RET"
|
||||
db_get vpn-router/local_cidrs; VPN_ROUTER_LOCAL_CIDRS="$RET"
|
||||
db_get vpn-router/int_gateway_ip; VPN_ROUTER_INT_GATEWAY_IP="$RET"
|
||||
db_get vpn-router/remote_addrs; VPN_ROUTER_REMOTE_ADDRS="$RET"
|
||||
db_get vpn-router/remote_id; VPN_ROUTER_REMOTE_ID="$RET"
|
||||
db_get vpn-router/remote_cidrs; VPN_ROUTER_REMOTE_CIDRS="$RET"
|
||||
db_get vpn-router/psk; VPN_ROUTER_PSK="$RET"
|
||||
db_get vpn-router/p2s_enabled; VPN_ROUTER_P2S_ENABLED="$RET"
|
||||
db_get vpn-router/p2s_address_pool; VPN_ROUTER_P2S_ADDRESS_POOL="$RET"
|
||||
db_get vpn-router/p2s_ca_name; VPN_ROUTER_P2S_CA_NAME="$RET"
|
||||
db_get vpn-router/wg_enabled; VPN_ROUTER_WG_ENABLED="$RET"
|
||||
db_get vpn-router/wg_address; VPN_ROUTER_WG_ADDRESS="$RET"
|
||||
db_get vpn-router/wg_listen_port; VPN_ROUTER_WG_LISTEN_PORT="$RET"
|
||||
|
||||
# ── Render configuration files via Jinja2 templates ─────────────────
|
||||
export CLOUD_ROUTER_LOCAL_ADDRS CLOUD_ROUTER_LOCAL_FQDN \
|
||||
CLOUD_ROUTER_LOCAL_ID_MODE CLOUD_ROUTER_LOCAL_CIDRS \
|
||||
CLOUD_ROUTER_REMOTE_ADDRS CLOUD_ROUTER_REMOTE_ID \
|
||||
CLOUD_ROUTER_PSK CLOUD_ROUTER_REMOTE_CIDRS \
|
||||
CLOUD_ROUTER_ROUTER_INT_GATEWAY_IP CLOUD_ROUTER_P2S_ADDRESS_POOL \
|
||||
CLOUD_ROUTER_WG_ENABLED CLOUD_ROUTER_WG_ADDRESS \
|
||||
CLOUD_ROUTER_WG_LISTEN_PORT
|
||||
export VPN_ROUTER_PLATFORM VPN_ROUTER_EXTERNAL_INTERFACE \
|
||||
VPN_ROUTER_INTERNAL_INTERFACE VPN_ROUTER_LOCAL_FQDN \
|
||||
VPN_ROUTER_LOCAL_ID_MODE VPN_ROUTER_LOCAL_CIDRS \
|
||||
VPN_ROUTER_INT_GATEWAY_IP \
|
||||
VPN_ROUTER_REMOTE_ADDRS VPN_ROUTER_REMOTE_ID \
|
||||
VPN_ROUTER_REMOTE_CIDRS VPN_ROUTER_PSK \
|
||||
VPN_ROUTER_P2S_ENABLED VPN_ROUTER_P2S_ADDRESS_POOL \
|
||||
VPN_ROUTER_P2S_CA_NAME VPN_ROUTER_WG_ENABLED \
|
||||
VPN_ROUTER_WG_ADDRESS VPN_ROUTER_WG_LISTEN_PORT
|
||||
|
||||
/usr/lib/cloud-router/configure
|
||||
# --- Create the configuration file, only if it does not exist ---
|
||||
/usr/lib/vpn-router/seed-config
|
||||
|
||||
db_set cloud-router/psk ""
|
||||
# The key now lives in the configuration file; do not keep a copy.
|
||||
db_set vpn-router/psk ""
|
||||
|
||||
# ── Apply system settings ─────────────────────────────────────────────
|
||||
sysctl --system
|
||||
netplan apply
|
||||
systemctl daemon-reload
|
||||
systemctl restart systemd-resolved
|
||||
# Apply the sysctl drop-in shipped by this package so it takes effect
|
||||
# without waiting for a reboot.
|
||||
sysctl --system >/dev/null
|
||||
|
||||
# ── UFW: ensure SSH is allowed then enable ────────────────────────────
|
||||
ufw allow 22/tcp
|
||||
ufw --force enable
|
||||
ufw reload
|
||||
|
||||
# ── strongSwan ────────────────────────────────────────────────────────
|
||||
systemctl enable --now strongswan
|
||||
# The firewall is not touched here. Enabling it, allowing SSH and
|
||||
# setting the forward policy all belong to vpn-router-setup, which does
|
||||
# them only once the configuration says this host is a router.
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
Reference in New Issue
Block a user