blockmine 1.21.0 → 1.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (492) hide show
  1. package/.claude/agents/README.md +469 -0
  2. package/.claude/agents/auth-route-debugger.md +118 -0
  3. package/.claude/agents/auth-route-tester.md +93 -0
  4. package/.claude/agents/auto-error-resolver.md +97 -0
  5. package/.claude/agents/build-optimizer.md +236 -0
  6. package/.claude/agents/code-architecture-reviewer.md +83 -0
  7. package/.claude/agents/code-refactor-master.md +94 -0
  8. package/.claude/agents/cost-optimizer.md +134 -0
  9. package/.claude/agents/deployment-orchestrator.md +113 -0
  10. package/.claude/agents/documentation-architect.md +82 -0
  11. package/.claude/agents/frontend-error-fixer.md +77 -0
  12. package/.claude/agents/iac-code-generator.md +71 -0
  13. package/.claude/agents/incident-responder.md +346 -0
  14. package/.claude/agents/infrastructure-architect.md +31 -0
  15. package/.claude/agents/kubernetes-specialist.md +56 -0
  16. package/.claude/agents/migration-planner.md +181 -0
  17. package/.claude/agents/network-architect.md +196 -0
  18. package/.claude/agents/plan-reviewer.md +52 -0
  19. package/.claude/agents/refactor-planner.md +63 -0
  20. package/.claude/agents/security-scanner.md +102 -0
  21. package/.claude/agents/web-research-specialist.md +78 -0
  22. package/.claude/commands/cost-analysis.md +315 -0
  23. package/.claude/commands/dev-docs-update.md +55 -0
  24. package/.claude/commands/dev-docs.md +51 -0
  25. package/.claude/commands/incident-debug.md +247 -0
  26. package/.claude/commands/infra-plan.md +81 -0
  27. package/.claude/commands/migration-plan.md +478 -0
  28. package/.claude/commands/route-research-for-testing.md +37 -0
  29. package/.claude/commands/security-review.md +66 -0
  30. package/.claude/hooks/CONFIG.md +448 -0
  31. package/.claude/hooks/README.md +163 -0
  32. package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +226 -0
  33. package/.claude/hooks/WINDOWS_HOOKS_README.md +151 -0
  34. package/.claude/hooks/add-skill-activation-banners.ts +132 -0
  35. package/.claude/hooks/comprehensive-skill-test.ts +1315 -0
  36. package/.claude/hooks/error-handling-reminder.sh +12 -0
  37. package/.claude/hooks/error-handling-reminder.ts +222 -0
  38. package/.claude/hooks/k8s-manifest-validator.sh +56 -0
  39. package/.claude/hooks/package-lock.json +556 -0
  40. package/.claude/hooks/package.json +16 -0
  41. package/.claude/hooks/post-tool-use-tracker.ps1 +174 -0
  42. package/.claude/hooks/post-tool-use-tracker.sh +183 -0
  43. package/.claude/hooks/security-policy-check.sh +247 -0
  44. package/.claude/hooks/skill-activation-prompt.ps1 +10 -0
  45. package/.claude/hooks/skill-activation-prompt.sh +10 -0
  46. package/.claude/hooks/skill-activation-prompt.ts +141 -0
  47. package/.claude/hooks/stop-build-check-enhanced.sh +130 -0
  48. package/.claude/hooks/terraform-validator.sh +53 -0
  49. package/.claude/hooks/test-input.json +7 -0
  50. package/.claude/hooks/test-skill-activation.ts +427 -0
  51. package/.claude/hooks/trigger-build-resolver.sh +79 -0
  52. package/.claude/hooks/tsc-check.sh +173 -0
  53. package/.claude/hooks/tsconfig.json +19 -0
  54. package/.claude/settings.json +59 -0
  55. package/.claude/settings.local.json +36 -14
  56. package/.claude/skills/README.md +507 -0
  57. package/.claude/skills/api-engineering/SKILL.md +63 -0
  58. package/.claude/skills/api-engineering/resources/api-versioning.md +88 -0
  59. package/.claude/skills/api-engineering/resources/graphql-patterns.md +106 -0
  60. package/.claude/skills/api-engineering/resources/rate-limiting.md +118 -0
  61. package/.claude/skills/api-engineering/resources/rest-api-design.md +105 -0
  62. package/.claude/skills/backend-dev-guidelines/SKILL.md +306 -0
  63. package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +451 -0
  64. package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +307 -0
  65. package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +638 -0
  66. package/.claude/skills/backend-dev-guidelines/resources/configuration.md +275 -0
  67. package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +224 -0
  68. package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +213 -0
  69. package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +756 -0
  70. package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +336 -0
  71. package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +789 -0
  72. package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +235 -0
  73. package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +754 -0
  74. package/.claude/skills/budget-and-cost-management/SKILL.md +850 -0
  75. package/.claude/skills/build-engineering/SKILL.md +431 -0
  76. package/.claude/skills/build-engineering/resources/artifact-repositories.md +72 -0
  77. package/.claude/skills/build-engineering/resources/build-caching.md +96 -0
  78. package/.claude/skills/build-engineering/resources/build-pipelines.md +105 -0
  79. package/.claude/skills/build-engineering/resources/build-security.md +95 -0
  80. package/.claude/skills/build-engineering/resources/build-systems.md +389 -0
  81. package/.claude/skills/build-engineering/resources/compilation-optimization.md +201 -0
  82. package/.claude/skills/build-engineering/resources/dependency-management.md +73 -0
  83. package/.claude/skills/build-engineering/resources/monorepo-builds.md +110 -0
  84. package/.claude/skills/build-engineering/resources/performance-optimization.md +113 -0
  85. package/.claude/skills/build-engineering/resources/reproducible-builds.md +82 -0
  86. package/.claude/skills/cloud-engineering/SKILL.md +675 -0
  87. package/.claude/skills/cloud-engineering/resources/aws-patterns.md +742 -0
  88. package/.claude/skills/cloud-engineering/resources/azure-patterns.md +714 -0
  89. package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +987 -0
  90. package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +757 -0
  91. package/.claude/skills/cloud-engineering/resources/cloud-networking.md +1058 -0
  92. package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +1530 -0
  93. package/.claude/skills/cloud-engineering/resources/cloud-security.md +990 -0
  94. package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +758 -0
  95. package/.claude/skills/cloud-engineering/resources/migration-strategies.md +820 -0
  96. package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +670 -0
  97. package/.claude/skills/cloud-engineering/resources/oci-patterns.md +1198 -0
  98. package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +795 -0
  99. package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +966 -0
  100. package/.claude/skills/cybersecurity/SKILL.md +409 -0
  101. package/.claude/skills/cybersecurity/resources/security-architecture.md +266 -0
  102. package/.claude/skills/database-engineering/SKILL.md +61 -0
  103. package/.claude/skills/database-engineering/resources/backup-and-recovery.md +72 -0
  104. package/.claude/skills/database-engineering/resources/database-replication.md +63 -0
  105. package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +70 -0
  106. package/.claude/skills/database-engineering/resources/query-optimization.md +68 -0
  107. package/.claude/skills/devsecops/SKILL.md +374 -0
  108. package/.claude/skills/devsecops/resources/ci-cd-security.md +204 -0
  109. package/.claude/skills/devsecops/resources/compliance-automation.md +530 -0
  110. package/.claude/skills/devsecops/resources/compliance-frameworks.md +2322 -0
  111. package/.claude/skills/devsecops/resources/container-security.md +915 -0
  112. package/.claude/skills/devsecops/resources/cspm-integration.md +1440 -0
  113. package/.claude/skills/devsecops/resources/policy-enforcement.md +619 -0
  114. package/.claude/skills/devsecops/resources/secrets-management.md +755 -0
  115. package/.claude/skills/devsecops/resources/security-monitoring.md +146 -0
  116. package/.claude/skills/devsecops/resources/security-scanning.md +887 -0
  117. package/.claude/skills/devsecops/resources/security-testing.md +203 -0
  118. package/.claude/skills/devsecops/resources/supply-chain-security.md +518 -0
  119. package/.claude/skills/devsecops/resources/vulnerability-management.md +481 -0
  120. package/.claude/skills/devsecops/resources/zero-trust-architecture.md +177 -0
  121. package/.claude/skills/documentation-as-code/SKILL.md +323 -0
  122. package/.claude/skills/documentation-as-code/resources/api-documentation.md +90 -0
  123. package/.claude/skills/documentation-as-code/resources/changelog-management.md +79 -0
  124. package/.claude/skills/documentation-as-code/resources/diagram-generation.md +44 -0
  125. package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +99 -0
  126. package/.claude/skills/documentation-as-code/resources/documentation-automation.md +68 -0
  127. package/.claude/skills/documentation-as-code/resources/documentation-sites.md +79 -0
  128. package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +162 -0
  129. package/.claude/skills/documentation-as-code/resources/openapi-specification.md +77 -0
  130. package/.claude/skills/documentation-as-code/resources/readme-engineering.md +60 -0
  131. package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +202 -0
  132. package/.claude/skills/engineering-management/SKILL.md +356 -0
  133. package/.claude/skills/engineering-management/resources/career-ladders.md +609 -0
  134. package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +555 -0
  135. package/.claude/skills/engineering-management/resources/one-on-one-guides.md +609 -0
  136. package/.claude/skills/engineering-management/resources/resource-planning.md +557 -0
  137. package/.claude/skills/engineering-management/resources/team-organization-patterns.md +491 -0
  138. package/.claude/skills/engineering-management/resources/technical-interviews.md +474 -0
  139. package/.claude/skills/engineering-operations-management/SKILL.md +817 -0
  140. package/.claude/skills/error-tracking/SKILL.md +379 -0
  141. package/.claude/skills/frontend-dev-guidelines/SKILL.md +403 -0
  142. package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +331 -0
  143. package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +872 -0
  144. package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +502 -0
  145. package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +767 -0
  146. package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +502 -0
  147. package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +501 -0
  148. package/.claude/skills/frontend-dev-guidelines/resources/performance.md +406 -0
  149. package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +364 -0
  150. package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +428 -0
  151. package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +418 -0
  152. package/.claude/skills/general-it-engineering/SKILL.md +393 -0
  153. package/.claude/skills/general-it-engineering/resources/asset-management.md +712 -0
  154. package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +817 -0
  155. package/.claude/skills/general-it-engineering/resources/business-continuity.md +786 -0
  156. package/.claude/skills/general-it-engineering/resources/change-management.md +715 -0
  157. package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +729 -0
  158. package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +738 -0
  159. package/.claude/skills/general-it-engineering/resources/incident-service-management.md +834 -0
  160. package/.claude/skills/general-it-engineering/resources/it-governance.md +753 -0
  161. package/.claude/skills/general-it-engineering/resources/itil-framework.md +503 -0
  162. package/.claude/skills/general-it-engineering/resources/service-management.md +669 -0
  163. package/.claude/skills/infrastructure-architecture/SKILL.md +328 -0
  164. package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +505 -0
  165. package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +528 -0
  166. package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +453 -0
  167. package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +773 -0
  168. package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +499 -0
  169. package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +501 -0
  170. package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +535 -0
  171. package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +512 -0
  172. package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +608 -0
  173. package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +562 -0
  174. package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +538 -0
  175. package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +489 -0
  176. package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +1000 -0
  177. package/.claude/skills/infrastructure-strategy/SKILL.md +924 -0
  178. package/.claude/skills/network-engineering/SKILL.md +385 -0
  179. package/.claude/skills/network-engineering/resources/dns-management.md +738 -0
  180. package/.claude/skills/network-engineering/resources/load-balancing.md +820 -0
  181. package/.claude/skills/network-engineering/resources/network-architecture.md +546 -0
  182. package/.claude/skills/network-engineering/resources/network-security.md +921 -0
  183. package/.claude/skills/network-engineering/resources/network-troubleshooting.md +749 -0
  184. package/.claude/skills/network-engineering/resources/routing-switching.md +373 -0
  185. package/.claude/skills/network-engineering/resources/sdn-networking.md +695 -0
  186. package/.claude/skills/network-engineering/resources/service-mesh-networking.md +777 -0
  187. package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +444 -0
  188. package/.claude/skills/network-engineering/resources/vpn-connectivity.md +672 -0
  189. package/.claude/skills/observability-engineering/SKILL.md +101 -0
  190. package/.claude/skills/observability-engineering/resources/apm-tools.md +97 -0
  191. package/.claude/skills/observability-engineering/resources/correlation-strategies.md +87 -0
  192. package/.claude/skills/observability-engineering/resources/distributed-tracing.md +98 -0
  193. package/.claude/skills/observability-engineering/resources/logs-aggregation.md +118 -0
  194. package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +141 -0
  195. package/.claude/skills/observability-engineering/resources/opentelemetry.md +110 -0
  196. package/.claude/skills/platform-engineering/SKILL.md +555 -0
  197. package/.claude/skills/platform-engineering/resources/architecture-overview.md +600 -0
  198. package/.claude/skills/platform-engineering/resources/container-orchestration.md +916 -0
  199. package/.claude/skills/platform-engineering/resources/cost-optimization.md +634 -0
  200. package/.claude/skills/platform-engineering/resources/developer-platforms.md +670 -0
  201. package/.claude/skills/platform-engineering/resources/gitops-automation.md +650 -0
  202. package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +778 -0
  203. package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +708 -0
  204. package/.claude/skills/platform-engineering/resources/multi-tenancy.md +602 -0
  205. package/.claude/skills/platform-engineering/resources/platform-security.md +711 -0
  206. package/.claude/skills/platform-engineering/resources/resource-management.md +592 -0
  207. package/.claude/skills/platform-engineering/resources/service-mesh.md +628 -0
  208. package/.claude/skills/release-engineering/SKILL.md +393 -0
  209. package/.claude/skills/release-engineering/resources/artifact-management.md +108 -0
  210. package/.claude/skills/release-engineering/resources/build-optimization.md +84 -0
  211. package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +411 -0
  212. package/.claude/skills/release-engineering/resources/deployment-strategies.md +197 -0
  213. package/.claude/skills/release-engineering/resources/pipeline-security.md +62 -0
  214. package/.claude/skills/release-engineering/resources/progressive-delivery.md +83 -0
  215. package/.claude/skills/release-engineering/resources/release-automation.md +68 -0
  216. package/.claude/skills/release-engineering/resources/release-orchestration.md +77 -0
  217. package/.claude/skills/release-engineering/resources/rollback-strategies.md +66 -0
  218. package/.claude/skills/release-engineering/resources/versioning-strategies.md +59 -0
  219. package/.claude/skills/route-tester/SKILL.md +392 -0
  220. package/.claude/skills/skill-developer/ADVANCED.md +197 -0
  221. package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +306 -0
  222. package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +152 -0
  223. package/.claude/skills/skill-developer/SKILL.md +430 -0
  224. package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +315 -0
  225. package/.claude/skills/skill-developer/TRIGGER_TYPES.md +305 -0
  226. package/.claude/skills/skill-developer/TROUBLESHOOTING.md +514 -0
  227. package/.claude/skills/skill-rules.json +2940 -0
  228. package/.claude/skills/sre/SKILL.md +464 -0
  229. package/.claude/skills/sre/resources/alerting-best-practices.md +282 -0
  230. package/.claude/skills/sre/resources/capacity-planning.md +226 -0
  231. package/.claude/skills/sre/resources/chaos-engineering.md +193 -0
  232. package/.claude/skills/sre/resources/disaster-recovery.md +232 -0
  233. package/.claude/skills/sre/resources/incident-management.md +436 -0
  234. package/.claude/skills/sre/resources/observability-stack.md +240 -0
  235. package/.claude/skills/sre/resources/on-call-runbooks.md +167 -0
  236. package/.claude/skills/sre/resources/performance-optimization.md +108 -0
  237. package/.claude/skills/sre/resources/reliability-patterns.md +183 -0
  238. package/.claude/skills/sre/resources/slo-sli-sla.md +464 -0
  239. package/.claude/skills/sre/resources/toil-reduction.md +145 -0
  240. package/.claude/skills/systems-engineering/SKILL.md +648 -0
  241. package/.claude/skills/systems-engineering/resources/automation-patterns.md +771 -0
  242. package/.claude/skills/systems-engineering/resources/configuration-management.md +998 -0
  243. package/.claude/skills/systems-engineering/resources/linux-administration.md +672 -0
  244. package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +982 -0
  245. package/.claude/skills/systems-engineering/resources/performance-tuning.md +871 -0
  246. package/.claude/skills/systems-engineering/resources/powershell-scripting.md +482 -0
  247. package/.claude/skills/systems-engineering/resources/security-hardening.md +739 -0
  248. package/.claude/skills/systems-engineering/resources/shell-scripting.md +915 -0
  249. package/.claude/skills/systems-engineering/resources/storage-management.md +628 -0
  250. package/.claude/skills/systems-engineering/resources/system-monitoring.md +787 -0
  251. package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +753 -0
  252. package/.claude/skills/systems-engineering/resources/windows-administration.md +738 -0
  253. package/.claude/skills/technical-leadership/SKILL.md +728 -0
  254. package/CHANGELOG.md +102 -42
  255. package/CLAUDE.md +284 -0
  256. package/README.md +315 -71
  257. package/backend/docs/SECRETS_DOCUMENTATION.md +327 -0
  258. package/backend/jest.config.js +59 -0
  259. package/backend/package-lock.json +6801 -0
  260. package/backend/package.json +24 -4
  261. package/backend/prisma/migrations/20251026104609_add_websocket_api/migration.sql +33 -0
  262. package/backend/prisma/migrations/20251116111851_add_execution_trace/migration.sql +22 -0
  263. package/backend/prisma/migrations/20251120154914_add_panel_api_keys/migration.sql +21 -0
  264. package/backend/prisma/migrations/20251121110241_add_proxy_table/migration.sql +45 -0
  265. package/backend/prisma/migrations/migration_lock.toml +2 -2
  266. package/backend/prisma/schema.prisma +103 -1
  267. package/backend/src/__tests__/core/DependencyService.test.js +336 -0
  268. package/backend/src/__tests__/core/UserService.test.js +875 -0
  269. package/backend/src/__tests__/repositories/BaseRepository.test.js +146 -0
  270. package/backend/src/__tests__/repositories/BotRepository.test.js +118 -0
  271. package/backend/src/__tests__/repositories/CommandRepository.test.js +132 -0
  272. package/backend/src/__tests__/repositories/EventGraphRepository.test.js +93 -0
  273. package/backend/src/__tests__/repositories/GroupRepository.test.js +155 -0
  274. package/backend/src/__tests__/repositories/PermissionRepository.test.js +130 -0
  275. package/backend/src/__tests__/repositories/PluginRepository.test.js +107 -0
  276. package/backend/src/__tests__/repositories/ServerRepository.test.js +80 -0
  277. package/backend/src/__tests__/repositories/UserRepository.test.js +128 -0
  278. package/backend/src/__tests__/secretsFilter.test.js +425 -0
  279. package/backend/src/__tests__/services/BotLifecycleService.test.js +416 -0
  280. package/backend/src/__tests__/services/BotProcessManager.test.js +285 -0
  281. package/backend/src/__tests__/services/CacheManager.test.js +125 -0
  282. package/backend/src/__tests__/services/CommandExecutionService.test.js +460 -0
  283. package/backend/src/__tests__/services/ResourceMonitorService.test.js +207 -0
  284. package/backend/src/__tests__/services/TelemetryService.test.js +291 -0
  285. package/backend/src/__tests__/setup.js +25 -0
  286. package/backend/src/ai/plugin-assistant-system-prompt.md +788 -0
  287. package/backend/src/api/middleware/auth.js +27 -0
  288. package/backend/src/api/middleware/botAccess.js +7 -3
  289. package/backend/src/api/middleware/panelApiAuth.js +135 -0
  290. package/backend/src/api/routes/aiAssistant.js +995 -0
  291. package/backend/src/api/routes/apiKeys.js +181 -0
  292. package/backend/src/api/routes/auth.js +669 -633
  293. package/backend/src/api/routes/botCommands.js +107 -0
  294. package/backend/src/api/routes/botGroups.js +165 -0
  295. package/backend/src/api/routes/botHistory.js +108 -0
  296. package/backend/src/api/routes/botPermissions.js +99 -0
  297. package/backend/src/api/routes/botStatus.js +36 -0
  298. package/backend/src/api/routes/botUsers.js +162 -0
  299. package/backend/src/api/routes/bots.js +2451 -2360
  300. package/backend/src/api/routes/eventGraphs.js +4 -1
  301. package/backend/src/api/routes/logs.js +13 -3
  302. package/backend/src/api/routes/panel.js +66 -66
  303. package/backend/src/api/routes/panelApiKeys.js +179 -0
  304. package/backend/src/api/routes/pluginIde.js +1715 -135
  305. package/backend/src/api/routes/plugins.js +376 -218
  306. package/backend/src/api/routes/proxies.js +130 -0
  307. package/backend/src/api/routes/search.js +4 -0
  308. package/backend/src/api/routes/servers.js +20 -3
  309. package/backend/src/api/routes/settings.js +5 -0
  310. package/backend/src/api/routes/system.js +174 -0
  311. package/backend/src/api/routes/traces.js +131 -0
  312. package/backend/src/config/debug.config.js +36 -0
  313. package/backend/src/container.js +82 -0
  314. package/backend/src/core/BotHistoryStore.js +180 -0
  315. package/backend/src/core/BotManager.js +149 -868
  316. package/backend/src/core/BotManager.old.js +1093 -0
  317. package/backend/src/core/BotProcess.js +850 -191
  318. package/backend/src/core/EventGraphManager.js +194 -198
  319. package/backend/src/core/GraphExecutionEngine.js +709 -57
  320. package/backend/src/core/MessageQueue.js +39 -12
  321. package/backend/src/core/NodeRegistry.js +37 -1134
  322. package/backend/src/core/PluginLoader.js +99 -5
  323. package/backend/src/core/PluginManager.js +126 -15
  324. package/backend/src/core/PrismaService.js +32 -0
  325. package/backend/src/core/TaskScheduler.js +1 -1
  326. package/backend/src/core/UserService.js +3 -3
  327. package/backend/src/core/__tests__/PrismaService.test.js +24 -0
  328. package/backend/src/core/commands/README.md +305 -0
  329. package/backend/src/core/commands/dev.js +13 -7
  330. package/backend/src/core/commands/ping.js +10 -4
  331. package/backend/src/core/commands/whois.js +63 -0
  332. package/backend/src/core/config/validation.js +27 -0
  333. package/backend/src/core/constants/graphTypes.js +21 -0
  334. package/backend/src/core/node-registries/actions.js +202 -0
  335. package/backend/src/core/node-registries/arrays.js +155 -0
  336. package/backend/src/core/node-registries/bot.js +23 -0
  337. package/backend/src/core/node-registries/data.js +290 -0
  338. package/backend/src/core/node-registries/debug.js +26 -0
  339. package/backend/src/core/node-registries/events.js +201 -0
  340. package/backend/src/core/node-registries/flow.js +139 -0
  341. package/backend/src/core/node-registries/logic.js +62 -0
  342. package/backend/src/core/node-registries/math.js +42 -0
  343. package/backend/src/core/node-registries/objects.js +98 -0
  344. package/backend/src/core/node-registries/strings.js +187 -0
  345. package/backend/src/core/node-registries/time.js +113 -0
  346. package/backend/src/core/node-registries/type.js +25 -0
  347. package/backend/src/core/node-registries/users.js +79 -0
  348. package/backend/src/core/nodes/{action_bot_look_at.js → actions/bot_look_at.js} +36 -36
  349. package/backend/src/core/nodes/{action_bot_set_variable.js → actions/bot_set_variable.js} +32 -32
  350. package/backend/src/core/nodes/actions/create_command.js +189 -0
  351. package/backend/src/core/nodes/actions/delete_command.js +92 -0
  352. package/backend/src/core/nodes/{action_send_log.js → actions/send_log.js} +28 -23
  353. package/backend/src/core/nodes/{action_send_message.js → actions/send_message.js} +32 -32
  354. package/backend/src/core/nodes/actions/send_websocket_response.js +33 -0
  355. package/backend/src/core/nodes/actions/update_command.js +133 -0
  356. package/backend/src/core/nodes/arrays/get_next.js +35 -0
  357. package/backend/src/core/nodes/arrays/join.js +28 -0
  358. package/backend/src/core/nodes/{data_cast.js → data/cast.js} +10 -1
  359. package/backend/src/core/nodes/data/datetime_literal.js +27 -0
  360. package/backend/src/core/nodes/data/entity_info.js +69 -0
  361. package/backend/src/core/nodes/data/get_nearby_entities.js +32 -0
  362. package/backend/src/core/nodes/data/get_nearby_players.js +64 -0
  363. package/backend/src/core/nodes/{data_get_user_field.js → data/get_user_field.js} +1 -1
  364. package/backend/src/core/nodes/data/type_check.js +53 -0
  365. package/backend/src/core/nodes/{debug_log.js → debug/log.js} +16 -16
  366. package/backend/src/core/nodes/{flow_branch.js → flow/branch.js} +15 -15
  367. package/backend/src/core/nodes/{flow_break.js → flow/break.js} +14 -14
  368. package/backend/src/core/nodes/flow/delay.js +43 -0
  369. package/backend/src/core/nodes/{flow_for_each.js → flow/for_each.js} +39 -39
  370. package/backend/src/core/nodes/{flow_sequence.js → flow/sequence.js} +16 -16
  371. package/backend/src/core/nodes/{flow_switch.js → flow/switch.js} +47 -47
  372. package/backend/src/core/nodes/{flow_while.js → flow/while.js} +1 -1
  373. package/backend/src/core/nodes/logic/__tests__/compare.test.js +83 -0
  374. package/backend/src/core/nodes/logic/not.js +22 -0
  375. package/backend/src/core/nodes/math/__tests__/operation.test.js +65 -0
  376. package/backend/src/core/nodes/strings/__tests__/concat.test.js +89 -0
  377. package/backend/src/core/nodes/{string_starts_with.js → strings/starts_with.js} +1 -1
  378. package/backend/src/core/nodes/strings/to_lower.js +22 -0
  379. package/backend/src/core/nodes/strings/to_upper.js +22 -0
  380. package/backend/src/core/nodes/time/__tests__/now.test.js +24 -0
  381. package/backend/src/core/nodes/time/add.js +33 -0
  382. package/backend/src/core/nodes/time/compare.js +35 -0
  383. package/backend/src/core/nodes/time/diff.js +29 -0
  384. package/backend/src/core/nodes/time/format.js +32 -0
  385. package/backend/src/core/nodes/time/now.js +18 -0
  386. package/backend/src/core/nodes/type/to_string.js +32 -0
  387. package/backend/src/core/nodes/{user_check_blacklist.js → users/check_blacklist.js} +37 -37
  388. package/backend/src/core/nodes/{user_get_groups.js → users/get_groups.js} +36 -36
  389. package/backend/src/core/nodes/{user_get_permissions.js → users/get_permissions.js} +36 -36
  390. package/backend/src/core/nodes/{user_set_blacklist.js → users/set_blacklist.js} +37 -37
  391. package/backend/src/core/services/BotLifecycleService.js +835 -0
  392. package/backend/src/core/services/BotProcessManager.js +163 -0
  393. package/backend/src/core/services/CacheManager.js +111 -0
  394. package/backend/src/core/services/CommandExecutionService.js +430 -0
  395. package/backend/src/core/services/DebugSessionManager.js +347 -0
  396. package/backend/src/core/services/GraphCollaborationManager.js +501 -0
  397. package/backend/src/core/services/MinecraftBotManager.js +259 -0
  398. package/backend/src/core/services/MinecraftViewerService.js +216 -0
  399. package/backend/src/core/services/ResourceMonitorService.js +90 -0
  400. package/backend/src/core/services/TelemetryService.js +124 -0
  401. package/backend/src/core/services/TraceCollectorService.js +545 -0
  402. package/backend/src/core/services/ValidationService.js +132 -0
  403. package/backend/src/core/services/__tests__/ValidationService.test.js +148 -0
  404. package/backend/src/core/services.js +20 -5
  405. package/backend/src/core/system/CommandContext.js +84 -0
  406. package/backend/src/core/system/RuntimeCommandRegistry.js +116 -0
  407. package/backend/src/core/system/Transport.js +74 -0
  408. package/backend/src/core/utils/__tests__/jsonParser.test.js +44 -0
  409. package/backend/src/core/utils/jsonParser.js +18 -0
  410. package/backend/src/core/utils/secretsFilter.js +262 -0
  411. package/backend/src/core/utils/variableParser.js +89 -0
  412. package/backend/src/core/validation/__tests__/nodeSchemas.test.js +175 -0
  413. package/backend/src/core/validation/nodeSchemas.js +112 -0
  414. package/backend/src/lib/prisma.js +2 -4
  415. package/backend/src/real-time/botApi/handlers/commandHandlers.js +28 -0
  416. package/backend/src/real-time/botApi/handlers/graphHandlers.js +99 -0
  417. package/backend/src/real-time/botApi/handlers/graphWebSocketHandlers.js +147 -0
  418. package/backend/src/real-time/botApi/handlers/index.js +43 -0
  419. package/backend/src/real-time/botApi/handlers/messageHandlers.js +66 -0
  420. package/backend/src/real-time/botApi/handlers/statusHandlers.js +17 -0
  421. package/backend/src/real-time/botApi/handlers/userHandlers.js +141 -0
  422. package/backend/src/real-time/botApi/index.js +40 -0
  423. package/backend/src/real-time/botApi/middleware.js +79 -0
  424. package/backend/src/real-time/botApi/utils.js +65 -0
  425. package/backend/src/real-time/panelNamespace.js +387 -0
  426. package/backend/src/real-time/presence.js +7 -2
  427. package/backend/src/real-time/socketHandler.js +400 -5
  428. package/backend/src/repositories/BaseRepository.js +43 -0
  429. package/backend/src/repositories/BotRepository.js +42 -0
  430. package/backend/src/repositories/CommandRepository.js +53 -0
  431. package/backend/src/repositories/EventGraphRepository.js +40 -0
  432. package/backend/src/repositories/GroupRepository.js +69 -0
  433. package/backend/src/repositories/PermissionRepository.js +48 -0
  434. package/backend/src/repositories/PluginRepository.js +42 -0
  435. package/backend/src/repositories/ServerRepository.js +27 -0
  436. package/backend/src/repositories/UserRepository.js +48 -0
  437. package/backend/src/server.js +21 -0
  438. package/backend/src/test-refactor.js +85 -0
  439. package/frontend/dist/assets/index-B1serztM.js +11210 -0
  440. package/frontend/dist/assets/index-t6K1u4OV.css +32 -0
  441. package/frontend/dist/index.html +2 -2
  442. package/frontend/package-lock.json +9437 -0
  443. package/frontend/package.json +8 -5
  444. package/package.json +3 -2
  445. package/screen/console.png +0 -0
  446. package/screen/dashboard.png +0 -0
  447. package/screen/graph_collabe.png +0 -0
  448. package/screen/graph_live_debug.png +0 -0
  449. package/screen/management_command.png +0 -0
  450. package/screen/node_debug_trace.png +0 -0
  451. package/screen/plugin_/320/276/320/261/320/267/320/276/321/200.png +0 -0
  452. package/screen/websocket.png +0 -0
  453. package/screen//320/275/320/260/321/201/321/202/321/200/320/276/320/271/320/272/320/270_/320/276/321/202/320/264/320/265/320/273/321/214/320/275/321/213/321/205_/320/272/320/276/320/274/320/260/320/275/320/264_/320/272/320/260/320/266/320/264/321/203_/320/272/320/276/320/274/320/260/320/275/320/273/320/264/321/203_/320/274/320/276/320/266/320/275/320/276_/320/275/320/260/321/201/321/202/321/200/320/260/320/270/320/262/320/260/321/202/321/214.png +0 -0
  454. package/screen//320/277/320/273/320/260/320/275/320/270/321/200/320/276/320/262/321/211/320/270/320/272_/320/274/320/276/320/266/320/275/320/276_/320/267/320/260/320/264/320/260/320/262/320/260/321/202/321/214_/320/264/320/265/320/271/321/201/321/202/320/262/320/270/321/217_/320/277/320/276_/320/262/321/200/320/265/320/274/320/265/320/275/320/270.png +0 -0
  455. package/frontend/dist/assets/index-B9GedHEa.js +0 -8352
  456. package/frontend/dist/assets/index-zLiy9MDx.css +0 -1
  457. package/nul +0 -0
  458. /package/backend/src/core/nodes/{action_http_request.js → actions/http_request.js} +0 -0
  459. /package/backend/src/core/nodes/{array_add_element.js → arrays/add_element.js} +0 -0
  460. /package/backend/src/core/nodes/{array_contains.js → arrays/contains.js} +0 -0
  461. /package/backend/src/core/nodes/{array_find_index.js → arrays/find_index.js} +0 -0
  462. /package/backend/src/core/nodes/{array_get_by_index.js → arrays/get_by_index.js} +0 -0
  463. /package/backend/src/core/nodes/{array_get_random_element.js → arrays/get_random_element.js} +0 -0
  464. /package/backend/src/core/nodes/{array_remove_by_index.js → arrays/remove_by_index.js} +0 -0
  465. /package/backend/src/core/nodes/{bot_get_position.js → bot/get_position.js} +0 -0
  466. /package/backend/src/core/nodes/{data_array_literal.js → data/array_literal.js} +0 -0
  467. /package/backend/src/core/nodes/{data_boolean_literal.js → data/boolean_literal.js} +0 -0
  468. /package/backend/src/core/nodes/{data_get_argument.js → data/get_argument.js} +0 -0
  469. /package/backend/src/core/nodes/{data_get_bot_look.js → data/get_bot_look.js} +0 -0
  470. /package/backend/src/core/nodes/{data_get_entity_field.js → data/get_entity_field.js} +0 -0
  471. /package/backend/src/core/nodes/{data_get_server_players.js → data/get_server_players.js} +0 -0
  472. /package/backend/src/core/nodes/{data_get_variable.js → data/get_variable.js} +0 -0
  473. /package/backend/src/core/nodes/{data_length.js → data/length.js} +0 -0
  474. /package/backend/src/core/nodes/{data_make_object.js → data/make_object.js} +0 -0
  475. /package/backend/src/core/nodes/{data_number_literal.js → data/number_literal.js} +0 -0
  476. /package/backend/src/core/nodes/{data_string_literal.js → data/string_literal.js} +0 -0
  477. /package/backend/src/core/nodes/{logic_compare.js → logic/compare.js} +0 -0
  478. /package/backend/src/core/nodes/{logic_operation.js → logic/operation.js} +0 -0
  479. /package/backend/src/core/nodes/{math_operation.js → math/operation.js} +0 -0
  480. /package/backend/src/core/nodes/{math_random_number.js → math/random_number.js} +0 -0
  481. /package/backend/src/core/nodes/{object_create.js → objects/create.js} +0 -0
  482. /package/backend/src/core/nodes/{object_delete.js → objects/delete.js} +0 -0
  483. /package/backend/src/core/nodes/{object_get.js → objects/get.js} +0 -0
  484. /package/backend/src/core/nodes/{object_has_key.js → objects/has_key.js} +0 -0
  485. /package/backend/src/core/nodes/{object_set.js → objects/set.js} +0 -0
  486. /package/backend/src/core/nodes/{string_concat.js → strings/concat.js} +0 -0
  487. /package/backend/src/core/nodes/{string_contains.js → strings/contains.js} +0 -0
  488. /package/backend/src/core/nodes/{string_ends_with.js → strings/ends_with.js} +0 -0
  489. /package/backend/src/core/nodes/{string_equals.js → strings/equals.js} +0 -0
  490. /package/backend/src/core/nodes/{string_length.js → strings/length.js} +0 -0
  491. /package/backend/src/core/nodes/{string_matches.js → strings/matches.js} +0 -0
  492. /package/backend/src/core/nodes/{string_split.js → strings/split.js} +0 -0
@@ -0,0 +1,739 @@
1
+ # Security Hardening
2
+
3
+ Comprehensive guide to Linux security hardening covering OS hardening, CIS benchmarks, firewall configuration, SELinux/AppArmor, SSH hardening, and vulnerability scanning.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Security Hardening Overview](#security-hardening-overview)
8
+ - [OS Hardening Checklist](#os-hardening-checklist)
9
+ - [CIS Benchmarks](#cis-benchmarks)
10
+ - [Firewall Configuration](#firewall-configuration)
11
+ - [SELinux and AppArmor](#selinux-and-apparmor)
12
+ - [SSH Hardening](#ssh-hardening)
13
+ - [File Permissions and Capabilities](#file-permissions-and-capabilities)
14
+ - [Audit Logging](#audit-logging)
15
+ - [Vulnerability Scanning](#vulnerability-scanning)
16
+
17
+ ## Security Hardening Overview
18
+
19
+ ### Defense in Depth
20
+
21
+ ```
22
+ ┌─────────────────────────────────────┐
23
+ │ Application Security │
24
+ ├─────────────────────────────────────┤
25
+ │ Host Security (This Guide) │
26
+ ├─────────────────────────────────────┤
27
+ │ Network Security │
28
+ ├─────────────────────────────────────┤
29
+ │ Physical Security │
30
+ └─────────────────────────────────────┘
31
+ ```
32
+
33
+ ### Security Principles
34
+
35
+ - **Least Privilege**: Minimal permissions needed
36
+ - **Defense in Depth**: Multiple layers of security
37
+ - **Fail Secure**: Fail closed, not open
38
+ - **Separation of Duties**: No single point of control
39
+ - **Audit Everything**: Log all security events
40
+
41
+ ## OS Hardening Checklist
42
+
43
+ ### Initial Setup
44
+
45
+ ```bash
46
+ # 1. Update system
47
+ sudo apt update && sudo apt upgrade -y
48
+
49
+ # 2. Enable automatic security updates
50
+ sudo apt install unattended-upgrades
51
+ sudo dpkg-reconfigure -plow unattended-upgrades
52
+
53
+ # 3. Remove unnecessary packages
54
+ sudo apt autoremove --purge
55
+
56
+ # 4. Disable unnecessary services
57
+ sudo systemctl list-unit-files --type=service --state=enabled
58
+ sudo systemctl disable <service>
59
+ ```
60
+
61
+ ### User and Access Control
62
+
63
+ ```bash
64
+ # 1. Disable root login
65
+ sudo passwd -l root
66
+
67
+ # 2. Create admin user with sudo
68
+ sudo useradd -m -s /bin/bash admin
69
+ sudo usermod -aG sudo admin
70
+
71
+ # 3. Set strong password policy
72
+ # /etc/security/pwquality.conf
73
+ minlen = 14
74
+ dcredit = -1 # At least 1 digit
75
+ ucredit = -1 # At least 1 uppercase
76
+ lcredit = -1 # At least 1 lowercase
77
+ ocredit = -1 # At least 1 special char
78
+
79
+ # 4. Set password aging
80
+ sudo chage -M 90 -m 7 -W 14 username
81
+ # Max age: 90 days, Min age: 7 days, Warning: 14 days
82
+
83
+ # 5. Lock inactive accounts
84
+ sudo useradd -e 2024-12-31 tempuser # Expiration date
85
+
86
+ # 6. Review sudoers configuration
87
+ sudo visudo
88
+ # Require password for sudo
89
+ Defaults timestamp_timeout=5
90
+ ```
91
+
92
+ ### Network Hardening
93
+
94
+ ```bash
95
+ # /etc/sysctl.d/99-network-security.conf
96
+
97
+ # IP forwarding (disable unless router)
98
+ net.ipv4.ip_forward = 0
99
+ net.ipv6.conf.all.forwarding = 0
100
+
101
+ # SYN flood protection
102
+ net.ipv4.tcp_syncookies = 1
103
+ net.ipv4.tcp_max_syn_backlog = 2048
104
+ net.ipv4.tcp_synack_retries = 2
105
+
106
+ # Ignore ICMP redirects
107
+ net.ipv4.conf.all.accept_redirects = 0
108
+ net.ipv4.conf.default.accept_redirects = 0
109
+ net.ipv6.conf.all.accept_redirects = 0
110
+
111
+ # Ignore source routing
112
+ net.ipv4.conf.all.accept_source_route = 0
113
+ net.ipv4.conf.default.accept_source_route = 0
114
+
115
+ # Ignore ICMP ping requests (optional)
116
+ net.ipv4.icmp_echo_ignore_all = 0
117
+ net.ipv4.icmp_echo_ignore_broadcasts = 1
118
+
119
+ # Log suspicious packets
120
+ net.ipv4.conf.all.log_martians = 1
121
+ net.ipv4.conf.default.log_martians = 1
122
+
123
+ # Reverse path filtering
124
+ net.ipv4.conf.all.rp_filter = 1
125
+ net.ipv4.conf.default.rp_filter = 1
126
+
127
+ # Apply settings
128
+ sudo sysctl -p /etc/sysctl.d/99-network-security.conf
129
+ ```
130
+
131
+ ## CIS Benchmarks
132
+
133
+ ### CIS Benchmark Implementation
134
+
135
+ ```bash
136
+ #!/bin/bash
137
+ # cis-hardening.sh - Implement CIS benchmark controls
138
+
139
+ set -euo pipefail
140
+
141
+ echo "=== CIS Benchmark Hardening ==="
142
+
143
+ # 1.1 Filesystem Configuration
144
+ echo "[1] Configuring filesystems..."
145
+
146
+ # Create separate partitions (manual - document in fstab)
147
+ cat >> /etc/fstab <<EOF
148
+ # Secure mount options
149
+ /tmp /tmp tmpfs defaults,nodev,nosuid,noexec 0 0
150
+ EOF
151
+
152
+ # 1.5 Additional Process Hardening
153
+ echo "[2] Enabling ASLR..."
154
+ echo "kernel.randomize_va_space = 2" >> /etc/sysctl.d/99-cis.conf
155
+
156
+ # 1.7 Warning Banners
157
+ echo "[3] Configuring warning banners..."
158
+ cat > /etc/issue <<EOF
159
+ Authorized access only. All activity may be monitored and reported.
160
+ EOF
161
+ cp /etc/issue /etc/issue.net
162
+
163
+ # 3.1 Network Parameters
164
+ echo "[4] Configuring network parameters..."
165
+ cat >> /etc/sysctl.d/99-cis.conf <<EOF
166
+ net.ipv4.ip_forward = 0
167
+ net.ipv4.conf.all.send_redirects = 0
168
+ net.ipv4.conf.default.send_redirects = 0
169
+ net.ipv4.conf.all.accept_source_route = 0
170
+ net.ipv4.conf.all.accept_redirects = 0
171
+ net.ipv4.conf.all.log_martians = 1
172
+ net.ipv4.tcp_syncookies = 1
173
+ EOF
174
+
175
+ sysctl -p /etc/sysctl.d/99-cis.conf
176
+
177
+ # 4.1 Configure System Accounting (auditd)
178
+ echo "[5] Installing and configuring auditd..."
179
+ apt-get install -y auditd audispd-plugins
180
+ systemctl enable auditd
181
+ systemctl start auditd
182
+
183
+ # 5.2 Configure SSH Server
184
+ echo "[6] Hardening SSH..."
185
+ cat >> /etc/ssh/sshd_config.d/99-cis.conf <<EOF
186
+ Protocol 2
187
+ LogLevel INFO
188
+ X11Forwarding no
189
+ MaxAuthTries 4
190
+ IgnoreRhosts yes
191
+ HostbasedAuthentication no
192
+ PermitRootLogin no
193
+ PermitEmptyPasswords no
194
+ PermitUserEnvironment no
195
+ ClientAliveInterval 300
196
+ ClientAliveCountMax 0
197
+ LoginGraceTime 60
198
+ MaxStartups 10:30:60
199
+ MaxSessions 4
200
+ EOF
201
+
202
+ systemctl restart sshd
203
+
204
+ # 5.3 Configure PAM
205
+ echo "[7] Configuring PAM..."
206
+ apt-get install -y libpam-pwquality
207
+
208
+ # 6.1 System File Permissions
209
+ echo "[8] Setting secure file permissions..."
210
+ chmod 644 /etc/passwd
211
+ chmod 644 /etc/group
212
+ chmod 600 /etc/shadow
213
+ chmod 600 /etc/gshadow
214
+ chmod 600 /etc/ssh/sshd_config
215
+
216
+ echo "=== CIS Hardening Complete ==="
217
+ echo "Review and customize /etc/sysctl.d/99-cis.conf as needed"
218
+ ```
219
+
220
+ ## Firewall Configuration
221
+
222
+ ### iptables Hardening
223
+
224
+ ```bash
225
+ #!/bin/bash
226
+ # firewall-rules.sh - Secure iptables configuration
227
+
228
+ # Flush existing rules
229
+ iptables -F
230
+ iptables -X
231
+ iptables -t nat -F
232
+ iptables -t nat -X
233
+ iptables -t mangle -F
234
+ iptables -t mangle -X
235
+
236
+ # Default policies
237
+ iptables -P INPUT DROP
238
+ iptables -P FORWARD DROP
239
+ iptables -P OUTPUT ACCEPT
240
+
241
+ # Allow loopback
242
+ iptables -A INPUT -i lo -j ACCEPT
243
+ iptables -A OUTPUT -o lo -j ACCEPT
244
+
245
+ # Allow established connections
246
+ iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
247
+
248
+ # Rate limiting for SSH (prevent brute force)
249
+ iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set
250
+ iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
251
+ iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
252
+
253
+ # Allow HTTP/HTTPS
254
+ iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
255
+ iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW -j ACCEPT
256
+
257
+ # Drop invalid packets
258
+ iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
259
+
260
+ # Drop fragmented packets
261
+ iptables -A INPUT -f -j DROP
262
+
263
+ # Drop XMAS packets
264
+ iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
265
+
266
+ # Drop NULL packets
267
+ iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
268
+
269
+ # Log dropped packets
270
+ iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables-dropped: " --log-level 7
271
+
272
+ # Save rules
273
+ iptables-save > /etc/iptables/rules.v4
274
+
275
+ # Load on boot
276
+ apt-get install -y iptables-persistent
277
+ ```
278
+
279
+ ### firewalld Configuration
280
+
281
+ ```bash
282
+ # Install firewalld
283
+ sudo dnf install firewalld
284
+ sudo systemctl enable firewalld
285
+ sudo systemctl start firewalld
286
+
287
+ # Default zone
288
+ sudo firewall-cmd --set-default-zone=public
289
+
290
+ # Drop all by default
291
+ sudo firewall-cmd --zone=public --set-target=DROP --permanent
292
+
293
+ # Allow SSH with rate limiting
294
+ sudo firewall-cmd --permanent --zone=public --add-rich-rule='
295
+ rule service name="ssh"
296
+ limit value="4/m"
297
+ accept'
298
+
299
+ # Allow HTTP/HTTPS
300
+ sudo firewall-cmd --permanent --zone=public --add-service=http
301
+ sudo firewall-cmd --permanent --zone=public --add-service=https
302
+
303
+ # Block ICMP (ping)
304
+ sudo firewall-cmd --permanent --zone=public --add-icmp-block=echo-request
305
+
306
+ # Log dropped packets
307
+ sudo firewall-cmd --permanent --zone=public --add-rich-rule='
308
+ rule
309
+ log prefix="firewalld-drop: " level=info
310
+ drop'
311
+
312
+ # Reload firewall
313
+ sudo firewall-cmd --reload
314
+ ```
315
+
316
+ ## SELinux and AppArmor
317
+
318
+ ### SELinux (RHEL/CentOS)
319
+
320
+ ```bash
321
+ # Check SELinux status
322
+ getenforce
323
+ sestatus
324
+
325
+ # Enable SELinux
326
+ sudo setenforce 1 # Temporary
327
+ # Permanent: Edit /etc/selinux/config
328
+ SELINUX=enforcing
329
+
330
+ # SELinux modes:
331
+ # - enforcing: Deny and log violations
332
+ # - permissive: Allow but log violations
333
+ # - disabled: No SELinux
334
+
335
+ # Check context
336
+ ls -Z /var/www/html
337
+ ps -eZ | grep httpd
338
+
339
+ # Set file context
340
+ sudo semanage fcontext -a -t httpd_sys_content_t "/srv/www(/.*)?"
341
+ sudo restorecon -Rv /srv/www
342
+
343
+ # Port labeling
344
+ sudo semanage port -a -t http_port_t -p tcp 8080
345
+ sudo semanage port -l | grep http_port_t
346
+
347
+ # Troubleshooting
348
+ sudo ausearch -m avc -ts recent
349
+ sudo audit2allow -a
350
+ sudo audit2why -a
351
+
352
+ # Create custom policy
353
+ sudo ausearch -m avc -ts recent | audit2allow -M mypolicy
354
+ sudo semodule -i mypolicy.pp
355
+
356
+ # Boolean settings
357
+ getsebool -a
358
+ sudo setsebool -P httpd_can_network_connect on
359
+ ```
360
+
361
+ ### AppArmor (Ubuntu/Debian)
362
+
363
+ ```bash
364
+ # Check status
365
+ sudo aa-status
366
+
367
+ # Install utilities
368
+ sudo apt install apparmor-utils
369
+
370
+ # Create profile
371
+ sudo aa-genprof /usr/bin/myapp
372
+
373
+ # While app runs, generate profile:
374
+ # 1. Run application and perform all functions
375
+ # 2. In another terminal: sudo aa-logprof
376
+ # 3. Review and approve events
377
+
378
+ # Profile modes
379
+ sudo aa-enforce /etc/apparmor.d/usr.bin.myapp # Enforce
380
+ sudo aa-complain /etc/apparmor.d/usr.bin.myapp # Complain (log only)
381
+ sudo aa-disable /etc/apparmor.d/usr.bin.myapp # Disable
382
+
383
+ # Example profile
384
+ cat > /etc/apparmor.d/usr.bin.myapp <<'EOF'
385
+ #include <tunables/global>
386
+
387
+ /usr/bin/myapp {
388
+ #include <abstractions/base>
389
+
390
+ capability net_bind_service,
391
+
392
+ /usr/bin/myapp mr,
393
+ /etc/myapp/** r,
394
+ /var/log/myapp/** rw,
395
+ /var/lib/myapp/** rw,
396
+
397
+ # Network
398
+ network inet stream,
399
+ network inet6 stream,
400
+
401
+ # Deny everything else
402
+ deny /** wl,
403
+ }
404
+ EOF
405
+
406
+ # Load profile
407
+ sudo apparmor_parser -r /etc/apparmor.d/usr.bin.myapp
408
+ ```
409
+
410
+ ## SSH Hardening
411
+
412
+ ### SSH Server Configuration
413
+
414
+ ```bash
415
+ # /etc/ssh/sshd_config
416
+
417
+ # Network
418
+ Port 22 # Consider non-standard port
419
+ AddressFamily inet # IPv4 only
420
+ ListenAddress 0.0.0.0
421
+
422
+ # Protocol
423
+ Protocol 2
424
+
425
+ # Authentication
426
+ PermitRootLogin no
427
+ MaxAuthTries 3
428
+ MaxSessions 2
429
+ PubkeyAuthentication yes
430
+ PasswordAuthentication no
431
+ PermitEmptyPasswords no
432
+ ChallengeResponseAuthentication no
433
+ UsePAM yes
434
+
435
+ # Kerberos
436
+ KerberosAuthentication no
437
+
438
+ # GSSAPI
439
+ GSSAPIAuthentication no
440
+
441
+ # Host-based
442
+ HostbasedAuthentication no
443
+ IgnoreRhosts yes
444
+
445
+ # Features
446
+ X11Forwarding no
447
+ PrintMotd no
448
+ PermitUserEnvironment no
449
+ AllowTcpForwarding no
450
+ AllowAgentForwarding no
451
+ PermitTunnel no
452
+
453
+ # Timeout
454
+ ClientAliveInterval 300
455
+ ClientAliveCountMax 0
456
+ LoginGraceTime 60
457
+
458
+ # Access Control
459
+ AllowUsers admin deploy
460
+ AllowGroups sshusers
461
+ DenyUsers root guest
462
+ # Or use DenyGroups
463
+
464
+ # Logging
465
+ SyslogFacility AUTH
466
+ LogLevel VERBOSE
467
+
468
+ # Cryptography
469
+ Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
470
+ MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512,hmac-sha2-256
471
+ KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
472
+
473
+ # Banner
474
+ Banner /etc/ssh/banner
475
+
476
+ # Test configuration
477
+ sudo sshd -t
478
+
479
+ # Restart SSH
480
+ sudo systemctl restart sshd
481
+ ```
482
+
483
+ ### SSH Client Hardening
484
+
485
+ ```bash
486
+ # ~/.ssh/config
487
+
488
+ Host *
489
+ # Cryptography
490
+ Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
491
+ MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
492
+ KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org
493
+
494
+ # Security
495
+ HashKnownHosts yes
496
+ StrictHostKeyChecking ask
497
+ VerifyHostKeyDNS ask
498
+
499
+ # Connection
500
+ ServerAliveInterval 60
501
+ ServerAliveCountMax 3
502
+ TCPKeepAlive no
503
+
504
+ # Disable
505
+ ForwardAgent no
506
+ ForwardX11 no
507
+ ```
508
+
509
+ ### SSH Key Management
510
+
511
+ ```bash
512
+ # Generate strong SSH key (Ed25519 recommended)
513
+ ssh-keygen -t ed25519 -C "user@example.com"
514
+
515
+ # Or RSA 4096
516
+ ssh-keygen -t rsa -b 4096 -C "user@example.com"
517
+
518
+ # Add passphrase to existing key
519
+ ssh-keygen -p -f ~/.ssh/id_ed25519
520
+
521
+ # Set proper permissions
522
+ chmod 700 ~/.ssh
523
+ chmod 600 ~/.ssh/id_ed25519
524
+ chmod 644 ~/.ssh/id_ed25519.pub
525
+ chmod 600 ~/.ssh/authorized_keys
526
+ chmod 600 ~/.ssh/config
527
+
528
+ # Audit authorized keys
529
+ cat ~/.ssh/authorized_keys
530
+ # Remove unknown keys
531
+
532
+ # Restrict key usage
533
+ # In authorized_keys:
534
+ from="192.168.1.0/24",no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-ed25519 AAAA...
535
+ ```
536
+
537
+ ## File Permissions and Capabilities
538
+
539
+ ### Critical File Permissions
540
+
541
+ ```bash
542
+ # System files
543
+ sudo chmod 644 /etc/passwd
544
+ sudo chmod 644 /etc/group
545
+ sudo chmod 600 /etc/shadow
546
+ sudo chmod 600 /etc/gshadow
547
+ sudo chmod 600 /boot/grub/grub.cfg
548
+
549
+ # SSH
550
+ sudo chmod 600 /etc/ssh/*_key
551
+ sudo chmod 644 /etc/ssh/*.pub
552
+ sudo chmod 600 /etc/ssh/sshd_config
553
+
554
+ # Sudo configuration
555
+ sudo chmod 440 /etc/sudoers
556
+ sudo chmod 750 /etc/sudoers.d
557
+
558
+ # Find world-writable files
559
+ find / -xdev -type f -perm -0002 -ls 2>/dev/null
560
+
561
+ # Find files with SUID/SGID
562
+ find / -xdev \( -perm -4000 -o -perm -2000 \) -type f -ls 2>/dev/null
563
+
564
+ # Remove SUID if not needed
565
+ sudo chmod u-s /path/to/file
566
+ ```
567
+
568
+ ### File Capabilities
569
+
570
+ ```bash
571
+ # View capabilities
572
+ getcap /usr/bin/ping
573
+ sudo getcap -r / 2>/dev/null
574
+
575
+ # Set capability (instead of SUID)
576
+ sudo setcap cap_net_bind_service=+ep /usr/bin/myapp
577
+
578
+ # Remove capability
579
+ sudo setcap -r /usr/bin/myapp
580
+
581
+ # Audit capabilities
582
+ sudo getcap -r / 2>/dev/null
583
+ ```
584
+
585
+ ## Audit Logging
586
+
587
+ ### auditd Configuration
588
+
589
+ ```bash
590
+ # Install auditd
591
+ sudo apt install auditd audispd-plugins
592
+
593
+ # /etc/audit/auditd.conf
594
+ log_file = /var/log/audit/audit.log
595
+ log_format = RAW
596
+ log_group = root
597
+ priority_boost = 4
598
+ flush = INCREMENTAL_ASYNC
599
+ freq = 50
600
+ num_logs = 5
601
+ max_log_file = 50
602
+ max_log_file_action = ROTATE
603
+ space_left = 75
604
+ space_left_action = SYSLOG
605
+ admin_space_left = 50
606
+ admin_space_left_action = SUSPEND
607
+ disk_full_action = SUSPEND
608
+ disk_error_action = SUSPEND
609
+
610
+ # Enable auditd
611
+ sudo systemctl enable auditd
612
+ sudo systemctl start auditd
613
+ ```
614
+
615
+ ### Audit Rules
616
+
617
+ ```bash
618
+ # /etc/audit/rules.d/audit.rules
619
+
620
+ # Delete all existing rules
621
+ -D
622
+
623
+ # Buffer size
624
+ -b 8192
625
+
626
+ # Failure mode (0=silent 1=printk 2=panic)
627
+ -f 1
628
+
629
+ # Monitor authentication
630
+ -w /var/log/faillog -p wa -k logins
631
+ -w /var/log/lastlog -p wa -k logins
632
+ -w /var/run/utmp -p wa -k session
633
+ -w /var/log/wtmp -p wa -k logins
634
+ -w /var/log/btmp -p wa -k logins
635
+
636
+ # Monitor user/group changes
637
+ -w /etc/group -p wa -k identity
638
+ -w /etc/passwd -p wa -k identity
639
+ -w /etc/gshadow -p wa -k identity
640
+ -w /etc/shadow -p wa -k identity
641
+ -w /etc/security/opasswd -p wa -k identity
642
+
643
+ # Monitor network configuration
644
+ -w /etc/hosts -p wa -k network
645
+ -w /etc/hostname -p wa -k network
646
+ -w /etc/network/ -p wa -k network
647
+
648
+ # Monitor system calls
649
+ -a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time-change
650
+ -a always,exit -F arch=b64 -S sethostname -S setdomainname -k system-locale
651
+
652
+ # Monitor file deletions
653
+ -a always,exit -F arch=b64 -S unlink -S unlinkat -S rename -S renameat -k delete
654
+
655
+ # Monitor sudo
656
+ -w /etc/sudoers -p wa -k sudoers
657
+ -w /etc/sudoers.d/ -p wa -k sudoers
658
+
659
+ # Load rules
660
+ sudo augenrules --load
661
+
662
+ # Or
663
+ sudo service auditd restart
664
+ ```
665
+
666
+ ### Analyzing Audit Logs
667
+
668
+ ```bash
669
+ # Search logs
670
+ sudo ausearch -k logins
671
+ sudo ausearch -m USER_LOGIN
672
+ sudo ausearch -ts today -k identity
673
+
674
+ # Generate report
675
+ sudo aureport --summary
676
+ sudo aureport --auth
677
+ sudo aureport --failed
678
+ sudo aureport --login
679
+
680
+ # Real-time monitoring
681
+ sudo tail -f /var/log/audit/audit.log
682
+ ```
683
+
684
+ ## Vulnerability Scanning
685
+
686
+ ### Lynis Security Audit
687
+
688
+ ```bash
689
+ # Install Lynis
690
+ sudo apt install lynis
691
+
692
+ # Run audit
693
+ sudo lynis audit system
694
+
695
+ # Review results
696
+ cat /var/log/lynis.log
697
+ cat /var/log/lynis-report.dat
698
+
699
+ # Focus on high-priority items
700
+ sudo lynis show warnings
701
+ sudo lynis show suggestions
702
+ ```
703
+
704
+ ### OpenSCAP
705
+
706
+ ```bash
707
+ # Install OpenSCAP
708
+ sudo apt install libopenscap8 ssg-base ssg-debian
709
+
710
+ # Run scan
711
+ sudo oscap xccdf eval \
712
+ --profile xccdf_org.ssgproject.content_profile_standard \
713
+ --results scan-results.xml \
714
+ --report scan-report.html \
715
+ /usr/share/xml/scap/ssg/content/ssg-debian11-ds.xml
716
+
717
+ # View report
718
+ firefox scan-report.html
719
+ ```
720
+
721
+ ### Rootkit Detection
722
+
723
+ ```bash
724
+ # rkhunter
725
+ sudo apt install rkhunter
726
+ sudo rkhunter --update
727
+ sudo rkhunter --check
728
+
729
+ # chkrootkit
730
+ sudo apt install chkrootkit
731
+ sudo chkrootkit
732
+ ```
733
+
734
+ ---
735
+
736
+ **Related Topics:**
737
+ - See [networking-fundamentals.md](networking-fundamentals.md) for firewall configuration
738
+ - See [linux-administration.md](linux-administration.md) for user management
739
+ - See [system-monitoring.md](system-monitoring.md) for audit logging