Files
nginx-analize/results/run.bat
Redsandyg fcc9139361 init
2026-06-15 06:31:35 +03:00

85 lines
2.3 KiB
Batchfile

@echo off
setlocal EnableExtensions
cd /d "%~dp0"
echo [%date% %time%] nginx PMI stand - start
for /f %%i in ('docker run --rm alpine date +%%Y-%%m-%%d_%%H-%%M-%%S') do set TS=%%i
set REPORTS=%CD%\reports
set PMI_LOG=%TS%_pmi.log
set AUDIT_LOG=%TS%_audit.log
set FIM_LOG=%TS%_fim.log
echo Timestamp: %TS%
echo.
echo [1/8] Generate TLS certificates...
if not exist ssl mkdir ssl
docker run --rm --entrypoint sh -v "%CD%/ssl:/ssl" -v "%CD%/scripts/gen-certs.sh:/gen-certs.sh:ro" alpine/openssl /gen-certs.sh
if errorlevel 1 goto :fail
echo.
echo [2/8] Generate htpasswd...
docker run --rm --entrypoint sh -v "%CD%/nginx:/out" -v "%CD%/scripts/gen-htpasswd.sh:/gen-htpasswd.sh:ro" alpine/openssl /gen-htpasswd.sh
if errorlevel 1 goto :fail
echo.
echo [3/8] Build and start containers...
docker compose build
if errorlevel 1 goto :fail
docker compose up -d
if errorlevel 1 goto :fail
docker compose restart nginx syslog-ng
if errorlevel 1 goto :fail
echo.
echo [4/8] Wait for nginx...
docker compose exec -T test-runner sh /scripts/wait-ready.sh
if errorlevel 1 goto :fail
echo.
echo [5/8] Run PMI tests...
docker compose exec -T -e REPORT=/reports/%PMI_LOG% test-runner sh /scripts/run-pmi-tests.sh
set PMI_RC=%ERRORLEVEL%
docker compose exec -T -e REPORT=/reports/%PMI_LOG% nginx sh /scripts/run-pmi-log-checks.sh
if errorlevel 1 set PMI_RC=1
echo.
echo [6/8] Run audits...
docker compose exec -T -e REPORT=/reports/%AUDIT_LOG% nginx sh /scripts/run-audit-permissions.sh
docker compose exec -T -e REPORT=/reports/%AUDIT_LOG% nginx sh /scripts/run-audit-attack-surface.sh
docker compose exec -T -e REPORT=/reports/%AUDIT_LOG% nginx sh /scripts/run-audit-code-control.sh
echo.
echo [7/8] Run FIM checksum (afick stand-in)...
docker compose exec -T -e REPORT=/reports/%FIM_LOG% nginx sh /scripts/run-fim-checksum.sh
set FIM_RC=%ERRORLEVEL%
echo.
echo [8/8] Generate summary...
docker compose exec -T -e REPORTS_DIR=/reports test-runner sh /scripts/generate-summary.sh %TS%
echo.
echo Done. Reports in: %REPORTS%
echo %PMI_LOG%
echo %AUDIT_LOG%
echo %FIM_LOG%
echo %TS%_summary.md
if not "%PMI_RC%"=="0" (
echo PMI tests: FAILED
exit /b 1
)
if not "%FIM_RC%"=="0" (
echo FIM check: FAILED
exit /b 1
)
echo All checks completed successfully.
exit /b 0
:fail
echo ERROR: step failed.
exit /b 1