Merhaba arkadaşlar, ben Cem Zengin.

Son yıllarda güvenlik duvarlarında (özellikle SSL-VPN portları olan TCP 443 veya 10443 üzerinde) keşfedilen kritik uzaktan kod çalıştırma (RCE) ve bellek taşması zafiyetleri, kurumsal ağların dış dünyaya açık en hassas kapısını hedef haline getirdi. Geleneksel SSL-VPN mimarisinde kullanıcı bir kez kimlik doğrulayıp tünele girdiğinde, genellikle tüm alt ağa (Subnet) tam Layer 3 erişim hakkı kazanır. Bu durum, ele geçirilen tek bir istemcinin tüm şirket ağına lateral movement (ağ içi yatay yayılma) yapmasına zemin hazırlar.

Bu tehdit modelini ortadan kaldırmak için sektör hızla Sıfır Güven (Zero Trust Network Access - ZTNA) mimarisine geçmektedir.

Bu makalede; FortiGate NGFW (FortiOS 7.x ve üzeri) ve FortiClient EMS kullanarak ZTNA TCP Forwarding Access Proxy kurulumunu, cihaz sağlık/güvenlik kontrolünü (Posture Check) ve klasik SSL-VPN’i kapatıp ZTNA’e nasıl güvenle geçileceğini adım adım ele alacağız.


1. ZTNA Nedir ve SSL-VPN’den Ne Farkı Vardır?

Özellik Geleneksel SSL-VPN FortiGate ZTNA (Zero Trust)
Ağ Erişimi Kullanıcı iç ağa tam IP düzeyinde (L3) dahil olur. Kullanıcı sadece yetkili olduğu tekil uygulamaya (L4-L7) erişir, ağa dahil olamaz.
Dışa Açık Port VPN portu internete tamamen açıktır ve sürekli taranır. Access Proxy yalnızca sertifikalı ve doğrulanmış istemcilere cevap verir.
Cihaz Doğrulaması Yalnızca Kullanıcı Adı + Şifre (+ 2FA). Kullanıcı + Cihaz Sertifikası + Sağlık Durumu (Posture Check).
Sürekli Doğrulama Bağlantı kurulurken bir defa kontrol edilir. Her istekte anlık olarak cihazın güvenlik durumu doğrulanır.

2. ZTNA Mimarisi ve Ön Gereksinimler

ZTNA uygulamasının kusursuz çalışabilmesi için şu bileşenler kullanılır:

  1. FortiGate NGFW: ZTNA Access Proxy olarak çalışır, gelen istekleri karşılayıp iç ağdaki sunuculara yönlendirir.
  2. FortiClient EMS: İstemcilere otomatik olarak kök sertifika ve benzersiz ZTNA istemci sertifikası dağıtır.
  3. FortiClient Agent: İstemci makinede çalışarak makinenin güvenlik durumunu (Antivirüs aktif mi, Domain üyesi mi, Windows güvenlik yamaları tam mı?) anlık olarak EMS’e ve FortiGate’e bildirir.

3. Adım: FortiGate ile FortiClient EMS Entegrasyonu

FortiGate’in istemcileri tanıması için EMS Fabric bağlantısını tanımlıyoruz:

GUI ile:

Security Fabric ➔ Fabric Connectors ➔ FortiClient EMS ➔ EMS IP adresini ve portunu (varsayılan 8013) girin, sertifikayı doğrulayıp Authorize edin.

CLI ile:

config endpoint-control fctems
    edit "EMS-SRV01"
        set server "192.168.1.30"
        set https-port 8013
        set status enable
    next
end

Bağlantı kurulduktan sonra EMS’ten gelen güvenlik etiketleri (ZTNA Tags) FortiGate’e otomatik senkronize olacaktır.


4. Adım: Cihaz Sağlık Etiketlerinin (ZTNA Posture Tags) Belirlenmesi

Sıfır güven kuralının temeli cihazın durumudur. FortiClient EMS üzerinde kurallar tanımlanır:

  • Tag 1: Corporate-Domain-PC ➔ Cihaz şirket Active Directory domainine (sirket.local) üye ise.
  • Tag 2: Antivirus-Active ➔ İstemcide EDR/Antivirüs servisi çalışır durumda ve imzaları güncel ise.
  • Tag 3: Vulnerable-Device ➔ Kritik güvenlik yaması eksik olan veya zararlı yazılım tespit edilen cihaz.

Bu etiketler dinamik olarak FortiGate nesnesi haline gelir.


5. Adım: ZTNA Sunucusu ve Uygulama Eşlemesi (Server Mapping)

Kullanıcıların erişeceği iç ağ uygulamalarını (örneğin Dahili Muhasebe Web Portalı ve RDP Sunucusu) FortiGate üzerinde Access Proxy olarak tanımlıyoruz.

config firewall access-proxy
    edit "ZTNA-PROXY-WAN"
        set vip "WAN-ZTNA-VIP"
        set client-cert enable
        config api-gateway
            edit 1
                set name "Web-Muhasebe"
                set service http
                config realservers
                    edit 1
                        set ip 10.10.10.20
                        set port 80
                    next
                end
            next
            edit 2
                set name "RDP-Admin-Sunucu"
                set service tcp-forwarding
                config realservers
                    edit 1
                        set ip 10.10.10.50
                        set port 3389
                    next
                end
            next
        end
    next
end

[!NOTE] set client-cert enable komutu hayati öneme sahiptir. Bu sayede FortiGate, ZTNA proxy’sine gelen her bağlantıda FortiClient EMS tarafından cihaza yüklenmiş olan istemci sertifikasını doğrular. Sertifikası olmayan yabancı bir IP tarama yaptığında kapı tamamen kapalı görünür.


6. Adım: ZTNA Erişim Kurallarının (ZTNA Policy) Yazılması

Artık kimin, hangi sağlık durumuyla, hangi sunucuya erişebileceğini belirliyoruz:

config firewall ztna-rule
    edit 1
        set name "Kurumsal-Muhasebe-Web-Erisim"
        set proxy-server "ZTNA-PROXY-WAN"
        set service "Web-Muhasebe"
        set source-ip "all"
        set ztna-ems-tag "Corporate-Domain-PC" "Antivirus-Active"
        set action accept
    next
    edit 2
        set name "Sistemciler-RDP-Erisim"
        set proxy-server "ZTNA-PROXY-WAN"
        set service "RDP-Admin-Sunucu"
        set source-ip "all"
        set ztna-ems-tag "Corporate-Domain-PC"
        set action accept
    next
end

Yukarıdaki kurallarla; bilgisayarı domain üyesi olmayan ya da antivirüsünü kapatmış olan hiçbir çalışan (kullanıcı adı ve şifresi doğru olsa dahi) RDP sunucusuna veya muhasebe web uygulamasına kesinlikle ulaşamaz.


7. Adım: SSL-VPN’den ZTNA’e Güvenli Geçiş Prosedürü

Kurum genelinde kesinti yaşamadan geçiş yapmak için şu aşamalı planı uygulayın:

  1. Aşama - Pilot Grup: IT ve Sistem ekibinin bilgisayarlarına FortiClient ZTNA profili yüklenir. İlgili kullanıcılar test edilir.
  2. Aşama - Departman Geçişleri: İstemciler VPN tüneli açmadan doğrudan masaüstündeki ZTNA kısayollarıyla iç kaynaklara bağlanır.
  3. Aşama - SSL-VPN Kısıtlaması: SSL-VPN portalında sadece ZTNA’e geçmemiş eski uygulamaların yetkisi bırakılır.
  4. Aşama - SSL-VPN Kapatma (Hardening): Tüm kullanıcılar ZTNA’e geçtikten sonra SSL-VPN arayüzü ve portu tamamen kapatılır:
config vpn ssl settings
    set status disable
end

SSL-VPN portu kapatıldığında güvenlik duvarınız internetten gelen brute-force, credential stuffing ve sıfır gün (zero-day) SSL-VPN zafiyet taramalarına karşı tamamen korumaya alınmış olur.


8. İzleme ve Sorun Giderme (Diagnostics)

ZTNA bağlantılarını doğrulamak ve oturumları incelemek için FortiGate CLI komutları:

Aktif ZTNA İstemcilerini ve Etiketleri Listeleme

diagnose endpoint record list

Access Proxy Oturumlarını İnceleme

diagnose firewall access-proxy session list

Gerçek Zamanlı Hata Ayıklama (Debug)

İstemci sertifika hatası alıyorsa veya bağlantı kurulamıyorsa:

diagnose debug application wad 1
diagnose debug enable

Sonuç

Geleneksel SSL-VPN’ler dönemi yerini cihaz sağlığını, kimlik doğrulamasını ve mikro segmentasyonu tek bir çatıda toplayan ZTNA mimarisine bırakıyor. FortiGate ve FortiClient EMS ile kurulan bu yapı, uzaktan çalışan kullanıcıların güvenliğini sağlarken şirketin iç ağını olası fidye yazılımı (ransomware) ve sızma girişimlerine karşı izole tutar.