Firewall siyosati va ACL
1) Maqsad va prinsiplar
Firewall/ACL - maʼlumotlar tekisligini nazorat qilish: kim, qayerda, qachon va qanday protokol boʻyicha yuradi. Asosiy tamoyillar:- Least privilege: faqat kerakli narsalarga ruxsat berish (aniq allow, implicit deny).
- Segmentation: muhit izolatsiyasi (prod/stage/dev), tenantlar, kritik konturlar (PCI/KMS/DB).
- Egress-control: chiquvchi trafik FQDN/IP ro’yxatlari va shaxsiy endpoint’lar bilan cheklangan.
- Identity-aware (L7): qarorlar faqat IP orqali emas, balki autentifikatsiyalangan mohiyat (SPIFFE/OIDC) bo’yicha qabul qilinadi.
- Infrastructure as Code: kod sifatida qoidalar, review/CI/CD, oʻzgarishlar auditi.
2) Taksonomiya: qayerda va nimani filtrlaymiz
2. 1 Qatlamlar va holat
L3/L4 stateless: klassik ACL (CIDR, protokol, port).
L3/L4 stateful: security groups/NSG.
L7-aware: proxy/WAF/mesh RBAC (usullar, usullar, JWT-claims, SNI).
Inline vs out-of-band: inline-faervol trafikni yo’naltiradi; out-of-band - tahlil/alert.
2. 2 Konturlar
Perimeter: edge/WAF/Anti-DDoS.
Core: transit hub / меж-VPC/VNet.
Workload: SG/NSG на VM/ENI/POD.
App-level: Envoy/Istio/NGINX policy, service-to-service mTLS.
3) Bulutli modellar
AWS
Security Group (SG): stateful на ENI/instance/LB.
Network ACL (NACL): quyi tarmoqdagi stateless, qoidalar tartibi, ikki yo’nalishli yozuvlar.
AWS Network Firewall/GWLB: L7 inspeksiyasi/IDS.
Tavsiya: «SG - asosiy nazorat, NACL - yirik donali to’siq/deny-list».
Azure
NSG (stateful), ASG (taglar boʻyicha dastur guruhlari), L7/IDS uchun Azure FW, Private Endpoints.
Tavsiya: NSG + NIC, ASG orqali xizmat teglari.
GCP
VPC Firewall Rules (stateful), Hierarchical FW (tashkiliy/jildli), Cloud Armor (L7), Private Service Connect.
Tavsiya: org-level guardrails + loyihaviy allow.
4) Qoidalar dizayni: patternlar
4. 1 Bazaviy toʻplamlar
Deny all egress → FQDN/IP orqali: paketli repozitoriyalarga, artefakt-registrlarga, tashqi APIlarga (shaxsiy/qat’iy chiqishlar orqali) ruxsat beramiz.
East-West minimal: xizmatlar faqat zarur qaramliklar bilan muloqot qiladi.
Admin kirish: bastion/JIT orqali MFA bilan, sessiyalarni yozib olish.
4. 2 Teglar va guruhlar
IP’env’,’service’,’tier’,’tenant’,’pci = true’oʻrniga labels/tags’dan foydalaning.
Tegni oʻzgartirishda siyosatni yangilash - IP-toʻrlarni qoʻlda tahrirlamasdan.
4. 3 Hayot sikli
Propose → Evaluate (staging) → Enforce (prod), dry-run/urish loglari bilan.
Eskirish: Har bir qoida uchun TTL/owner, foydalanilmayotganlarni avtoproverlash.
5) Kubernetes va servis-mesh
5. 1 NetworkPolicy (L3/L4)
Minimal - «kerakli narsadan tashqari hamma narsani taqiqlash».
yaml apiVersion: networking. k8s. io/v1 kind: NetworkPolicy metadata: { name: deny-all, namespace: core }
spec:
podSelector: {}
policyTypes: ["Ingress","Egress"]
kind: NetworkPolicy metadata: { name: api-egress }
spec:
podSelector: { matchLabels: { app: api } }
egress:
- to:
- namespaceSelector: { matchLabels: { ns: db } }
ports: [{ protocol: TCP, port: 5432 }]
- to:
- ipBlock: { cidr: 10. 100. 0. 0/16 } # Private endpoints ports: [{ protocol: TCP, port: 443 }]
5. 2 L7 RBAC в mesh (Istio/Envoy)
mTLS + JWT/claims/scopes/paths.
yaml apiVersion: security. istio. io/v1 kind: AuthorizationPolicy metadata: { name: api-rbac }
spec:
selector: { matchLabels: { app: api } }
rules:
- from:
- source:
principals: ["spiffe://svc. payments"]
to:
- operation: { methods: ["POST"], paths: ["/v1/payouts"] }
when:
- key: request. headers[x-tenant]
values: ["eu-1","eu-2"]
6) Egress-nazorat va xususiy perimetrlar
PrivateLink/Private Service Connect’ni PaaS/registrlar/saqlash uchun afzal koʻring.
Qolgan egress allowlist FQDN va qat’iy IP bilan NAT/proksi orqali (uchinchi tomon allowlist uchun).
Pod/VM to’g’ridan-to’g’ri Internetga chiqishini blokirovka qiling; istisnolar faqat egress-shlyuz orqali amalga oshiriladi.
7) DNS va SNI-ongli qoidalar
Split-horizon: ichki zonalar tashqaridan chiqmaydi.
FW/Proxy FQDN/SNI’ni chiquvchi HTTPS (SNI allow) uchun qoʻllab-quvvatlaydi.
Yetkazib beruvchilarning aniq domenlariga pinning oʻrnating; IP’dagi o’zgarishlarni kuzatib boring.
8) Logi, audit, kuzatuv
Flow logs (VPC/VNet/NSG/NACL) ni yoqing va SIEMga yuboring.
’trace _ id’ ilovalari bilan bogʻlaning.
Metrikasi: hit/miss qoidalari, top-talkers, drop-rates, assimetriya trafigi, «oqish egress».
Hisobotlar: «foydalanilmayotgan qoidalar», «eng keng ruxsatnomalar».
9) Kod sifatida boshqarish (IaC) va tekshirish
Terraform/CloudFormation + modulli shablon siyosati.
Policy as Code (OPA/Gatekeeper/Conftest): taqiqlash’0. 0. 0. 0/0’, talab’description/owner/ttl’, aralashtirishni taqiqlash prod/dev.
CI: lint, statistik tahlil, erishish simulyatorlari (reachability analyzer), reja-koʻrish, mandat peer review.
10) Erishish va tartibsizlikni sinovdan o’tkazish
Turli kichik tarmoqlardan/AZ/mintaqalardan synthetic-namunalar: TCP/443, DB/brokerlarning o’ziga xos portlari.
DR yoʻllarini tekshirish uchun vaqtinchalik deny: bogʻliqlikni oʻchirish → retries/circuit/fallback ishlashi kerak.
MTU/MSS: perimeters (ayniqsa IPsec/NAT-T) da parchalanish yoʻqligiga ishonch hosil qiling.
11) Unumdorlik va ishonchlilik
Markazlashtirilgan tor joydan qoching: inline-FW (GWLB/scale sets) ni gorizontal kattalashtiring.
ECMP/AS-path/BGP xablar oʻrtasida taqsimlash uchun.
TLS-inspeksiya profillari: nuqtali (qimmat), kalitlar izlarini alohida saqlash, komplayensga rioya qilish.
12) Konfiguratsiyalar namunalari (qisqartilgan referensiyalar)
12. 1 AWS SG: API → Postgres + S3 PrivateLink
hcl resource "aws_security_group" "api" {
name = "sg-api"
description = "Ingress from ALB, egress to DB and PrivateLink"
vpc_id = var. vpc_id
ingress { from_port=8080 to_port=8080 protocol="tcp" security_groups=[aws_security_group. alb. id] }
egress { from_port=5432 to_port=5432 protocol="tcp" security_groups=[aws_security_group. db. id] }
egress { from_port=443 to_port=443 protocol="tcp" prefix_list_ids=[aws_vpc_endpoint. s3. prefix_list_id] }
tags = { owner="team-api", env=var. env, ttl="2026-01-01" }
}
12. 2 Azure NSG: deny-by-default + allow bastion
bash az network nsg rule create -g rg -n allow-bastion --nsg-name nsg-app \
--priority 100 --direction Inbound --access Allow --protocol Tcp \
--source-address-prefixes 10. 0. 0. 10 --source-port-ranges "" \
--destination-port-ranges 22 --destination-address-prefixes 10. 1. 0. 0/16
12. 3 GCP hierarchical firewall: org-guardrail
yaml direction: INGRESS priority: 1000 action: deny enableLogging: true match:
layer4Configs: [{ ipProtocol: "all" }]
srcIpRanges: ["0. 0. 0. 0/0"]
targetResources: ["organizations/123456"]
12. 4 Envoy RBAC (L7 allow)
yaml
- name: envoy. filters. http. rbac typed_config:
rules:
action: ALLOW policies:
payments-post:
permissions: [{ url_path: { path: "/v1/payouts", ignore_case: true } }]
principals: [{ authenticated: { principal_name: { exact: "spiffe://svc. payments" } } }]
13) Antipatternlar
`0. 0. 0. 0/0’ingress/egress «vaqtincha» → abadiy qoladi.
«Snejinki» (konsolda qo’lda tuzatishlar) kod va taftishsiz.
prod/stage/dev uchun umumiy SG/NSG; tanqidiy va tanqidiy bo’lmagan kichik tarmoqlarni aralashtirish.
Egress-nazorat va shaxsiy endpoint’larning yo’qligi → kalitlar/sirlarning chiqib ketishi.
DNS/SNI eʼtiborsiz qoldirildi: IP yetkazib beruvchiga ruxsat berildi - ertaga u oʻzgardi va butun diapazon ochildi.
flow logs va runbook’lar yoʻq → forensika mumkin emas.
14) iGaming/Moliya xususiyatlari (PCI/regulyator)
Alohida VRF/segmentdagi PCI CDE, Internet yo’q; PSP/loglarga kirish - private connectivity/proxy orqali mTLS va HMAC bilan.
Data residency: PII/to’lov hodisalari - mamlakat/mintaqa ichida; mintaqalararo - faqat agregatlar/anonim.
KMS/Vault/HSM: alohida kichik tarmoqlar/SG, faqat mTLS mijozlar qisqa sertifikatlarga ega.
WORM-audit: oʻzgarmas ombordagi FW/flow loglari (Object Lock), tartibga solish minimumi ≥ retenshn.
Hamkorlar (PSP/KYC): FQDN allowlist, statik egress IP, provayderlar boʻyicha SLA monitoringi.
15) Prod-tayyorlik chek-varaqasi
- Yagona segmentatsiya modeli (hub-and-spoke, VRF), kesishmasdan CIDR.
- Deny-by-default на egress; PaaS/saqlash uchun shaxsiy endpoints.
- SG/NSG stateful workload uchun, NACL/route-filters - kichik tarmoqlarda/xablarda.
- K8s: NetworkPolicy «deny-all», mesh mTLS + L7 RBAC.
- IP oʻrniga teglar/guruhlar; Har bir qoidada owner/TTL/description mavjud.
- IaC + Policy-as-Code; erishish simulyatsiyasi bilan CI; majburiy peer review.
- Flow logs kiritilgan; dashbordlar top-talkers, drop-rates; «egress sizib chiqishi» alertlari.
- Ma’muriy kirish uchun Bastion/JIT; MFA; sessiyalarni jurnalga olish.
- Runbook’i: qoidani qanday qoʻshish/olib tashlash, hodisada qanday ishlash kerak; «o’lik» qoidalarni muntazam ravishda taftish qilish.
- PCI/moliya uchun: izolyatsiya CDE, WORM-audit, PSP/KYC uchun FQDN-allow, statik egress IP.
16) TL; DR
SG/NSG stateful, NACL/route-filters, mesh/proksida L7 RBAC, perimetrda WAF/edge qatlamlari boʻyicha himoyani quring. Andoza - deny-by-default, egress faqat boshqariladigan nuqtalar yoki private endpoints orqali. Qoidalarni kod sifatida tasvirlang, ularni erishish siyosati va simulyatorlari bilan tekshiring, flow-loglarni yig’ing. iGaming/moliya uchun PSP/KYC ga PCI segmentatsiyasi, WORM auditi va qatʼiy FQDN-allow qoʻshing.