Captive portal tekniği HTTP (The Hypertext Transfer Protocol – Hiper Metin Aktarma İletişim Kuralı) istemcisini İnterneti normal olarak kullanmadan önce ağ üzerinde özel bir Web sayfasını görmeye zorlar. Kısıtlama Portalı Web tarayıcısını kimlik denetleme cihazına çevirir. Bu, kullanıcı bir tarayıcı açıp İnternete erişmeye çalışana kadar porttan veya adresten bağımsız olarak bütün paketleri engelleyerek olur. Bu sırada tarayıcı kimlik denetleme ve/veya ödeme, ya da basitçe uygun kullanım poliçesini görüntüleyip kullanıcının onaylamasını sağlayacak Web sayfasına yönlendirilir. Kısıtlama Portalı uygulamaları en çok Wi-Fi (Wireless Fidelity - Kablosuz Sadakat) erişim noktalarında kullanılır. Ayrıca kablolu kullanımı kontrol etmek için de kullanılabilir. (Otel odaları, iş merkezleri, vs.)
Oturum açma sayfasının istemciye sunulması gerektiği için bu sayfa ya yerel olarak ağ geçidinde tutulmalı, ya da o sayfayı sunan Web sunucusuna “Walled Garden (Duvarlı Bahçe)” tarafından kimlik denetleme işlemini atlaması için izin verilmeli. Varsayılan ağ geçidinin özelliklerine bağlı olarak birden çok Web sunucusuna izin verilebilir. Web sunucularının URL’lerine (Uniform Resource Locator - Tekdüze Kaynak Bulucu) izin verilmesine ek olarak bazı varsayılan ağ geçitleri TCP (Transmission Control Protocol – Aktarım Kontrolü İletişim Kuralı) portlarına da izin verebilir. Eklenmiş istemcilerin MAC (Media Access Control - Ortam Erişim Kontrolü) adresleri de kimlik denetleme aşamasını atlamak üzere ayarlanabilir.
Kısıtlama Portalını uygulamanın birden çok yönü vardır.
HTTP’den yönlendirme
Eğer onaylanmamış bir kullanıcı Web sayfasını talep ederse, DNS (Domain Name System - Etki Alanı Ad Sunucusu) tarayıcı tarafından sorgulanır ve uygun IP adresi olağan şekilde çözümlenir. Ardından tarayıcı, hedef IP adresine HTTP talebinde bulunur. Ancak istek güvenlik duvarı tarafından yakalanır ve yönlendirme sunucusuna iletilir. Bu yönlendirme sunucusu istemciyi Kısıtlama Portalı'na yönlendirmek için fazladan durum kodu 302 içeren sıradan HTTP cevabı döner. Bu işlem istemciye gözükmez. İstemci Web sayfasının aslında başlangıç isteğine cevap verdiğini ve yönlendirme yaptığını zanneder.
IP yönlendirme
İstemci trafiği 3. katmanda IP yönlendirme kullanılarak da aktarılabilir. Fakat bu yöntemin dezavantajı istemciye sunulan içeriğin URL ile uyuşmamasıdır.
DNS’ten yönlendirme
İstemci bir Web sayfası talep ettiğinde DNS tarayıcı tarafından sorgulanır. Güvenlik duvarı, onaylanmamış istemcinin sadece DHCP (Dynamic Host Configuration Protocol - Dinamik Makine Yapılandırma İletişim Kuralı) tarafından öngörülen DNS sunucusunu/sunucularını kullanılabileceğinden emin olur. Bu DNS sunucusu varsayılan olarak bütün DNS sorgularına Kısıtlama Portalı sayfasının IP adresini döner.
Bazı tecrübesiz uygulamalarda istemciden çıkan DNS sorguları engellenmez, bu tür uygulamaları atlatmak çok kolaydır; kullanıcıların basitçe bilgisayarlarını başka bir, umumi, DNS sunucusu kullanmak üzere yapılandırması gerekir. Bu yüzden güvenlik duvarını ya da ACL’i (Access Control List - Erişim Kontrol Listesi) içerideki istemcilerden hiçbirinin dışarıdaki DNS sunucusunu kullanamayacağı şeklinde ayarlamak çok önemlidir.
Uygulama
Aşağıda Kısıtlama Portalı yazılımlarından biri olan PfSense’in bir uygulaması yer almaktadır.
PfSense kurulu olan makinenin LAN (Local Area Network - Yerel Ağ Bağlantısı) arayüzüne atanmış olan IP adresi tarayıcının adres çubuğuna girerek PfSense yönetim sayfasına bağlanılır. "Ana sayfadan Services (Servisler) -> Captive portal” yoluyla PfSense Kısıtlama Portalı yönetim sayfası açılmış olur.
Interface (Arayüz): Bu kısımda Kısıtlama Portalı’nın çalışacağı arayüz seçilir. (LAN vs.)
Maximum concurrent connections (Azami eş zamanlı bağlantı): Bu seçenek aynı anda kaç kişinin portal sayfasını açabileceğini belirler.
Idle timeout (Boşta zaman aşımı): Belirtilen süre kadar eylemsizlik sonunda istemcilerin bağlantısı kesilir. Gerekirse anında tekrar bağlanabilirler.
Hard timeout (Katı zaman aşımı): Belirtilen süre sonunda faaliyetten bağımsız olarak istemcilerin bağlantısı kesilir. Gerekirse anında tekrar bağlanabilirler. (idle timeout belirlenmemişse kullanımı tavsiye edilmez.)
Logout popup window (Oturum kapama açılır penceresi): Etkinleştirildiğinde ve kullanıcılara Captive portal üzerinden izin verildiğinde açılır pencere gözükür.
Redirection URL (Yeniden yönlendirme URL’i): Eğer bu kutucuğa bir URL girilirse, istemciler doğrulandıktan sonra ulaşmaya çalıştıkları yerine buna yönlenirler.
Concurrent user logins (Eşzamanlı kullanıcı girişi): Koyu yazılmış yazının yanındaki kutucuk işaretlenirse bir kullanıcının birden fazla bilgisayardan giriş yapması engellenmiş olur. Girilen son bilgisayar dışındaki bilgisayarlar sistemden atılır.
MAC filtering (MAC filtreleme): Bu seçenek seçilirse kullanıcının MAC adresiinin sabit kaldığını kontrol etmek için bir girişimde bulunulmaz. Bu seçenek istemcinin MAC adresinin saptanamadığı durumlarda gereklidir. Etkinleştirildiğinde "RADIUS MAC authentication" seçeneği kullanılamaz.
Per-user bandwith restriction (kişi başına bant genişliği kısıtlaması): Bu kısımdaki download (indirme) ve upload (yükleme) kutucuklarına istenilen değerler girilerek belirtilen kısıtlama sağlanmış olur.
HTTPS login (HTTPS girişi): Enable HTTPS login (HTTPS girişini etkinleştir) kutucuğu işaretlenirse kullanıcı adı ve şifre takipçilerden korumak için HTTPS bağlantısı üzerinden aktarılır.
HTTPS server name (HTTPS sunucu adı): Buraya yazılan sunucu adı sertifikadaki Common Name (Ortak İsim) ile uyuşmalıdır.
HTTPS certificate (HTTPS sertifikası): Bu alana X.509 PEM biçimindeki onaylı sertifika yapıştırılır.
HTTPS private key (HTTPS özel anahtar): Bu alana RSA özel anahtarı PEM biçimince yapıştırılır.
Portal page contents (Portal sayfası içeriği): Bu alana portal sayfası için HTML dosyası yüklenir (Mevcut olanı korumak için boş bırakılır). Gönder tuşu ve name="redirurl" ve value="$PORTAL_REDIRURL$" içeren gizli kısım bulunan form içerdiğinden emin olunmalıdır.
Authentication error page contents (Kimlik doğrulama hatası sayfası içeriği): Kimlik doğrulama hatası alındığında bu alana yüklenen HTML dosyasının içeriği görüntülenir.
İstenilen kısımlar doldurulduktan sonra sayfa sonunda yer alan Save (Kaydet) tuşuna basılarak yapılandırma tamamlanmış olur.