opencode-skills-collection 4.0.68 → 4.0.70
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 +304 -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/api-integration-architect/SKILL.md +241 -0
- package/bundled-skills/apify-generate-output-schema/SKILL.md +438 -0
- package/bundled-skills/apify-integration-development/SKILL.md +168 -0
- package/bundled-skills/apify-integration-development/references/ai-framework-package.md +158 -0
- package/bundled-skills/apify-integration-development/references/ai-harness-plugin.md +192 -0
- package/bundled-skills/apify-integration-development/references/sdk-integration.md +236 -0
- package/bundled-skills/apify-integration-development/references/workflow-automation.md +163 -0
- package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
- package/bundled-skills/architecture-review/README.md +42 -0
- package/bundled-skills/architecture-review/SKILL.md +77 -0
- package/bundled-skills/architecture-review/examples.md +11 -0
- package/bundled-skills/architecture-review/reference/best-practices.md +7 -0
- package/bundled-skills/architecture-review/reference/capabilities.md +20 -0
- package/bundled-skills/architecture-review/reference/fallbacks.md +11 -0
- package/bundled-skills/architecture-review/reference/graph.md +15 -0
- package/bundled-skills/architecture-review/reference/mcp.md +14 -0
- package/bundled-skills/architecture-review/reference/workflow.md +15 -0
- package/bundled-skills/architecture-review/templates/architecture-review.md +21 -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/code-review-sensei/SKILL.md +177 -0
- package/bundled-skills/codebase-onboarding/README.md +42 -0
- package/bundled-skills/codebase-onboarding/SKILL.md +77 -0
- package/bundled-skills/codebase-onboarding/examples.md +11 -0
- package/bundled-skills/codebase-onboarding/reference/best-practices.md +7 -0
- package/bundled-skills/codebase-onboarding/reference/capabilities.md +20 -0
- package/bundled-skills/codebase-onboarding/reference/fallbacks.md +11 -0
- package/bundled-skills/codebase-onboarding/reference/graph.md +15 -0
- package/bundled-skills/codebase-onboarding/reference/mcp.md +14 -0
- package/bundled-skills/codebase-onboarding/reference/workflow.md +15 -0
- package/bundled-skills/codebase-onboarding/templates/repository-onboarding.md +21 -0
- package/bundled-skills/connection-auth-rules/SKILL.md +199 -0
- package/bundled-skills/connection-auth-rules/fetch_schema.py +320 -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-analysis/README.md +42 -0
- package/bundled-skills/dependency-analysis/SKILL.md +76 -0
- package/bundled-skills/dependency-analysis/examples.md +11 -0
- package/bundled-skills/dependency-analysis/reference/best-practices.md +7 -0
- package/bundled-skills/dependency-analysis/reference/capabilities.md +20 -0
- package/bundled-skills/dependency-analysis/reference/fallbacks.md +11 -0
- package/bundled-skills/dependency-analysis/reference/graph.md +15 -0
- package/bundled-skills/dependency-analysis/reference/mcp.md +14 -0
- package/bundled-skills/dependency-analysis/reference/workflow.md +15 -0
- package/bundled-skills/dependency-analysis/templates/dependency-review.md +21 -0
- package/bundled-skills/dependency-scanning/SKILL.md +457 -0
- package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
- package/bundled-skills/devops-pipeline-builder/SKILL.md +200 -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/eas-app-stores/SKILL.md +197 -0
- package/bundled-skills/eas-app-stores/agents/openai.yaml +4 -0
- package/bundled-skills/eas-app-stores/references/app-store-metadata.md +497 -0
- package/bundled-skills/eas-app-stores/references/ios-app-store.md +376 -0
- package/bundled-skills/eas-app-stores/references/native-ios.md +167 -0
- package/bundled-skills/eas-app-stores/references/play-store.md +244 -0
- package/bundled-skills/eas-app-stores/references/testflight.md +62 -0
- package/bundled-skills/eas-app-stores/references/workflows.md +120 -0
- package/bundled-skills/eas-hosting/SKILL.md +448 -0
- package/bundled-skills/eas-hosting/agents/openai.yaml +4 -0
- package/bundled-skills/eas-observe/SKILL.md +75 -0
- package/bundled-skills/eas-observe/agents/openai.yaml +4 -0
- package/bundled-skills/eas-observe/references/metrics.md +98 -0
- package/bundled-skills/eas-observe/references/queries.md +403 -0
- package/bundled-skills/eas-observe/references/setup.md +476 -0
- package/bundled-skills/eas-observe/references/third-party.md +136 -0
- package/bundled-skills/eas-simulator/SKILL.md +251 -0
- package/bundled-skills/eas-simulator/agents/openai.yaml +4 -0
- package/bundled-skills/eas-simulator/references/controllers.md +135 -0
- package/bundled-skills/eas-simulator/references/run-your-app.md +240 -0
- package/bundled-skills/eas-simulator/references/troubleshooting.md +47 -0
- package/bundled-skills/eas-workflows/SKILL.md +119 -0
- package/bundled-skills/eas-workflows/agents/openai.yaml +4 -0
- package/bundled-skills/eas-workflows/scripts/fetch.js +109 -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/expo-animation/LICENSE +21 -0
- package/bundled-skills/expo-animation/RECIPES.md +385 -0
- package/bundled-skills/expo-animation/SKILL.md +295 -0
- package/bundled-skills/expo-animation/agents/openai.yaml +4 -0
- package/bundled-skills/fact-check-x-unified/SKILL.md +178 -0
- package/bundled-skills/fact-check-x-unified/agents/openai.yaml +4 -0
- package/bundled-skills/fact-check-x-unified/references/acceptance-criteria.md +44 -0
- package/bundled-skills/fact-check-x-unified/references/contracts.md +39 -0
- package/bundled-skills/fact-check-x-unified/scripts/common.py +31 -0
- package/bundled-skills/fact-check-x-unified/scripts/fact_check_x.py +1832 -0
- package/bundled-skills/fact-check-x-unified/scripts/trusted_search_config.py +324 -0
- package/bundled-skills/fact-check-x-unified/tests/anchor_downgrade_test.py +90 -0
- package/bundled-skills/fact-check-x-unified/tests/multi_platform_test.py +369 -0
- package/bundled-skills/fact-check-x-unified/tests/smoke_test.py +740 -0
- package/bundled-skills/fact-check-x-unified/tests/stage_checkpoint_test.py +103 -0
- package/bundled-skills/fact-check-x-unified/tests/trusted_search_config_test.py +156 -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/gpt-taste/SKILL.md +8 -1
- 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/hf-cli/SKILL.md +263 -0
- package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
- package/bundled-skills/huggingface-community-evals/SKILL.md +228 -0
- package/bundled-skills/huggingface-community-evals/examples/.env.example +3 -0
- package/bundled-skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
- package/bundled-skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
- package/bundled-skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
- package/bundled-skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
- package/bundled-skills/huggingface-datasets/SKILL.md +130 -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-social/SKILL.md +182 -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/longbridge-derivatives/SKILL.md +117 -0
- package/bundled-skills/longbridge-derivatives/references/option.md +36 -0
- package/bundled-skills/longbridge-derivatives/references/options-advanced.md +101 -0
- package/bundled-skills/longbridge-derivatives/references/options-pnl.md +74 -0
- package/bundled-skills/longbridge-derivatives/references/options-strategy.md +82 -0
- package/bundled-skills/longbridge-derivatives/references/options-volatility.md +70 -0
- package/bundled-skills/longbridge-derivatives/references/warrant.md +12 -0
- package/bundled-skills/longbridge-quant/SKILL.md +151 -0
- package/bundled-skills/longbridge-quant/references/correlation.md +51 -0
- package/bundled-skills/longbridge-quant/references/execution-model.md +68 -0
- package/bundled-skills/longbridge-quant/references/factor-research.md +95 -0
- package/bundled-skills/longbridge-quant/references/factor-screen.md +101 -0
- package/bundled-skills/longbridge-quant/references/hedging.md +136 -0
- package/bundled-skills/longbridge-quant/references/ml-strategy.md +77 -0
- package/bundled-skills/longbridge-quant/references/multifactor.md +68 -0
- package/bundled-skills/longbridge-quant/references/pairs-trading.md +61 -0
- package/bundled-skills/longbridge-quant/references/quant-cli.md +133 -0
- package/bundled-skills/longbridge-quant/references/quant-stats.md +150 -0
- package/bundled-skills/longbridge-quant/references/seasonality.md +50 -0
- package/bundled-skills/longbridge-quant/references/strategy-optimizer.md +68 -0
- package/bundled-skills/longbridge-quant/references/volatility-strategy.md +52 -0
- package/bundled-skills/longbridge-research/SKILL.md +187 -0
- package/bundled-skills/longbridge-research/references/company-profile.md +96 -0
- package/bundled-skills/longbridge-research/references/company-tearsheet.md +82 -0
- package/bundled-skills/longbridge-research/references/competitive-analysis.md +81 -0
- package/bundled-skills/longbridge-research/references/consensus.md +92 -0
- package/bundled-skills/longbridge-research/references/coverage-initiation.md +76 -0
- package/bundled-skills/longbridge-research/references/defi-yield.md +60 -0
- package/bundled-skills/longbridge-research/references/finance-calendar.md +165 -0
- package/bundled-skills/longbridge-research/references/financial-planning.md +77 -0
- package/bundled-skills/longbridge-research/references/forecast-eps.md +39 -0
- package/bundled-skills/longbridge-research/references/fund-holder.md +44 -0
- package/bundled-skills/longbridge-research/references/hkipo-analysis.md +101 -0
- package/bundled-skills/longbridge-research/references/industry-peers.md +46 -0
- package/bundled-skills/longbridge-research/references/industry-rank.md +62 -0
- package/bundled-skills/longbridge-research/references/insider-trades.md +48 -0
- package/bundled-skills/longbridge-research/references/institution-rating.md +62 -0
- package/bundled-skills/longbridge-research/references/investment-ideas.md +69 -0
- package/bundled-skills/longbridge-research/references/investment-proposal.md +95 -0
- package/bundled-skills/longbridge-research/references/investors.md +87 -0
- package/bundled-skills/longbridge-research/references/onchain.md +70 -0
- package/bundled-skills/longbridge-research/references/post-investment.md +76 -0
- package/bundled-skills/longbridge-research/references/shareholder.md +72 -0
- package/bundled-skills/longbridge-research/references/short-positions.md +50 -0
- package/bundled-skills/longbridge-research/references/short-trades.md +50 -0
- package/bundled-skills/longbridge-research/references/stock-research.md +61 -0
- package/bundled-skills/longbridge-research/references/thesis-tracker.md +64 -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/makepad-2-0-animation/SKILL.md +318 -0
- package/bundled-skills/makepad-2-0-animation/references/animator-reference.md +433 -0
- package/bundled-skills/makepad-2-0-dsl/SKILL.md +492 -0
- package/bundled-skills/makepad-2-0-dsl/references/dsl-syntax-reference.md +511 -0
- package/bundled-skills/makepad-2-0-dsl/references/extended-guide.md +56 -0
- package/bundled-skills/makepad-2-0-dsl/references/property-system.md +757 -0
- package/bundled-skills/makepad-2-0-events/SKILL.md +497 -0
- package/bundled-skills/makepad-2-0-events/references/event-patterns.md +802 -0
- package/bundled-skills/makepad-2-0-events/references/extended-guide.md +590 -0
- package/bundled-skills/makepad-2-0-layout/SKILL.md +499 -0
- package/bundled-skills/makepad-2-0-layout/references/extended-guide.md +243 -0
- package/bundled-skills/makepad-2-0-layout/references/layout-patterns.md +881 -0
- package/bundled-skills/makepad-2-0-widgets/SKILL.md +261 -0
- package/bundled-skills/makepad-2-0-widgets/references/widget-advanced.md +648 -0
- package/bundled-skills/makepad-2-0-widgets/references/widget-catalog.md +547 -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/meeting-distiller-pro/SKILL.md +120 -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/monte-carlo-analyze-root-cause/SKILL.md +12 -1
- package/bundled-skills/monte-carlo-asset-health/SKILL.md +12 -1
- package/bundled-skills/monte-carlo-context-detection/SKILL.md +170 -0
- package/bundled-skills/monte-carlo-context-detection/references/signal-definitions.md +46 -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/remotion-captions/SKILL.md +57 -0
- package/bundled-skills/remotion-captions/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-captions/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-captions/display-captions.md +190 -0
- package/bundled-skills/remotion-captions/import-srt-captions.md +73 -0
- package/bundled-skills/remotion-captions/transcribe-captions.md +70 -0
- package/bundled-skills/remotion-create/SKILL.md +106 -0
- package/bundled-skills/remotion-create/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-create/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-create/tailwind.md +11 -0
- package/bundled-skills/remotion-create/video-layout.md +9 -0
- package/bundled-skills/remotion-docs/SKILL.md +67 -0
- package/bundled-skills/remotion-docs/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-docs/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-interactivity/SKILL.md +270 -0
- package/bundled-skills/remotion-interactivity/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-interactivity/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-render/SKILL.md +48 -0
- package/bundled-skills/remotion-render/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-render/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-render/transparent-videos.md +106 -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-pricing-strategist/SKILL.md +169 -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/score-eval/SKILL.md +35 -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/writing-guidelines/SKILL.md +60 -0
- package/bundled-skills/zero-trust/SKILL.md +461 -0
- package/package.json +1 -1
- package/skills_index.json +7874 -277
|
@@ -0,0 +1,452 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vpn-setup
|
|
3
|
+
description: Configure WireGuard, OpenVPN, and cloud VPNs. Implement secure remote
|
|
4
|
+
access and site-to-site connectivity. Use when setting up secure network tunnels.
|
|
5
|
+
category: security
|
|
6
|
+
risk: critical
|
|
7
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
8
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
9
|
+
source_type: community
|
|
10
|
+
date_added: '2026-09-20'
|
|
11
|
+
license: MIT
|
|
12
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
13
|
+
compatibility: Requires the relevant security tooling (scanners, vault CLIs) and an
|
|
14
|
+
authorized scope for any active assessment. Docs-only; helper scripts and templates
|
|
15
|
+
not bundled.
|
|
16
|
+
metadata:
|
|
17
|
+
author: devops-skills
|
|
18
|
+
version: '1.0'
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# VPN Setup
|
|
22
|
+
|
|
23
|
+
Configure secure VPN tunnels for remote access and site connectivity.
|
|
24
|
+
|
|
25
|
+
## When to Use This Skill
|
|
26
|
+
|
|
27
|
+
Use this skill when:
|
|
28
|
+
- Setting up secure remote access for employees or contractors
|
|
29
|
+
- Connecting on-premises networks to cloud environments (site-to-site)
|
|
30
|
+
- Encrypting traffic between data centers or regions
|
|
31
|
+
- Implementing a mesh VPN for distributed infrastructure
|
|
32
|
+
- Providing secure access to internal services without exposing them publicly
|
|
33
|
+
|
|
34
|
+
## Prerequisites
|
|
35
|
+
|
|
36
|
+
- Linux server with a public IP for VPN endpoint
|
|
37
|
+
- Root/sudo access on the VPN server
|
|
38
|
+
- Firewall rules allowing VPN traffic (UDP 51820 for WireGuard, UDP 1194 for OpenVPN)
|
|
39
|
+
- DNS configured for VPN hostname (optional but recommended)
|
|
40
|
+
- Understanding of IP subnetting and routing
|
|
41
|
+
|
|
42
|
+
## WireGuard
|
|
43
|
+
|
|
44
|
+
### Server Setup
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Install WireGuard (Ubuntu/Debian)
|
|
48
|
+
apt update && apt install -y wireguard
|
|
49
|
+
|
|
50
|
+
# Generate server keys
|
|
51
|
+
wg genkey | tee /etc/wireguard/server_private.key | wg pubkey > /etc/wireguard/server_public.key
|
|
52
|
+
chmod 600 /etc/wireguard/server_private.key
|
|
53
|
+
|
|
54
|
+
# Generate pre-shared key (optional, adds post-quantum resistance)
|
|
55
|
+
wg genpsk > /etc/wireguard/psk.key
|
|
56
|
+
chmod 600 /etc/wireguard/psk.key
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Server Configuration
|
|
60
|
+
|
|
61
|
+
```ini
|
|
62
|
+
# /etc/wireguard/wg0.conf
|
|
63
|
+
[Interface]
|
|
64
|
+
Address = 10.0.0.1/24
|
|
65
|
+
ListenPort = 51820
|
|
66
|
+
PrivateKey = <server-private-key>
|
|
67
|
+
|
|
68
|
+
# Enable IP forwarding and NAT on startup
|
|
69
|
+
PostUp = sysctl -w net.ipv4.ip_forward=1
|
|
70
|
+
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
|
|
71
|
+
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
|
|
72
|
+
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
|
|
73
|
+
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
|
|
74
|
+
|
|
75
|
+
# DNS for clients
|
|
76
|
+
DNS = 10.0.0.1
|
|
77
|
+
|
|
78
|
+
# Peer: Alice (laptop)
|
|
79
|
+
[Peer]
|
|
80
|
+
PublicKey = <alice-public-key>
|
|
81
|
+
PresharedKey = <preshared-key>
|
|
82
|
+
AllowedIPs = 10.0.0.2/32
|
|
83
|
+
|
|
84
|
+
# Peer: Bob (mobile)
|
|
85
|
+
[Peer]
|
|
86
|
+
PublicKey = <bob-public-key>
|
|
87
|
+
PresharedKey = <preshared-key>
|
|
88
|
+
AllowedIPs = 10.0.0.3/32
|
|
89
|
+
|
|
90
|
+
# Peer: Office network (site-to-site)
|
|
91
|
+
[Peer]
|
|
92
|
+
PublicKey = <office-public-key>
|
|
93
|
+
PresharedKey = <preshared-key>
|
|
94
|
+
AllowedIPs = 10.0.0.4/32, 192.168.1.0/24
|
|
95
|
+
Endpoint = office.example.com:51820
|
|
96
|
+
PersistentKeepalive = 25
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Client Configuration
|
|
100
|
+
|
|
101
|
+
```ini
|
|
102
|
+
# Client config: alice.conf
|
|
103
|
+
[Interface]
|
|
104
|
+
Address = 10.0.0.2/24
|
|
105
|
+
PrivateKey = <alice-private-key>
|
|
106
|
+
DNS = 10.0.0.1
|
|
107
|
+
|
|
108
|
+
[Peer]
|
|
109
|
+
PublicKey = <server-public-key>
|
|
110
|
+
PresharedKey = <preshared-key>
|
|
111
|
+
Endpoint = vpn.example.com:51820
|
|
112
|
+
AllowedIPs = 0.0.0.0/0, ::/0
|
|
113
|
+
PersistentKeepalive = 25
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Split Tunneling Configuration
|
|
117
|
+
|
|
118
|
+
```ini
|
|
119
|
+
# Client config with split tunnel (only route internal traffic through VPN)
|
|
120
|
+
[Interface]
|
|
121
|
+
Address = 10.0.0.2/24
|
|
122
|
+
PrivateKey = <alice-private-key>
|
|
123
|
+
# No DNS override for split tunnel
|
|
124
|
+
|
|
125
|
+
[Peer]
|
|
126
|
+
PublicKey = <server-public-key>
|
|
127
|
+
PresharedKey = <preshared-key>
|
|
128
|
+
Endpoint = vpn.example.com:51820
|
|
129
|
+
# Only route specific subnets through VPN
|
|
130
|
+
AllowedIPs = 10.0.0.0/24, 172.16.0.0/16, 192.168.1.0/24
|
|
131
|
+
PersistentKeepalive = 25
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### WireGuard Management Commands
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
# Start/stop interface
|
|
138
|
+
wg-quick up wg0
|
|
139
|
+
wg-quick down wg0
|
|
140
|
+
|
|
141
|
+
# Enable on boot
|
|
142
|
+
systemctl enable wg-quick@wg0
|
|
143
|
+
|
|
144
|
+
# Show connection status
|
|
145
|
+
wg show
|
|
146
|
+
wg show wg0
|
|
147
|
+
|
|
148
|
+
# Add a new peer dynamically
|
|
149
|
+
wg set wg0 peer <new-public-key> allowed-ips 10.0.0.5/32
|
|
150
|
+
|
|
151
|
+
# Remove a peer
|
|
152
|
+
wg set wg0 peer <public-key> remove
|
|
153
|
+
|
|
154
|
+
# Show transfer statistics
|
|
155
|
+
wg show wg0 transfer
|
|
156
|
+
|
|
157
|
+
# Generate QR code for mobile clients
|
|
158
|
+
apt install -y qr-encode
|
|
159
|
+
qrencode -t ansiutf8 < alice-mobile.conf
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Peer Management Script
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
#!/bin/bash
|
|
166
|
+
# wg-add-peer.sh - Add a new WireGuard peer
|
|
167
|
+
set -euo pipefail
|
|
168
|
+
|
|
169
|
+
PEER_NAME="${1:?Usage: $0 <peer-name>}"
|
|
170
|
+
SERVER_CONF="/etc/wireguard/wg0.conf"
|
|
171
|
+
CLIENTS_DIR="/etc/wireguard/clients"
|
|
172
|
+
SERVER_PUBKEY=$(cat /etc/wireguard/server_public.key)
|
|
173
|
+
SERVER_ENDPOINT="vpn.example.com:51820"
|
|
174
|
+
PSK=$(cat /etc/wireguard/psk.key)
|
|
175
|
+
|
|
176
|
+
# Find next available IP
|
|
177
|
+
LAST_IP=$(grep -oP 'AllowedIPs = 10\.0\.0\.\K[0-9]+' "$SERVER_CONF" | sort -n | tail -1)
|
|
178
|
+
NEXT_IP=$((LAST_IP + 1))
|
|
179
|
+
|
|
180
|
+
mkdir -p "$CLIENTS_DIR"
|
|
181
|
+
|
|
182
|
+
# Generate client keys
|
|
183
|
+
wg genkey | tee "$CLIENTS_DIR/${PEER_NAME}_private.key" | wg pubkey > "$CLIENTS_DIR/${PEER_NAME}_public.key"
|
|
184
|
+
chmod 600 "$CLIENTS_DIR/${PEER_NAME}_private.key"
|
|
185
|
+
|
|
186
|
+
CLIENT_PRIVKEY=$(cat "$CLIENTS_DIR/${PEER_NAME}_private.key")
|
|
187
|
+
CLIENT_PUBKEY=$(cat "$CLIENTS_DIR/${PEER_NAME}_public.key")
|
|
188
|
+
|
|
189
|
+
# Add peer to server config
|
|
190
|
+
cat >> "$SERVER_CONF" << EOF
|
|
191
|
+
|
|
192
|
+
# Peer: ${PEER_NAME}
|
|
193
|
+
[Peer]
|
|
194
|
+
PublicKey = ${CLIENT_PUBKEY}
|
|
195
|
+
PresharedKey = ${PSK}
|
|
196
|
+
AllowedIPs = 10.0.0.${NEXT_IP}/32
|
|
197
|
+
EOF
|
|
198
|
+
|
|
199
|
+
# Generate client config
|
|
200
|
+
cat > "$CLIENTS_DIR/${PEER_NAME}.conf" << EOF
|
|
201
|
+
[Interface]
|
|
202
|
+
Address = 10.0.0.${NEXT_IP}/24
|
|
203
|
+
PrivateKey = ${CLIENT_PRIVKEY}
|
|
204
|
+
DNS = 10.0.0.1
|
|
205
|
+
|
|
206
|
+
[Peer]
|
|
207
|
+
PublicKey = ${SERVER_PUBKEY}
|
|
208
|
+
PresharedKey = ${PSK}
|
|
209
|
+
Endpoint = ${SERVER_ENDPOINT}
|
|
210
|
+
AllowedIPs = 0.0.0.0/0, ::/0
|
|
211
|
+
PersistentKeepalive = 25
|
|
212
|
+
EOF
|
|
213
|
+
|
|
214
|
+
# Reload WireGuard
|
|
215
|
+
wg syncconf wg0 <(wg-quick strip wg0)
|
|
216
|
+
|
|
217
|
+
echo "Peer ${PEER_NAME} added with IP 10.0.0.${NEXT_IP}"
|
|
218
|
+
echo "Client config: ${CLIENTS_DIR}/${PEER_NAME}.conf"
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
## OpenVPN
|
|
222
|
+
|
|
223
|
+
### Server Setup
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
# Install OpenVPN and Easy-RSA
|
|
227
|
+
apt install -y openvpn easy-rsa
|
|
228
|
+
|
|
229
|
+
# Initialize PKI
|
|
230
|
+
make-cadir /etc/openvpn/easy-rsa
|
|
231
|
+
cd /etc/openvpn/easy-rsa
|
|
232
|
+
|
|
233
|
+
./easyrsa init-pki
|
|
234
|
+
./easyrsa build-ca nopass
|
|
235
|
+
./easyrsa gen-req server nopass
|
|
236
|
+
./easyrsa sign-req server server
|
|
237
|
+
./easyrsa gen-dh
|
|
238
|
+
openvpn --genkey secret /etc/openvpn/ta.key
|
|
239
|
+
|
|
240
|
+
# Generate client certificate
|
|
241
|
+
./easyrsa gen-req client1 nopass
|
|
242
|
+
./easyrsa sign-req client client1
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
### Server Configuration
|
|
246
|
+
|
|
247
|
+
```ini
|
|
248
|
+
# /etc/openvpn/server.conf
|
|
249
|
+
port 1194
|
|
250
|
+
proto udp
|
|
251
|
+
dev tun
|
|
252
|
+
|
|
253
|
+
ca /etc/openvpn/easy-rsa/pki/ca.crt
|
|
254
|
+
cert /etc/openvpn/easy-rsa/pki/issued/server.crt
|
|
255
|
+
key /etc/openvpn/easy-rsa/pki/private/server.key
|
|
256
|
+
dh /etc/openvpn/easy-rsa/pki/dh.pem
|
|
257
|
+
tls-auth /etc/openvpn/ta.key 0
|
|
258
|
+
|
|
259
|
+
server 10.8.0.0 255.255.255.0
|
|
260
|
+
|
|
261
|
+
# Route client traffic through VPN
|
|
262
|
+
push "redirect-gateway def1 bypass-dhcp"
|
|
263
|
+
push "dhcp-option DNS 8.8.8.8"
|
|
264
|
+
push "dhcp-option DNS 8.8.4.4"
|
|
265
|
+
|
|
266
|
+
# Split tunnel: push specific routes instead
|
|
267
|
+
# push "route 172.16.0.0 255.255.0.0"
|
|
268
|
+
# push "route 192.168.1.0 255.255.255.0"
|
|
269
|
+
|
|
270
|
+
keepalive 10 120
|
|
271
|
+
|
|
272
|
+
# Cipher and auth
|
|
273
|
+
cipher AES-256-GCM
|
|
274
|
+
auth SHA256
|
|
275
|
+
data-ciphers AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305
|
|
276
|
+
|
|
277
|
+
# Hardening
|
|
278
|
+
tls-version-min 1.2
|
|
279
|
+
tls-cipher TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384
|
|
280
|
+
|
|
281
|
+
user nobody
|
|
282
|
+
group nogroup
|
|
283
|
+
persist-key
|
|
284
|
+
persist-tun
|
|
285
|
+
|
|
286
|
+
# Logging
|
|
287
|
+
status /var/log/openvpn/status.log
|
|
288
|
+
log-append /var/log/openvpn/openvpn.log
|
|
289
|
+
verb 3
|
|
290
|
+
|
|
291
|
+
# Max clients
|
|
292
|
+
max-clients 100
|
|
293
|
+
|
|
294
|
+
# Client isolation (clients cannot see each other)
|
|
295
|
+
client-to-client
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### Client Configuration
|
|
299
|
+
|
|
300
|
+
```ini
|
|
301
|
+
# client1.ovpn
|
|
302
|
+
client
|
|
303
|
+
dev tun
|
|
304
|
+
proto udp
|
|
305
|
+
remote vpn.example.com 1194
|
|
306
|
+
resolv-retry infinite
|
|
307
|
+
nobind
|
|
308
|
+
persist-key
|
|
309
|
+
persist-tun
|
|
310
|
+
|
|
311
|
+
ca ca.crt
|
|
312
|
+
cert client1.crt
|
|
313
|
+
key client1.key
|
|
314
|
+
tls-auth ta.key 1
|
|
315
|
+
|
|
316
|
+
cipher AES-256-GCM
|
|
317
|
+
auth SHA256
|
|
318
|
+
|
|
319
|
+
verb 3
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
## Tailscale (Managed WireGuard)
|
|
323
|
+
|
|
324
|
+
```bash
|
|
325
|
+
# Install Tailscale
|
|
326
|
+
curl -fsSL https://tailscale.com/install.sh -o /tmp/install-tailscale.sh && sh /tmp/install-tailscale.sh && rm /tmp/install-tailscale.sh
|
|
327
|
+
|
|
328
|
+
# Authenticate and connect
|
|
329
|
+
tailscale up
|
|
330
|
+
|
|
331
|
+
# Advertise subnet routes (act as a gateway)
|
|
332
|
+
tailscale up --advertise-routes=192.168.1.0/24,172.16.0.0/16
|
|
333
|
+
|
|
334
|
+
# Enable as exit node (route all traffic)
|
|
335
|
+
tailscale up --advertise-exit-node
|
|
336
|
+
|
|
337
|
+
# Use an exit node
|
|
338
|
+
tailscale up --exit-node=<exit-node-ip>
|
|
339
|
+
|
|
340
|
+
# Check status
|
|
341
|
+
tailscale status
|
|
342
|
+
|
|
343
|
+
# Access control: tailscale ACL policy (in admin console)
|
|
344
|
+
# Example ACL policy
|
|
345
|
+
cat << 'EOF'
|
|
346
|
+
{
|
|
347
|
+
"acls": [
|
|
348
|
+
{"action": "accept", "src": ["group:engineering"], "dst": ["tag:servers:*"]},
|
|
349
|
+
{"action": "accept", "src": ["group:devops"], "dst": ["*:*"]},
|
|
350
|
+
{"action": "accept", "src": ["tag:monitoring"], "dst": ["tag:servers:9100"]}
|
|
351
|
+
],
|
|
352
|
+
"tagOwners": {
|
|
353
|
+
"tag:servers": ["group:devops"],
|
|
354
|
+
"tag:monitoring": ["group:devops"]
|
|
355
|
+
},
|
|
356
|
+
"groups": {
|
|
357
|
+
"group:engineering": ["alice@example.com", "bob@example.com"],
|
|
358
|
+
"group:devops": ["charlie@example.com"]
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
EOF
|
|
362
|
+
|
|
363
|
+
# Enable MagicDNS and set DNS
|
|
364
|
+
tailscale up --accept-dns
|
|
365
|
+
|
|
366
|
+
# SSH via Tailscale (no SSH keys needed)
|
|
367
|
+
tailscale up --ssh
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
## AWS Site-to-Site VPN
|
|
371
|
+
|
|
372
|
+
```bash
|
|
373
|
+
# Create Virtual Private Gateway
|
|
374
|
+
VGW_ID=$(aws ec2 create-vpn-gateway --type ipsec.1 --query 'VpnGateway.VpnGatewayId' --output text)
|
|
375
|
+
|
|
376
|
+
# Attach to VPC
|
|
377
|
+
aws ec2 attach-vpn-gateway --vpn-gateway-id "$VGW_ID" --vpc-id vpc-0abc123
|
|
378
|
+
|
|
379
|
+
# Create Customer Gateway (your on-prem device)
|
|
380
|
+
CGW_ID=$(aws ec2 create-customer-gateway \
|
|
381
|
+
--type ipsec.1 \
|
|
382
|
+
--bgp-asn 65000 \
|
|
383
|
+
--public-ip 203.0.113.10 \
|
|
384
|
+
--query 'CustomerGateway.CustomerGatewayId' --output text)
|
|
385
|
+
|
|
386
|
+
# Create VPN connection
|
|
387
|
+
VPN_ID=$(aws ec2 create-vpn-connection \
|
|
388
|
+
--type ipsec.1 \
|
|
389
|
+
--customer-gateway-id "$CGW_ID" \
|
|
390
|
+
--vpn-gateway-id "$VGW_ID" \
|
|
391
|
+
--options '{"StaticRoutesOnly":false}' \
|
|
392
|
+
--query 'VpnConnection.VpnConnectionId' --output text)
|
|
393
|
+
|
|
394
|
+
# Download configuration for your device
|
|
395
|
+
aws ec2 describe-vpn-connections --vpn-connection-ids "$VPN_ID"
|
|
396
|
+
|
|
397
|
+
# Enable route propagation
|
|
398
|
+
aws ec2 enable-vgw-route-propagation \
|
|
399
|
+
--gateway-id "$VGW_ID" \
|
|
400
|
+
--route-table-id rtb-0abc123
|
|
401
|
+
|
|
402
|
+
# Monitor VPN tunnel status
|
|
403
|
+
aws ec2 describe-vpn-connections \
|
|
404
|
+
--vpn-connection-ids "$VPN_ID" \
|
|
405
|
+
--query 'VpnConnections[0].VgwTelemetry'
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
## Troubleshooting
|
|
409
|
+
|
|
410
|
+
| Problem | Cause | Solution |
|
|
411
|
+
|---------|-------|----------|
|
|
412
|
+
| WireGuard handshake never completes | Firewall blocking UDP 51820 | Open UDP 51820 on server firewall and any intermediate firewalls |
|
|
413
|
+
| No internet through VPN | IP forwarding disabled or NAT missing | Enable `net.ipv4.ip_forward=1`; verify PostUp iptables rules |
|
|
414
|
+
| DNS not resolving over VPN | DNS not pushed or local DNS conflicts | Set `DNS = ` in client config; check `/etc/resolv.conf` |
|
|
415
|
+
| OpenVPN TLS handshake fails | Certificate mismatch or expired | Verify CA cert matches; check certificate dates with `openssl x509 -dates` |
|
|
416
|
+
| Split tunnel leaks traffic | AllowedIPs too broad | Set only specific subnets in AllowedIPs; verify with `traceroute` |
|
|
417
|
+
| Tailscale node unreachable | ACL blocking traffic | Check Tailscale admin ACL policy; verify node is online with `tailscale status` |
|
|
418
|
+
| AWS VPN tunnel flapping | Idle timeout or DPD misconfigured | Enable DPD on customer gateway; send periodic keep-alive traffic |
|
|
419
|
+
| Slow VPN performance | MTU issues causing fragmentation | Set `MTU = 1420` in WireGuard config; test with `ping -M do -s 1400` |
|
|
420
|
+
|
|
421
|
+
## Best Practices
|
|
422
|
+
|
|
423
|
+
- Use WireGuard for modern deployments (simpler, faster, smaller attack surface)
|
|
424
|
+
- Implement MFA for VPN access where possible
|
|
425
|
+
- Rotate keys regularly (quarterly for WireGuard, annual for OpenVPN certs)
|
|
426
|
+
- Monitor VPN connections and alert on anomalies
|
|
427
|
+
- Segment VPN access by role using split tunneling or ACLs
|
|
428
|
+
- Use pre-shared keys with WireGuard for post-quantum resistance
|
|
429
|
+
- Keep VPN software updated to patch security vulnerabilities
|
|
430
|
+
- Log all VPN connection events for audit purposes
|
|
431
|
+
- Disable VPN access immediately when employees leave
|
|
432
|
+
- Test failover for site-to-site VPN connections
|
|
433
|
+
|
|
434
|
+
## Related Skills
|
|
435
|
+
|
|
436
|
+
- zero-trust (`zero-trust`) - Modern access patterns
|
|
437
|
+
- ssl-tls-management (`ssl-tls-management`) - Certificate management
|
|
438
|
+
- firewall-config (`firewall-config`) - Network access control
|
|
439
|
+
|
|
440
|
+
## Limitations
|
|
441
|
+
|
|
442
|
+
- Apply guidance only within authorized scope; test destructive steps in non-production first.
|
|
443
|
+
- Docs-only import: upstream scripts and templates not bundled.
|
|
444
|
+
|
|
445
|
+
### Example
|
|
446
|
+
|
|
447
|
+
```bash
|
|
448
|
+
# Read-only first: inventory before any active step.
|
|
449
|
+
which <tool> && <tool> --help | head -n 20
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
> Adapted from [BagelHole/DevOps-Security-Agent-Skills](https://github.com/BagelHole/DevOps-Security-Agent-Skills) (MIT); frontmatter, When to Use/Limitations, and safety boundaries added for upstream compliance. Docs-only import: helper scripts and templates not bundled.
|