diff --git a/agent/build/dnsblock-agent/Analysis-00.toc b/agent/build/dnsblock-agent/Analysis-00.toc index f2f6080..6cfea35 100644 --- a/agent/build/dnsblock-agent/Analysis-00.toc +++ b/agent/build/dnsblock-agent/Analysis-00.toc @@ -146,13 +146,13 @@ ('dis', '/usr/lib/python3.11/dis.py', 'PYMODULE'), ('opcode', '/usr/lib/python3.11/opcode.py', 'PYMODULE'), ('ast', '/usr/lib/python3.11/ast.py', 'PYMODULE'), + ('stringprep', '/usr/lib/python3.11/stringprep.py', 'PYMODULE'), + ('_py_abc', '/usr/lib/python3.11/_py_abc.py', 'PYMODULE'), ('tracemalloc', '/usr/lib/python3.11/tracemalloc.py', 'PYMODULE'), ('pickle', '/usr/lib/python3.11/pickle.py', 'PYMODULE'), ('pprint', '/usr/lib/python3.11/pprint.py', 'PYMODULE'), ('dataclasses', '/usr/lib/python3.11/dataclasses.py', 'PYMODULE'), ('_compat_pickle', '/usr/lib/python3.11/_compat_pickle.py', 'PYMODULE'), - ('stringprep', '/usr/lib/python3.11/stringprep.py', 'PYMODULE'), - ('_py_abc', '/usr/lib/python3.11/_py_abc.py', 'PYMODULE'), ('logging.handlers', '/usr/lib/python3.11/logging/handlers.py', 'PYMODULE'), ('http.client', '/usr/lib/python3.11/http/client.py', 'PYMODULE'), ('ssl', '/usr/lib/python3.11/ssl.py', 'PYMODULE'), @@ -476,19 +476,21 @@ ('base_library.zip', '/home/halbebruno/Projetos/DNSBlock/agent/build/dnsblock-agent/base_library.zip', 'DATA')], - [('weakref', '/usr/lib/python3.11/weakref.py', 'PYMODULE'), - ('copyreg', '/usr/lib/python3.11/copyreg.py', 'PYMODULE'), + [('_collections_abc', '/usr/lib/python3.11/_collections_abc.py', 'PYMODULE'), + ('keyword', '/usr/lib/python3.11/keyword.py', 'PYMODULE'), + ('weakref', '/usr/lib/python3.11/weakref.py', 'PYMODULE'), + ('enum', '/usr/lib/python3.11/enum.py', 'PYMODULE'), + ('genericpath', '/usr/lib/python3.11/genericpath.py', 'PYMODULE'), + ('posixpath', '/usr/lib/python3.11/posixpath.py', 'PYMODULE'), ('re._parser', '/usr/lib/python3.11/re/_parser.py', 'PYMODULE'), ('re._constants', '/usr/lib/python3.11/re/_constants.py', 'PYMODULE'), ('re._compiler', '/usr/lib/python3.11/re/_compiler.py', 'PYMODULE'), ('re._casefix', '/usr/lib/python3.11/re/_casefix.py', 'PYMODULE'), ('re', '/usr/lib/python3.11/re/__init__.py', 'PYMODULE'), ('codecs', '/usr/lib/python3.11/codecs.py', 'PYMODULE'), - ('collections.abc', '/usr/lib/python3.11/collections/abc.py', 'PYMODULE'), - ('collections', '/usr/lib/python3.11/collections/__init__.py', 'PYMODULE'), - ('warnings', '/usr/lib/python3.11/warnings.py', 'PYMODULE'), - ('operator', '/usr/lib/python3.11/operator.py', 'PYMODULE'), - ('stat', '/usr/lib/python3.11/stat.py', 'PYMODULE'), + ('_weakrefset', '/usr/lib/python3.11/_weakrefset.py', 'PYMODULE'), + ('sre_parse', '/usr/lib/python3.11/sre_parse.py', 'PYMODULE'), + ('functools', '/usr/lib/python3.11/functools.py', 'PYMODULE'), ('encodings.zlib_codec', '/usr/lib/python3.11/encodings/zlib_codec.py', 'PYMODULE'), @@ -719,23 +721,21 @@ ('encodings.ascii', '/usr/lib/python3.11/encodings/ascii.py', 'PYMODULE'), ('encodings.aliases', '/usr/lib/python3.11/encodings/aliases.py', 'PYMODULE'), ('encodings', '/usr/lib/python3.11/encodings/__init__.py', 'PYMODULE'), - ('_weakrefset', '/usr/lib/python3.11/_weakrefset.py', 'PYMODULE'), ('types', '/usr/lib/python3.11/types.py', 'PYMODULE'), + ('operator', '/usr/lib/python3.11/operator.py', 'PYMODULE'), + ('copyreg', '/usr/lib/python3.11/copyreg.py', 'PYMODULE'), ('reprlib', '/usr/lib/python3.11/reprlib.py', 'PYMODULE'), - ('_collections_abc', '/usr/lib/python3.11/_collections_abc.py', 'PYMODULE'), - ('io', '/usr/lib/python3.11/io.py', 'PYMODULE'), - ('functools', '/usr/lib/python3.11/functools.py', 'PYMODULE'), - ('locale', '/usr/lib/python3.11/locale.py', 'PYMODULE'), - ('sre_parse', '/usr/lib/python3.11/sre_parse.py', 'PYMODULE'), - ('posixpath', '/usr/lib/python3.11/posixpath.py', 'PYMODULE'), ('sre_constants', '/usr/lib/python3.11/sre_constants.py', 'PYMODULE'), - ('traceback', '/usr/lib/python3.11/traceback.py', 'PYMODULE'), ('linecache', '/usr/lib/python3.11/linecache.py', 'PYMODULE'), - ('enum', '/usr/lib/python3.11/enum.py', 'PYMODULE'), + ('collections.abc', '/usr/lib/python3.11/collections/abc.py', 'PYMODULE'), + ('collections', '/usr/lib/python3.11/collections/__init__.py', 'PYMODULE'), + ('locale', '/usr/lib/python3.11/locale.py', 'PYMODULE'), + ('traceback', '/usr/lib/python3.11/traceback.py', 'PYMODULE'), ('abc', '/usr/lib/python3.11/abc.py', 'PYMODULE'), - ('heapq', '/usr/lib/python3.11/heapq.py', 'PYMODULE'), - ('keyword', '/usr/lib/python3.11/keyword.py', 'PYMODULE'), + ('io', '/usr/lib/python3.11/io.py', 'PYMODULE'), + ('stat', '/usr/lib/python3.11/stat.py', 'PYMODULE'), ('ntpath', '/usr/lib/python3.11/ntpath.py', 'PYMODULE'), - ('genericpath', '/usr/lib/python3.11/genericpath.py', 'PYMODULE'), + ('heapq', '/usr/lib/python3.11/heapq.py', 'PYMODULE'), ('sre_compile', '/usr/lib/python3.11/sre_compile.py', 'PYMODULE'), + ('warnings', '/usr/lib/python3.11/warnings.py', 'PYMODULE'), ('os', '/usr/lib/python3.11/os.py', 'PYMODULE')]) diff --git a/agent/build/dnsblock-agent/EXE-00.toc b/agent/build/dnsblock-agent/EXE-00.toc index d93c053..31d25c7 100644 --- a/agent/build/dnsblock-agent/EXE-00.toc +++ b/agent/build/dnsblock-agent/EXE-00.toc @@ -121,7 +121,7 @@ [], False, False, - 1765189813, + 1765274759, [('run', '/home/halbebruno/Projetos/DNSBlock/agent/build_venv/lib/python3.11/site-packages/PyInstaller/bootloader/Linux-64bit-intel/run', 'EXECUTABLE')], diff --git a/agent/build/dnsblock-agent/base_library.zip b/agent/build/dnsblock-agent/base_library.zip index 23b44ec..9da740b 100644 Binary files a/agent/build/dnsblock-agent/base_library.zip and b/agent/build/dnsblock-agent/base_library.zip differ diff --git a/agent/build/dnsblock-agent/dnsblock-agent.pkg b/agent/build/dnsblock-agent/dnsblock-agent.pkg index 66e2402..d400f1c 100644 Binary files a/agent/build/dnsblock-agent/dnsblock-agent.pkg and b/agent/build/dnsblock-agent/dnsblock-agent.pkg differ diff --git a/agent/build/dnsblock-agent/warn-dnsblock-agent.txt b/agent/build/dnsblock-agent/warn-dnsblock-agent.txt index 2b2b18e..d79519c 100644 --- a/agent/build/dnsblock-agent/warn-dnsblock-agent.txt +++ b/agent/build/dnsblock-agent/warn-dnsblock-agent.txt @@ -19,8 +19,8 @@ missing module named _frozen_importlib_external - imported by importlib._bootstr excluded module named _frozen_importlib - imported by importlib (optional), importlib.abc (optional) missing module named winreg - imported by importlib._bootstrap_external (conditional), platform (delayed, optional), mimetypes (optional), urllib.request (delayed, conditional, optional), requests.utils (delayed, conditional, optional) missing module named nt - imported by os (delayed, conditional, optional), ntpath (optional), shutil (conditional), importlib._bootstrap_external (conditional) -missing module named org - imported by pickle (optional) missing module named _winapi - imported by encodings (delayed, conditional, optional), ntpath (optional), subprocess (conditional), mimetypes (optional) +missing module named org - imported by pickle (optional) missing module named _scproxy - imported by urllib.request (conditional) missing module named msvcrt - imported by subprocess (optional), getpass (optional) missing module named win32evtlog - imported by logging.handlers (delayed, optional) diff --git a/agent/dist b/agent/dist index a3a2aa3..a031116 160000 --- a/agent/dist +++ b/agent/dist @@ -1 +1 @@ -Subproject commit a3a2aa33413d611d163682e3f76ed67b40412ab5 +Subproject commit a03111620f676c1b32273a6288bf3bfd934dc4e1 diff --git a/agent/pkg/install.sh b/agent/pkg/install.sh index 9348881..eb9fe7c 100644 --- a/agent/pkg/install.sh +++ b/agent/pkg/install.sh @@ -50,10 +50,6 @@ verificar_dependencias() { exit 1 fi - if ! command -v tar &> /dev/null; then - deps_faltando="$deps_faltando tar" - fi - if ! command -v unbound-checkconf &> /dev/null; then deps_faltando="$deps_faltando unbound-checkconf" fi @@ -280,62 +276,84 @@ instalar() { systemctl stop dnsblock-agent 2>/dev/null || true systemctl disable dnsblock-agent 2>/dev/null || true rm -rf "$INSTALL_DIR" + rm -f "$SERVICE_FILE" fi - # Solicitar serial - SERIAL=$(solicitar_serial) - - # Exibir progresso + # Exibir progresso - Fase 1: Criar diretórios e copiar arquivos { - echo "10"; echo "# Criando diretórios..." + echo "5"; echo "# Criando diretórios..." mkdir -p "$INSTALL_DIR" mkdir -p "$INSTALL_DIR/logs" mkdir -p "$INSTALL_DIR/rpz" - sleep 0.3 + sleep 0.2 - echo "30"; echo "# Copiando arquivos..." - # Copiar todos os arquivos exceto o service file e o próprio install.sh - for item in "$SCRIPT_DIR"/*; do - local basename=$(basename "$item") - if [ "$basename" != "dnsblock-agent.service" ] && [ "$basename" != "install.sh" ]; then - cp -r "$item" "$INSTALL_DIR/" - fi - done - sleep 0.3 + echo "15"; echo "# Copiando binário..." + # Copiar o binário + if [ -f "$SCRIPT_DIR/dnsblock-agent" ]; then + cp "$SCRIPT_DIR/dnsblock-agent" "$INSTALL_DIR/" + chmod +x "$INSTALL_DIR/dnsblock-agent" + else + echo "ERRO: dnsblock-agent não encontrado!" >&2 + exit 1 + fi + sleep 0.2 - echo "50"; echo "# Configurando permissões..." - chmod +x "$INSTALL_DIR/dnsblock-agent" 2>/dev/null || true + echo "25"; echo "# Criando config.json..." + # Criar config.json a partir do exemplo + if [ -f "$SCRIPT_DIR/config.json.example" ]; then + cp "$SCRIPT_DIR/config.json.example" "$INSTALL_DIR/config.json" + else + echo "ERRO: config.json.example não encontrado!" >&2 + exit 1 + fi + sleep 0.2 + + echo "35"; echo "# Configurando permissões..." touch "$INSTALL_DIR/logs/agent.log" chown -R unbound:unbound "$INSTALL_DIR" chmod 755 "$INSTALL_DIR" - sleep 0.3 + sleep 0.2 - echo "60"; echo "# Configurando serial..." + echo "40"; echo "# Aguardando..." + } | whiptail --title "DNSBlock Agent - Instalação" --gauge "Preparando arquivos..." 8 60 0 + + # Solicitar serial (fora do gauge para funcionar corretamente) + SERIAL=$(solicitar_serial) + + # Exibir progresso - Fase 2: Configurar serial e serviço + { + echo "45"; echo "# Configurando serial..." if [ -n "$SERIAL" ]; then atualizar_config_serial "$SERIAL" fi - sleep 0.3 + sleep 0.2 - echo "70"; echo "# Instalando serviço..." + echo "55"; echo "# Instalando serviço systemd..." if [ -f "$SCRIPT_DIR/dnsblock-agent.service" ]; then - mv "$SCRIPT_DIR/dnsblock-agent.service" "$SERVICE_FILE" + cp "$SCRIPT_DIR/dnsblock-agent.service" "$SERVICE_FILE" + else + echo "ERRO: dnsblock-agent.service não encontrado!" >&2 + exit 1 fi + sleep 0.2 + + echo "65"; echo "# Habilitando serviço..." systemctl daemon-reload - systemctl enable dnsblock-agent - sleep 0.3 + systemctl enable dnsblock-agent 2>/dev/null || true + sleep 0.2 - echo "85"; echo "# Configurando Unbound..." + echo "75"; echo "# Configurando Unbound..." configurar_unbound || true - sleep 0.3 + sleep 0.2 - echo "95"; echo "# Finalizando..." + echo "90"; echo "# Finalizando..." if [ -n "$SERIAL" ]; then - systemctl start dnsblock-agent + systemctl start dnsblock-agent 2>/dev/null || true fi - sleep 0.3 + sleep 0.2 echo "100"; echo "# Concluído!" - } | whiptail --title "DNSBlock Agent - Instalação" --gauge "Iniciando instalação..." 8 60 0 + } | whiptail --title "DNSBlock Agent - Instalação" --gauge "Configurando sistema..." 8 60 45 # Exibir mensagem final if [ -n "$SERIAL" ]; then