pfSense Hotspot 5651 Kurulumu: Adım Adım Kılavuz 2024
17 June 2026 10 Dk Okuma

pfSense Hotspot 5651 Kurulumu: Adım Adım Kılavuz 2024

pfSense ile 5651 Uyumlu Hotspot Kurulumu: Neden Kritik?

Türkiye'de halka açık internet erişimi sunan her işletme — otel, kafe, AVM, hastane, belediye — 5651 sayılı Kanun'un 6. maddesi uyarınca trafik kayıtlarını saklamak zorundadır. pfSense gibi açık kaynak güvenlik duvarları, düşük maliyetli ve esnek yapısıyla küçük-orta işletmelerin tercihi olsa da, varsayılan captive portal modülü 5651 gereksinimlerini karşılamaz. Erişim loglarını doğru formatta (kullanıcı kimliği, zaman damgası, kaynak/hedef IP, port, URL) tutmak, BTK denetimlerinde ceza riskini ortadan kaldırır. Bu kılavuz, pfSense 2.7.x ve üzeri sürümlerde captive portal'ı devreye alıp, log akışını 5651 uyumlu bir bulut platformuna (NextLog5651 gibi) veya yerel SIEM'e yönlendirme sürecini adım adım açıklar.

Gerçek dünya senaryosu: İstanbul'da 45 odalı bir butik otel, misafir WiFi için pfSense kullanıyor ancak logları yalnızca yerel diske yazıyor ve 90 günden eski kayıtları manuel siliyor. BTK teftiş ekibi, erisim_kayitlari tablosunda eksik zaman damgası ve kullanıcı kimliği tespit etti; 5651 md. 9/A uyarınca 50.000 TL idari para cezası uygulandı. Doğru kurulum ve merkezi log yönetimi bu tür senaryoları önler.

pfSense Captive Portal Modülünün Sınırları ve Çözüm Yolları

pfSense'in yerleşik Captive Portal özelliği, kullanıcıları giriş sayfasına yönlendirir, MAC/IP bazlı kimlik doğrulama yapar ve temel erişim logları tutar. Ancak 5651 uyumluluğu için eksik kalan noktalar:

  • Detay seviyesi: Varsayılan log formatı, kaynak IP ve zaman damgasını içerir ama hedef URL, HTTP/HTTPS ayrımı, port numarası gibi kritik alanları kapsamaz.
  • Saklama süresi: pfSense logları /var/log altında tutar; disk dolduğunda eski kayıtlar kaybolur. 5651 md. 6, trafik kayıtlarını en az 1 yıl saklamayı zorunlu kılar (BTK Tebliğ 2014/10).
  • Merkezi yönetim: Çoklu lokasyonda (otel zinciri, franchise kafe) her cihazdan ayrı log toplamak operasyonel yük getirir.
  • Raporlama: BTK talebi geldiğinde, ham syslog dosyalarından kullanıcı bazlı rapor çıkarmak saatler alır.

Çözüm mimarisi: pfSense captive portal + ek paket (freeradius3, squid proxy) veya harici log toplayıcı (NextLog5651, Graylog, Splunk). En yaygın yöntem: pfSense'i syslog sunucusuna yönlendirip, orada 5651 formatında parse etmek ve arşivlemek. Alternatif olarak, pfSense'in arkasına transparent proxy (Squid + ICAP) ekleyerek her HTTP/HTTPS isteğini loglamak mümkündür.

Adım 1: pfSense Captive Portal Temel Kurulumu

pfSense web arayüzüne (genellikle https://192.168.1.1) admin hesabıyla giriş yapın. Services → Captive Portal menüsüne gidin ve yeni bir zone oluşturun:

  • Zone Name: MisafirWiFi (alfanumerik, boşluksuz)
  • Interface: Misafir ağının bağlı olduğu arayüz (örn. OPT1 veya ayrı VLAN)
  • Max Concurrent Connections: Eşzamanlı kullanıcı sayısı (otel için 100-200, AVM için 500+)
  • Idle Timeout: 30 dakika (kullanıcı hareketsizse oturumu kapat)
  • Hard Timeout: 480 dakika (8 saat — otellerde günlük yenileme için)

Authentication sekmesinde kimlik doğrulama yöntemini seçin:

Yöntem Kullanım Senaryosu 5651 Uygunluğu
No Authentication Sadece kullanım şartlarını kabul ettirme (kafe, park WiFi) Kısıtlı — kullanıcı kimliği yok, sadece MAC adresi
Local User Manager Küçük işletme, manuel kullanıcı ekleme Orta — kullanıcı adı loglanır ama ölçeklenmez
RADIUS Otel PMS entegrasyonu (Opera, Elektraweb), kurumsal Yüksek — oda numarası/TC kimlik loglanabilir
Voucher Tek kullanımlık kodlar (etkinlik, konferans) Orta — voucher ID + MAC adresi

Otel/AVM gibi yüksek kullanıcı hacminde RADIUS entegrasyonu şarttır. pfSense'e freeradius3 paketini yükleyin (System → Package Manager → Available Packages). RADIUS sunucusunu yapılandırırken, kullanıcı veritabanını otelin PMS'iyle senkronize edin: misafir check-in yaptığında, PMS API'si RADIUS'a oda_numarasi ve telefon bilgisiyle kullanıcı ekler. Böylece her log kaydında gerçek kimlik (oda numarası veya TC kimlik) yer alır.

Giriş Sayfası Özelleştirme ve KVKK Onayı

HTML Portal Page Contents alanına özel giriş sayfanızı yazın. KVKK md. 10 uyarınca, kullanıcıya hangi verilerin toplandığı, ne kadar süre saklanacağı, kiminle paylaşılacağı açıkça bildirilmelidir. Örnek metin:

"Misafir internet erişimi sırasında IP adresi, erişim zamanı, ziyaret edilen siteler 5651 sayılı Kanun kapsamında 1 yıl süreyle saklanır. Verileriniz yalnızca yasal yükümlülük kapsamında yetkili makamlara sunulur. Devam ederek bu koşulları kabul etmiş sayılırsınız."

Onay kutusunu zorunlu kılın (<input type="checkbox" required>) ve kullanıcı "Kabul Et" butonuna basmadan erişim vermeyin. Bu onay kaydı da log'a düşmelidir — captiveportal.log dosyasında user accepted terms satırı arayın.

Adım 2: Syslog Yapılandırması ve Merkezi Log Sunucusu Entegrasyonu

pfSense captive portal logları varsayılan olarak /var/log/captiveportal.log dosyasına yazılır. Bu dosya döngüsel (rotational) olup, eski kayıtlar silinir. 5651 uyumluluğu için logları harici bir sunucuya gönderin:

  • Status → System Logs → Settings menüsüne gidin.
  • Enable Remote Logging kutusunu işaretleyin.
  • Remote Log Servers alanına NextLog5651 bulut IP'sini veya yerel syslog sunucu adresini girin (örn. log.nextlog5651.com:514 veya 192.168.10.50:514).
  • Source Address: pfSense'in WAN IP'sini seçin (log sunucusu bu IP'yi tanıyacak).
  • System Events to Log: En azından Authentication, DHCP, Captive Portal seçeneklerini işaretleyin.

Syslog formatı RFC 5424 standardında olmalıdır. NextLog5651 gibi özel platformlar, gelen syslog mesajlarını otomatik parse eder ve erisim_kayitlari tablosuna şu alanları yazar:

Alan Örnek Değer Kaynak
kullanici_id oda_305 / TC:12345678901 RADIUS username
kaynak_ip 192.168.100.42 Captive portal DHCP lease
hedef_ip 172.217.16.206 (google.com) Firewall state table / Squid proxy
hedef_port 443 (HTTPS) Firewall log
zaman_damgasi 2024-06-15T14:23:11+03:00 Syslog timestamp (ISO 8601)
url https://www.google.com/search?q=... Squid access.log (HTTPS için SSL Bump gerekir)

Önemli: pfSense captive portal log'u sadece kimlik doğrulama olaylarını (login, logout) içerir. Gerçek trafik logları için firewall kurallarında loglama aktif olmalıdır. Firewall → Rules → MisafirWiFi sekmesinde, "Pass" kuralının altındaki Log packets that are handled by this rule kutusunu işaretleyin. Böylece her bağlantı /var/log/filter.log'a yazılır ve syslog sunucusuna iletilir.

Adım 3: Squid Proxy ile Detaylı URL Loglama (Opsiyonel ama Önerilen)

HTTPS trafiğinin içeriğini (URL, HTTP başlıkları) loglamak için transparent SSL proxy gereklidir. pfSense'e squid ve squidGuard paketlerini yükleyin:

  • System → Package Manager → Available Packagessquid ve squidGuard ara ve kur.
  • Services → Squid Proxy Server → General Settings:
    • Enable Squid Proxy: İşaretle
    • Proxy Interface: MisafirWiFi arayüzü
    • Transparent HTTP Proxy: İşaretle
    • SSL/HTTPS Proxy: İşaretle (SSL Bump)
  • Local Cache sekmesinde Hard Disk Cache Size: 2048 MB (SSD varsa 4096 MB)
  • Access Control sekmesinde misafir ağ bloğunu (örn. 192.168.100.0/24) Allowed Subnets listesine ekleyin.

SSL Bump (HTTPS İnceleme) Kurulumu:

  • Services → Squid Proxy Server → SSL Man In the Middle Filtering sekmesine gidin.
  • Enable SSL filtering: İşaretle
  • CA: pfSense'in dahili CA'sını seçin veya yeni bir CA oluşturun (System → Cert Manager → CAs → Add).
  • SSL Intercept: Splice All yerine Bump All seçin (tüm HTTPS trafiğini incelemek için).
  • Certificate Adapt: İşaretle (sertifika uyumsuzluğu hatalarını azaltır).

Kullanıcı cihazlarına pfSense CA sertifikasını yükletin. Captive portal giriş sayfasına sertifika indirme linki ekleyin: <a href="https://192.168.1.1/cert.crt">Güvenli bağlantı için sertifika yükleyin</a>. Mobil cihazlarda (iOS/Android) sertifika yükleme adımlarını resimli talimatla gösterin; aksi halde kullanıcılar "Bağlantı güvenli değil" uyarısı alır.

Squid access.log formatını 5651 uyumlu hale getirin. /usr/local/etc/squid/squid.conf dosyasına şu satırı ekleyin (SSH ile pfSense'e bağlanın):

logformat combined %ts.%03tu %6tr %>a %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %mt
access_log /var/squid/logs/access.log combined

Bu format, zaman damgası, kaynak IP, kullanıcı adı, HTTP metod, tam URL, durum kodu içerir. Squid loglarını da syslog sunucusuna göndermek için logfile-daemon kullanın veya tail -f ile canlı akışı logger komutuyla syslog'a yönlendirin:

tail -f /var/squid/logs/access.log | logger -t squid -p local5.info

pfSense'de bu komutu Shellcmd paketiyle sistem başlangıcında otomatik çalıştırın.

Adım 4: RADIUS Sunucusu ve Otel PMS Entegrasyonu

Otel senaryosunda, misafir check-in yaptığında PMS (Opera, Elektraweb, Amonra) otomatik olarak WiFi kullanıcısı oluşturmalıdır. FreeRADIUS'u PMS veritabanıyla entegre edin:

  • Services → FreeRADIUS → Users sekmesinde manuel kullanıcı eklemek yerine, SQL Module aktif edin.
  • SQL Type: MySQL/MariaDB (PMS veritabanı genellikle MySQL kullanır)
  • SQL Server: PMS sunucu IP'si (örn. 192.168.10.20)
  • SQL Database: PMS veritabanı adı (örn. opera_db)
  • SQL Username/Password: Salt okunur (read-only) bir hesap oluşturun — PMS veritabanında değişiklik yapmayın.

PMS'de misafir tablosunda oda_numarasi, telefon, checkin_tarihi, checkout_tarihi alanları olduğunu varsayın. FreeRADIUS SQL sorgusunu şöyle düzenleyin:

SELECT oda_numarasi AS username, telefon AS password FROM misafirler WHERE checkin_tarihi <= NOW() AND checkout_tarihi >= NOW()

Böylece misafir, oda numarası (kullanıcı adı) ve telefon numarası son 4 hanesi (şifre) ile WiFi'ye bağlanır. RADIUS log'unda oda_305 kullanıcı adı görünür; 5651 talebi geldiğinde, bu kullanıcı adını PMS'deki misafir kimliğiyle (TC kimlik, pasaport) eşleştirirsiniz.

Elektraweb PMS entegrasyonu: Elektraweb, REST API sunar. Alternatif olarak, Elektraweb'in RADIUS modülünü doğrudan aktif edin (Ayarlar → Entegrasyonlar → WiFi/RADIUS). Elektraweb, check-in/check-out olaylarında FreeRADIUS'a otomatik kullanıcı ekler/siler. NextLog5651, Elektraweb API'siyle entegre çalışır; misafir bilgilerini otomatik çeker ve log kayıtlarına ekler.

Adım 5: Test, Doğrulama ve BTK Denetim Hazırlığı

Kurulum tamamlandıktan sonra kapsamlı test yapın:

  • Kullanıcı girişi: Test hesabıyla (örn. test_oda) captive portal'a giriş yapın. /var/log/captiveportal.log dosyasında user 'test_oda' authenticated satırını görmelisiniz.
  • Trafik logu: Tarayıcıda http://example.com ve https://www.google.com açın. /var/log/filter.log ve Squid access.log dosyalarında ilgili kayıtları kontrol edin.
  • Syslog iletimi: Log sunucusunda (NextLog5651 veya Graylog) pfSense'den gelen mesajları arayın. Inputs → Syslog UDP bölümünde son 5 dakikadaki mesaj sayısını görün.
  • Zaman senkronizasyonu: System → General Setup → Timezone ayarını Europe/Istanbul yapın. NTP sunucularını (tr.pool.ntp.org) ekleyin ve Status → NTP menüsünde senkronizasyon durumunu kontrol edin. Zaman damgası hatası, BTK denetiminde kayıt geçersiz sayılabilir.
  • KVKK onay kaydı: Captive portal log'unda terms accepted by IP 192.168.100.42 gibi bir satır arayın. NextLog5651, bu onayı kvkk_onay tablosuna otomatik işler.

BTK Talep Senaryosu Simülasyonu

BTK, belirli bir IP ve zaman aralığı için kayıt talep eder: "15 Haziran 2024, 14:23:11 - 14:45:00 arası 192.168.100.42 IP'sinden yapılan tüm erişimler." NextLog5651 arayüzünde Raporlar → 5651 Sorgu bölümüne gidin, IP ve zaman aralığını girin. Sistem, şu bilgileri içeren Excel/PDF rapor üretir:

Zaman Kullanıcı Kaynak IP Hedef IP Hedef Port URL
2024-06-15 14:23:11 oda_305 192.168.100.42 172.217.16.206 443 https://www.google.com/search?q=istanbul+hava+durumu
2024-06-15 14:25:03

Bu Makaleyi Paylaşın:

Sık Sorulan Sorular

5651 loglama ve hotspot hakkında en çok sorulan konular.

pfSense'de 5651 uyumlu hotspot kurulumu ne kadar sürer?
Temel pfSense captive portal kurulumu 30-45 dakika sürer. NextLog5651 entegrasyonu ile birlikte tam KVKK uyumlu loglama sistemi 1-2 saat içinde tamamlanabilir.
pfSense hotspot logları nerede saklanır?
pfSense captive portal logları varsayılan olarak yerel sistem loglarında tutulur. 5651 uyumluluğu için NextLog5651 gibi bulut tabanlı merkezi loglama sistemine syslog protokolü ile aktarılmalıdır.
MikroTik ile pfSense hotspot entegrasyonu mümkün mü?
Evet, pfSense ve MikroTik birlikte kullanılabilir. MikroTik captive portal logları da NextLog5651'e syslog ile gönderilebilir, böylece tüm ağ cihazları merkezi olarak yönetilir.
pfSense captive portal için hangi bilgiler loglanmalı?
5651 sayılı kanun gereği kullanıcı MAC adresi, IP adresi, bağlantı zamanı, çıkış zamanı ve kimlik doğrulama bilgileri minimum 1 yıl süreyle saklanmalıdır.
pfSense hotspot kurulumu için teknik bilgi gerekli mi?
Temel ağ bilgisi ve firewall deneyimi önerilir. Ancak adım adım kılavuz ile orta seviye sistem yöneticileri de kurulumu başarıyla tamamlayabilir.

Ağınızın Güvenliğini Şansa Bırakmayın

NextLog 5651 Loglama ve Hotspot sistemleriyle işletmenizi yasal risklerden koruyun.

Müşteri Temsilcisi

Genelde anında yanıt · 0312 945 36 42

Yazıyor...