FORTI AUTHENTICATOR ve PULSE SECURE ile
PUSH NOTIFICATION ADIMLARI
Ortam:
FortiAuth Firmware Version: v6.0.3, build0058 (GA)
Pulse Secure Firmware Version: 9.1R7 (build 6567)
Client PC OS: Windows 10 Enterprise 10.0.18362 N/A Build 18362
Pulse Secure Client App Version: 9.1.7 (2525)
FortiToken Mobile Version: 4.7.1.0100
Android Version: 9
- Kullanıcı vpn client veya web tarayıcı üzerinden kullanıcı adı ve şifresi ile vpn sunucusuna erişim isteğinde bulunur.
- Erişim isteği Pulse Secure SSL VPN Sunucusuna gelir ve kullanıcı adı şifre doğrulaması için Active Directory sunucuya bilgiler sorulur.
- Active Directory sunucu üzerinde ilgili kullanıcı adı ve şifre bilgisi doğrulandıktan sonra oturum isteği tekrar Pulse Secure SSL VPN Sunucusuna yönlendirilir.
- Pulse Secure SSL VPN Sunucusu, kendisi üzerinde Secondary Server olarak tanımlı bulunan Radius Sunucusuna ikincil doğrulama adımını gerçekleştirmek üzere Access Challenge Radius attribute ü ile isteği yönlendirir.
- Radius sunucusu (FortiAuthenticator), Active Directory doğrulaması/grup eşleştirmesi işlemleri sonrasında ilgili kullanıcıya ait kendi üzerindeki konfigürasyona istinaden SMS, E-mail veya Token ile kullanıcıya bilgi döner.
Buradaki örneğimizde Forti Token Mobile kullandığımız için telefona Push Notification bilgisi gelir. Bu bilgi FortiAuthenticator ın 443 e NAT lanmış olan WAN IP adresi ile, eğer mobil cihaz Apple ise gateway.push.apple.com üzerinden; eğer mobil cihaz Android ise fcm.googleapis.com adresi üzerinden TLS ile şifreli bir şekilde Android veya Apple’ ın Push Notification Sunucularına gönderilir. - gateway.push.apple.com veya fcm.googleapis.com adresli Push Notification Sunucuları üzerinden istek mobil cihaza iletilir. Kullanıcı Push Notification isteğini Approve eder (onaylar).
Approve edilen (onaylanan) istek ile birlikte ilgili mobil cihaz direkt olarak FortiAuthenticator ile TLS üzerinden encyrpted bağlantı kurar ve cevabı aynı API üzerinden döner. - FortiAuthenticator’ ın Mobile Client üzerinden aldığı Approve (onay) bilgisine istinaden FortiAuthenticator, Pulse Secure SSL VPN Sunucusuna Radius Access-Accept mesajını gönderir. Böylece 2 Factor Authentication tamamlanır.
- Pulse Secure SSL VPN Sunucusu, ilgili kullanıcının SSL VPN isteğini onaylar.
- SSL VPN bağlantısı gerçekleşir.
Forti Authenticator Lisans Durumu:
İki adet FortiToken Mobile lisansı ücretsiz gelmektedir.
Pulse Secure SSLVPN Lisans Durumu:
Bu ürün de aynı şekilde 2 adet vpn clientı bağlayacak şekilde ücretsiz indirilebilmektedir.
Pulse Secure, SSLVPN hizmetine bağlanacak kullanıcının birinci kimlik doğrulamasını Active Directory sunucusuna sorarak kendisi yaptıktan sonra ikinci doğrulama işlemi için Radius protokolü üzerinden Forti Authenticator’a yönlendirecek. İkincil doğrulama işlemi için SMS, E-mail, Software/Hardware Token veya FortiToken Cloud kullanabiliriz. Ancak bu makalenin konusu Forti Token Mobile üzerinden telefonlara “Push Notification” göndermek olacağı için FortiToken Mobile uygulamasını kullanacağız.
Forti Authenticator Konfigürasyon Adımları
FortiAuthenticator ile AD Entegrasyonu:
Authenticaton > Remote Auth Server > LDAP bölümünden AD Sunucuları tanımlıyoruz.
Test için aşağıdaki bölümü kullanabiliriz:
SMTP Konfigürasyonu:
Ürün kendi SMTP sunucusu üzerinden de e-posta gönderebiliyor ancak spama düşmemek adına ve
kurumsal olması açısından System > Messaging > SMTP Servers bölümünden aşağıdaki gibi SMTP
sunucu yapılandırmasını gerçekleştiriyoruz.
AD üzerinde SMS, E-posta ve Mobile Token ile doğrulama kodu alacak kullanıcılar için ayrı ayrı OU lar oluşturuyoruz. Bu ayrı gruplar için ayrı Sync Rule ları oluşturacağız. Böylece yeni bir kullanıcı geldiğinde AD de ilgili gruba alacağız sadece.
User Synch Konfigürasyonu:
Authentication > User Management > Remote User Sync Rules bölümünden aşağıdaki gibi bir kural oluşturuyoruz.
LDAP Filter da Memberof= dan sonra belirttiğim OU içerisindeki herkes Forti Mobile Token hizmetini kullanacak diye belirtmiş oluyoruz. Her 1 saatte bir sync kuralımız çalışacacak.
User Management > Realm bölümünden AD sunucularımız ile ilişkilendireceğimiz Realm leri tanımlıyoruz. Bu işlemi bir sonraki adımda oluşturacağımız Radius Client üzerinde kullanacağız.
Radius Konfigürasyonu:
Authenticaton > Radius Service > Client bölümü içerisinden Pulse Secure için bir Radius Client oluşturuyoruz ve önceki adımda oluşturduğumuz Realm ları aşağıdaki gibi ekliyoruz.
Push Notification için FortiAuthenticator Interface Konfigürasyonu:
System > Administration > System Access bölümüne push notificationların gönderileceği WAN IP Adresini tanımlıyoruz. İlgili WAN IP adresinin 443 nolu portunu Firewall üzerinden aşağıda ikinci resimde bulunan port2 interface ine NAT lıyoruz. Bu interface in IOS ve Android tarafında iletişime geçeceği Push Notification Server FQDN lerini yukarıda paylaşmıştım.
Forti Authenticator da kullanıcı bölümü:
Biz yukarıdaki işlemleri tamamlarken aşağıdaki gibi bir e-posta geliyor tarafımıza. (AD User Email attribute ünü okuyarak alıyor e-posta adresimizi)
Playstore veya Apple Market üzerinden indirdiğimiz Forti Authenticator uygulaması ile barkodu okutarak veya el yordamı ile aktivasyon kodunu girerek bize tanımlı token ı kullanmaya başlıyoruz.
Pulse Secure SSLVPN Konfigürasyon Adımları
Authentication > Auth. Servers bölümü altında AD sunucumuzu tanımlıyoruz.
Authentication > Auth. Server bölümü altından Radius Server olarak Forti Authenticator ı ekliyoruz.
Yukarıdaki sayfanın alt kısmında Custom Radius Rules bölümü içerisinde aşağıdaki gibi Access Challenge mesajı için aksiyonu belirtiyoruz. Tüm clientlarımıza push notification ile kod gönderecek isek aşağıdaki gibi bir Radius Attribute ü içerisinden “push” bilgisini göndererek telefona notification gönderimini otomatik olarak tetikleyebiliriz. Bu işlemi yapmazsak “push” bilgisini Pulse Secure VPN Client üzerinden de aşağıdaki resimde olduğu şekilde gönderebiliriz.
User Realms bölümü altından bir Realm oluşturuyoruz. Additional Authention Server ı etkinleştiriyoruz ve ikincil doğrulama sunucusu olarak Radius (FortiAuth) sunucumuzu seçiyoruz.
Sonuç:
İşlemler bu kadar şimdi sıra test yaparak logları incelemede:
Pulse Secure üzerinde Kullanıcı Arabirimi üzerinden oturum açıyoruz. Pulse ile AD arasında oturum doğrulama işlemi tamamlandıktan sonra FortiAuth (secondary authentication server) Mobile Client Software üzerinden üretilen One Time Password ü yazarak login olabiliriz. Login olurken One Time Password yerine telefonumuza “Push Notification” da alabiliriz. Yukarıda da açıkladığım üzere “push” bilgisini otomatik göndermek istiyorsak bunu Radius Attribute leri ile yukarıdaki örnekte olduğu gibi yapabiliriz. Ama kullanıcılarımızın bazıları e-mail veya sms ile bazıları ise FortiToken Mobile ile login oluyorsa o zaman yukarıdaki radius attribute ü sms ve e-mail ile token ile login olan kullanıcılarda hata verecektir. Böyle bir durumda manuel olarak ilerlemek için Pulse Client üzerinde token olarak “push” yazıp telefonumuza notification alabiliriz.
Birincil doğrulama sonrası aşağıdaki ekran çıkıyor ve telefonumuzdaki FortiAuth uygulaması üzerinde otomatik olarak oluşturulan şifreyi giriyoruz.
Eğer push notification ile login olmak istiyorsak telefonumuza aşağıdaki gibi gelen bildirimi onaylamamız gerekiyor.
İşlem sonrası Pulse üzerinde User Access logları aşağıdaki gibi görünmektedir.
FortiAuth üzerindeki log çıktısı
FortiAuth üzerinde https://sunucuip/debug/radius/ log çıktısı:
https://FORTIAUTHENTICATORSUNUCUIP/debug/push-service-worker/ üzerinden de Push Notification Servisinin debug loglarına bakılabilir.
Not: Iphone üzerinde Push Notification için izin verilmesi gerekiyor.
https://kb.fortinet.com/kb/documentLink.do?externalID=FD45559
https://support.apple.com/en-us/HT201925
Emre BAŞTUĞ