617ecd2014
chore: Ignorer les artefacts de test dans packaging/test/
...
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com >
2026-02-25 21:29:41 +01:00
71011a786d
chore: Mise à jour du .gitignore
...
Ajout des entrées pour:
- Qwen (.qwen/, .qwenignore)
- Build artifacts (dist/, build/, *.so, *.dylib, *.o)
- Go (coverage.*, *.test, go.work*)
- Docker (docker-compose.override.yml)
- IDE (.idea/, .vscode/, *.swp)
- Fichiers temporaires (tmp/, temp/, *.tmp, *.bak)
- Binaires (ja4sentinel, ja4sentinel-linux-amd64)
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com >
2026-02-25 21:28:08 +01:00
c62101a08e
fix: Support Debian Bookworm et Ubuntu pour le package .deb
...
Cible: Debian Bookworm (12) et Ubuntu 22.04+
Changes:
- packaging/Dockerfile.deb: Build via Docker avec Go 1.24
- packaging/build-deb.sh: Ajout paramètre distribution (debian/ubuntu)
- packaging/test/Dockerfile.deb: Test sur Debian Bookworm
- packaging/test/test-*.sh: Tests spécifiques Debian/Ubuntu
- .github/workflows/build-deb.yml:
* Nom du job: 'Build DEB Package (Debian/Ubuntu)'
* TARGET_DIST: debian:bookworm
* Build simplifié via Docker
- Makefile: package-deb utilise Docker (cohérent avec RPM)
Compatibilité:
- Debian 11 (Bullseye)
- Debian 12 (Bookworm)
- Ubuntu 20.04 LTS
- Ubuntu 22.04 LTS
- Ubuntu 24.04 LTS
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com >
2026-02-25 21:25:45 +01:00
6f7c5450f8
fix: Support Rocky Linux 9 pour le package RPM
...
Cible: Rocky Linux 9 (compatible RHEL/CentOS)
Changes:
- packaging/Dockerfile.rpm: Build pour Rocky Linux
- packaging/build-rpm.sh: Ajout paramètre distribution (rocky/rhel/centos)
- packaging/rpm/ja4sentinel.spec:
* Condition %if 0%{?rhel} >= 8 pour compatibilité RHEL
* Description mise à jour avec Rocky Linux
- packaging/test/Dockerfile.rpm: Test sur Rocky Linux 9
- packaging/test/test-*.sh: Tests spécifiques Rocky Linux
- .github/workflows/build-rpm.yml:
* Nom du job: 'Build RPM Package (Rocky Linux)'
* TARGET_DIST: rockylinux:9
* Simplification du build via Docker
Documentation:
- README.md: Instructions d'installation pour .rpm (Rocky/RHEL) et .deb (Debian/Ubuntu)
- Remplacement des instructions de build par installation via packages
Compatibilité:
- Rocky Linux 8.x et 9.x
- RHEL 8.x et 9.x
- CentOS Stream 8 et 9
- AlmaLinux 8.x et 9.x
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com >
2026-02-25 21:17:37 +01:00
61bf05454e
feat: CI/CD pour packages .deb et .rpm + tests d'installation
...
Nouveaux workflows GitHub Actions:
- .github/workflows/build-deb.yml : Build et release DEB sur Ubuntu
- .github/workflows/build-rpm.yml : Build et release RPM sur Fedora
- Déclenchement sur tags v*, push main/master, workflow_dispatch
- Upload des artifacts et création automatique de release
Système de build de packages:
- packaging/build-deb.sh : Script de build .deb avec sanitization version
- packaging/build-rpm.sh : Script de build .rpm (via Docker)
- packaging/Dockerfile.deb : Container Ubuntu 22.04 pour build DEB
- packaging/Dockerfile.rpm : Container Go 1.24 + rpm pour build RPM
Fichiers de configuration systemd:
- packaging/systemd/ja4sentinel.service : Unit avec security hardening
* NoNewPrivileges, ProtectSystem, ProtectHome
* CAP_NET_RAW, CAP_NET_ADMIN pour packet capture
- packaging/systemd/config.yml : Configuration par défaut
Scripts mainteneur DEB:
- packaging/deb/postinst : Création user/group, dirs, config
- packaging/deb/prerm : Stop service avant upgrade/remove
- packaging/deb/postrm : Cleanup complet en purge
Spec file RPM:
- packaging/rpm/ja4sentinel.spec : Spec complet avec dependencies
* Requires: systemd, libpcap
* %pre/%post/%preun/%postun scripts
Tests d'installation dans containers:
- packaging/test/test-deb.sh : Build + test Docker Ubuntu
- packaging/test/test-rpm.sh : Build + test Docker Fedora
- packaging/test/test-install-deb.sh : 11 tests automatisés
- packaging/test/test-install-rpm.sh : 11 tests automatisés
- Dockerfile.deb/rpm : Containers de test dédiés
Makefile:
- package-deb : Build .deb
- package-rpm : Build .rpm via Docker (no-cache)
- package : Build les deux
- test-package-deb : Build + test installation DEB
- test-package-rpm : Build + test installation RPM
- test-package : Test les deux packages
Tests:
- ✅ DEB: 11/11 tests passés (binaire, config, service, user, dirs)
- ✅ RPM: Build réussi (3.3 MB)
- Version sanitization pour git tags (ex: efd4481-dirty → 0.0.0+efd4481-dirty)
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com >
2026-02-25 21:05:23 +01:00
efd4481729
feat: implémentation complète du pipeline JA4 + Docker + tests
...
Nouveaux modules:
- cmd/ja4sentinel/main.go : point d'entrée avec pipeline capture→parse→fingerprint→output
- internal/config/loader.go : chargement YAML + env (JA4SENTINEL_*) + validation
- internal/tlsparse/parser.go : extraction ClientHello avec suivi d'état de flux (NEW/WAIT_CLIENT_HELLO/JA4_DONE)
- internal/fingerprint/engine.go : génération JA4/JA3 via psanford/tlsfingerprint
- internal/output/writers.go : StdoutWriter, FileWriter, UnixSocketWriter, MultiWriter
Infrastructure:
- Dockerfile (multi-stage), Dockerfile.dev, Dockerfile.test-server
- Makefile (build, test, lint, docker-build-*)
- docker-compose.test.yml pour tests d'intégration
- README.md (276 lignes) avec architecture, config, exemples
API (api/types.go):
- Ajout Close() aux interfaces Capture et Parser
- Ajout FlowTimeoutSec dans Config (défaut: 30s, env: JA4SENTINEL_FLOW_TIMEOUT)
- ServiceLog: +Timestamp, +TraceID, +ConnID
- LogRecord: champs flatten (ip_meta_*, tcp_meta_*, ja4*)
- Helper NewLogRecord() pour conversion TLSClientHello+Fingerprints→LogRecord
Architecture (architecture.yml):
- Documentation module logging + interfaces LoggerFactory/Logger
- Section service.systemd complète (unit, security, capabilities)
- Section logging.strategy (JSON lines, champs, règles)
- api.Config: +FlowTimeoutSec documenté
Fixes/cleanup:
- Suppression internal/api/types.go (consolidé dans api/types.go)
- Correction imports logging (ja4sentinel/api)
- .dockerignore / .gitignore
- config.yml.example
Tests:
- Tous les modules ont leurs tests (*_test.go)
- Tests unitaires : capture, config, fingerprint, output, tlsparse
- Tests d'intégration via docker-compose.test.yml
Build:
- Binaires dans dist/ (make build → dist/ja4sentinel)
- Docker runtime avec COPY --from=builder /app/dist/
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com >
2026-02-25 20:02:52 +01:00
3b09f9416e
feat: Implémenter le système de logging complet avec interfaces et structures de données
...
Co-authored-by: aider (openrouter/qwen/qwen3-coder-plus) <aider@aider.chat >
2026-02-25 04:17:40 +01:00
87d47324fb
feat: Ajouter le module de capture réseau avec filtres BPF et tests associés
...
Co-authored-by: aider (openrouter/qwen/qwen3-coder-plus) <aider@aider.chat >
2026-02-25 04:14:51 +01:00
3c6531fc7b
chore: Ajouter un nouveau fichier avec le contenu spécifié
...
Co-authored-by: aider (openrouter/qwen/qwen3-coder-plus) <aider@aider.chat >
2026-02-25 04:13:37 +01:00
2cb2ff6f92
feat: Ajouter les types Go pour l'API et les interfaces du système
...
Co-authored-by: aider (openrouter/qwen/qwen3-coder-plus) <aider@aider.chat >
2026-02-25 04:12:43 +01:00
34f6fff125
feat: Ajouter les types API pour ja4sentinel avec structures de données complètes
...
Co-authored-by: aider (openrouter/qwen/qwen3-coder-plus) <aider@aider.chat >
2026-02-25 04:11:52 +01:00
5fa3c3c293
init
2026-02-25 03:15:53 +01:00