Kurumsal Network Kurulumu

FortiGate Firewall Nasıl Kullanılır? Günlük Yönetim Rehberi

FortiGate Firewall nasıl kullanılır? Fortinet'in günlük işletim önerisiyle pano, FortiView, log, yedek, kural ekleme, site engelleme ve port açma; lab cihazında.

İlker Pehlivan

FortiGate Firewall’u her gün kullanmak iki işe iner: cihazın ve trafiğin durumunu okumak, gerektiğinde değişiklik yapmak. Fortinet’in kendi en iyi uygulama kılavuzu günlük işi tam bu iki parçayla tarif eder ve değişikliği bir prosedüre bağlar. Önce çalışan yapılandırmanın yedeği alınır, sonra değişiklik yapılır, sonuç doğrulanır ve yeni yapılandırmanın yedeği alınır.

Bu rehberde pano, FortiView, loglar, yedek, kural ekleme, site engelleme ve port açma işlerini lab’daki FortiGate’te yaptım ve ekranlarını, sonuçlarını gösteriyorum. Rehber cihazın kurulu ve çalışır olduğunu varsayar; kutudan yeni çıkmış bir FortiGate’i canlıya almayı yapılandırma rehberimizde 20 adımda sıraladık. Firewall’un bir paketi nasıl değerlendirdiğini firewall nedir yazımızda anlattık.

İki bulgu beklenenden farklı çıktı. Arayüzden yazılan ret kuralı listenin sonuna düştü ve engellenen bilgisayar siteye 6 milisaniyede ulaştı. Kural üste taşınınca da bilgisayarın o sırada açık olan indirmesi hata vermeden dondu.

O yazıda firewall’u bir sınır kapısına benzetmiştik. Bu yazıda siz o kapının vardiya amirisiniz. Kapıdaki kuyruğa bakar, geçiş tutanaklarını okur, talimat listesine satır ekler ve yasaklılar listesini güncellersiniz.

Bu yazı, Kurumsal Network Kurulumu hizmetimizin firewall kümesinin parçasıdır. FortiGate’lerin günlük yönetimini müşterilerimiz adına nasıl üstlendiğimizi firewall kurulumu ve yönetimi sayfamızda anlattık.

Aradığınız iş belliyse doğrudan menüsüne gidebilirsiniz:

Ne yapmak istiyorsunuz?Nereye gidersiniz?
Cihaz sağlıklı mı, abonelikler açık mı?Dashboard → Status
Şu an kim nereye bağlı?Dashboard → FortiView Sessions
Kim engellendi, ne oldu?Log & Report → Forward Traffic
Değişiklikten önce yedekKullanıcı adı → Configuration → Backup
Yeni kural eklemekPolicy & Objects → Firewall Policy → Create New
Kural neden çalışmıyor?Firewall Policy → Policy Lookup
Bir siteyi engellemekSecurity Profiles → Web Filter
İçerideki sunucuyu dışarıya açmakPolicy & Objects → Virtual IPs
FortiGate kullanımı benzetmesi: sınır kapısının vardiya odasında amir, duvardaki talimat panosunun en üstteki boş çivisine terracotta bir tahta asıyor; pencerenin dışında kuyrukta bekleyen üç tır
Panonun altına asılan yeni talimata memur hiç ulaşmaz. FortiGate'te de yeni kural listenin sonuna eklenir ve üste taşınana kadar çalışmaz.

FortiGate’te Günlük Yönetim Nasıl Olmalı?

Günlük yönetim değişiklikle değil, okumayla başlar. Pano, oturumlar ve loglar düzenli okunur; değişiklik bir prosedürle yapılır ve her değişikliğin iki yanında birer yedek durur. Kural değişikliğinin sonucu tahminle değil, Policy Lookup ve logla doğrulanır.

Bu düzeni üç kaynak birlikte tarif ediyor:

  1. Fortinet FortiOS 7.0 Best Practices, Day to day operations sayfası: FortiGate’le iki temel sebeple çalışılır: yapılandırmayı değiştirmek, logları ve cihazın başarım bilgilerini kontrol etmek. Configuration changes sayfası değişiklik prosedürünü madde madde verir ve şunu ister: herhangi bir değişiklikten önce çalışan yapılandırmanın yedeği alınır. Aynı sayfa birden çok eski yapılandırmanın saklanmasını önerir.
  2. NIST SP 800-41 Rev. 1 (Eylül 2009), bölüm 5.5: loglar ve uyarılar sürekli izlenir, kurallar düzenli gözden geçirilir, kural seti ve policy düzenli yedeklenir; her değişiklik bir yapılandırma yönetimi sürecinden geçer.
  3. NSA Network Infrastructure Security Guidance (Mart 2022, sürüm 1.0), bölüm 3.1: değişiklik kontrol süreci kurulur, değişiklik onayı ve gerekçesiyle belgelenir ve çalışan yapılandırma düzenli olarak son yedekle karşılaştırılır.

Günlük işlerin sıklığı ve ekranı:

İşNe zamanEkranKaynak
Cihaz sağlığıHer günDashboard → StatusFortinet day to day
Ret ve izin kayıtlarıHer gün; olay olunca hemenForward TrafficNIST 5.5
Açık bağlantılarYavaşlık ya da şüphe oluncaFortiView SessionsFortinet day to day
YedekHer değişiklikten önce ve sonraConfiguration → BackupFortinet configuration changes
Kullanılmayan kuralDüzenli gözden geçirmedeKural formunda StatisticsNIST 5.5; Fortinet policies

Tablonun dördüncü satırı prosedürün omurgası; bir sonraki başlık onu FortiGate ekranlarına çeviriyor.

Değişiklik Prosedürü FortiGate’te Nasıl Görünür?

Fortinet’in prosedürü bir kural değişikliğinde şu ekranlara karşılık geliyor:

  1. Amaç ve risk yazılır: kuralın ne yaptığı, kimin istediği, hangi tarihte eklendiği; FortiGate’te bunun yeri kuralın Comments alanı.
  2. Çalışan yapılandırmanın yedeği alınır: Configuration → Backup, şifreli.
  3. Değişiklik bir bakım penceresinde yapılır. Kural değişikliği açık bağlantıları da yeniden değerlendirir; lab’da bir indirme bu yüzden dondu, ölçümü aşağıda.
  4. Sonuç doğrulanır: Policy Lookup ve Forward Traffic logu.
  5. Yeni yapılandırmanın yedeği alınır; iki yedek arasındaki fark değişikliğin kaydıdır.

Kuralların neden açıklamasız kalmaması gerektiğini ve kural setinin nasıl tasarlandığını FortiGate Firewall policy yapılandırması yazımızda anlattık.

FortiGate Paneli: Cihaz Sağlığı ve Abonelikler

Güne panodan başlanır. Dashboard → Status ekranı cihazın adını, yazılım sürümünü, saatini, ne kadar süredir açık olduğunu, abonelikleri ve işlemci ile bellek kullanımını tek sayfada gösterir.

FortiGate Dashboard Status ekranı: System Information kutusundaki Firmware satırı ile Licenses kutusundaki abonelik listesi kırmızı çerçeveyle işaretli; seri numarası maskeli, Virtual Machine kutusunda bellek yüzde 98
Her gün bakılan iki yer: yazılım sürümü ve aboneliklerin durumu. Seri numarasını maskeledim; lisans satırlarının gri olması değerlendirme sürümünün FortiGuard'a bağlanmamasından.

Panoda her gün bakılacak üç şey var:

  1. Firmware satırı cihazın yazılım sürümünü söyler. Güvenlik açığı duyurularında ilk sorulan soru budur, çünkü açıklar sürüme göre yayımlanır.
  2. Licenses kutusu, saldırı önleme, antivirüs ve web filtreleme gibi aboneliklerin durumunu gösterir. Lab cihazımda hepsi kapalı ve kutunun altında Unable to connect to FortiGuard servers., yani FortiGuard sunucularına bağlanılamıyor yazıyor. Gerçek bir cihazda bu kutu aboneliklerin açık olup olmadığını gösterir.
  3. İşlemci ve bellek cihazın yükünü gösterir. Lab cihazımın belleği yüzde 98 dolu görünüyor; 2 GB’lık bir sanal makinede bu beklenen bir değer, ama gerçek bir cihazda sürekli dolu bellek bir sonraki sorunun habercisidir. İşlemcisi ve belleği sürekli dolu olan bir cihazın paket kaybetmeye ve kendiliğinden kapanmaya başladığı bir vakayı donanım yükseltme vakasında anlattım.

FortiGate’te Kim Nereye Bağlanıyor? FortiView

Pano cihazın kendisini anlatır, FortiView ise içinden geçen trafiği. Dashboard menüsünün altındaki FortiView Sources son bir saatte en çok trafik üreten cihazları, FortiView Sessions ise o anda açık olan bağlantıları listeler.

Oturum listesinde her satır bir bağlantıdır: kaynak adres, hedef adres, uygulama, protokol, portlar, aktarılan bayt ve paket sayısı. Bir kullanıcı “internet çok yavaş” dediğinde ilk bakılacak yer burasıdır, çünkü bant genişliğini kimin kullandığı Bytes sütununda görünür. Şüpheli bir bağlantıyı kesmek için satıra sağ tıklanır ve End Session(s) seçilir; FortiGate onay ister.

FortiView Sessions ekranında personeldeki 10.34.30.10'un 198.18.0.1'e süren indirmesi; Bytes sütunundaki 3,19 MB ile sağ tıklayınca açılan End Session(s) ve End All Sessions menüsü kırmızı çerçeveyle işaretli
Süren bir indirme ve sağ tık menüsü. End All Sessions listedeki bütün bağlantıları keser, bu yüzden yanlışlıkla seçilmemelidir.

Burada sık yapılan varsayım, bağlantıyı kesince kullanıcının bir hata göreceğidir. Lab’da ölçtüğümde öyle olmadı: indirme hata vermeden dondu. Ölçümün ayrıntısını yazının sonundaki karşılaştırmada veriyorum.

FortiGate Loglarını Okumak: Forward Traffic

FortiView şu anı gösterir, loglar olanı. Firewall’un içinden geçen trafiğin kaydı Log & Report → Forward Traffic ekranındadır. Her satırda saat, kaynak, hedef, sonuç ve bağlantıyı geçiren ya da durduran kural yazar.

FortiGate Forward Traffic logu: üstteki Deny policy violation satırlarının Result ve Policy ID sütunları ile dört dakika önce eski bilgisayarın Ic ag internet cikisi kuralından geçtiği satır kırmızı çerçeveyle işaretli
Logun iki dönemi aynı ekranda: dört dakika önce eski bilgisayar izin kuralından geçmiş, kural üste taşındıktan sonra her denemesi Eski PC internet engeli adıyla reddedilmiş.

Log ekranını okurken üç sütuna bakın:

  1. Result, bağlantının geçip geçmediğini söyler. İzin verilen satırda aktarılan bayt, reddedilen satırda Deny: policy violation yazar.
  2. Policy ID, kararı hangi kuralın verdiğini adıyla ve numarasıyla gösterir. Hiçbir kurala uymayan trafik listenin sonundaki örtük ret kuralına düşer ve bu kuralın numarası 0’dır; mantığını firewall nedir yazımızın kural bölümünde anlattık.
  3. Source, isteği hangi cihazın yaptığını söyler. Add Filter ile tek bir adrese ya da yalnız reddedilen satırlara süzebilirsiniz.

Web filtresinin engellediği siteler ayrıca aynı menünün altındaki Web Filter logunda listelenir. Bir engellemeyi logda bulamıyorsanız önce doğru log sayfasında olup olmadığınıza bakın. İkinci sebep kuralın kendisi olabilir, çünkü ret kuralında kayıt tutma fabrika ayarında kapalıdır; bunu yeni kural bölümünde gösteriyorum.

Cihazın diski sınırlıdır ve eski loglar yenilerine yer açmak için silinir. Logları uzun süre saklamanız gerekiyorsa bir syslog sunucusuna göndermek gerekir; FortiGate’teki ayarı log ayarları yazımızda, yasal saklama yükümlülüğünü 5651 log yönetimi sayfamızda anlattık.

FortiGate Yedeği Almak: Değişiklikten Önce

Loglar geçmişi anlatır, yedek ise geri dönüş yolunu. Kural listesine dokunmadan önce yedek alınır. Yedek sol taraftaki ana menüde değil, sağ üstteki kullanıcı adının altındaki menüde durur: kullanıcı adı → Configuration → Backup.

FortiGate'te sağ üstteki ilker.pehlivan menüsünde Configuration alt menüsü açık; Configuration ve Backup kırmızı çerçeveyle işaretli, altında Restore, Revisions ve Scripts
Yedek menüsü sol taraftaki ana menüde değil, sağ üstteki kullanıcı adının altında.

Yedek ekranında iki seçim yapılır:

  1. Backup to: yedeğin nereye alınacağı, Local PC ya da USB Disk.
  2. Encryption: açılınca bir parola ve tekrarı istenir.
FortiGate Backup System Configuration ekranında Local PC seçili; açık Encryption anahtarı ile Password ve Confirm password alanları kırmızı çerçeveyle işaretli
Şifreleme bir anahtar ve iki parola alanı; bu parola olmadan yedek geri yüklenemez.

İki yedeği de aldım; ikisinin adı da cihaz adı, sürüm ve tarihten oluştu (gmfw01_7-0_0450_202610011630.conf), içleri ise çok farklıydı:

  1. Şifreli yedek 57.911 bayttı ve ilk satırından (#FGBK|4|FGVM64|7|00|0450|) sonrası okunamıyordu.
  2. Şifresiz yedek 359.839 baytlık düz metindi. İçinde yönetici parolaları dahil 26 set password ENC satırı ile 13 şifreli ve 8 OpenSSH biçiminde, toplam 21 özel anahtar bloğu vardı.

Şifresiz yedeği bir e-postaya ya da ortak bir klasöre bırakmak, cihazın anahtarlarını da oraya bırakmaktır. Yedeği şifreleyin ve parolayı yedekten ayrı bir yerde saklayın. Aynı alt menüde geri yükleme için Restore ve Revisions de durur. Revisions ekranının hangi durumda sürüm ürettiğini, her gece kendiliğinden alınan yedeği ve geri yüklemenin kesintisini FortiGate Firewall yedek alma yazımızda ölçtüm.

FortiGate’e Yeni Kural Eklemek

Yedek elinizde, artık değişiklik yapabilirsiniz. Örnek iş şu: personel ağında, üreticisinin güvenlik güncellemesi desteği bitmiş eski bir bilgisayarın (10.34.30.50) internete çıkışını kapatmak. Bilgisayar içerideki işi için çalışmaya devam ediyor, ama artık yama almıyor. Bu adımdan önce hazır olması gerekenler:

  1. Cihazın adres nesnesi: h-personel-eski-pc, 10.34.30.50/32. Nesnenin nasıl açıldığını ve adlandırıldığını adres nesneleri yazımızda anlattık.
  2. Değişiklikten önceki yedek: bir önceki bölüm.

Menü yolu: Policy & Objects → Firewall Policy → Create New. Formun alanları:

  1. Name: ne yaptığını söyleyen benzersiz bir ad. Lab’da Eski PC internet engeli.
  2. Incoming Interface ve Outgoing Interface: personel ve dis-hatlar.
  3. Source: h-personel-eski-pc. Destination: all. Service: ALL.
  4. Action: DENY. Form bu seçimle sadeleşir ve Log Violation Traffic anahtarı çıkar.
  5. Log Violation Traffic: açılır. Fabrika ayarında kapalıdır; açılmazsa engellenen denemeler logda hiç görünmez.
  6. Comments: neden var olduğu, kimin istediği ve tarih. Lab’da Destegi biten eski PC (10.34.30.50) icin internet cikisi kapali. Isteyen: BT, 2026-10-03.
FortiGate New Policy formunda DENY seçili eski bilgisayar kuralı: Source alanındaki h-personel-eski-pc, açık Log Violation Traffic anahtarı ve Comments alanındaki açıklama kırmızı çerçeveyle işaretli
DENY seçilince form NAT ve güvenlik profillerini gizler. Log Violation Traffic ise kendiliğinden kapalı gelir; burada elle açıldı.

Lab’da ölçümlerden sonra kuralı eski numarasına (2) taşıdım; komut satırındaki karşılığı:

FortiGate CLI
config firewall policy
    edit 2
        set name "Eski PC internet engeli"
        set srcintf "personel"
        set dstintf "dis-hatlar"
        set srcaddr "h-personel-eski-pc"
        set dstaddr "all"
        set schedule "always"
        set service "ALL"
        set logtraffic all
        set comments "Destegi biten eski PC (10.34.30.50) icin internet cikisi kapali. Isteyen: BT, 2026-10-03"
    next
end

Bu blokta set action satırı yok, çünkü CLI’da eylemin fabrika değeri deny ve kısa show fabrika değerlerini göstermiyor.

Yeni Kural Listenin Sonuna Eklenir

Kuralı kaydettim; arayüz ona 10 numarasını verdi. Eski bilgisayarın adresinden ve personelden başka bir bilgisayardan siteye bağlanmayı denedim. Şunu bekleyebilirsiniz: engelleme kuralı yazıldı, eski bilgisayarın bağlantısı kurulamamalı. Sonuç:

Çıktı
kaynak=10.34.30.50 http=200 sure=0.006171
kaynak=10.34.30.10 http=200 sure=0.003217

Eski bilgisayar siteye 6 milisaniyede ulaştı. Kural yazılmış, kaydedilmiş, ama çalışmıyor. Sebebini Firewall Policy ekranındaki Policy Lookup gösterir. Gelen arayüzü, protokolü, kaynak ve hedef adresi ve portu girdiğinizde o trafiğin hangi kurala takılacağını listede işaretler:

FortiGate Policy Lookup sonucu kural listesinde: eski bilgisayarın TCP 80 trafiği için işaretlenen Ic ag internet cikisi satırı ile listenin sonundaki Eski PC internet engeli satırı kırmızı çerçeveyle işaretli
Policy Lookup, eski bilgisayarın trafiği için yeni engelleme kuralını değil, üstteki genel izin kuralını işaretledi.

Arayüz yeni kuralı listenin sonuna, personelin internet kuralının altına ekledi. FortiGate listeyi yukarıdan aşağı okur ve kaynağı all olan izin kuralı eski bilgisayarı da kapsadığı için engelleme kuralına sıra hiç gelmez.

Policy Lookup’a Port Yazılmazsa Yanlış Kuralı Gösterir

Sorgunun ilk denemesinde protokolü yalnız numarasıyla (6, TCP) girip port yazmamıştım. FortiGate o sorgu için sondaki ret kuralını, yani 10’u işaretledi; bu gerçek trafiğin aldığı sonuç değildi. Aynı farkı CLI’daki sorgu da gösteriyor:

FortiGate CLI Çıktısı
<src [10.34.30.50-40000] dst [198.18.0.1-80] proto tcp dev personel> matches policy id: 1
<src [10.34.30.50-40000] dst [198.18.0.1-0] proto tcp dev personel> matches policy id: 10

Sebep kural 1’in servisi: personelin internet kuralı yalnız HTTP, HTTPS ve PING’e açık. Port yazılmayan sorgu bu servislerin hiçbirine uymuyor ve listeyi aşağı doğru geçiyor. Teşhis sırası şöyle:

  1. Sorguda protokol listeden seçilir (TCP), numara olarak yazılmaz; böylece port alanları açılır.
  2. Hedef port gerçek trafiğinkiyle aynı girilir; lab’da 80.
  3. Sonuç gerçek trafikle karşılaştırılır: logdaki Policy ID sorgunun işaretlediği kuralla aynı olmalıdır.

Kuralı Taşımak: Sıra Listedeki Yerdir

Kuralı taşımak için liste By Sequence görünümüne alınır ve satırın solundaki tutamaktan tutulup yukarı sürüklenir. CLI’da aynı iş move 10 before 1 komutudur; ben CLI’dan taşıdım. Liste son hâlinde:

FortiGate kural listesinin By Sequence görünümü: Eski PC internet engeli satırı ile hemen altındaki Ic ag internet cikisi satırı kırmızı çerçeveyle işaretli; en altta Implicit Deny
Taşımadan sonra sıra: eski bilgisayarın engeli, personelin internet izni, en altta Implicit Deny.

Aynı iki denemeyi tekrarladım. Test komutuna 5 saniyelik bir bekleme sınırı koymuştum:

Çıktı
kaynak=10.34.30.50 http=000 sure=5.003062
kaynak=10.34.30.10 http=200 sure=0.006176

Eski bilgisayarın bağlantısı bu sınır dolana kadar kurulamadı, personel ise etkilenmedi. Kural numarası değişmedi; engelleme kuralı hâlâ 10. FortiGate’te kural numarası sırayı söylemez, sırayı listedeki yer belirler. Örnekteki sınır kapısında bu, talimat listesine eklenen yeni satırın sayfanın sonuna yazılmasıdır. Memur listeyi baştan okur ve üstteki “herkes geçebilir” satırında durur.

Kuralı Taşımak Açık Bağlantıyı da Durdurur

Kuralı taşımadan hemen önce eski bilgisayarda yavaş bir indirme başlatmıştım. Taşıdıktan sonra dosyanın boyutuna 5 saniye arayla üç kez baktım:

Çıktı
888832
888832
888832

FortiGate’in oturum tablosunda aynı bağlantı şöyle duruyordu:

FortiGate CLI Çıktısı
session info: proto=6 proto_state=11 duration=48 expire=22 timeout=3600 ...
misc=0 policy_id=10 pol_uuid_idx=14747 auth_info=0 chk_client_info=0 vd=0

İndirme 888.832 baytta durdu. Oturum hâlâ tabloda, ama artık policy_id=10’a, yani ret kuralına bağlı ve 22 saniye içinde silinecek. FortiGate kural değişince açık oturumları yeni kurallara göre yeniden değerlendiriyor. Fortinet’in policy configuration changes sayfası bunu fabrika ayarı firewall-session-dirty check-all olarak anlatıyor: yeni kurala uymayan oturum engelleniyor ve trafiği düşürülüyor. Değişikliğin bakım penceresinde yapılmasının bir sebebi bu.

Kural Hâlâ Kullanılıyor mu? Hit Count ve Last Used

Bir kuralı açtığınızda formun sağında Statistics kutusu durur. Hit count kuralın kaç bağlantıyı yakaladığını, Last used en son ne zaman kullanıldığını gösterir.

FortiGate kural düzenleme ekranındaki Statistics kutusu: Last used 3 dakika önce ve Hit count 14.900 satırları kırmızı çerçeveyle işaretli
Personelin internet çıkış kuralı 14.900 bağlantı yakalamış ve 3 dakika önce kullanılmış. Aylardır sıfırda duran bir kural temizlik adayıdır.

Devraldığınız bir listede hangi kuralın gerçekten çalıştığını buradan anlarsınız. Hit count değeri aylardır sıfırda duran bir kural ya hiç kullanılmıyordur ya da üstündeki bir kural onun trafiğini yakalıyordur; ikisi de silinmeden önce incelenmeyi hak eder. Fortinet’in kılavuzu da kullanılmayan kural bırakılmamasını istiyor.

FortiGate’te Site Engellemek: URL Filtresi

Kural, bir cihazın ya da adresin bağlantısını keser. Bir siteyi engellemek ise ayrı bir iştir ve web filtre profiliyle yapılır. Menü yolu: Security Profiles → Web Filter → Create New. Profil formunda iki yol vardır:

  1. FortiGuard Category Based Filter, siteleri kategorisine göre engeller (kumar, sosyal medya gibi). Kategoriyi FortiGuard sunucularına sorduğu için web filtreleme aboneliği ister. Abonelik yoksa ya da FortiGuard’a ulaşılamıyorsa bu filtrenin fabrika ayarında bütün siteleri engellediğini FortiGate web filtre yazımızda ölçtük.
  2. Static URL Filter altındaki URL Filter, sizin yazdığınız adresleri engeller ve aboneliksiz çalışır. Lab cihazımda hiçbir abonelik yokken bu yolla engelledim.
FortiGate site-engelleme web filtre profili: kapalı FortiGuard Category Based Filter anahtarı ile URL Filter tablosundaki sosyal.example, Simple, Block, Enable satırı kırmızı çerçeveyle işaretli
Kategori filtresi kapalı, URL tablosunda tek satır var: sosyal.example, Block.

URL Filter açılınca bir tablo belirir ve tablodaki Create New ile adres eklenir. Burada bir tuzak var: yeni satırda Action fabrika ayarında Block değil Exempt gelir.

FortiGate New URL Filter penceresi: Type Simple, Status Enable; Action satırında seçili gelen Exempt kırmızı çerçeveyle işaretli
Adresi yazıp OK'e basan kişi siteyi engellemiş değil, denetimden muaf tutmuş olur. Eylemi Block yapın.

Profil tek başına bir şey yapmaz, bir kurala bağlanması gerekir. Personelin internet çıkış kuralı açılır, Security Profiles bölümünde Web Filter etkinleştirilip profil seçilir. Web filtresi açılınca SSL Inspection alanı kendiliğinden no-inspection’dan certificate-inspection’a geçer:

FortiGate kural formunun Security Profiles bölümü: Web Filter satırında site-engelleme profili ve SSL Inspection satırında certificate-inspection kırmızı çerçeveyle işaretli
Profil kurala bağlanınca SSL denetimi de certificate-inspection oluyor; şifreyi açmadan alan adını görmeye yetiyor.

Bağlamanın komut satırındaki karşılığı (kural 1, personelin internet çıkışı):

FortiGate CLI
config firewall policy
    edit 1
        set name "Ic ag internet cikisi"
        set utm-status enable
        set ssl-ssh-profile "certificate-inspection"
        set webfilter-profile "site-engelleme"
    next
end

Personelden iki siteyi denedim. İzin verilen site 200 döndü. Engellenen siteden FortiGate’in kendi sayfası geldi:

Çıktı
http=403 sure=0.010033 boyut=4760
<title>The URL you requested has been blocked</title>
...
Local URLfilter Block

Kullanıcı tarayıcıda Web Page Blocked başlığını, engellenen adresi ve URL Source: Local URLfilter Block satırını görür. Engelleme Log & Report → Web Filter loguna düşer.

HTTPS sitelerde bir sınır var. certificate-inspection şifreyi açmaz; FortiGate yalnız bağlantının hangi alan adına gittiğini görür, sayfanın yolunu göremez. Bu yüzden HTTPS bir siteyi alan adıyla engelleyebilirsiniz ama o sitenin tek bir sayfasını engelleyemezsiniz. Alan adının şifrelenmeden gittiği yeri TLS yazımızda gösterdik.

FortiGate’te Port Açmak: Virtual IP

İçeriden dışarıya giden trafiği yönettik; bazen yön terstir ve bir sunucuya dışarıdan ulaşılması gerekir. Dışarıya açılan sunucu DMZ’de durur; bunu zone ve DMZ yazımızda anlattık. FortiGate’te bu iş sanal IP (Virtual IP) ile yapılır: Policy & Objects → Virtual IPs → Create New → Virtual IP. Formun alanları:

  1. Name: v- önekiyle. Lab’da v-dmz-web.
  2. External IP address/range: dışarının göreceği adres, 203.0.113.10.
  3. Map to → IPv4 address/range: DMZ’deki sunucunun adresi, 10.34.80.10.
  4. Port Forwarding: açılır; TCP, dış ve iç port 80.
FortiGate Edit Virtual IP formu, v-dmz-web: External IP address/range 203.0.113.10 ve Map to 10.34.80.10 satırları ile TCP, One to one, 80 portlu Port Forwarding bölümü kırmızı çerçeveyle işaretli
Dış arayüzdeki 203.0.113.10 adresinin 80 portuna gelen istek, DMZ'deki 10.34.80.10 sunucusunun 80 portuna iletilir.

Hedef adresin nasıl çevrildiğini NAT yazımızın port yönlendirme bölümünde anlattık. Sanal IP adresi çevirir ama kapıyı açmaz; trafiğe izin verecek bir kural gerekir. Lab’da bu kural 3. Kuralı geçici olarak kapatıp dışarıdan denedim:

FortiGate CLI Çıktısı
... msg="vd-root:0 received a packet(proto=6, 203.0.113.66:57754->203.0.113.10:80) tun_id=0.0.0.0 from port3. flag [S], ..."
... msg="Denied by forward policy check (policy 0)"

İstek örtük retle düştü. Kural Policy & Objects → Firewall Policy → Create New ile yazılır, alanları şunlar:

  1. Incoming Interface dış hatlar (dis-hatlar), Outgoing Interface dmz.
  2. Source all, Destination adres değil sanal IP (v-dmz-web).
  3. Service yalnız açılacak servis (HTTP), Action ACCEPT.
  4. NAT kapatılır.
FortiGate Edit Policy formu, Disaridan DMZ web sunucusuna: Destination alanında v-dmz-web sanal IP'si ve kapalı NAT anahtarı kırmızı çerçeveyle işaretli
Kuralın hedefinde sanal IP duruyor ve NAT kapalı: kapıyı bu kural açıyor, adresi sanal IP çeviriyor.

Sanal IP’nin ve kuralın komut satırındaki karşılığı:

FortiGate CLI
config firewall vip
    edit "v-dmz-web"
        set comment "Dis ag 203.0.113.10:80 -> DMZ web sunucusu 10.34.80.10:80"
        set extip 203.0.113.10
        set mappedip "10.34.80.10"
        set extintf "any"
        set portforward enable
        set extport 80
        set mappedport 80
    next
end
config firewall policy
    edit 3
        set name "Disaridan DMZ web sunucusuna"
        set srcintf "dis-hatlar"
        set dstintf "dmz"
        set action accept
        set srcaddr "all"
        set dstaddr "v-dmz-web"
        set schedule "always"
        set service "HTTP"
    next
end

Kuralda set nat satırı görünmüyor, çünkü komut satırında NAT’ın fabrika değeri kapalı; arayüzdeki yeni kural formu ise onu açık getiriyor.

Son madde kolay atlanır, çünkü yeni kuralda NAT açık gelir. Kuralı açıp önce NAT açıkken, sonra kapalıyken denedim ve DMZ’deki sunucunun erişim loguna baktım:

Çıktı
10.34.80.1 - - [01/Oct/2026 13:28:42] "GET /vip-nat-acik HTTP/1.1" 404 -
203.0.113.66 - - [01/Oct/2026 13:28:44] "GET /vip-nat-kapali HTTP/1.1" 404 -

NAT açıkken sunucu ziyaretçiyi FortiGate’in DMZ adresinden (10.34.80.1) geliyor gördü; kapatınca gerçek ziyaretçi (203.0.113.66) göründü. NAT açık kalırsa sunucunun logları kimin bağlandığını söyleyemez. NAT’ın hangi kurallarda açık olması gerektiğini NAT ayarı yazımızda ölçtük.

FortiGate’te Teşhis Sırası: Kural Çalışmıyorsa

Buraya kadar her işin sonunda sonucu denedim. Bir bağlantı beklendiği gibi çalışmadığında aynı ekranlar bir teşhis sırası oluşturur:

  1. Forward Traffic logunda o kaynağın satırlarını süzün. Deny ve bir kural adı görüyorsanız o kural durduruyordur; kural numarası 0 ise hiçbir kurala uymamıştır.
  2. Policy Lookup ile trafiğin hangi kurala takılması gerektiğine bakın; protokolü listeden seçin ve portu yazın. Beklediğiniz kural değil başka bir kural işaretleniyorsa sorun sıradadır.
  3. Engelleme logda hiç yoksa ilgili kuralın Log Violation Traffic ayarına, web sitesi engellemesi için Web Filter loguna bakın.
  4. Bağlantı açılıyor ama yavaşsa FortiView Sessions’da o bağlantının bayt sayısının artıp artmadığına bakın.

Beklenmeyen bir erişim sorununda işe listeden değil logdan başlamak zaman kazandırır, çünkü log kararı veren kuralın adını zaten yazar. Log hiçbir şey göstermiyorsa paketin kendisine komut satırından bakılır; bunu FortiGate Firewall sorun giderme yazımızda anlattım.

FortiGate’te Engellenen Kullanıcı Ne Görür? Üç Yolun Farkı

Bir dükkânın kapısında üç şey olabilir. Kapı kilitlidir ve kimse cevap vermez; siz beklersiniz. Görevli kapıyı aralar ve “kapalıyız” der; ne olduğunu hemen anlarsınız. Ya da siz içerideyken ışıklar söner; ne olduğunu kimse söylemez, siz de öylece kalırsınız.

Bu üç durumu sınır kapısının parçaları taşıyor:

  1. Ret kuralı inik koldur: araç gelir, kol kalkmaz, görevli bir şey söylemez.
  2. URL filtresi kulübedeki görevlidir: aracı durdurur ve sürücüye bir kâğıt uzatır; o kâğıt FortiGate’in engelleme sayfasıdır.
  3. Oturumu sonlandırmak ya da kuralı değiştirmek geçmekte olan aracın önünde yolun kesilmesidir: araç yolun ortasında kalır, iki uçtaki kimse haber almaz.

Örnekteki sınır kapısında yalnız kulübedeki görevli sürücüye bir şey söyler. Mekanizma şöyle işliyor:

  1. Ret kuralında FortiGate bağlantının ilk paketini düşürür ve cevap göndermez; istemci kendi zaman aşımını bekler.
  2. URL filtresinde FortiGate isteği sunucuya iletmez, cevabı kendisi verir: 403 ve bir engelleme sayfası.
  3. Oturum silindiğinde FortiGate kaydı tablosundan çıkarır ve aradaki paketleri düşürür, ama iki uca bağlantının kapandığını bildirmez; ikisi de bağlantıyı açık sanmaya devam eder.

Lab’daki ölçümler:

YöntemKullanıcının gördüğüÖlçüm
Kural (DENY)Sayfa açılmaz, tarayıcı bekler5 saniyelik test sınırında cevap yok, http=000
URL filtresiFortiGate’in engelleme sayfası10 milisaniyede 403, 4.760 bayt
Oturumu sonlandırmakİndirme hata vermeden donarAlınan veri 4.145.152 baytta kaldı; iki uç ESTAB, sunucu yeniden gönderiyor
Engellenen kullanıcının gördüğü üç yol. Ret kuralında kullanıcının ilk paketi FortiGate'te sessizce düşüyor, sunucuya hiç ulaşılmıyor ve kullanıcı 5 saniyelik sınırda cevapsız kalıyor. URL filtresinde FortiGate isteği sunucuya iletmiyor, 10 milisaniyede kendi 403 engelleme sayfasını gönderiyor. Oturum sonlandırmada süren indirmenin oturumu FortiGate'te siliniyor, iki uca haber verilmiyor; indirme 4.145.152 baytta donuyor ve iki uç bağlantıyı açık sanıyor. Ret kuralı (DENY) kullanıcı FortiGate sunucu 1. istek paketi düşürür cevap yok hiç ulaşılmaz kullanıcı bekler: 5 sn sonra http=000 URL filtresi kullanıcı FortiGate sunucu 1. istek 2. 403 cevabı kendisi verir hiç ulaşılmaz engelleme sayfası: 10 ms, 4.760 bayt Oturumu sonlandırmak kullanıcı FortiGate sunucu veri kesildi haber yok oturum silindi indirme donar: 4.145.152 bayt, iki uç ESTAB Engellenen kullanıcının gördüğü üç yol. Ret kuralında kullanıcının ilk paketi FortiGate'te sessizce düşüyor, sunucuya hiç ulaşılmıyor ve kullanıcı 5 saniyelik sınırda cevapsız kalıyor. URL filtresinde FortiGate isteği sunucuya iletmiyor, 10 milisaniyede kendi 403 engelleme sayfasını gönderiyor. Oturum sonlandırmada süren indirmenin oturumu FortiGate'te siliniyor, iki uca haber verilmiyor; indirme 4.145.152 baytta donuyor ve iki uç bağlantıyı açık sanıyor. Ret kuralı (DENY) kullanıcı FortiGate sunucu 1. istek paketi düşürür cevap yok hiç ulaşılmaz kullanıcı bekler: 5 sn sonra http=000 URL filtresi kullanıcı FortiGate sunucu 1. istek 2. 403 cevabı kendisi verir hiç ulaşılmaz engelleme sayfası: 10 ms, 4.760 bayt Oturumu sonlandırmak kullanıcı FortiGate sunucu veri kesildi haber yok oturum silindi indirme donar: 4.145.152 bayt, iki uç ESTAB
Yalnız URL filtresi kullanıcıya bir şey söylüyor. Ret kuralı ve oturum sonlandırma sessiz; kullanıcı ya bekliyor ya da donmuş bir indirmeye bakıyor.

Kural sessizce düşürür. Kullanıcı yalnız bekler ve bunun sebebini göremez; sınır konmamış bir Windows istemcinin cevapsız bir bağlantıyı 21 saniye beklediğini port yazımızdaki beş senaryoda ölçtüm. URL filtresi ise açıkça söyler, çünkü cevabı FortiGate’in kendisi verir.

Oturum sonlandırma en şaşırtıcı olanıydı. End Session(s) sonrasında FortiGate’in oturum tablosu boşaldı, ama istemcide bağlantı ESTAB durumunda kaldı ve 6 saniye arayla üç ölçümde alınan veri değişmedi:

Çıktı
4145152
4145152
4145152
ESTAB 0      0        10.34.30.10:40554   198.18.0.1:80
...
ESTAB 0      266536    198.18.0.1:80    203.0.113.1:40554
backoff:6

Sunucu tarafında da bağlantı açıktı ve yeniden gönderme aralığı (backoff) altıncı kez büyümüştü. Kullanıcıya “bağlantın kesildi” demek istiyorsanız oturum sonlandırmak bunu söylemez.

Günün Sonunda: FortiGate Kontrol Listesi

  1. Panoda yazılım sürümü biliniyor ve aboneliklerin durumu beklendiği gibi.
  2. Forward Traffic logunda beklenmeyen bir Deny ya da policy 0 yığılması yok.
  3. Bugün değişen her kuralın açıklamasında amaç, isteyen ve tarih var.
  4. Her değişikliğin önünde ve arkasında birer şifreli yedek var; parola yedekten ayrı yerde.
  5. Yeni ret kuralları kestikleri iznin üstünde; Policy Lookup portla sorgulandı ve logdaki kural numarası aynı.
  6. URL listesine eklenen satırların eylemi Block.
  7. Sanal IP kurallarında NAT kapalı; sunucu logunda ziyaretçinin gerçek adresi görünüyor.

Sonuç: Önce Okuyun, Sonra Değiştirin

FortiGate’in günlük kullanımı Fortinet’in tarif ettiği sırayı izler: önce pano, FortiView ve loglarla durumu okursunuz, değişiklikten önce şifreli yedek alırsınız, sonra değiştirir ve sonucu Policy Lookup ile logdan doğrularsınız. Lab’da beş şey beklenenden farklı çıktı:

  1. Arayüzden yazılan ret kuralı listenin sonuna düştü; engellenen bilgisayar siteye 6 milisaniyede ulaştı.
  2. Port yazılmadan yapılan Policy Lookup sondaki ret kuralını işaretledi; gerçek trafik başka bir kuraldan geçiyordu.
  3. Kural üste taşınınca eski bilgisayarın açık indirmesi de hata vermeden dondu; oturum yeniden değerlendirilip ret kuralına bağlandı.
  4. Oturum sonlandırma iki uca haber vermedi: indirme 4.145.152 baytta kaldı, iki uç bağlantıyı açık sandı.
  5. URL listesine eklenen yeni satırın eylemi fabrika ayarında Exempt geldi.

Örnekteki sınır kapısında vardiya amiri de geçiş tutanaklarını okumadan talimat listesine satır eklemez, ekledikten sonra da ilk aracın gerçekten o satıra takılıp takılmadığına bakar.

Bu ekranların arkasındaki karar mantığını firewall’un kural listesini ve bağlantı tablosunu anlattığımız yazıda, bu işin kurumsal network kurulumu hizmetimizdeki yerini ana sayfasında okuyabilirsiniz.

FortiGate Kullanımı Hakkında Sık Sorulan Sorular

En sık sebep sıradır. FortiGate kural listesini yukarıdan aşağı okur ve arayüzde yeni kural listenin sonuna eklenir. Üstte daha geniş bir izin kuralı varsa yeni kurala sıra hiç gelmez. Lab cihazımda desteği bitmiş eski bir bilgisayarı engelleyen kural izin kuralının altındayken cihaz siteye 6 milisaniyede ulaştı; kuralı üste taşıyınca aynı deneme 5 saniyelik sınırda cevapsız kaldı. Hangi kuralın eşleştiğini Policy Lookup gösterir, ama yalnız port da yazılırsa doğru sonucu verir.
Tek tek site engellemek için gerekmez. Web filtre profilindeki Static URL Filter aboneliksiz çalışır; lab cihazımda hiçbir FortiGuard aboneliği yokken engellenen adres 10 milisaniyede 403 koduyla engelleme sayfasına düştü. Kumar ya da sosyal medya gibi bir kategoriyi toptan engellemek ise FortiGuard web filtreleme aboneliği ister. URL listesine eklenen yeni satırın eylemi fabrika ayarında Block değil Exempt gelir.
Alınmalı. Şifresiz yedek düz metindir. Lab cihazımın şifresiz yedeğinde 26 parola satırı (set password ENC) ve 21 özel anahtar bloğu dosyanın içinde duruyordu. Şifreli yedek aynı ekranda Encryption açılıp bir parola verilerek alınır; ilk satırından sonrası okunamaz. Geri yüklerken de bu parola gerekir, bu yüzden parolayı yedekten ayrı bir yerde saklayın.
Hata görmez, bağlantısı donar. Lab ölçümümde FortiView Sessions ekranından sonlandırdığım indirmede istemcinin aldığı veri 4.145.152 baytta kaldı, bağlantı istemcide de sunucuda da açık göründü ve sunucu yeniden göndermeyi denemeye devam etti. Kural sırasını değiştirmek de açık bir bağlantıyı aynı biçimde dondurdu. Kullanıcıya açık bir engelleme mesajı göstermek istiyorsanız URL filtresi kullanın.
Sanal IP tek başına kapıyı açmaz. Lab cihazımda sanal IP'yi kullanan kural kapalıyken dışarıdan gelen istek örtük retle (policy 0) düştü; kural açılınca 200 döndü. Kuralda NAT'ı kapatmayı da unutmayın: açık kaldığında DMZ'deki sunucu ziyaretçiyi FortiGate'in DMZ adresinden (10.34.80.1) geliyor gördü, kapatınca gerçek adres (203.0.113.66) göründü.
İlker Pehlivan
Yazan

BT Danışmanı | Ağ, Sistem ve Güvenlik Yönetimi

İlker Pehlivan, karmaşık BT altyapılarını ölçeklenebilir ve güvenli sistemlere dönüştürür. Buradaki rehberleri kendi laboratuvarında kurup ölçerek yazar.

LinkedIn

Benzer Makaleler

Kurumsal Network Kurulumu altındaki diğer 114 makale