DOKÜMANTASYON

MikroTik Entegrasyonu

MikroTik Hotspot ile Captivo entegrasyonu (PAP & CHAP)

Gereksinimler: Hotspot paketi olan RouterOS ve aktif bir ağ arayüzü (misafirlerin bağlandığı ether portu ya da bridge — WinBox arayüzü değil, ağ arayüzü). pfSense/OPNsense ile aynı aile: portal HTML router üstünde durur, form router'ın kendi login URL'sine POST eder, doğrulamayı RADIUS yapar.

Her adımı iki şekilde yapabilirsiniz: WinBox arayüzü (ekran görüntüleri) ya da Terminal/CLI (komut blokları). İkisi de aynı sonucu verir — hangisini isterseniz onu kullanın.

Hem HTTP PAP hem HTTP CHAP ile çalışır. PAP'ta parola yerel hotspot redirect'i üzerinden düz gider; CHAP'ta şablon, RouterOS'un kendi md5.js'iyle parolayı (MD5) hash'ler. PAP donanımda doğrulandı; CHAP sonradan eklendi — kendi cihazında test et. Login ayarı için bkz. Adım 3.

1Hotspot'u oluştur

Henüz hotspot'unuz yoksa Hotspot Setup sihirbazını çalıştırın (WinBox → IP → Hotspot → Servers → Hotspot Setup) ve misafir-tarafı arayüzü/bridge'i seçin — WAN değil. Bu; hotspot sunucusunu, IP havuzunu ve varsayılan profili oluşturur.

Hotspot → Servers: hotspot sunucusu, misafir-tarafı arayüze/bridge'e bağlı (bu örnekte ether2), WAN'a değil.

CLI alternatifi:

# etkileşimli sihirbaz (arayüz, IP havuzu, DNS… sorar)
/ip hotspot setup

2MikroTik'te Captivo RADIUS'u tanımla

Captivo RADIUS sunucusunu ekleyip hotspot servisi için aktif edin. MikroTik router'ı Captivo tarafında da NAS client olarak eklenmeli (IP + shared secret).

/radius add service=hotspot address=<RADIUS_IP> secret=<SECRET>
RADIUS menüsü → New: Service = hotspot, Address = Captivo RADIUS IP, shared secret, portlar 1812 / 1813.
Router'ın saatini doğru ayarlayın (NTP). RouterOS genelde NTP kapalı gelir, saat saatlerce yanlış olabilir. RADIUS accounting zaman damgaları router'ın saatinden gelir — yanlışsa aktif oturumlar Captivo'da görünmez ve 5651 loglarınızdaki saatler hatalı olur. NTP'yi ve doğru saat dilimini açın (WinBox: System → Clock ve System → NTP Client; ya da: /system clock set time-zone-name=Europe/Istanbul ve NTP client'ı aktif edin).

3Hotspot profili: RADIUS + PAP/CHAP

/ip hotspot profile set <profile> use-radius=yes login-by=http-pap
# CHAP yerine/ayrıca: login-by=http-chap   (ya da http-pap,http-chap)
Hotspot → Server Profiles → RADIUS sekmesi: Use RADIUS ve Accounting açık (Interim Update ör. 1 dk) — oturumlar Captivo'da görünsün diye.
Artık HTTP PAP ve HTTP CHAP ikisi de çalışır (Login sekmesi: IP → Hotspot → Server Profiles → profiliniz → Login). PAP parolayı yerel redirect üzerinden düz gönderir; CHAP MD5 ile hash'ler (daha güvenli). CHAP için şablon RouterOS'un md5.js'ini kullanır; bu dosya hotspot dizininde olmalı — varsayılan olarak vardır, o yüzden varsayılan dosyaları silmeyin. PAP donanımda doğrulandı; CHAP'i kendi cihazında test et.
Hotspot → Server Profiles → Login sekmesi: HTTP PAP açık; dilerseniz HTTP CHAP'i de açabilirsiniz (yukarıdaki nota bakın).

Hız limitleri otomatik çalışır: misafir profilinde hız limiti tanımlıysa Captivo hem WISPr (pfSense için) hem Mikrotik-Rate-Limit'i birlikte gönderir; her NAS anladığını okur.

(İsteğe bağlı) Hotspot → User Profiles → default. Hız limitleri kullanıcı başına RADIUS'tan geldiği için varsayılan profil genelde yeterli.

4Walled Garden (önemli)

Doğrulanmamış misafir Captivo'ya ve SMS/e-posta sağlayıcınıza erişebilmeli; yoksa portal logoyu yükleyemez veya kodu doğrulayamaz.

/ip hotspot walled-garden add dst-host=*.captivo.io action=allow
# *.captivo.io app.captivo.io dahil hepsini kapsar (wildcard destekli)
# + SMS / e-posta sağlayıcı domainleri
Hotspot → Walled Garden → New: Action = allow, Dst. Host = *.captivo.io.
Not: radius.captivo.io walled garden'a GİRMEZ — o, RADIUS sunucu adresidir (/radius add address=… içinde kullanılır). RADIUS router↔sunucu trafiğidir (UDP 1812/1813), misafirin web trafiği değil. Walled garden'a yalnızca misafirin tarayıcısının ulaştığı web hostu gerekir: *.captivo.io.

5Portal şablonunu indir ve yükle

  1. Captivo'da Ayarlar → Portal → Şablonlar → MikroTik'e gidip ZIP'i indirin.
  2. ZIP içinde login.html + alogin.html var.
  3. WinBox/WebFig'de Files'ı açıp dosyaları router'ın hotspot html-directory'sine (varsayılan flash/hotspot) yükleyin, mevcutların yerine. Diğer varsayılan sayfalar (status/logout/error) kalsın.
Hotspot → Server Profiles → General: HTML Directory portal dosyalarının yeridir (varsayılan 'hotspot').
Files: hotspot dizinine yüklenen login.html / alogin.html.

Bu adım yalnızca GUI/FTP ile yapılır — dosya yüklemenin pratik bir CLI'si yoktur. Files (sürükle-bırak) ya da FTP kullanın.

Nasıl çalışır

Misafir bağlanınca MikroTik login.html'i gösterir. Misafir telefon/e-posta girer, portal JS Captivo API'sine doğrulatır, sonra gizli formu (username/password/dst=$(link-orig)) doldurup $(link-login-only)'a POST eder. MikroTik RADIUS ile doğrular, kabul eder, alogin.html'i gösterip orijinal adrese yönlendirir.

NAS-Identifier (opsiyonel ek izolasyon)

Opsiyonel. Captivo'da NAS-Identifier Doğrulaması'nı açarsan (Ayarlar → RADIUS), router tam olarak o değeri göndermeli. RouterOS'ta NAS-Identifier attribute'u router'ın sistem kimlik (identity) adıdır — yani değeri identity'i değiştirerek ayarlarsın:

  1. Captivo'da Ayarlar → RADIUS → NAS-Identifier'e gidip değeri oluşturun ve kopyalayın.
  2. Router'da sistem kimliğini o değere ayarlayın:
/system identity set name=<NAS-Identifier>
Dikkat: (1) Sistem kimliği aynı zamanda router'ın her yerdeki görünen adıdır (WinBox vb.). (2) Bazı RADIUS panellerinde gördüğün "isim:numara" gösterimi, identity + NAS-Port-Id (ayrı bir attribute) birleşimidir — gerçek NAS-Identifier sadece identity adıdır. (3) Bu adımlar MikroTik dokümanına dayanır, henüz bizim tarafımızdan donanımda doğrulanmadı — güvenmeden önce test et. Ayarlayamıyorsan Captivo'da NAS-Identifier Doğrulaması'nı kapalı bırakman yeterli.

Ürün geneli sorunlar için: Portal açılmıyor · Giriş reddediliyor · Oturumlar görünmüyor

Bu yazı yardımcı oldu mu?