opencode-skills-collection 4.0.68 → 4.0.69
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.
- package/bundled-skills/.antigravity-install-manifest.json +266 -1
- package/bundled-skills/access-review/SKILL.md +394 -0
- package/bundled-skills/access-review/references/details.md +121 -0
- package/bundled-skills/agent-evals/SKILL.md +420 -0
- package/bundled-skills/agent-observability/SKILL.md +346 -0
- package/bundled-skills/agent-observability/references/details.md +786 -0
- package/bundled-skills/ai-agent-security/SKILL.md +393 -0
- package/bundled-skills/ai-agent-security/references/details.md +912 -0
- package/bundled-skills/ai-coding-agent-guardrails/SKILL.md +442 -0
- package/bundled-skills/ai-coding-agent-guardrails/references/details.md +753 -0
- package/bundled-skills/ai-inference-service-mesh/SKILL.md +449 -0
- package/bundled-skills/ai-pipeline-orchestration/SKILL.md +287 -0
- package/bundled-skills/ai-red-teaming/SKILL.md +409 -0
- package/bundled-skills/ai-security-hardening/SKILL.md +343 -0
- package/bundled-skills/ai-sre-incident-response/SKILL.md +336 -0
- package/bundled-skills/alerting-oncall/SKILL.md +458 -0
- package/bundled-skills/alerting-oncall/references/details.md +84 -0
- package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
- package/bundled-skills/argocd-gitops/SKILL.md +469 -0
- package/bundled-skills/arm-templates/SKILL.md +438 -0
- package/bundled-skills/arm-templates/references/details.md +64 -0
- package/bundled-skills/asset-inventory/SKILL.md +412 -0
- package/bundled-skills/asset-inventory/references/details.md +127 -0
- package/bundled-skills/audit-logging/SKILL.md +476 -0
- package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
- package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
- package/bundled-skills/aws-ec2/SKILL.md +426 -0
- package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
- package/bundled-skills/aws-iam/SKILL.md +463 -0
- package/bundled-skills/aws-lambda/SKILL.md +428 -0
- package/bundled-skills/aws-rds/SKILL.md +380 -0
- package/bundled-skills/aws-s3/SKILL.md +434 -0
- package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
- package/bundled-skills/aws-vpc/SKILL.md +436 -0
- package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
- package/bundled-skills/azure-aks/SKILL.md +423 -0
- package/bundled-skills/azure-devops/SKILL.md +457 -0
- package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
- package/bundled-skills/azure-keyvault/SKILL.md +455 -0
- package/bundled-skills/azure-keyvault/references/details.md +83 -0
- package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
- package/bundled-skills/azure-networking/SKILL.md +448 -0
- package/bundled-skills/azure-networking/references/details.md +135 -0
- package/bundled-skills/azure-sql/SKILL.md +413 -0
- package/bundled-skills/azure-sql/references/details.md +113 -0
- package/bundled-skills/azure-vms/SKILL.md +402 -0
- package/bundled-skills/azure-vms/references/details.md +134 -0
- package/bundled-skills/backup-recovery/SKILL.md +388 -0
- package/bundled-skills/bb-methodology/SKILL.md +451 -0
- package/bundled-skills/bb-methodology/references/details.md +120 -0
- package/bundled-skills/block-storage/SKILL.md +371 -0
- package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
- package/bundled-skills/blue-green-deploy/references/details.md +90 -0
- package/bundled-skills/bug-bounty/SKILL.md +447 -0
- package/bundled-skills/bug-bounty/references/details.md +1316 -0
- package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
- package/bundled-skills/business-continuity/SKILL.md +463 -0
- package/bundled-skills/career-ops/SKILL.md +186 -0
- package/bundled-skills/cdn-setup/SKILL.md +374 -0
- package/bundled-skills/change-management/SKILL.md +438 -0
- package/bundled-skills/change-management/references/details.md +105 -0
- package/bundled-skills/circleci/SKILL.md +475 -0
- package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
- package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
- package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
- package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
- package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
- package/bundled-skills/cloudformation/SKILL.md +461 -0
- package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
- package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
- package/bundled-skills/container-hardening/SKILL.md +126 -0
- package/bundled-skills/container-registries/SKILL.md +435 -0
- package/bundled-skills/container-scanning/SKILL.md +416 -0
- package/bundled-skills/convex-backend/SKILL.md +338 -0
- package/bundled-skills/dast-scanning/SKILL.md +437 -0
- package/bundled-skills/database-backups/SKILL.md +425 -0
- package/bundled-skills/datadog/SKILL.md +487 -0
- package/bundled-skills/dependency-scanning/SKILL.md +457 -0
- package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
- package/bundled-skills/disaster-recovery/SKILL.md +374 -0
- package/bundled-skills/disaster-recovery/references/details.md +219 -0
- package/bundled-skills/dns-management/SKILL.md +375 -0
- package/bundled-skills/docker-compose/SKILL.md +482 -0
- package/bundled-skills/docker-management/SKILL.md +426 -0
- package/bundled-skills/ebpf-observability/SKILL.md +436 -0
- package/bundled-skills/ebpf-observability/references/details.md +542 -0
- package/bundled-skills/elk-stack/SKILL.md +487 -0
- package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
- package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
- package/bundled-skills/feature-flags/SKILL.md +426 -0
- package/bundled-skills/feature-flags/references/details.md +86 -0
- package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
- package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
- package/bundled-skills/firewall-config/SKILL.md +479 -0
- package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
- package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
- package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
- package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
- package/bundled-skills/gcp-compute/SKILL.md +319 -0
- package/bundled-skills/gcp-gke/SKILL.md +307 -0
- package/bundled-skills/gcp-networking/SKILL.md +293 -0
- package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
- package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
- package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
- package/bundled-skills/gdpr-compliance/references/details.md +145 -0
- package/bundled-skills/geo-audit/SKILL.md +368 -0
- package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
- package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
- package/bundled-skills/geo-citability/SKILL.md +350 -0
- package/bundled-skills/geo-compare/SKILL.md +340 -0
- package/bundled-skills/geo-content/SKILL.md +383 -0
- package/bundled-skills/geo-crawlers/SKILL.md +408 -0
- package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
- package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
- package/bundled-skills/geo-proposal/SKILL.md +378 -0
- package/bundled-skills/geo-prospect/SKILL.md +225 -0
- package/bundled-skills/geo-report/SKILL.md +436 -0
- package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
- package/bundled-skills/geo-schema/SKILL.md +408 -0
- package/bundled-skills/geo-technical/SKILL.md +78 -0
- package/bundled-skills/geo-technical/references/details.md +543 -0
- package/bundled-skills/git-workflow/SKILL.md +460 -0
- package/bundled-skills/github-actions/SKILL.md +368 -0
- package/bundled-skills/gitlab-ci/SKILL.md +340 -0
- package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
- package/bundled-skills/gpu-server-management/SKILL.md +236 -0
- package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
- package/bundled-skills/helm-charts/SKILL.md +469 -0
- package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
- package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
- package/bundled-skills/hunt-ato/SKILL.md +184 -0
- package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
- package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
- package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
- package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
- package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
- package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
- package/bundled-skills/hunt-cicd/SKILL.md +311 -0
- package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
- package/bundled-skills/hunt-cors/SKILL.md +335 -0
- package/bundled-skills/hunt-dom/SKILL.md +323 -0
- package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
- package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
- package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
- package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
- package/bundled-skills/hunt-grpc/SKILL.md +317 -0
- package/bundled-skills/hunt-host-header/SKILL.md +309 -0
- package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
- package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
- package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
- package/bundled-skills/hunt-idor/SKILL.md +434 -0
- package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
- package/bundled-skills/hunt-k8s/SKILL.md +337 -0
- package/bundled-skills/hunt-laravel/SKILL.md +255 -0
- package/bundled-skills/hunt-ldap/SKILL.md +351 -0
- package/bundled-skills/hunt-lfi/SKILL.md +311 -0
- package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
- package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
- package/bundled-skills/hunt-misc/SKILL.md +378 -0
- package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
- package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
- package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
- package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
- package/bundled-skills/hunt-oauth/SKILL.md +459 -0
- package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
- package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
- package/bundled-skills/hunt-race-condition/references/details.md +159 -0
- package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
- package/bundled-skills/hunt-rce/SKILL.md +444 -0
- package/bundled-skills/hunt-rce/references/details.md +110 -0
- package/bundled-skills/hunt-saml/SKILL.md +156 -0
- package/bundled-skills/hunt-session/SKILL.md +342 -0
- package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
- package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
- package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
- package/bundled-skills/hunt-springboot/SKILL.md +285 -0
- package/bundled-skills/hunt-sqli/SKILL.md +466 -0
- package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
- package/bundled-skills/hunt-ssrf/references/details.md +179 -0
- package/bundled-skills/hunt-ssti/SKILL.md +163 -0
- package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
- package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
- package/bundled-skills/hunt-xxe/SKILL.md +466 -0
- package/bundled-skills/i-have-adhd/SKILL.md +170 -0
- package/bundled-skills/identity-access-management/SKILL.md +382 -0
- package/bundled-skills/identity-access-management/references/details.md +524 -0
- package/bundled-skills/incident-management/SKILL.md +484 -0
- package/bundled-skills/incident-response/SKILL.md +448 -0
- package/bundled-skills/incident-response/references/details.md +113 -0
- package/bundled-skills/interview-me/SKILL.md +248 -0
- package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
- package/bundled-skills/jenkins/SKILL.md +462 -0
- package/bundled-skills/jev-use/SKILL.md +158 -0
- package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
- package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
- package/bundled-skills/kubernetes-ops/references/details.md +108 -0
- package/bundled-skills/kustomize/SKILL.md +478 -0
- package/bundled-skills/linux-administration/SKILL.md +367 -0
- package/bundled-skills/linux-hardening/SKILL.md +154 -0
- package/bundled-skills/llm-app-security/SKILL.md +389 -0
- package/bundled-skills/llm-app-security/references/details.md +674 -0
- package/bundled-skills/llm-caching/SKILL.md +334 -0
- package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
- package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
- package/bundled-skills/llm-gateway/SKILL.md +282 -0
- package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
- package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
- package/bundled-skills/load-balancing/SKILL.md +403 -0
- package/bundled-skills/loki-logging/SKILL.md +479 -0
- package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
- package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
- package/bundled-skills/mcp-server-security/SKILL.md +356 -0
- package/bundled-skills/mcp-server-security/references/details.md +745 -0
- package/bundled-skills/mdm-device-management/SKILL.md +404 -0
- package/bundled-skills/mdm-device-management/references/details.md +410 -0
- package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
- package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
- package/bundled-skills/model-registry-governance/SKILL.md +452 -0
- package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
- package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
- package/bundled-skills/mongodb/SKILL.md +436 -0
- package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
- package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
- package/bundled-skills/mysql/SKILL.md +390 -0
- package/bundled-skills/new-relic/SKILL.md +472 -0
- package/bundled-skills/nfs-storage/SKILL.md +356 -0
- package/bundled-skills/object-storage/SKILL.md +378 -0
- package/bundled-skills/offensive-osint/SKILL.md +443 -0
- package/bundled-skills/okta-attack/SKILL.md +436 -0
- package/bundled-skills/ollama-stack/SKILL.md +379 -0
- package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
- package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
- package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
- package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
- package/bundled-skills/openshift/SKILL.md +485 -0
- package/bundled-skills/opentelemetry/SKILL.md +438 -0
- package/bundled-skills/opentelemetry/references/details.md +78 -0
- package/bundled-skills/opentofu-migration/SKILL.md +349 -0
- package/bundled-skills/osint-methodology/SKILL.md +460 -0
- package/bundled-skills/osint-methodology/references/details.md +1350 -0
- package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
- package/bundled-skills/penetration-testing/SKILL.md +152 -0
- package/bundled-skills/performance-tuning/SKILL.md +381 -0
- package/bundled-skills/planetscale/SKILL.md +297 -0
- package/bundled-skills/platform-engineering/SKILL.md +348 -0
- package/bundled-skills/platform-engineering/references/details.md +944 -0
- package/bundled-skills/podman/SKILL.md +405 -0
- package/bundled-skills/policy-as-code/SKILL.md +434 -0
- package/bundled-skills/policy-as-code/references/details.md +204 -0
- package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
- package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
- package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
- package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
- package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
- package/bundled-skills/rag-observability-evals/references/details.md +92 -0
- package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
- package/bundled-skills/redis/SKILL.md +421 -0
- package/bundled-skills/redteam-report-template/SKILL.md +370 -0
- package/bundled-skills/report-writing/SKILL.md +426 -0
- package/bundled-skills/report-writing/references/details.md +187 -0
- package/bundled-skills/reverse-proxy/SKILL.md +420 -0
- package/bundled-skills/runbook-creation/SKILL.md +438 -0
- package/bundled-skills/runbook-creation/references/details.md +71 -0
- package/bundled-skills/saas-security-posture/SKILL.md +415 -0
- package/bundled-skills/sast-scanning/SKILL.md +444 -0
- package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
- package/bundled-skills/security-arsenal/SKILL.md +446 -0
- package/bundled-skills/security-arsenal/references/details.md +540 -0
- package/bundled-skills/security-automation/SKILL.md +146 -0
- package/bundled-skills/semantic-versioning/SKILL.md +434 -0
- package/bundled-skills/semantic-versioning/references/details.md +83 -0
- package/bundled-skills/service-mesh/SKILL.md +422 -0
- package/bundled-skills/soc2-compliance/SKILL.md +409 -0
- package/bundled-skills/sops-encryption/SKILL.md +124 -0
- package/bundled-skills/sre-dashboards/SKILL.md +143 -0
- package/bundled-skills/ssh-configuration/SKILL.md +324 -0
- package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
- package/bundled-skills/ssl-tls-management/references/details.md +99 -0
- package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
- package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
- package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
- package/bundled-skills/systemd-services/SKILL.md +379 -0
- package/bundled-skills/terraform-aws/SKILL.md +125 -0
- package/bundled-skills/terraform-azure/SKILL.md +415 -0
- package/bundled-skills/terraform-azure/references/details.md +231 -0
- package/bundled-skills/terraform-gcp/SKILL.md +369 -0
- package/bundled-skills/threat-modeling/SKILL.md +487 -0
- package/bundled-skills/user-management/SKILL.md +383 -0
- package/bundled-skills/using-agent-skills/SKILL.md +220 -0
- package/bundled-skills/vector-database-ops/SKILL.md +300 -0
- package/bundled-skills/vendor-management/SKILL.md +439 -0
- package/bundled-skills/vendor-management/references/details.md +109 -0
- package/bundled-skills/vercel-deployments/SKILL.md +296 -0
- package/bundled-skills/vllm-server/SKILL.md +236 -0
- package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
- package/bundled-skills/vpn-setup/SKILL.md +452 -0
- package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
- package/bundled-skills/waf-setup/SKILL.md +354 -0
- package/bundled-skills/waf-setup/references/details.md +211 -0
- package/bundled-skills/web2-recon/SKILL.md +440 -0
- package/bundled-skills/web2-recon/references/details.md +319 -0
- package/bundled-skills/web3-audit/SKILL.md +445 -0
- package/bundled-skills/web3-audit/references/details.md +224 -0
- package/bundled-skills/windows-hardening/SKILL.md +454 -0
- package/bundled-skills/windows-hardening/references/details.md +204 -0
- package/bundled-skills/windows-server/SKILL.md +318 -0
- package/bundled-skills/zero-trust/SKILL.md +461 -0
- package/package.json +1 -1
- package/skills_index.json +6943 -323
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mdm-device-management
|
|
3
|
+
description: Manage and secure company devices with MDM solutions
|
|
4
|
+
category: devops
|
|
5
|
+
risk: critical
|
|
6
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
7
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
8
|
+
source_type: community
|
|
9
|
+
date_added: '2026-09-20'
|
|
10
|
+
license: MIT
|
|
11
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
12
|
+
compatibility: Requires the relevant OS/platform tooling and privileged access where
|
|
13
|
+
noted. Docs-only; helper scripts and templates not bundled.
|
|
14
|
+
metadata:
|
|
15
|
+
author: devops-skills
|
|
16
|
+
version: '1.0'
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## When to Use
|
|
20
|
+
|
|
21
|
+
- Provisioning, hardening, or operating the infrastructure described in this skill within an authorized environment.
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# Mobile Device Management (MDM) for Startups & Small Teams
|
|
25
|
+
|
|
26
|
+
A practical guide to enrolling, securing, and managing company devices across
|
|
27
|
+
macOS, Windows, iOS, and Android — from zero-touch onboarding to remote wipe.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 1. When to Use MDM
|
|
32
|
+
|
|
33
|
+
MDM becomes essential when any of the following apply:
|
|
34
|
+
|
|
35
|
+
- **Team size crosses ~10 people** — manual laptop setup no longer scales.
|
|
36
|
+
- **Compliance requirements** — SOC 2, HIPAA, ISO 27001, or customer security
|
|
37
|
+
questionnaires demand proof that endpoints are encrypted and patched.
|
|
38
|
+
- **Remote / hybrid workforce** — you cannot walk over to someone's desk to
|
|
39
|
+
fix a configuration or verify disk encryption.
|
|
40
|
+
- **Contractor or BYOD devices** — you need a way to separate corporate data
|
|
41
|
+
from personal data and revoke access on offboarding.
|
|
42
|
+
- **Insurance or investor due diligence** — cyber-insurance carriers and VCs
|
|
43
|
+
increasingly ask for evidence of endpoint management.
|
|
44
|
+
|
|
45
|
+
If you are still under 10 people and everyone is in-office, a simple checklist
|
|
46
|
+
plus a configuration management tool (Ansible) may suffice — but plan for MDM
|
|
47
|
+
early so enrollment is painless when you scale.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 2. MDM Platform Comparison
|
|
52
|
+
|
|
53
|
+
| Platform | Best For | Pricing Model | Open Source | Key Strength |
|
|
54
|
+
|----------|----------|---------------|-------------|--------------|
|
|
55
|
+
| **Jamf Pro** | macOS / iOS fleets | Per-device/yr | No | Deepest Apple integration, DEP/ADE native |
|
|
56
|
+
| **Microsoft Intune** | Windows + M365 shops | Bundled w/ M365 E3/E5 | No | Seamless Azure AD + Autopilot |
|
|
57
|
+
| **Kandji** | macOS-first startups | Per-device/yr | No | Pre-built compliance templates, fast setup |
|
|
58
|
+
| **Mosyle** | Education & SMB Apple | Per-device/yr | No | Apple School/Business Manager integration |
|
|
59
|
+
| **Fleet** | Cross-platform, eng-led | Free (OSS) / paid cloud | Yes | osquery-powered, GitOps-friendly, API-first |
|
|
60
|
+
| **SimpleMDM** | Small Apple-only teams | Per-device/mo | No | Simple UI, quick onboarding |
|
|
61
|
+
|
|
62
|
+
### Decision heuristic
|
|
63
|
+
|
|
64
|
+
```text
|
|
65
|
+
if (team < 50 AND engineering-led AND multi-OS):
|
|
66
|
+
consider Fleet (open-source, osquery-native)
|
|
67
|
+
elif (team is macOS-dominant AND compliance-heavy):
|
|
68
|
+
consider Kandji or Jamf
|
|
69
|
+
elif (team is Windows-dominant AND already on M365):
|
|
70
|
+
consider Intune (likely already licensed)
|
|
71
|
+
else:
|
|
72
|
+
evaluate Fleet or Kandji based on OS mix
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 3. Fleet (Open Source MDM) — Self-Hosted Deployment
|
|
78
|
+
|
|
79
|
+
Fleet is the leading open-source MDM. It uses osquery under the hood and
|
|
80
|
+
supports macOS, Windows, Linux, iOS, and Android.
|
|
81
|
+
|
|
82
|
+
### 3.1 Docker Compose deployment
|
|
83
|
+
|
|
84
|
+
```yaml
|
|
85
|
+
# docker-compose.yml
|
|
86
|
+
version: "3.8"
|
|
87
|
+
|
|
88
|
+
services:
|
|
89
|
+
mysql:
|
|
90
|
+
image: mysql:8.0
|
|
91
|
+
environment:
|
|
92
|
+
MYSQL_ROOT_PASSWORD: "${FLEET_MYSQL_ROOT_PASSWORD}"
|
|
93
|
+
MYSQL_DATABASE: fleet
|
|
94
|
+
MYSQL_USER: fleet
|
|
95
|
+
MYSQL_PASSWORD: "${FLEET_MYSQL_PASSWORD}"
|
|
96
|
+
volumes:
|
|
97
|
+
- mysql-data:/var/lib/mysql
|
|
98
|
+
ports:
|
|
99
|
+
- "3306:3306"
|
|
100
|
+
healthcheck:
|
|
101
|
+
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
|
|
102
|
+
interval: 10s
|
|
103
|
+
retries: 5
|
|
104
|
+
|
|
105
|
+
redis:
|
|
106
|
+
image: redis:7-alpine
|
|
107
|
+
ports:
|
|
108
|
+
- "6379:6379"
|
|
109
|
+
|
|
110
|
+
fleet:
|
|
111
|
+
image: fleetdm/fleet:v4.47.0
|
|
112
|
+
depends_on:
|
|
113
|
+
mysql:
|
|
114
|
+
condition: service_healthy
|
|
115
|
+
redis:
|
|
116
|
+
condition: service_started
|
|
117
|
+
environment:
|
|
118
|
+
FLEET_MYSQL_ADDRESS: mysql:3306
|
|
119
|
+
FLEET_MYSQL_DATABASE: fleet
|
|
120
|
+
FLEET_MYSQL_USERNAME: fleet
|
|
121
|
+
FLEET_MYSQL_PASSWORD: "${FLEET_MYSQL_PASSWORD}"
|
|
122
|
+
FLEET_REDIS_ADDRESS: redis:6379
|
|
123
|
+
FLEET_SERVER_TLS: "true"
|
|
124
|
+
FLEET_SERVER_TLS_COMPATIBILITY: modern
|
|
125
|
+
FLEET_SERVER_CERT: /tls/fleet.crt
|
|
126
|
+
FLEET_SERVER_KEY: /tls/fleet.key
|
|
127
|
+
FLEET_LOGGING_JSON: "true"
|
|
128
|
+
volumes:
|
|
129
|
+
- ./tls:/tls:ro
|
|
130
|
+
ports:
|
|
131
|
+
- "8080:8080"
|
|
132
|
+
|
|
133
|
+
volumes:
|
|
134
|
+
mysql-data:
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### 3.2 Initial setup
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# Generate TLS certs (use real certs in production)
|
|
141
|
+
mkdir -p tls
|
|
142
|
+
openssl req -x509 -newkey rsa:4096 -sha256 -days 365 \
|
|
143
|
+
-nodes -keyout tls/fleet.key -out tls/fleet.crt \
|
|
144
|
+
-subj "/CN=fleet.yourcompany.com"
|
|
145
|
+
|
|
146
|
+
# Start services
|
|
147
|
+
docker compose up -d
|
|
148
|
+
|
|
149
|
+
# Create admin account
|
|
150
|
+
docker compose exec fleet fleet prepare db
|
|
151
|
+
docker compose exec fleet fleet setup \
|
|
152
|
+
--email admin@yourcompany.com \
|
|
153
|
+
--name "IT Admin" \
|
|
154
|
+
--password "${FLEET_ADMIN_PASSWORD}" \
|
|
155
|
+
--org-name "YourCompany"
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### 3.3 Enroll a macOS host with fleetctl
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
# Install fleetctl
|
|
162
|
+
brew install fleetdm/tap/fleetctl
|
|
163
|
+
|
|
164
|
+
# Authenticate
|
|
165
|
+
fleetctl config set --address https://fleet.yourcompany.com:8080
|
|
166
|
+
fleetctl login --email admin@yourcompany.com
|
|
167
|
+
|
|
168
|
+
# Generate an installer package for macOS
|
|
169
|
+
fleetctl package --type pkg \
|
|
170
|
+
--fleet-url https://fleet.yourcompany.com:8080 \
|
|
171
|
+
--enroll-secret "$(fleetctl get enroll-secret)" \
|
|
172
|
+
--fleet-certificate tls/fleet.crt
|
|
173
|
+
|
|
174
|
+
# The .pkg file can be distributed via Apple Business Manager or manually
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### 3.4 Enroll a Windows host
|
|
178
|
+
|
|
179
|
+
```powershell
|
|
180
|
+
# Download the Fleet osquery MSI installer
|
|
181
|
+
fleetctl package --type msi `
|
|
182
|
+
--fleet-url https://fleet.yourcompany.com:8080 `
|
|
183
|
+
--enroll-secret "$(fleetctl get enroll-secret)" `
|
|
184
|
+
--fleet-certificate tls/fleet.crt
|
|
185
|
+
|
|
186
|
+
# Install silently
|
|
187
|
+
msiexec /i fleet-osquery.msi /quiet /norestart
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### 3.5 osquery policy examples in Fleet
|
|
191
|
+
|
|
192
|
+
```yaml
|
|
193
|
+
# fleet-policies.yml — apply with: fleetctl apply -f fleet-policies.yml
|
|
194
|
+
apiVersion: v1
|
|
195
|
+
kind: policy
|
|
196
|
+
spec:
|
|
197
|
+
name: FileVault enabled (macOS)
|
|
198
|
+
query: >
|
|
199
|
+
SELECT 1 FROM disk_encryption
|
|
200
|
+
WHERE user_uuid IS NOT '' AND encrypted = 1;
|
|
201
|
+
description: Ensures FileVault disk encryption is enabled.
|
|
202
|
+
resolution: "Enable FileVault: System Settings > Privacy & Security > FileVault."
|
|
203
|
+
platform: darwin
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
apiVersion: v1
|
|
207
|
+
kind: policy
|
|
208
|
+
spec:
|
|
209
|
+
name: BitLocker enabled (Windows)
|
|
210
|
+
query: >
|
|
211
|
+
SELECT 1 FROM bitlocker_info
|
|
212
|
+
WHERE protection_status = 1;
|
|
213
|
+
description: Ensures BitLocker drive encryption is active.
|
|
214
|
+
resolution: "Enable BitLocker via Settings > Privacy & Security > Device Encryption."
|
|
215
|
+
platform: windows
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
apiVersion: v1
|
|
219
|
+
kind: policy
|
|
220
|
+
spec:
|
|
221
|
+
name: Firewall enabled (macOS)
|
|
222
|
+
query: >
|
|
223
|
+
SELECT 1 FROM alf WHERE global_state >= 1;
|
|
224
|
+
description: macOS Application Layer Firewall must be on.
|
|
225
|
+
resolution: "Enable firewall: System Settings > Network > Firewall."
|
|
226
|
+
platform: darwin
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
apiVersion: v1
|
|
230
|
+
kind: policy
|
|
231
|
+
spec:
|
|
232
|
+
name: OS up to date (macOS)
|
|
233
|
+
query: >
|
|
234
|
+
SELECT 1 FROM os_version
|
|
235
|
+
WHERE platform = 'darwin' AND major >= 14;
|
|
236
|
+
description: Requires macOS 14 (Sonoma) or later.
|
|
237
|
+
resolution: "Update macOS via System Settings > General > Software Update."
|
|
238
|
+
platform: darwin
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## 4. macOS Enrollment
|
|
244
|
+
|
|
245
|
+
### 4.1 Apple Business Manager (ABM) / Automated Device Enrollment
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
# In ABM (business.apple.com):
|
|
249
|
+
# 1. Settings > MDM Servers > Add MDM Server
|
|
250
|
+
# 2. Upload the public key from your MDM (Fleet, Jamf, Kandji)
|
|
251
|
+
# 3. Download the ABM token and upload it to your MDM
|
|
252
|
+
# 4. Assign devices to the MDM server by serial number
|
|
253
|
+
|
|
254
|
+
# Verify DEP assignment with fleetctl (Fleet)
|
|
255
|
+
fleetctl get mdm-apple
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### 4.2 Manual MDM profile enrollment (non-DEP devices)
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
# Generate enrollment profile URL (Fleet example)
|
|
262
|
+
fleetctl get enrollment-profile > enrollment.mobileconfig
|
|
263
|
+
|
|
264
|
+
# Distribute to user — they open the .mobileconfig file
|
|
265
|
+
# Then approve in System Settings > Profiles
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### 4.3 Enforce FileVault via MDM configuration profile
|
|
269
|
+
|
|
270
|
+
```xml
|
|
271
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
272
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
|
|
273
|
+
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
274
|
+
<plist version="1.0">
|
|
275
|
+
<dict>
|
|
276
|
+
<key>PayloadContent</key>
|
|
277
|
+
<array>
|
|
278
|
+
<dict>
|
|
279
|
+
<key>PayloadType</key>
|
|
280
|
+
<string>com.apple.MCX.FileVault2</string>
|
|
281
|
+
<key>PayloadIdentifier</key>
|
|
282
|
+
<string>com.yourcompany.filevault</string>
|
|
283
|
+
<key>PayloadUUID</key>
|
|
284
|
+
<string>A1B2C3D4-E5F6-7890-ABCD-EF1234567890</string>
|
|
285
|
+
<key>PayloadVersion</key>
|
|
286
|
+
<integer>1</integer>
|
|
287
|
+
<key>Enable</key>
|
|
288
|
+
<string>On</string>
|
|
289
|
+
<key>Defer</key>
|
|
290
|
+
<true/>
|
|
291
|
+
<key>DeferForceAtUserLoginMaxBypassAttempts</key>
|
|
292
|
+
<integer>0</integer>
|
|
293
|
+
<key>ShowRecoveryKey</key>
|
|
294
|
+
<false/>
|
|
295
|
+
<key>UseRecoveryKey</key>
|
|
296
|
+
<true/>
|
|
297
|
+
</dict>
|
|
298
|
+
</array>
|
|
299
|
+
<key>PayloadDisplayName</key>
|
|
300
|
+
<string>FileVault Enforcement</string>
|
|
301
|
+
<key>PayloadIdentifier</key>
|
|
302
|
+
<string>com.yourcompany.filevault.profile</string>
|
|
303
|
+
<key>PayloadType</key>
|
|
304
|
+
<string>Configuration</string>
|
|
305
|
+
<key>PayloadUUID</key>
|
|
306
|
+
<string>F1E2D3C4-B5A6-7890-FEDC-BA0987654321</string>
|
|
307
|
+
<key>PayloadVersion</key>
|
|
308
|
+
<integer>1</integer>
|
|
309
|
+
</dict>
|
|
310
|
+
</plist>
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### 4.4 macOS firewall enforcement
|
|
314
|
+
|
|
315
|
+
```bash
|
|
316
|
+
# Enable firewall via MDM command or script
|
|
317
|
+
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
|
|
318
|
+
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setstealthmode on
|
|
319
|
+
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsigned enable
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
## 5. Windows Enrollment
|
|
325
|
+
|
|
326
|
+
### 5.1 Azure AD Join + Intune auto-enrollment
|
|
327
|
+
|
|
328
|
+
```powershell
|
|
329
|
+
# Check current join status
|
|
330
|
+
dsregcmd /status
|
|
331
|
+
|
|
332
|
+
# Join Azure AD (user will be prompted for credentials)
|
|
333
|
+
Start-Process "ms-settings:workplace"
|
|
334
|
+
|
|
335
|
+
# Verify Intune enrollment
|
|
336
|
+
Get-WmiObject -Namespace "root\cimv2\mdm\dmmap" `
|
|
337
|
+
-Class "MDM_DevDetail_Ext01" | Select DeviceID
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
### 5.2 Windows Autopilot hardware hash collection
|
|
341
|
+
|
|
342
|
+
```powershell
|
|
343
|
+
# Collect hardware hash for Autopilot registration
|
|
344
|
+
Install-Script -Name Get-WindowsAutoPilotInfo -Force
|
|
345
|
+
Get-WindowsAutoPilotInfo -OutputFile C:\temp\autopilot.csv
|
|
346
|
+
|
|
347
|
+
# Upload autopilot.csv to Intune > Devices > Windows Enrollment > Devices
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
### 5.3 BitLocker enforcement via Group Policy or Intune
|
|
351
|
+
|
|
352
|
+
```powershell
|
|
353
|
+
# Enable BitLocker on the OS drive with TPM
|
|
354
|
+
Enable-BitLocker -MountPoint "C:" `
|
|
355
|
+
-EncryptionMethod XtsAes256 `
|
|
356
|
+
-TpmProtector
|
|
357
|
+
|
|
358
|
+
# Add a recovery password and back it up to Azure AD
|
|
359
|
+
Add-BitLockerKeyProtector -MountPoint "C:" -RecoveryPasswordProtector
|
|
360
|
+
BackupToAAD-BitLockerKeyProtector -MountPoint "C:" `
|
|
361
|
+
-KeyProtectorId (Get-BitLockerVolume -MountPoint "C:").KeyProtector[1].KeyProtectorId
|
|
362
|
+
|
|
363
|
+
# Verify encryption status
|
|
364
|
+
Get-BitLockerVolume | Select-Object MountPoint, VolumeStatus, EncryptionPercentage
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
### 5.4 Windows Firewall baseline
|
|
368
|
+
|
|
369
|
+
```powershell
|
|
370
|
+
# Ensure all profiles are enabled
|
|
371
|
+
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
|
|
372
|
+
|
|
373
|
+
# Block all inbound by default, allow outbound
|
|
374
|
+
Set-NetFirewallProfile -Profile Domain,Public,Private `
|
|
375
|
+
-DefaultInboundAction Block `
|
|
376
|
+
-DefaultOutboundAction Allow
|
|
377
|
+
|
|
378
|
+
# Allow specific inbound rules (example: RDP only from VPN subnet)
|
|
379
|
+
New-NetFirewallRule -DisplayName "Allow RDP from VPN" `
|
|
380
|
+
-Direction Inbound -Protocol TCP -LocalPort 3389 `
|
|
381
|
+
-RemoteAddress 10.0.0.0/8 -Action Allow
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
---
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
## Contents
|
|
388
|
+
|
|
389
|
+
- [6. Security Policies — Cross-Platform](references/details.md)
|
|
390
|
+
- [7. Software Deployment](references/details.md)
|
|
391
|
+
- [8. Compliance Checks with osquery](references/details.md)
|
|
392
|
+
- [9. Remote Wipe & Lock](references/details.md)
|
|
393
|
+
- [10. Onboarding Automation — Zero-Touch Enrollment](references/details.md)
|
|
394
|
+
- [Quick Reference](references/details.md)
|
|
395
|
+
|
|
396
|
+
## When to Use
|
|
397
|
+
|
|
398
|
+
- You are provisioning, configuring, or troubleshooting the infrastructure component covered by this skill (servers, storage, databases, networking, cloud, local AI).
|
|
399
|
+
|
|
400
|
+
## Limitations
|
|
401
|
+
|
|
402
|
+
- Infrastructure commands can disrupt services: confirm target host/scope and have backups/snapshots before mutating state.
|
|
403
|
+
- Docs-only import: upstream scripts and templates not bundled.
|
|
404
|
+
|