Merhaba arkadaşlar, ben Cem Zengin.

Kurumsal ağlarda en sık gerçekleştirdiğimiz işlemlerden biri, dış dünyadan (WAN) gelen belirli servis taleplerini iç ağımızdaki (LAN / DMZ) sunuculara güvenli bir şekilde yönlendirmektir. FortiGate üzerinde bu işleme Virtual IP (VIP) adını veriyoruz. Bu yazıda hem Web GUI hem de CLI kullanarak Virtual IP tanımlamayı ve bunu IPv4 Policy üzerinde nasıl uygulayacağımızı adım adım inceleyeceğiz.


1. Virtual IP (VIP) Nedir?

Virtual IP (VIP), FortiGate’in dış bacağındaki (WAN) bir IP adresine (veya doğrudan WAN IP’sine) gelen trafiği, iç ağdaki hedef makinenin yerel IP adresine eşlemesidir (DNAT - Destination NAT). Güvenlik sebebiyle genellikle tüm portları yönlendirmek yerine, sadece ilgili servisin portunu yönlendiririz (Port Forwarding).


2. Web Arayüzü (GUI) ile VIP Yapılandırması

İç ağımızdaki bir web sunucusunun (IP: 192.168.10.100) 80 ve 443 portlarını dış dünyaya açmak istediğimizi varsayalım.

  1. Policy & Objects > Virtual IPs sayfasına gidin.
  2. Create New > Virtual IP seçeneğine tıklayın.
  3. Açılan pencerede parametreleri şu şekilde yapılandırın:
    • Name: Web-Sunucusu-VIP (Anlaşılır bir isim verin)
    • Interface: any veya wan1 (Dış bağlantının geldiği portu seçin)
    • External IP Range: 85.90.95.10 (Size tahsis edilen Public IP. Eğer tek IP varsa ve WAN IP’sini kullanacaksanız 0.0.0.0 bırakabilirsiniz)
    • Mapped IP Address/Range: 192.168.10.100 (İç ağdaki web sunucusunun IP adresi)
    • Port Forwarding: Bu seçeneği aktif edin (Kritik adım!).
    • Protocol: TCP
    • External Service Port: 443 (Dışarıdan gelinecek port)
    • Map to Port: 443 (İçerideki sunucunun dinlediği port)
  4. OK butonuna tıklayarak VIP objesini kaydedin.
  5. Aynı işlemi port 80 için de tekrarlayın (Örn: Web-Sunucusu-HTTP-VIP olarak).

3. CLI (Command Line) ile VIP Yapılandırması

Arayüzle uğraşmak istemeyenler veya toplu tanımlama yapacaklar için CLI komutları şu şekildedir:

config firewall vip
    edit "Web-Sunucusu-HTTPS-VIP"
        set extip 85.90.95.10
        set extintf "any"
        set mappedip "192.168.10.100"
        set portforward enable
        set protocol tcp
        set extport 443
        set mappedport 443
    next
    edit "Web-Sunucusu-HTTP-VIP"
        set extip 85.90.95.10
        set extintf "any"
        set mappedip "192.168.10.100"
        set portforward enable
        set protocol tcp
        set extport 80
        set mappedport 80
    next
end

4. VIP Objelerini Group Altında Birleştirmek (VIP Group)

Oluşturduğumuz iki ayrı VIP objesini tek bir kuralda kolayca yönetebilmek için VIP Group oluşturmak en pratik yöntemdir:

config firewall vipgrp
    edit "Web-Sunucusu-VIP-Grubu"
        set interface "any"
        set member "Web-Sunucusu-HTTPS-VIP" "Web-Sunucusu-HTTP-VIP"
    next
end

5. Güvenlik Duvarı Politikası (IPv4 Policy) Tanımlama

Virtual IP oluşturmak tek başına yeterli değildir; dışarıdan gelen trafiğe izin veren bir kural (Policy) yazmamız şarttır.

GUI Adımları:

  1. Policy & Objects > Firewall Policy sayfasına gidin.
  2. Create New seçeneğine tıklayın.
  3. Parametreleri şu şekilde ayarlayın:
    • Name: WAN-to-WebSunucu
    • Incoming Interface: wan1 (Dış hat portunuz)
    • Outgoing Interface: port2 (Sunucunun bağlı olduğu iç ağ bacağı)
    • Source: all (Eğer sadece belirli IP’lerin erişmesini istiyorsanız hedef IP blogunu seçin)
    • Destination: Web-Sunucusu-VIP-Grubu (Oluşturduğunuz VIP grubunu veya VIP objelerini seçin)
    • Service: HTTP ve HTTPS (Trafiği sınırlandırmak için ilgili servisleri ekleyin)
    • Action: ACCEPT
    • NAT: Devre Dışı Bırakın (Kapatın). VIP yönlendirmelerinde “Destination NAT” otomatik yapıldığı için bu kural üzerindeki NAT (Source NAT) seçeneği kapatılmalıdır. Aksi takdirde sunucu, gelen isteklerin gerçek IP adresini göremez, tüm istekler FortiGate IP’sinden geliyormuş gibi görünür.
  4. OK diyerek kuralı kaydedin.

CLI Adımları:

config firewall policy
    edit 15
        set name "WAN-to-WebSunucu"
        set srcintf "wan1"
        set dstintf "port2"
        set action accept
        set srcaddr "all"
        set dstaddr "Web-Sunucusu-VIP-Grubu"
        set schedule "always"
        set service "HTTP" "HTTPS"
        set utm-status enable
        set ssl-ssh-profile "certificate-inspection"
        set ips-sensor "default"
        set logtraffic all
    next
end

6. Sorun Giderme (Troubleshooting) Notları

Eğer yönlendirme çalışmıyorsa aşağıdaki adımları kontrol edin:

  • NAT Kontrolü: Kural üzerinde NAT seçeneğinin kapalı olduğundan emin olun.
  • Gateway (Ağ Geçidi): Hedef web sunucusunun default gateway adresinin FortiGate’in iç IP’si olduğunu teyit edin. Eğer sunucu internete farklı bir cihazdan çıkıyorsa, gelen paketler geri dönemez (Asymmetric Routing).
  • Canlı Paket Takibi (Sniffer): FortiGate CLI üzerinden trafiğin gelip gitmediğini izlemek için şu komutu çalıştırın:
    diagnose sniffer packet any "host 85.90.95.10 and port 443" 4
    

Bir sonraki makalede görüşmek üzere! Sorularınızı yorumlarda veya iletişim formunda belirtebilirsiniz.