Compare commits
1 Commits
Author | SHA1 | Date |
---|---|---|
|
c5bbcbed83 |
|
@ -1,9 +1,5 @@
|
|||
# Changelog
|
||||
|
||||
## [0.7.2] - 2025-06-06
|
||||
### Changed
|
||||
- Corrige bug cuando no recibe parámetro boot-file-name.
|
||||
|
||||
## [0.7.1] - 2025-05-27
|
||||
### Changed
|
||||
- Añade nuevo parámetro boot-file-name a los endpoints de añadir y actualizar host de una subred.
|
||||
|
|
|
@ -1383,7 +1383,7 @@ public function addDhcpHost(Request $request, $subnetId): JsonResponse
|
|||
$macAddress = htmlspecialchars($input->macAddress);
|
||||
$address = htmlspecialchars($input->address);
|
||||
// $bootFileName= htmlspecialchars($input->bootFileName);
|
||||
$bootFileName = isset($input->bootFileName) ? htmlspecialchars($input->bootFileName) : null;
|
||||
$bootFileName = isset($input->bootFileName) ? htmlspecialchars($input->bootFileName) : null;
|
||||
} catch (Exception $e) {
|
||||
$errorText = $e->getMessage();
|
||||
$this->logger->error(json_encode([
|
||||
|
@ -1408,7 +1408,8 @@ public function addDhcpHost(Request $request, $subnetId): JsonResponse
|
|||
$newHost = [
|
||||
"hostname" => $host,
|
||||
"hw-address" => $macAddress,
|
||||
"ip-address" => $address
|
||||
"ip-address" => $address,
|
||||
"boot-file-name" => $bootFileName
|
||||
];
|
||||
|
||||
$subnetFound = false;
|
||||
|
|
|
@ -1,31 +1,14 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
|
||||
. /usr/share/debconf/confmodule
|
||||
|
||||
|
||||
restore_config_if_modified() {
|
||||
local new="$1"
|
||||
local backup="$1.bak.upgrade_package"
|
||||
|
||||
if [ -f "$backup" ]; then
|
||||
if ! cmp -s "$new" "$backup"; then
|
||||
echo ">>> Archivo modificado por el usuario detectado en $new"
|
||||
echo " - Guardando archivo nuevo como ${new}.new"
|
||||
mv -f "$new" "${new}.new"
|
||||
echo " - Restaurando archivo anterior desde backup"
|
||||
mv -f "$backup" "$new"
|
||||
else
|
||||
echo ">>> El archivo $new no ha cambiado desde la última versión, eliminando backup"
|
||||
rm -f "$backup"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
KEA_CTRL_AGENT_CONF="/etc/kea/kea-ctrl-agent.conf"
|
||||
PUBLIC_DIR=/opt/opengnsys/ogdhcp/api/public
|
||||
PUBLIC_DIR="/opt/opengnsys/ogdhcp/api/public"
|
||||
APPARMOR_PROFILE="/etc/apparmor.d/usr.sbin.kea-dhcp4"
|
||||
APPARMOR_LOCAL_PROFILE="/etc/apparmor.d/local/usr.sbin.kea-dhcp4"
|
||||
KEA_CONFIG="/etc/kea/kea-dhcp4.conf"
|
||||
|
||||
db_get opengnsys/ogdhcp_interfaces
|
||||
OGDHCP_INTERFACES="$RET"
|
||||
db_get opengnsys/ogdhcp_ip
|
||||
|
@ -33,32 +16,38 @@ OGDHCP_IP="$RET"
|
|||
db_get opengnsys/ogdhcp_ogbootIP
|
||||
OGBOOT_IP="$RET"
|
||||
|
||||
# Get PHP version
|
||||
PHP_VERSION=$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')
|
||||
if [ -z "$PHP_VERSION" ]; then
|
||||
echo "Error: No se pudo determinar la versión de PHP."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
if [ -z "$2" ]; then
|
||||
echo ">>> Configuración de ogdhcp, realizando instalacion nueva"
|
||||
# Configuración de kea-ctrl-agent
|
||||
echo "Eliminando autenticación de kea-ctrl-agent..."
|
||||
echo "Configurando ogdhcp..."
|
||||
|
||||
# --- KEA CTRL AGENT ---
|
||||
if dpkg -s kea-ctrl-agent > /dev/null 2>&1; then
|
||||
echo "Configurando kea-ctrl-agent..."
|
||||
|
||||
if [ -e "$KEA_CTRL_AGENT_CONF" ]; then
|
||||
dpkg-divert --package ogdhcp --divert "$KEA_CTRL_AGENT_CONF.dpkg-dist" --rename "$KEA_CTRL_AGENT_CONF"
|
||||
cp -a "$KEA_CTRL_AGENT_CONF.dpkg-dist" "$KEA_CTRL_AGENT_CONF"
|
||||
|
||||
echo "Eliminando autenticación de kea-ctrl-agent..."
|
||||
if grep -q '^[^#]*"authentication": {' "$KEA_CTRL_AGENT_CONF"; then
|
||||
sed -i '/"authentication": {/,/^[[:space:]]*},/ {
|
||||
s/^\([[:space:]]*\)\([^#]\)/\1#\2/
|
||||
s/^\([[:space:]]*\)\([^#]\)/\1#\2/
|
||||
}' "$KEA_CTRL_AGENT_CONF"
|
||||
fi
|
||||
fi
|
||||
# Configuración de AppArmor
|
||||
APPARMOR_LOCAL_PROFILE="/etc/apparmor.d/local/usr.sbin.kea-dhcp4"
|
||||
echo "Añadiendo permisos personalizados a AppArmor para kea-dhcp4..."
|
||||
else
|
||||
echo "kea-ctrl-agent no está instalado. Se omite configuración."
|
||||
fi
|
||||
|
||||
# --- APPARMOR + KEA-DHCP4 ---
|
||||
if dpkg -s kea-dhcp4-server > /dev/null 2>&1; then
|
||||
echo "Configurando AppArmor y kea-dhcp4..."
|
||||
|
||||
if [ -e "$APPARMOR_PROFILE" ]; then
|
||||
dpkg-divert --package ogdhcp --divert "${APPARMOR_PROFILE}.dpkg-dist" --rename "$APPARMOR_PROFILE"
|
||||
cp -a "${APPARMOR_PROFILE}.dpkg-dist" "$APPARMOR_PROFILE"
|
||||
fi
|
||||
|
||||
mkdir -p "$(dirname "$APPARMOR_LOCAL_PROFILE")"
|
||||
cat > "$APPARMOR_LOCAL_PROFILE" <<EOF
|
||||
/etc/kea/ rw,
|
||||
|
@ -66,35 +55,14 @@ case "$1" in
|
|||
EOF
|
||||
|
||||
echo "Recargando perfiles de AppArmor..."
|
||||
apparmor_parser -r /etc/apparmor.d/usr.sbin.kea-dhcp4
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "El perfil de AppArmor se recargó correctamente."
|
||||
if apparmor_parser -r "$APPARMOR_PROFILE"; then
|
||||
echo "AppArmor recargado correctamente."
|
||||
else
|
||||
echo "Error al recargar el perfil de AppArmor."
|
||||
echo "Error al recargar AppArmor."
|
||||
fi
|
||||
|
||||
# Configuración de nginx
|
||||
echo "Configurando nginx..."
|
||||
if [ ! -f /etc/nginx/sites-available/ogdhcp.conf ]; then
|
||||
cp /opt/opengnsys/ogdhcp/etc/nginxServer.conf.tmpl /etc/nginx/sites-available/ogdhcp.conf
|
||||
sed -i "s|__PHPVERSION__|$PHP_VERSION|g" /etc/nginx/sites-available/ogdhcp.conf
|
||||
sed -i "s|__SERVERIP__|$OGDHCP_IP|g" /etc/nginx/sites-available/ogdhcp.conf
|
||||
sed -i "s|__PUBLICDIR__|$PUBLIC_DIR|g" /etc/nginx/sites-available/ogdhcp.conf
|
||||
ln -s /etc/nginx/sites-available/ogdhcp.conf /etc/nginx/sites-enabled/ogdhcp.conf
|
||||
else
|
||||
echo "El archivo /etc/nginx/sites-available/ogdhcp.conf ya existe."
|
||||
fi
|
||||
|
||||
# Configuración de php-fpm
|
||||
echo "Configurando php-fpm..."
|
||||
if [ ! -f /etc/php/$PHP_VERSION/fpm/pool.d/ogdhcp.conf ]; then
|
||||
cp /opt/opengnsys/ogdhcp/etc/php/fpm/ogdhcp-fpm.conf /etc/php/$PHP_VERSION/fpm/pool.d/ogdhcp.conf
|
||||
fi
|
||||
|
||||
# Configuración de kea-dhcp4
|
||||
echo "Configurando kea-dhcp4..."
|
||||
echo "Configurando archivo kea-dhcp4.conf..."
|
||||
IFS=',' read -r -a INTERFACES <<< "$OGDHCP_INTERFACES"
|
||||
KEA_CONFIG="/etc/kea/kea-dhcp4.conf"
|
||||
if [ -e "$KEA_CONFIG" ]; then
|
||||
dpkg-divert --package ogdhcp --divert "$KEA_CONFIG.dpkg-dist" --rename "$KEA_CONFIG"
|
||||
cat > "$KEA_CONFIG" <<EOF
|
||||
|
@ -128,41 +96,56 @@ EOF
|
|||
}
|
||||
}
|
||||
EOF
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "kea-dhcp4-server no está instalado. Se omite configuración."
|
||||
fi
|
||||
|
||||
# --- NGINX ---
|
||||
echo "Configurando nginx..."
|
||||
PHP_VERSION=$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')
|
||||
NGINX_CONF="/etc/nginx/sites-available/ogdhcp.conf"
|
||||
|
||||
if [ ! -f "$NGINX_CONF" ]; then
|
||||
cp /opt/opengnsys/ogdhcp/etc/nginxServer.conf.tmpl "$NGINX_CONF"
|
||||
sed -i "s|__PHPVERSION__|$PHP_VERSION|g" "$NGINX_CONF"
|
||||
sed -i "s|__SERVERIP__|$OGDHCP_IP|g" "$NGINX_CONF"
|
||||
sed -i "s|__PUBLICDIR__|$PUBLIC_DIR|g" "$NGINX_CONF"
|
||||
ln -s "$NGINX_CONF" /etc/nginx/sites-enabled/ogdhcp.conf
|
||||
else
|
||||
echo "nginx ya configurado."
|
||||
fi
|
||||
|
||||
# --- PHP-FPM ---
|
||||
echo "Configurando php-fpm..."
|
||||
PHP_FPM_CONF="/etc/php/$PHP_VERSION/fpm/pool.d/ogdhcp.conf"
|
||||
if [ ! -f "$PHP_FPM_CONF" ]; then
|
||||
cp /opt/opengnsys/ogdhcp/etc/php/fpm/ogdhcp-fpm.conf "$PHP_FPM_CONF"
|
||||
fi
|
||||
;;
|
||||
|
||||
echo "Actualizando configuración de kea-dhcp4..."
|
||||
restore_config_if_modified "/etc/kea/kea-dhcp4.conf"
|
||||
restore_config_if_modified "/etc/kea/kea-ctrl-agent.conf"
|
||||
restore_config_if_modified "/opt/opengnsys/ogdhcp/api/.env"
|
||||
restore_config_if_modified "/etc/nginx/sites-available/ogdhcp.conf"
|
||||
restore_config_if_modified "/etc/php/$PHP_VERSION/fpm/pool.d/ogdhcp.conf"
|
||||
fi
|
||||
echo ">>> Configuración de ogdhcp completada."
|
||||
;;
|
||||
abort-upgrade|abort-remove|abort-deconfigure)
|
||||
echo ">>> Abortando la configuración de ogdhcp"
|
||||
echo "No se realizaron cambios en la configuración."
|
||||
exit 0
|
||||
;;
|
||||
|
||||
;;
|
||||
*)
|
||||
echo "postinst called with unknown argument '$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
|
||||
# Permisos
|
||||
chown opengnsys:www-data /opt/opengnsys/
|
||||
chown -R opengnsys:www-data /opt/opengnsys/ogdhcp
|
||||
chown -R _kea:_kea /etc/kea
|
||||
|
||||
# Reiniciar servicios
|
||||
# Solo si kea está instalado
|
||||
if dpkg -s kea-dhcp4-server > /dev/null 2>&1; then
|
||||
chown -R _kea:_kea /etc/kea
|
||||
fi
|
||||
|
||||
# Reiniciar servicios (fallar silenciosamente si no existen)
|
||||
systemctl daemon-reload
|
||||
systemctl restart nginx || echo "Error al reiniciar nginx"
|
||||
systemctl restart kea-dhcp4-server || echo "Error al reiniciar kea-dhcp4-server"
|
||||
systemctl restart kea-ctrl-agent || echo "Error al reiniciar kea-ctrl-agent"
|
||||
systemctl restart php$PHP_VERSION-fpm || echo "Error al reiniciar php$PHP_VERSION-fpm"
|
||||
systemctl restart nginx || true
|
||||
systemctl restart php"$PHP_VERSION"-fpm || true
|
||||
systemctl restart kea-dhcp4-server || true
|
||||
systemctl restart kea-ctrl-agent || true
|
||||
|
||||
exit 0
|
||||
|
|
|
@ -2,38 +2,14 @@
|
|||
|
||||
set -e
|
||||
|
||||
backup_file_if_exists() {
|
||||
local original="$1"
|
||||
local backup="$1.bak"
|
||||
|
||||
if [ -e "$original" ]; then
|
||||
echo " - Guardando backup de $original en $backup"
|
||||
cp -a "$original" "$backup"
|
||||
fi
|
||||
}
|
||||
|
||||
# Asegurarse de que el usuario exista
|
||||
USER="opengnsys"
|
||||
HOME_DIR="/opt/opengnsys"
|
||||
|
||||
case $1 in
|
||||
install)
|
||||
if id "$USER" &>/dev/null; then
|
||||
echo "El usuario $USER ya existe."
|
||||
else
|
||||
echo "Creando el usuario $USER con home en $HOME_DIR."
|
||||
useradd -m -d "$HOME_DIR" -s /bin/bash "$USER"
|
||||
fi
|
||||
;;
|
||||
upgrade)
|
||||
echo ">>> Actualización de ogdhcp" echo ">>> Backup de archivos de configuración reales en /opt/opengnsys"
|
||||
backup_file_if_exists "/etc/kea/kea-dhcp4.conf"
|
||||
backup_file_if_exists "/etc/kea/kea-ctrl-agent.conf"
|
||||
backup_file_if_exists "/opt/opengnsys/ogdhcp/api/.env"
|
||||
;;
|
||||
*)
|
||||
echo "Modo no reconocido: $1"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
if id "$USER" &>/dev/null; then
|
||||
echo "El usuario $USER ya existe."
|
||||
else
|
||||
echo "Creando el usuario $USER con home en $HOME_DIR."
|
||||
useradd -m -d "$HOME_DIR" -s /bin/bash "$USER"
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
|
|
@ -5,6 +5,15 @@ server {
|
|||
# Raíz del documento para el proyecto Symfony
|
||||
root __PUBLICDIR__;
|
||||
|
||||
|
||||
# Certificados SSL
|
||||
ssl_certificate /opt/opengnsys/ogdhcp/etc/certificates/ogdhcp.crt;
|
||||
ssl_certificate_key /opt/opengnsys/ogdhcp/etc/certificates/ogdhcp.key;
|
||||
|
||||
# CA para validar clientes
|
||||
ssl_client_certificate /opt/opengnsys/ogdhcp/etc/certificates/ca.crt;
|
||||
ssl_verify_client on;
|
||||
|
||||
# Bloque para manejar las solicitudes a /ogdhcp
|
||||
location /ogdhcp {
|
||||
try_files $uri $uri/ /index.php?$query_string;
|
||||
|
|
Loading…
Reference in New Issue