Kurumsal Network Kurulumu

FortiGate Firewall Log Ayarları: Disk, Syslog ve 5651

FortiGate Firewall log ayarları: diskte 7 gün, syslog ve rfc5424, kapalı gelen ret logları, yol kesilince kaybolan UDP logu ve 5651 için trafik kaydı.

İlker Pehlivan

FortiGate Firewall log ayarları, cihazın neyi kaydedeceğini ve bu kaydı nerede tutacağını belirler. NSA’nın ağ cihazları için tarif ettiği düzende log aynı anda hem cihazın diskine hem dışarıdaki bir log sunucusuna yazılır; kalıcı kayıt sunucuda tutulur. Ayarlar Log & Report → Log Settings ekranında yapılır. Bu yazı FortiGate Firewall yapılandırma rehberimizin 6. adımıdır. Lab cihazımda fabrika ayarı logları diskte 7 gün tutuyordu, engellenen trafiği hiç yazmıyordu ve log sunucusuna giden yol kesildiğinde kaybolan satırları yeniden göndermedi.

Örnekteki sınır kapısında her geçişin bir tutanağı yazılır. Kulübedeki raf yalnız bir haftalık tutanağı alır; raf dolunca en eski cilt çıkar. Kalıcı kayıt, her gün bir zarfla merkez arşive giden kopyadır. FortiGate’te raf cihazın diski, zarf da log sunucusuna giden syslog satırıdır.

Bu yazı, Kurumsal Network Kurulumu hizmetimizde bir olayın ardından en sık duyduğumuz soruya cevap verir: firewall’da o günün kaydı hâlâ duruyor mu?

FortiGate Firewall log ayarları benzetmesi: sınır kapısı kulübesinde yedi gözlü raf tutanak ciltleriyle dolu, görevli günün tutanak kopyasını mühürlü zarfla merkez arşive giden posta kutusuna atıyor
Kulübe kendi tutanaklarının yalnız bir haftasını saklar. Kalıcı kopya her gün merkeze gider. FortiGate de diskte 7 gün tutar, kalıcı kayıt log sunucusunda durur.

FortiGate Logu Nerede Tutulur? Fabrika Ayarında Diskte 7 Gün

Fabrika ayarında FortiGate logları kendi diskine ve belleğine yazar; log sunucusuna gönderim kapalıdır. Lab cihazımın disk log ayarı şuydu:

FortiGate CLI Çıktısı
config log disk setting
    set status enable
    set maximum-log-age 7
    set max-log-file-size 20
    set roll-schedule daily
    set diskfull overwrite
end

Log Settings ekranı aynı şeyi açıkça yazıyor:

FortiGate Log Settings ekranının Local Log bölümünde Disk anahtarı açık ve altta 'Logs older than 7 day(s) are deleted from the disk' bilgisi; ikisi kırmızı çerçeveyle işaretli
Disk logu fabrikadan açık, ama yalnız 7 günlük. Raf dolunca en eski tutanak gider.

diskfull overwrite da disk dolduğunda en eski kaydın üzerine yazılacağını söyler. Yani bir olay ikinci haftada fark edilirse, o günün kaydı cihazda artık yoktur.

Fabrika ayarında bazı loglar da hiç yazılmaz. Lab cihazımın genel log ayarında şu satırlar kapalıydı:

FortiGate CLI Çıktısı
config log setting
    set fwpolicy-implicit-log disable
    set local-in-allow disable
    set local-in-deny-unicast disable
    set local-in-deny-broadcast disable
    set local-out disable
end

İlk satır, hiçbir kurala uymayan trafiği reddeden varsayılan kuralın logudur. Sonraki satırlar cihazın kendisine yapılan ve cihazdan çıkan bağlantıların loglarıdır. Bu iki kapalı logun ne kaçırdığını aşağıda ölçtüm.

FortiGate’in logu üç ana türe ayrılır:

  1. Trafik logu (forward): cihazın içinden geçen oturumlar. Kim, nereye, hangi portla, hangi kurala takılarak, ne kadar veri taşıdı.
  2. Yerel trafik logu (local): cihazın kendisine yapılan bağlantılar: yönetim girişleri, kendisine yapılan tarama ve parola denemeleri.
  3. Olay logu (event): yönetici girişleri, yapılandırma değişiklikleri, NTP ve DNS durumları. NTP ayarı yazımızda saat adımını ve susan NTP sunucusunu bu logda okuduk.

FortiGate Logu Nasıl Olmalı?

Log aynı anda iki yere yazılır: cihazın diskine ve cihazın dışındaki log sunucusuna. Kalıcı kayıt dışarıda tutulur, çünkü yeniden başlayan, diski dolan ya da ele geçirilen bir cihazın kendi kaydı güvende değildir. Satırlar saat dilimini taşıyan bir zaman damgasıyla yazılır ve cihazın saati NTP ile doğrudur. İnternet çıkışı ve reddedilen bağlantılar loglanır; hangi logun açık olacağı hacimle birlikte bilerek seçilir.

Bu düzeni dört kaynak birlikte tarif ediyor:

  1. NSA, Network Infrastructure Security Guidance rehberinde (Mart 2022, sürüm 1.0) logun aynı anda hem cihazın yerel tamponuna hem merkezi log sunucularına gönderilmesini istiyor (bölüm 6.1). En az iki uzak log sunucusu önerir ve destekleniyorsa logun yolda şifrelenmesini ister (bölüm 6.2). Log seviyesi en az “informational” olur; zaman damgası yılı, saniyeyi ve saat dilimini taşır (bölüm 6.3).
  2. NIST, SP 800-53 kontrol kataloğunda log kayıtlarının loglanan sistemden fiziksel olarak ayrı bir sistemde saklanmasını öneriyor (AU-9(2)): cihaz ele geçirilirse kaydı da ele geçirilmesin. Saklama süresi mevzuata göre belirlenir (AU-11).
  3. RFC 5426, syslog’un UDP üzerinden taşınmasını tanımlayan belge, bu taşımanın kaybolan paketi fark etmediğini ve düzeltmediğini yazıyor (bölüm 4.1); göndereni doğrulamaz ve içeriği gizlemez (bölüm 5).
  4. 5651 sayılı kanun trafik kayıtlarının iki yıl, değiştirilemez biçimde ve zaman damgasıyla saklanmasını istiyor; ayrıntıyı 5651 log yönetimi yazımızda anlattık.

Lab cihazımın fabrika ayarlarını bu önerilerle yan yana koydum:

AyarNeredeLab cihazımın fabrika ayarıOlması gereken
Disk loguLog & Report → Log SettingsAçık, 7 günAçık; yerel kopya olarak
Uzak log sunucusuLog & Report → Log Settings; ikinci sunucu yalnız CLI (syslogd2)KapalıAçık; log sunucusu ve 5651 log sunucusu, iki ayrı akış
Syslog biçimiCLIdefaultrfc5424
Varsayılan ret loguPolicy & Objects → Firewall Policy → Implicit DenyKapalıAçık
Cihaza yapılan reddedilmiş bağlantılarLog Settings → Local Traffic LogKapalıAçık
Yeni kuralın loguKural formu → Logging OptionsSecurity Eventsİnternet çıkışında All Sessions

Log Neden Hem Diske Hem Sunucuya Yazılır?

Mektubu postayla gönderdiğinizde postacı alıcıyı kapıda bulamazsa mektubu geri getirir ya da sonra yeniden dener. Fabrika ayarındaki syslog böyle bir postacı değildir: zarfı kapıya bırakıp gider, alıcı orada mı diye bakmaz.

Bu postacının işini üç parça belirler:

  1. Zarf, syslog satırıdır. Her oturum kapanınca FortiGate bir satır yazar ve log sunucusuna gönderir.
  2. Postacı UDP’dir. Satırı gönderir ve teslim edildiğini sormaz. Yol kesikse satır yolda kaybolur ve bunu ne FortiGate ne log sunucusu bilir.
  3. Raf, cihazın diskidir. Her satırın bir kopyası da kulübedeki rafa konur. Zarf kaybolsa da raftaki kopya kalır, ama raf yalnız bir haftalıktır.

Örnekteki sınır kapısında görevli her tutanağın bir kopyasını rafa koyar, bir kopyasını zarfla merkez arşive, bir kopyasını da ayrı bir zarfla resmî arşive yollar. Resmî arşiv (5651) tutanağı merkez arşivden değil, doğrudan kulübeden alır; iki zarf ayrı yollardan gider.

Yol kapalı olduğu gün zarflar merkeze varmaz; o günün tutanağı yalnız raftadır. Görevli bunu bir hafta içinde fark edip raftaki kopyayı merkeze götürmezse kayıt kaybolur.

Bunu lab’da ölçtüm. Log sunucusuna giden yolu 37 saniye kestim ve bu sırada iç ağdan üç web isteği yaptım. Yol açıldıktan sonra bir dakika bekledim:

  1. Log sunucusuna gelen satır: 0. Kesinti sırasında gönderilen üç satır yolda kayboldu ve sonradan yeniden gönderilmedi.
  2. FortiGate’in diskindeki satır: 3. Üç oturum da 11:37:18, 11:37:20 ve 11:37:22 damgasıyla diskte duruyordu.
FortiGate'in log zinciri. FortiGate her oturum için bir satır yazar. Birinci kopya cihazın diskine gider: 7 gün tutulur, disk dolunca en eskisinin üstüne yazılır. İkinci kopya syslog ile UDP 514 üzerinden 192.168.1.46'daki log sunucusuna gider; UDP kaybolan satırı yeniden göndermez. Üçüncü kopya ayrı bir syslog akışıyla doğrudan 5651 log sunucusuna gider: kaydı log sunucusundan değil FortiGate'ten alır, iki yıl, hash zinciri ve zaman damgasıyla saklar. Bu ikinci syslog sunucusu FortiGate'te yalnız komut satırından (syslogd2) tanımlanır. Ölçüm: log sunucusuna giden yol 37 saniye kesikken 3 oturum oldu; sunucuya 0, diske 3 satır düştü. FortiGate (gmfw01) kulübe her oturum bir satır Disk · kulübedeki raf 7 gün; dolunca en eskisinin üstüne yazar Log sunucusu merkez arşiv · 192.168.1.46 UDP 514 5651 log sunucusu · 2 yıl hash zinciri, zaman damgası 1. yerel kopya 2. syslog zarfı (UDP) kaybolanı yeniden göndermez 3. syslog zarfı (syslogd2) ayrı akış; yalnız CLI'dan eklenir Ölçüm: log sunucusuna giden yol 37 saniye kesikken 3 oturum oldu; sunucuya 0, diske 3 satır düştü. Bu yüzden log hem diske hem sunucuya yazılır ve kalıcı kayıt sunucuda tutulur. FortiGate'in log zinciri. FortiGate her oturum için bir satır yazar. Birinci kopya cihazın diskine gider: 7 gün tutulur, disk dolunca en eskisinin üstüne yazılır. İkinci kopya syslog ile UDP 514 üzerinden 192.168.1.46'daki log sunucusuna gider; UDP kaybolan satırı yeniden göndermez. Üçüncü kopya ayrı bir syslog akışıyla doğrudan 5651 log sunucusuna gider: kaydı log sunucusundan değil FortiGate'ten alır, iki yıl, hash zinciri ve zaman damgasıyla saklar. Bu ikinci syslog sunucusu FortiGate'te yalnız komut satırından (syslogd2) tanımlanır. Ölçüm: log sunucusuna giden yol 37 saniye kesikken 3 oturum oldu; sunucuya 0, diske 3 satır düştü. FortiGate (gmfw01) kulübe her oturum bir satır Disk · raf 7 gün; dolunca eskisinin üstüne yazar Log sunucusu merkez arşiv 192.168.1.46 · UDP 514 5651 log sunucusu · 2 yıl hash, zaman damgası 1. yerel kopya 2. syslog (UDP) 3. syslog (syslogd2, CLI) Yol 37 sn kesikken 3 oturum: sunucuya 0, diske 3 satır düştü. Log hem diske hem sunucuya yazılır; kalıcı kayıt sunucuda tutulur.
Zarf yolda kaybolsa da raftaki kopya kalır, ama raf bir haftalıktır. Kalıcı kayıt merkez arşivde, yasal kayıt ayrı bir zarfla beslenen 5651 log sunucusundadır.

İki kopyanın işi farklıdır. Raftaki kopya, zarfın kaybolduğu gün için yedektir; merkezdeki kopya, rafın boşaldığı gün için kalıcı kayıttır. İkisinden biri eksik kalırsa kayıt ya ilk kesintide ya ilk haftanın sonunda kaybolur.

FortiGate’te Syslog Sunucusu Ayarı

Ayardan önce üç şey hazır olur:

  1. Log sunucusu. Lab’da syslog sunucusu kurulum rehberimizin sunucusu sistemkusu-syslog (192.168.1.46): rsyslog UDP 514’ü dinliyor ve her göndereni kendi klasörüne, her programı ayrı bir dosyaya yazıyor (/var/log/uzak/{gönderen}/{program}.log). Syslog’un nasıl çalıştığını syslog nedir yazımızda anlattık.
  2. FortiGate’ten log sunucusuna yol. Lab’da yönetim ağından sunucu ağına bir statik rota var. FortiGate satırı sunucuya bakan arayüzünün adresinden gönderir; lab’da bu, yönetim portunun adresi 192.168.10.1.
  3. Doğru saat. Satırın zaman damgası cihazın saatidir; NTP rehberin 4. adımında kurulur.

Gönderim Log & Report → Log Settings ekranının Remote Logging and Archiving bölümünde açılır:

  1. Send logs to syslog: açılır.
  2. IP Address/FQDN: log sunucusunun adresi. Lab’da 192.168.1.46.
  3. Apply ile kaydedilir.

Aynı ekranın Log Settings bölümünde Local Traffic Log satırı da durur; aşağıda açtığım ret logu buradadır.

FortiGate Log Settings ekranında Send logs to syslog açık ve IP Address/FQDN alanında 192.168.1.46; altta Local Traffic Log Customize altında Log Denied Unicast Traffic işaretli; ikisi kırmızı çerçeveyle işaretli
Arayüzde syslog için yalnız adres soruluyor; port, protokol ve biçim CLI'da duruyor.

Arayüz yalnız adresi soruyor, gerisini fabrika değerleriyle bırakıyor. CLI’da ayarın tamamı görünüyor:

FortiGate CLI Çıktısı
config log syslogd setting
    set status enable
    set server "192.168.1.46"
    set mode udp
    set port 514
    set facility local7
    set source-ip ''
    set format default
end

Arayüzdeki Send logs to syslog satırı tek bir adres alıyor; lab cihazımda syslogd2, syslogd3 ve syslogd4 kapalı duruyor ve ekranda karşılıkları yok. NSA’nın önerdiği ikinci log sunucusu bu yüzden komut satırından eklenir. 5651 log sunucusu da tam bu ikinci sunucudur: kaydı birinci log sunucusundan değil, FortiGate’ten ayrı bir akışla doğrudan alır.

FortiGate CLI
config log syslogd2 setting
    set status enable
    set server "<5651-sunucusunun-adresi>"
    set mode udp
    set port 514
    set format rfc5424
end

İki akış ayrı yollardan gider: FortiGate her satırı her sunucuya ayrı ayrı gönderir, bu yüzden birinci log sunucusunun kapanması 5651 sunucusuna giden kopyayı durdurmaz. FortiGate dört syslog sunucusuna kadar gönderebiliyor (syslogd ile syslogd4 arası). Lab’da ayrı bir 5651 sunucusu olmadığı için ikinci akışı ölçmedim.

Logu yolda şifrelemek için mod reliable (TCP) yapılır ve enc-algorithm ile TLS açılır. Lab cihazımın değerlendirme sürümü bu seçenekte yalnız low ve disable sunuyor; gerçek bir cihazda high seçilir ve log sunucusunun da TLS’i kabul etmesi gerekir.

Başlıksız Satır: default Biçimi Log Sunucusunu Şaşırtıyor

Ayarı kaydettikten sonra log sunucusunda FortiGate’in adıyla bir klasör aradım, bulamadım. Loglar 192.168.10.1 adlı bir klasörde, date=2026-10-01.log adlı tek bir dosyadaydı. Sebep, sunucuya giden ham satırda görünüyor:

Çıktı
<189>date=2026-10-01 time=11:30:51 devname="gmfw01" devid="FGVMEVBT4WPKUKAA" eventtime=1790843451360379760 tz="+0300" logid="0000000013" type="traffic" subtype="forward" ...

Standart bir syslog satırı öncelik değerinden (<189>) sonra bir zaman damgası, gönderenin adı ve program adı taşır. FortiGate’in default biçimi bunların hiçbirini koymuyor, satırın gövdesine doğrudan geçiyor. Log sunucusu gönderen adı bulamadığı için IP adresini, program adı yerine de satırın ilk kelimesini (date=2026-10-01) aldı. Bütün loglar bu yüzden tek bir tarih adlı dosyaya düştü.

Çözüm, biçimi standart bir başlık taşıyan RFC 5424’e çevirmektir. Bu seçenek arayüzde yok, CLI’dan verilir:

FortiGate CLI
config log syslogd setting
    set format rfc5424
end

Aynı istek bu kez şöyle gitti ve sunucu gönderen adını okuyup logu gmfw01 klasörüne yazdı:

Çıktı
<189>1 2026-10-01T08:31:19Z gmfw01 - - - - eventtime=1790843478980348421 tz="+0300" logid="0000000013" type="traffic" subtype="forward" ...

Başlıktaki zaman damgası UTC’dir (Z), gövdedeki tz="+0300" ve eventtime alanları da korunuyor; NSA’nın istediği yıl, saniye ve saat dilimi satırda. Program adı alanı boş (-) geldiği için rsyslog dosyaya -.log adını verdi; FortiGate logunu tek bir dosyada toplamak için sunucunun şablonunda program adı yerine sabit bir dosya adı kullanmak yeterli.

Örnekteki sınır kapısında bu, zarfın üstüne gönderenin adını yazmamaktır: merkez arşiv zarfı açana kadar kimden geldiğini bilemez ve bütün zarfları tarih sırasına göre tek bir kutuya atar.

FortiGate Syslog Ayarını Doğrulamak: Sunucuya Ne Düşüyor?

İç ağdaki bir istemciden (10.34.30.10) dış ağdaki bir web sunucusuna istek attım ve sunucuya düşen satırı okudum. Bir trafik logu, oturum kapanınca yazılan tek bir satırdır:

Çıktı
2026-10-01T08:31:19Z gmfw01 - eventtime=1790843478980348421 tz="+0300" logid="0000000013" type="traffic" subtype="forward" level="notice" vd="root" srcip=10.34.30.10 srcport=33170 srcintf="port2" srcintfrole="lan" dstip=203.0.113.66 dstport=80 dstintf="port3" dstintfrole="wan" ... action="close" policyid=1 policytype="policy" ... policyname="Ic ag internet cikisi" service="HTTP" trandisp="snat" transip=203.0.113.1 transport=33170 duration=1 sentbyte=343 rcvdbyte=473 sentpkt=5 rcvdpkt=5 ...

Satırın 5651 açısından önemli alanları şunlar:

  1. srcip ve srcport: isteği yapan iç cihaz ve portu (10.34.30.10:33170).
  2. transip ve transport: NAT’tan sonra internete çıkan adres ve port (203.0.113.1:33170). Tek bir dış adresin arkasındaki cihazları ayıran bu ikilidir.
  3. dstip ve dstport: gidilen adres ve port.
  4. eventtime ve duration: oturumun bittiği anı ve kaç saniye sürdüğünü verir. Başlangıç, bu ikisinden hesaplanır.
  5. policyid ve policyname: oturumu geçiren kural.

Bu satır sunucuda 711 bayt tuttu. Hacmi ağın kendisi belirler: trafik olmayan lab’da bir dakikada tek satır gelmedi, lab’ın ilk düzeninde ise iç DNS sunucusunun tekrarlanan dış sorguları yüzünden dakikada 110 satır gelmişti. Firewall logunu kısa ve sık oturumlar doldurur. Kendi ağınızın bir günde ne kadar log üreteceğini 5651 log kapasitesi hesaplama aracımızda tahmin edebilirsiniz.

Log Sunucusunda Boşluk Var: Kayıt Kayboldu mu?

Log sunucusunda bir saat aralığında FortiGate’ten hiç satır yoksa iki ihtimal vardır: o arada trafik olmadı ya da satırlar yolda kayboldu. Yukarıdaki ölçümde ikincisi oldu ve sunucu bunu hiçbir yerde söylemedi. Sırayla şunlara bakılır:

  1. FortiGate’in diskinde aynı aralık: Log & Report → Forward Traffic ekranında ya da CLI’da execute log filter ve execute log display ile. Diskte satır varsa trafik olmuş, satır yolda kaybolmuştur.
  2. Yol: FortiGate’ten log sunucusuna ping, arada bir firewall varsa UDP 514’e izin.
  3. Kesintinin süresi: diskteki kopya 7 gün sonra silinir; kayıp aralık bu süre dolmadan diskten dışarı alınır.

Lab’da kesintiden sonra diskteki üç satır CLI’da şöyle göründü:

FortiGate CLI Çıktısı
12 logs found.
1: date=2026-10-01 time=11:37:22 eventtime=1790843842320328743 tz="+0300" logid="000000001
2: date=2026-10-01 time=11:37:20 eventtime=1790843840270375691 tz="+0300" logid="000000001
3: date=2026-10-01 time=11:37:18 eventtime=1790843838250329166 tz="+0300" logid="000000001
...

Fabrika Ayarında Kapalı Gelen İki Log: Varsayılan Ret ve Cihaza Yapılan Denemeler

Dış ağdan iki bağlantı denedim, ikisini de üçer kez: iç web sunucusunun yayındaki adresine SSH (hiçbir kural izin vermiyor, varsayılan ret kuralına düşüyor) ve FortiGate’in dış adresine SSH (cihazın kendisine yapılan, reddedilen bağlantı). Fabrika ayarında altı denemenin hiçbiri loga düşmedi.

İki logu da arayüzden açtım:

  1. Varsayılan ret: Policy & Objects → Firewall Policy listesinin sonundaki Implicit grubunda Implicit Deny satırı açılır ve Log IPv4 Violation Traffic anahtarı açılır.
  2. Cihaza yapılan reddedilmiş bağlantılar: Log & Report → Log Settings → Local Traffic Log satırında Customize seçilir, Log Denied Unicast Traffic işaretlenir.
FortiGate Implicit Deny düzenleme ekranında Log IPv4 Violation Traffic anahtarı açık ve sağdaki istatistiklerde Hit count 124; ikisi kırmızı çerçeveyle işaretli
Sağdaki sayaç kuralın kaç kez eşleştiğini gösteriyor. Log anahtarı kapalıyken bu eşleşmelerin hiçbiri loga yazılmaz.

Aynı altı deneme bu kez 30 satır üretti: 15’i varsayılan ret kuralından (policyid=0, subtype="forward"), 15’i cihazın kendisine yapılan denemeden (subtype="local"). Her deneme beş satırdı. Satırların kaynak portu ve zamanı nedenini gösteriyor: bağlanamayan istemci ilk paketi (SYN) beş saniye boyunca saniyede bir yeniden gönderdi ve her paket ayrı bir satır oldu. Varsayılan ret satırı şöyle:

Çıktı
2026-10-01T08:34:10Z gmfw01 - eventtime=1790843650103136789 tz="+0300" logid="0000000013" type="traffic" subtype="forward" level="notice" vd="root" srcip=203.0.113.80 srcport=55908 srcintf="port3" srcintfrole="wan" dstip=203.0.113.10 dstport=22 dstintf="port3" dstintfrole="wan" ... action="deny" policyid=0 policytype="policy" service="SSH" ...

Bu iki log açık değilse, internete bakan arayüze yapılan parola denemeleri ve taramalar hiç görünmez. Açmanın bedeli hacimdir: internete açık bir arayüz gün boyu taranır ve bu satırlar log sunucusunu doldurur. Hangi logun açılacağı hacimle birlikte, ama bilerek verilecek bir karardır.

Yeni Kuralın Log Ayarı: Security Events mı, All Sessions mı?

Kural oluştururken formun sonundaki Logging Options bölümünde Log Allowed Traffic seçeneği fabrika ayarında Security Events ile gelir (CLI’da logtraffic utm). Bu ayar yalnız güvenlik profillerinin bir olay ürettiği oturumları loglar; sıradan bir web isteği yazılmaz.

Farkı aynı kuralda ölçtüm. İnternet çıkış kuralını önce Security Events’e, sonra All Sessions’a (logtraffic all) çevirdim ve her seferinde üç web isteği attım:

  1. Security Events: üç istek, sıfır log.
  2. All Sessions: üç istek, üç log.

5651’in istediği şey, internete çıkan her oturumun kaydıdır. İnternet çıkışını taşıyan kuralların All Sessions ile loglanması bu yüzden şarttır; fabrika ayarında bırakılan bir kural, yasal kaydı hiç üretmez.

Lab’da bu kural personel ağının internet çıkışı, “Ic ag internet cikisi”. Arayüzde yol Policy & Objects → Firewall Policy, kurala çift tıklanır (yeni kuralda Create New):

  1. Name: kuralın işini söyleyen ad, Ic ag internet cikisi. Logda policyname alanı bu adı taşır, okuyan kişi satırın hangi kuraldan geldiğini numaraya bakmadan anlar.
  2. Incoming Interface ve Outgoing Interface: personel ve dış hatlar (dis-hatlar). Ekran kuralın bugünkü hâli: yukarıdaki log satırındaki port2 ve port3, rehberin sonraki adımlarında personel VLAN’ına ve dis-hatlar bölgesine taşındı.
  3. Log Allowed Traffic: açık ve All Sessions. İnternete çıkan her kural bu ayarla kaydedilir.
FortiGate Edit Policy formu, Ic ag internet cikisi: Name alanı ve en altta Log Allowed Traffic satırında All Sessions kırmızı çerçeveyle işaretli
Kuralın logu formun en altında seçilir. 5651 kaydını All Sessions üretir, Security Events yalnız güvenlik olaylarını yazar.

Aynı ayarın komut satırındaki karşılığı:

FortiGate CLI
config firewall policy
    edit 1
        set name "Ic ag internet cikisi"
        set logtraffic all
    next
end

FortiGate Logu ve 5651: Firewall Tek Başına Yetmez

5651, internet toplu kullanım sağlayıcılarından trafik kayıtlarını en az iki yıl, değiştirilemez biçimde ve zaman damgasıyla saklamalarını istiyor. FortiGate bu zincirin ilk halkasıdır:

  1. FortiGate’in yaptığı: trafik kaydını üretir. İç IP ve port, NAT’lanmış dış IP ve port, hedef, bitiş zamanı ve süre yukarıdaki satırda duruyor.
  2. FortiGate’in yapmadığı: kaydı diskte yalnız 7 gün tutar, disk dolunca eskisinin üzerine yazar; zaman damgası ve değiştirilemez arşiv sunmaz.
  3. Dışarıda kurulan: iki yıllık saklama, kayıtların bütünlüğü (hash zinciri) ve nitelikli zaman damgası 5651 log sunucusunda kurulur. Bu sunucu kaydı FortiGate’ten, ikinci syslog akışıyla doğrudan alır; birinci log sunucusunun kopyasına bağlı değildir.

Bunun için FortiGate tarafında dört ayar yeterlidir:

  1. İki syslog gönderimi açık: log sunucusu (syslogd, arayüzden) ve 5651 log sunucusu (syslogd2, yalnız CLI); ikisinde de biçim rfc5424.
  2. İnternet çıkış kuralları All Sessions ile loglanıyor.
  3. Saat NTP ile doğru.
  4. Diskteki kopya yol kesintisine karşı açık.

Saat yanlışsa bütün kayıt yanlış zamanı taşır; bu yüzden rehberde NTP logdan önce gelir.

Doğrulama: Log Zinciri Uçtan Uca Çalışıyor mu?

Ayar bittiğinde beş şey kontrol edilir; her biri yukarıda lab’da ölçüldü:

  1. Log sunucusunda FortiGate’in adıyla bir klasör var. Klasör IP adresiyle açıldıysa biçim hâlâ default’tur.
  2. İç ağdan yapılan bir web isteği sunucuya tek satır olarak düşüyor ve satırda srcip, transip, transport, eventtime, duration alanları var.
  3. Dışarıdan yapılan reddedilmiş bir bağlantı loglanıyor: policyid=0 ve subtype="local" satırları görünüyor.
  4. İnternet çıkış kuralı All Sessions ile loglanıyor: kuralın CLI’ında set logtraffic all.
  5. Diskteki kopya açık: sunucudaki bir boşluk diskteki satırlarla karşılaştırılabiliyor.

Sonuç: FortiGate’in Diski Bir Haftalık Raf, Kalıcı Kayıt Log Sunucusunda

FortiGate’in fabrika log ayarı bir haftalık bir raf gibidir. Doğru düzende log hem diske hem log sunucusuna yazılır, biçim rfc5424 olur, ret logları bilerek açılır ve internet çıkış kuralları All Sessions ile loglanır. Lab’da beş şey beklenenden farklı çıktı:

  1. Fabrika biçimi gönderenin adını taşımıyor. Log sunucusu FortiGate’in logunu IP adresli bir klasöre, tarih adlı tek bir dosyaya yazdı.
  2. Engellenen trafik hiç yazılmıyor. Altı deneme fabrika ayarında sıfır satır, iki ayar açılınca 30 satır üretti.
  3. Yeni kural sıradan oturumu kaydetmiyor. Security Events ile üç web isteği sıfır log üretti.
  4. Yol kesilince UDP logu kayboldu. Kesinti sırasındaki üç satır sunucuya hiç gelmedi; yalnız diskte kaldı.
  5. Logu yolda şifreleme lab’da sınırlı. Değerlendirme sürümü TLS için yalnız low sunuyor.

Örnekteki sınır kapısında raf dolunca en eski tutanak gider ve yolun kapalı olduğu gün zarf merkeze varmaz. Bu yüzden görevli her tutanağı hem rafa koyar hem merkeze yollar; kalıcı kayıt merkez arşivdedir. Açılış listesinin kalanı 20 adımlık kontrol listesinde duruyor.

FortiGate Firewall Log Ayarları Hakkında Sık Sorulan Sorular

Fabrika ayarında diskteki loglar 7 gün tutulur; log ayarları ekranı bunu "Logs older than 7 day(s) are deleted from the disk" diye yazar. Disk dolarsa en eski kayıtların üzerine yazılır (diskfull overwrite). 5651 trafik kayıtlarını en az 2 yıl saklamayı istediği için kalıcı kayıt FortiGate'in diskinde değil, dışarıdaki bir log sunucusunda tutulur.
Log & Report → Log Settings ekranında Send logs to syslog açılır ve IP Address/FQDN alanına log sunucusunun adresi yazılır. Fabrika değerleri UDP 514, facility local7 ve format default'tur. Lab'da default biçim standart syslog başlığı taşımadığı için log sunucusu logu FortiGate'in adıyla değil IP adresiyle, tarih adlı tek bir dosyaya yazdı; CLI'da set format rfc5424 ile başlık düzeldi.
Çünkü iki ret logu fabrika ayarında kapalıdır: hiçbir kurala uymayan trafiği reddeden varsayılan kuralın (Implicit Deny) logu ve cihazın kendisine yapılan reddedilmiş bağlantıların logu. Lab'da dış ağdan yapılan altı bağlantı denemesi fabrika ayarında sıfır log üretti; iki ayar açılınca aynı denemeler 30 satır üretti.
Sunucuya giden kopya kaybolur, diskteki kopya kalır. Syslog fabrika ayarında UDP ile gider ve UDP kaybolan paketi yeniden göndermez. Lab'da log sunucusuna giden yol 37 saniye kesikken üç web oturumu oldu; sunucuya sonradan tek satır gelmedi, üçü de FortiGate'in diskinde duruyordu. NSA'nın logu aynı anda hem cihaza hem uzak sunucuya yazmayı istemesinin sebebi budur.
Karşılamaz. FortiGate 5651'in istediği trafik kaydını üretir: iç IP ve port, NAT'lanmış dış IP ve port, hedef, bitiş zamanı ve süre. Ama bu kayıtları diskte yalnız 7 gün tutar, zaman damgası ve değiştirilemez arşiv sunmaz. İki yıllık saklama, bütünlük ve zaman damgası 5651 log sunucusunda kurulur; FortiGate bu sunucuya kaydı ikinci bir syslog akışıyla (syslogd2, yalnız komut satırından) doğrudan gönderir.
İ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