Runbook: Pravila požarnega zidu

Trajanje: ~10 minut
Vloga: Omrežni administrator, varnostni administrator
Predpogoj: Administratorske pravice (Root/Admin)

Nadzor dostopa za Data Gateway na omrežni ravni.


Potek dela

flowchart TD A[Začetek] --> B[Identificiraj porte] B --> C{Platforma?} C -->|Windows| D[Windows Firewall] C -->|Linux| E[iptables/firewalld] C -->|Oblak| F[Security Groups] D --> G[Ustvari pravilo] E --> G F --> G G --> H[Testiraj] H --> I{Dostop OK?} I -->|Da| J[Dokumentiraj] I -->|Ne| K[Prilagodi pravilo] style J fill:#e8f5e9 style K fill:#ffebee


Potrebni porti

Port Protokol Smer Opis
—————–———-————–
443 TCP Vhodni HTTPS (produkcija)
5000 TCP Vhodni HTTP (samo razvoj)
9090 TCP Izhodni Prometheus (opcijsko)
1433 TCP Izhodni SQL Server
5432 TCP Izhodni PostgreSQL
3306 TCP Izhodni MySQL

1. Windows Firewall

PowerShell (kot administrator):

# Vhodni: Dovoli HTTPS
New-NetFirewallRule -DisplayName "Data Gateway HTTPS" `
    -Direction Inbound -Action Allow -Protocol TCP -LocalPort 443
 
# Vhodni: Samo iz določenih IP-jev
New-NetFirewallRule -DisplayName "Data Gateway HTTPS Restricted" `
    -Direction Inbound -Action Allow -Protocol TCP -LocalPort 443 `
    -RemoteAddress "10.0.0.0/8","192.168.0.0/16"
 
# Izhodni: Dovoli SQL Server
New-NetFirewallRule -DisplayName "Data Gateway to SQL Server" `
    -Direction Outbound -Action Allow -Protocol TCP -RemotePort 1433
 
# Navedi pravila
Get-NetFirewallRule -DisplayName "Data Gateway*" | Format-Table Name, Enabled, Direction, Action
 
# Odstrani pravilo
Remove-NetFirewallRule -DisplayName "Data Gateway HTTPS"

2. Linux: firewalld (RHEL/CentOS)

# Odpri HTTPS port
sudo firewall-cmd --permanent --add-port=443/tcp
 
# Samo iz določenega omrežja
sudo firewall-cmd --permanent --add-rich-rule='
    rule family="ipv4"
    source address="10.0.0.0/8"
    port protocol="tcp" port="443"
    accept'
 
# Uveljavi spremembe
sudo firewall-cmd --reload
 
# Prikaži pravila
sudo firewall-cmd --list-all
 
# Odstrani pravilo
sudo firewall-cmd --permanent --remove-port=443/tcp
sudo firewall-cmd --reload

3. Linux: ufw (Ubuntu/Debian)

# Dovoli HTTPS
sudo ufw allow 443/tcp
 
# Iz določenega omrežja
sudo ufw allow from 10.0.0.0/8 to any port 443 proto tcp
 
# Prikaži stanje
sudo ufw status verbose
 
# Odstrani pravilo
sudo ufw delete allow 443/tcp

4. Linux: iptables (ročno)

# Dovoli HTTPS
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
 
# Samo iz določenega omrežja
sudo iptables -A INPUT -p tcp --dport 443 -s 10.0.0.0/8 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j DROP
 
# Shrani pravila
sudo iptables-save > /etc/iptables/rules.v4
 
# Prikaži pravila
sudo iptables -L -n --line-numbers
 
# Odstrani pravilo (po številki)
sudo iptables -D INPUT 3

5. Oblak: AWS Security Group

# Ustvari Security Group
aws ec2 create-security-group \
    --group-name gateway-sg \
    --description "Data Gateway Security Group" \
    --vpc-id vpc-12345678
 
# HTTPS od vsepovsod
aws ec2 authorize-security-group-ingress \
    --group-id sg-12345678 \
    --protocol tcp \
    --port 443 \
    --cidr 0.0.0.0/0
 
# HTTPS samo iz VPN
aws ec2 authorize-security-group-ingress \
    --group-id sg-12345678 \
    --protocol tcp \
    --port 443 \
    --cidr 10.0.0.0/8

6. Oblak: Azure NSG

# Ustvari NSG
az network nsg create \
    --resource-group rg-gateway \
    --name gateway-nsg
 
# HTTPS-pravilo
az network nsg rule create \
    --resource-group rg-gateway \
    --nsg-name gateway-nsg \
    --name AllowHTTPS \
    --priority 100 \
    --direction Inbound \
    --access Allow \
    --protocol Tcp \
    --destination-port-ranges 443 \
    --source-address-prefixes '10.0.0.0/8'

7. IP-Whitelist v Gateway

Alternativa požarnemu zidu: Filtriranje v aplikaciji.

appsettings.json:

{
  "Security": {
    "AllowedIPs": [
      "10.0.0.0/8",
      "192.168.0.0/16",
      "172.16.0.0/12"
    ]
  }
}

8. Testiranje

# Lokalno
curl https://localhost/health
 
# Iz dovoljenega omrežja
curl https://gateway.example.com/health
 
# Od zunaj (mora biti blokirano)
curl --connect-timeout 5 https://gateway.example.com/health
# Pričakovano: Connection refused ali Timeout

9. Kontrolni seznam

# Točka preverjanja V
———–
1 Port 443 vhodno dovoljen
2 Port 5000 (HTTP) blokiran
3 Samo potrebni IP-ji dovoljeni
4 Izhodno do baze podatkov dovoljeno
5 Testirano od zunaj
6 Pravila dokumentirana

Odpravljanje težav

Težava Vzrok Rešitev
————————–
Connection refused Port ni odprt Dodaj pravilo požarnega zidu
Connection timeout Požarni zid blokira Preveri pravilo/izvorno IP
Dostop od vsepovsod Brez omejitve Omeji izvorne IP-je
Povezava do baze neuspešna Izhodni promet blokiran Dodaj izhodno pravilo

Najboljše prakse

Načelo najmanjših pravic:

  • Odpri samo potrebne porte
  • Dovoli samo potrebne IP-je
  • Blokiraj HTTP (5000) v produkciji
  • Redno revidiraj pravila

Povezani Runbooks


« <- Obnova certifikata | -> Pregled operaterja »


Wolfgang van der Stille @ EMSR DATA d.o.o. - Data Gateway Professional

Zuletzt geändert: dne 29.01.2026 ob 23:39