20_check_host_ports_firewall.yml - Kullanım Kılavuzu
Amaç
Her host’ta:
- Hangi portlar dinleniyor (
ss -tulnp) - Ne şekilde açık — tüm arayüzler / sadece localhost / belirli IP
- Hangi uygulama dinliyor (process adı + pid)
- Firewall — UFW, firewalld (varsa),
iptables+nftözeti; dinlenen portlara değinen kurallar
Salt-okunur; kural ekleyip silmez. Her host kendi diskindeki / kendi kernel’indeki durumu raporlar (HOST başlığı).
Script: playbooks/files/host_ports_firewall_check.py
“Nasıl açık?” ne demek?
| BIND | Anlam |
|---|---|
TUM_ARAYUZLER | 0.0.0.0 / :: — dışarıdan erişim mümkün olabilir (firewall izin verirse) |
SADECE_LOCALHOST | Yalnızca local process’ler erişir |
OZEL_IP / BELIRLI_IP | Belirli arayüz IP’sinde dinliyor |
Dinlemek ≠ firewall’ın dışarıya açması. Raporun firewall bölümündeki INPUT policy / UFW / nft kurallarına bak.
02 ile farkı
| Playbook | Kapsam |
|---|---|
| 02 | Kubernetes NodePort servisleri |
| 20 | Host OS dinleyen socket’ler + iptables/nft/UFW |
Gereksinimler
hosts: allbecome: true(süreç adları + iptables/nft için)python3,ss(iproute2)
Çalıştırma
ansible-playbook -i inventories/cagatayuresincom/hosts.ini playbooks/20_check_host_ports_firewall.yml
ansible-playbook -i inventories/musteri_a/hosts.ini playbooks/20_check_host_ports_firewall.yml --limit workers
Çıktı nasıl okunur?
- Dinleyen portlar tablosu → port + bind + uygulama
- UFW / firewalld (kuruluysa)
- iptables/nft → policy, dinlenen portlara ait
dpt:/dportsatırları, NAT özeti - Risk özeti → tüm arayüzde dinleyen servis listesi
K8s node’unda kube-proxy/CNI kuralları çok uzun olabilir; rapor ilgili satırları süzerek kısaltır.
Notlar
- Process alanı
-ise izin/root eksik demektir (playbookbecomekullanır). - Container içi portlar host’ta
*:veya CNI IP’sinde görünebilir; uygulama adıcontainerd/docker-proxyolabilir.