opencode-skills-collection 4.0.67 → 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 +281 -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/anti-slop-design/SKILL.md +393 -0
- package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +1 -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/artifact-yylo/SKILL.md +122 -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/google-no-code/SKILL.md +136 -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/idea-evaluator/SKILL.md +75 -0
- package/bundled-skills/idea-evaluator/idea-evaluator-con/SKILL.md +64 -0
- package/bundled-skills/idea-evaluator/idea-evaluator-pro/SKILL.md +64 -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/ledger-tasks-yylo/SKILL.md +219 -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/loki-mode/examples/todo-app-generated/backend/package-lock.json +4 -4
- package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package.json +1 -1
- 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/plan-ledger-tasks-yylo/SKILL.md +52 -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/ralph-loop-yylo/SKILL.md +55 -0
- package/bundled-skills/ralph-loop-yylo/references/first_check.md +18 -0
- package/bundled-skills/ralph-loop-yylo/references/implement.md +60 -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/resumable-implementation-contracts/SKILL.md +254 -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/understand-project-yylo/SKILL.md +62 -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/weather-model-data-fetching/SKILL.md +277 -0
- package/bundled-skills/weather-observation-fetching/SKILL.md +246 -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/wiki-yylo/SKILL.md +114 -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/workflow-yylo/SKILL.md +107 -0
- package/bundled-skills/zero-trust/SKILL.md +461 -0
- package/package.json +1 -1
- package/skills_index.json +6924 -0
|
@@ -0,0 +1,479 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: firewall-config
|
|
3
|
+
description: Configure iptables, nftables, and cloud firewalls. Implement network
|
|
4
|
+
segmentation and traffic filtering. Use when securing network perimeters or implementing
|
|
5
|
+
security zones.
|
|
6
|
+
category: security
|
|
7
|
+
risk: critical
|
|
8
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
9
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
10
|
+
source_type: community
|
|
11
|
+
date_added: '2026-09-20'
|
|
12
|
+
license: MIT
|
|
13
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
14
|
+
compatibility: Requires the relevant security tooling (scanners, vault CLIs) and an
|
|
15
|
+
authorized scope for any active assessment. Docs-only; helper scripts and templates
|
|
16
|
+
not bundled.
|
|
17
|
+
metadata:
|
|
18
|
+
author: devops-skills
|
|
19
|
+
version: '1.0'
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Firewall Configuration
|
|
23
|
+
|
|
24
|
+
Configure host-based and cloud firewalls for network security.
|
|
25
|
+
|
|
26
|
+
## When to Use This Skill
|
|
27
|
+
|
|
28
|
+
Use this skill when:
|
|
29
|
+
- Setting up a new server and need to restrict network access
|
|
30
|
+
- Implementing network segmentation between application tiers
|
|
31
|
+
- Configuring cloud security groups for AWS, GCP, or Azure resources
|
|
32
|
+
- Migrating from iptables to nftables
|
|
33
|
+
- Auditing existing firewall rules for compliance
|
|
34
|
+
- Responding to a security incident requiring emergency network blocks
|
|
35
|
+
|
|
36
|
+
## Prerequisites
|
|
37
|
+
|
|
38
|
+
- Root or sudo access on Linux hosts
|
|
39
|
+
- AWS CLI configured for cloud security groups
|
|
40
|
+
- Understanding of TCP/IP, ports, and protocols
|
|
41
|
+
- Network diagram showing required traffic flows
|
|
42
|
+
|
|
43
|
+
## iptables
|
|
44
|
+
|
|
45
|
+
### Basic Setup with Default Deny
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# Flush existing rules
|
|
49
|
+
iptables -F
|
|
50
|
+
iptables -X
|
|
51
|
+
iptables -t nat -F
|
|
52
|
+
iptables -t mangle -F
|
|
53
|
+
|
|
54
|
+
# Default policies - deny all inbound, allow outbound
|
|
55
|
+
iptables -P INPUT DROP
|
|
56
|
+
iptables -P FORWARD DROP
|
|
57
|
+
iptables -P OUTPUT ACCEPT
|
|
58
|
+
|
|
59
|
+
# Allow established connections
|
|
60
|
+
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
|
|
61
|
+
|
|
62
|
+
# Allow loopback
|
|
63
|
+
iptables -A INPUT -i lo -j ACCEPT
|
|
64
|
+
|
|
65
|
+
# Drop invalid packets
|
|
66
|
+
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
|
|
67
|
+
|
|
68
|
+
# Allow SSH (restrict to management subnet)
|
|
69
|
+
iptables -A INPUT -p tcp --dport 22 -s 10.0.100.0/24 -j ACCEPT
|
|
70
|
+
|
|
71
|
+
# Allow HTTP/HTTPS from anywhere
|
|
72
|
+
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
|
|
73
|
+
|
|
74
|
+
# Allow ICMP (ping) with rate limiting
|
|
75
|
+
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 4 -j ACCEPT
|
|
76
|
+
|
|
77
|
+
# Log dropped packets (rate limited to avoid log flooding)
|
|
78
|
+
iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "IPTABLES-DROP: " --log-level 4
|
|
79
|
+
|
|
80
|
+
# Save rules (Debian/Ubuntu)
|
|
81
|
+
iptables-save > /etc/iptables/rules.v4
|
|
82
|
+
ip6tables-save > /etc/iptables/rules.v6
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Anti-DDoS Rules
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# SYN flood protection
|
|
89
|
+
iptables -A INPUT -p tcp --syn -m limit --limit 25/s --limit-burst 50 -j ACCEPT
|
|
90
|
+
iptables -A INPUT -p tcp --syn -j DROP
|
|
91
|
+
|
|
92
|
+
# Limit new connections per source IP
|
|
93
|
+
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j REJECT
|
|
94
|
+
|
|
95
|
+
# Block port scanning (detect TCP flags abuse)
|
|
96
|
+
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
|
|
97
|
+
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
|
|
98
|
+
iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
|
|
99
|
+
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
|
|
100
|
+
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Application-Specific Rules
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# Web server with database backend
|
|
107
|
+
# Allow app servers to reach database (port 5432)
|
|
108
|
+
iptables -A INPUT -p tcp --dport 5432 -s 10.0.1.0/24 -j ACCEPT
|
|
109
|
+
|
|
110
|
+
# Allow monitoring (Prometheus node exporter)
|
|
111
|
+
iptables -A INPUT -p tcp --dport 9100 -s 10.0.200.0/24 -j ACCEPT
|
|
112
|
+
|
|
113
|
+
# DNS resolution
|
|
114
|
+
iptables -A INPUT -p udp --sport 53 -j ACCEPT
|
|
115
|
+
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
|
|
116
|
+
|
|
117
|
+
# NTP
|
|
118
|
+
iptables -A INPUT -p udp --sport 123 -j ACCEPT
|
|
119
|
+
|
|
120
|
+
# Block specific IP (incident response)
|
|
121
|
+
iptables -I INPUT 1 -s 203.0.113.50 -j DROP
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## UFW (Uncomplicated Firewall)
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
# Enable UFW with default deny
|
|
128
|
+
ufw default deny incoming
|
|
129
|
+
ufw default allow outgoing
|
|
130
|
+
ufw enable
|
|
131
|
+
|
|
132
|
+
# Allow SSH from management network
|
|
133
|
+
ufw allow from 10.0.100.0/24 to any port 22 proto tcp
|
|
134
|
+
|
|
135
|
+
# Allow HTTP/HTTPS
|
|
136
|
+
ufw allow 80/tcp
|
|
137
|
+
ufw allow 443/tcp
|
|
138
|
+
|
|
139
|
+
# Allow specific application profile
|
|
140
|
+
ufw allow 'Nginx Full'
|
|
141
|
+
|
|
142
|
+
# Rate limit SSH (max 6 connections in 30 seconds)
|
|
143
|
+
ufw limit ssh
|
|
144
|
+
|
|
145
|
+
# Allow port range
|
|
146
|
+
ufw allow 8000:8080/tcp
|
|
147
|
+
|
|
148
|
+
# Deny specific IP
|
|
149
|
+
ufw deny from 203.0.113.50
|
|
150
|
+
|
|
151
|
+
# Check status
|
|
152
|
+
ufw status verbose
|
|
153
|
+
ufw status numbered
|
|
154
|
+
|
|
155
|
+
# Delete a rule by number
|
|
156
|
+
ufw delete 3
|
|
157
|
+
|
|
158
|
+
# Application profiles
|
|
159
|
+
ufw app list
|
|
160
|
+
ufw app info 'Nginx Full'
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## nftables
|
|
164
|
+
|
|
165
|
+
### Complete Server Configuration
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
#!/usr/sbin/nft -f
|
|
169
|
+
flush ruleset
|
|
170
|
+
|
|
171
|
+
# Define variables
|
|
172
|
+
define LAN = 10.0.0.0/16
|
|
173
|
+
define MGMT = 10.0.100.0/24
|
|
174
|
+
define MONITOR = 10.0.200.0/24
|
|
175
|
+
|
|
176
|
+
table inet filter {
|
|
177
|
+
# Rate limiting set
|
|
178
|
+
set rate_limit {
|
|
179
|
+
type ipv4_addr
|
|
180
|
+
flags dynamic,timeout
|
|
181
|
+
timeout 1m
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
chain input {
|
|
185
|
+
type filter hook input priority 0; policy drop;
|
|
186
|
+
|
|
187
|
+
# Connection tracking
|
|
188
|
+
ct state established,related accept
|
|
189
|
+
ct state invalid drop
|
|
190
|
+
|
|
191
|
+
# Loopback
|
|
192
|
+
iif "lo" accept
|
|
193
|
+
|
|
194
|
+
# ICMP and ICMPv6
|
|
195
|
+
ip protocol icmp icmp type { echo-request, destination-unreachable, time-exceeded } limit rate 10/second accept
|
|
196
|
+
ip6 nexthdr icmpv6 icmpv6 type { echo-request, nd-neighbor-solicit, nd-router-advert } accept
|
|
197
|
+
|
|
198
|
+
# SSH from management only
|
|
199
|
+
tcp dport 22 ip saddr $MGMT accept
|
|
200
|
+
|
|
201
|
+
# HTTP/HTTPS from anywhere
|
|
202
|
+
tcp dport { 80, 443 } accept
|
|
203
|
+
|
|
204
|
+
# Prometheus metrics from monitoring subnet
|
|
205
|
+
tcp dport 9100 ip saddr $MONITOR accept
|
|
206
|
+
|
|
207
|
+
# Rate limit new connections
|
|
208
|
+
tcp flags syn limit rate over 25/second burst 50 packets drop
|
|
209
|
+
|
|
210
|
+
# Log dropped traffic
|
|
211
|
+
log prefix "nft-drop: " level warn limit rate 5/minute
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
chain forward {
|
|
215
|
+
type filter hook forward priority 0; policy drop;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
chain output {
|
|
219
|
+
type filter hook output priority 0; policy accept;
|
|
220
|
+
|
|
221
|
+
# Optional: restrict outbound to known destinations
|
|
222
|
+
# tcp dport { 80, 443, 53 } accept
|
|
223
|
+
# udp dport { 53, 123 } accept
|
|
224
|
+
# ct state established,related accept
|
|
225
|
+
# drop
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
# NAT table for port forwarding
|
|
230
|
+
table ip nat {
|
|
231
|
+
chain prerouting {
|
|
232
|
+
type nat hook prerouting priority -100;
|
|
233
|
+
# Forward port 8080 to internal app server
|
|
234
|
+
tcp dport 8080 dnat to 10.0.1.10:8080
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
chain postrouting {
|
|
238
|
+
type nat hook postrouting priority 100;
|
|
239
|
+
oifname "eth0" masquerade
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### nftables Management Commands
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
# Load configuration
|
|
248
|
+
nft -f /etc/nftables.conf
|
|
249
|
+
|
|
250
|
+
# List all rules
|
|
251
|
+
nft list ruleset
|
|
252
|
+
|
|
253
|
+
# List specific table
|
|
254
|
+
nft list table inet filter
|
|
255
|
+
|
|
256
|
+
# Add a rule dynamically
|
|
257
|
+
nft add rule inet filter input tcp dport 8443 accept
|
|
258
|
+
|
|
259
|
+
# Insert rule at position
|
|
260
|
+
nft insert rule inet filter input position 5 ip saddr 10.0.50.0/24 tcp dport 3306 accept
|
|
261
|
+
|
|
262
|
+
# Delete a rule by handle
|
|
263
|
+
nft -a list chain inet filter input # show handles
|
|
264
|
+
nft delete rule inet filter input handle 15
|
|
265
|
+
|
|
266
|
+
# Monitor in real time
|
|
267
|
+
nft monitor
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
## AWS Security Groups
|
|
271
|
+
|
|
272
|
+
### Terraform Configuration
|
|
273
|
+
|
|
274
|
+
```hcl
|
|
275
|
+
# Web tier security group
|
|
276
|
+
resource "aws_security_group" "web" {
|
|
277
|
+
name_prefix = "web-sg-"
|
|
278
|
+
vpc_id = aws_vpc.main.id
|
|
279
|
+
description = "Security group for web servers"
|
|
280
|
+
|
|
281
|
+
ingress {
|
|
282
|
+
description = "HTTPS from internet"
|
|
283
|
+
from_port = 443
|
|
284
|
+
to_port = 443
|
|
285
|
+
protocol = "tcp"
|
|
286
|
+
cidr_blocks = ["0.0.0.0/0"]
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
ingress {
|
|
290
|
+
description = "HTTP redirect"
|
|
291
|
+
from_port = 80
|
|
292
|
+
to_port = 80
|
|
293
|
+
protocol = "tcp"
|
|
294
|
+
cidr_blocks = ["0.0.0.0/0"]
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
egress {
|
|
298
|
+
description = "All outbound"
|
|
299
|
+
from_port = 0
|
|
300
|
+
to_port = 0
|
|
301
|
+
protocol = "-1"
|
|
302
|
+
cidr_blocks = ["0.0.0.0/0"]
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
tags = {
|
|
306
|
+
Name = "web-sg"
|
|
307
|
+
Environment = "production"
|
|
308
|
+
ManagedBy = "terraform"
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
# App tier - only accepts traffic from web tier
|
|
313
|
+
resource "aws_security_group" "app" {
|
|
314
|
+
name_prefix = "app-sg-"
|
|
315
|
+
vpc_id = aws_vpc.main.id
|
|
316
|
+
description = "Security group for application servers"
|
|
317
|
+
|
|
318
|
+
ingress {
|
|
319
|
+
description = "HTTP from web tier"
|
|
320
|
+
from_port = 8080
|
|
321
|
+
to_port = 8080
|
|
322
|
+
protocol = "tcp"
|
|
323
|
+
security_groups = [aws_security_group.web.id]
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
egress {
|
|
327
|
+
from_port = 0
|
|
328
|
+
to_port = 0
|
|
329
|
+
protocol = "-1"
|
|
330
|
+
cidr_blocks = ["0.0.0.0/0"]
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
# Database tier - only accepts from app tier
|
|
335
|
+
resource "aws_security_group" "db" {
|
|
336
|
+
name_prefix = "db-sg-"
|
|
337
|
+
vpc_id = aws_vpc.main.id
|
|
338
|
+
description = "Security group for database servers"
|
|
339
|
+
|
|
340
|
+
ingress {
|
|
341
|
+
description = "PostgreSQL from app tier"
|
|
342
|
+
from_port = 5432
|
|
343
|
+
to_port = 5432
|
|
344
|
+
protocol = "tcp"
|
|
345
|
+
security_groups = [aws_security_group.app.id]
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
egress {
|
|
349
|
+
from_port = 0
|
|
350
|
+
to_port = 0
|
|
351
|
+
protocol = "-1"
|
|
352
|
+
cidr_blocks = ["0.0.0.0/0"]
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
### AWS CLI Commands
|
|
358
|
+
|
|
359
|
+
```bash
|
|
360
|
+
# Create security group
|
|
361
|
+
aws ec2 create-security-group \
|
|
362
|
+
--group-name web-sg \
|
|
363
|
+
--description "Web server SG" \
|
|
364
|
+
--vpc-id vpc-0abc123
|
|
365
|
+
|
|
366
|
+
# Add inbound rule
|
|
367
|
+
aws ec2 authorize-security-group-ingress \
|
|
368
|
+
--group-id sg-0abc123 \
|
|
369
|
+
--protocol tcp --port 443 \
|
|
370
|
+
--cidr 0.0.0.0/0
|
|
371
|
+
|
|
372
|
+
# Add rule referencing another security group
|
|
373
|
+
aws ec2 authorize-security-group-ingress \
|
|
374
|
+
--group-id sg-0db456 \
|
|
375
|
+
--protocol tcp --port 5432 \
|
|
376
|
+
--source-group sg-0app789
|
|
377
|
+
|
|
378
|
+
# Remove a rule
|
|
379
|
+
aws ec2 revoke-security-group-ingress \
|
|
380
|
+
--group-id sg-0abc123 \
|
|
381
|
+
--protocol tcp --port 22 \
|
|
382
|
+
--cidr 0.0.0.0/0
|
|
383
|
+
|
|
384
|
+
# Describe rules
|
|
385
|
+
aws ec2 describe-security-group-rules \
|
|
386
|
+
--filters Name=group-id,Values=sg-0abc123
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
## Firewall Rule Audit Script
|
|
390
|
+
|
|
391
|
+
```bash
|
|
392
|
+
#!/bin/bash
|
|
393
|
+
# firewall-audit.sh - Audit current firewall rules for common issues
|
|
394
|
+
|
|
395
|
+
echo "=== Firewall Audit Report ==="
|
|
396
|
+
echo "Date: $(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
397
|
+
echo "Host: $(hostname)"
|
|
398
|
+
echo ""
|
|
399
|
+
|
|
400
|
+
# Check if firewall is active
|
|
401
|
+
if command -v nft &>/dev/null; then
|
|
402
|
+
echo "--- nftables rules ---"
|
|
403
|
+
nft list ruleset
|
|
404
|
+
elif command -v iptables &>/dev/null; then
|
|
405
|
+
echo "--- iptables rules ---"
|
|
406
|
+
iptables -L -n -v --line-numbers
|
|
407
|
+
fi
|
|
408
|
+
|
|
409
|
+
echo ""
|
|
410
|
+
echo "--- Open ports ---"
|
|
411
|
+
ss -tlnp
|
|
412
|
+
|
|
413
|
+
echo ""
|
|
414
|
+
echo "--- Potential issues ---"
|
|
415
|
+
|
|
416
|
+
# Check for overly permissive rules
|
|
417
|
+
if iptables -L INPUT -n 2>/dev/null | grep -q "0.0.0.0/0.*dpt:22"; then
|
|
418
|
+
echo "WARNING: SSH (port 22) open to 0.0.0.0/0 - restrict to management subnet"
|
|
419
|
+
fi
|
|
420
|
+
|
|
421
|
+
if iptables -L INPUT -n 2>/dev/null | grep -q "0.0.0.0/0.*dpt:3306"; then
|
|
422
|
+
echo "CRITICAL: MySQL (port 3306) open to 0.0.0.0/0"
|
|
423
|
+
fi
|
|
424
|
+
|
|
425
|
+
if iptables -L INPUT -n 2>/dev/null | grep -q "0.0.0.0/0.*dpt:5432"; then
|
|
426
|
+
echo "CRITICAL: PostgreSQL (port 5432) open to 0.0.0.0/0"
|
|
427
|
+
fi
|
|
428
|
+
|
|
429
|
+
# Check default policies
|
|
430
|
+
DEFAULT_INPUT=$(iptables -L INPUT 2>/dev/null | head -1 | grep -oP 'policy \K\w+')
|
|
431
|
+
if [ "$DEFAULT_INPUT" = "ACCEPT" ]; then
|
|
432
|
+
echo "CRITICAL: Default INPUT policy is ACCEPT - should be DROP"
|
|
433
|
+
fi
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
## Troubleshooting
|
|
437
|
+
|
|
438
|
+
| Problem | Cause | Solution |
|
|
439
|
+
|---------|-------|----------|
|
|
440
|
+
| Locked out of SSH | Rule order or default deny applied before allow | Use out-of-band console access; add SSH allow rule first |
|
|
441
|
+
| Rules lost after reboot | Rules not persisted | Install `iptables-persistent` or save to `/etc/nftables.conf` |
|
|
442
|
+
| Docker bypasses iptables | Docker modifies iptables FORWARD chain | Use `DOCKER-USER` chain for custom rules; set `"iptables": false` in daemon.json |
|
|
443
|
+
| nftables and iptables conflict | Both running simultaneously | Migrate fully to nftables; remove iptables packages |
|
|
444
|
+
| AWS SG rule limit reached | Max 60 inbound rules per SG | Use prefix lists or consolidate CIDR ranges |
|
|
445
|
+
| Legitimate traffic blocked | Rule ordering issue | Place more specific allow rules before general deny rules |
|
|
446
|
+
|
|
447
|
+
## Best Practices
|
|
448
|
+
|
|
449
|
+
- Default deny policy on all chains
|
|
450
|
+
- Minimal rule sets - only open what is required
|
|
451
|
+
- Regular rule audits (monthly minimum)
|
|
452
|
+
- Log denied traffic for security monitoring
|
|
453
|
+
- Document all rules with descriptions and ticket references
|
|
454
|
+
- Use connection tracking for stateful inspection
|
|
455
|
+
- Rate limit inbound connections to prevent DDoS
|
|
456
|
+
- Separate management traffic from application traffic
|
|
457
|
+
- Test rule changes in staging before production
|
|
458
|
+
- Keep persistent backups of working rule sets
|
|
459
|
+
|
|
460
|
+
## Related Skills
|
|
461
|
+
|
|
462
|
+
- linux-hardening (`linux-hardening`) - System security
|
|
463
|
+
- aws-vpc (`aws-vpc`) - AWS networking
|
|
464
|
+
- zero-trust (`zero-trust`) - Identity-based access patterns
|
|
465
|
+
- vpn-setup (`vpn-setup`) - Secure tunnel configuration
|
|
466
|
+
|
|
467
|
+
## Limitations
|
|
468
|
+
|
|
469
|
+
- Apply guidance only within authorized scope; test destructive steps in non-production first.
|
|
470
|
+
- Docs-only import: upstream scripts and templates not bundled.
|
|
471
|
+
|
|
472
|
+
### Example
|
|
473
|
+
|
|
474
|
+
```bash
|
|
475
|
+
# Read-only first: inventory before any active step.
|
|
476
|
+
which <tool> && <tool> --help | head -n 20
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
> 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.
|