Coslat 2FA Dökümantasyon

Coslat 2FA Dökümantasyon

24.5.2019

COSLAT 2FA DOKÜMANTASYON

SANAL MAKİNA COSLAT 2FA KURULUMU

Sanal makinanıza Coslat 2FA kurarken aşağıdaki minumun gereksinimlere göre makinenizi oluşturunuz.
İşlemci 2 Çekirdek
RAM 4GB
Disk 50 GB
Network İnterface 1 adet
İşletim sistemi tercihi FreeBSD 64 bit
Sanal makinanızı oluşturduktan sonra Coslat imaj dosyasını indirip sistemi bu imaj ile açtıktan sonra aşağıdaki adımlar ile kuruluma başlanır.
İlk olarak dağıtım bilgilendirmesi Accept ile kabul edilir.
Kurulum parolası ekranında BG-TEK ten almış olduğunuz parola girilir.
İnstall Coslat seçili durumdayken ok ile kurulum başlatılır.

Klavye dil seçeneği seçilerek kuruluma devam edilir.
Disk bölümlendirme kısmında farklı bir seçenek tercih edilmeyecekse Auto (UFS) ile devam edilir.
Kurulum bittikten sonra komut satırından bir işlem yapılmayacak ise No seçeneği ile kurulum tamamlanır.
Kurulum imajı sistemden çıkartılır. Ardından sistem yeniden başlatılır.
Sistem ilk açılışında interface tanımlanmasını isteyecektir. Interface isimleri listelenecek ve Vlan yapılandırması tercih edilip edilmeyeceği sorulacaktır.
Vlan yapılandırması tercih edilmeyecekse n seçeneği ile devam edilir. Vlan yapılandırması daha sonradan da yapılabilir. Tavsiye edilen sonradan yapmaktır.
Vlan tanımlamasından sonra WAN interface seçimi sorulacaktır. Valid interfaces are: altındaki interface isimlerinden WAN için ayarlanacak olan yazılır. Biz burada em0 ı kullandık.
Bir sonraki adımda bizden LAN intercafe ‘ini soracaktır.Birden fazla interface kullanmayacaksak bu adımda direk Enter ile geçiyoruz.
Yapılan seçimleri onaylayıp onaylamadığımız sorulacaktır. Bu adım içinde y deyip devam ediyoruz.
Sistem açılacak ve WAN interface otomatik ip alacaktır.

COSLAT 2FA KURULUM SONRASI YAPILANDIRMA İÇİN AYARLAR


Coslat 2FA yapılandırması için ilk olarak sistemi lisanslamak ve servisin çalışması için veritabanı (Mysql) ayarlarının yapılması gerekmektedir.
Coslat 2FA kurulumundan sonra varsayılan olarak tek arabirim üzerinden çalışmaktadır. Dilerseniz farklı ağlar için birden fazla arabirim ile de çalışabilmektedir.
Kurulum sırasında Coslat 2FA varsayılan olarak DHCP den ip almaktadır.

Consol üzerinde almış olduğu ip adresi gözükmektedir.

Almış olduğu ip adresi ile web üzerinden arayüze erişip lisanslama işleminden sonra ip adresini değiştirebilirsiniz.
Web arayüzü varsayılan kullanıcı adı admin parolası da coslat tır.
Oturum açtıktan sonra ilk karşınıza gelen ekran Lisans bilgileri’nin girildiği form alanıdır.  Bu alanda,
Company Name : Firma bilgisi
Company Authorized: Firma yetkili
License Message : İşaretli
bilgilerini girdikten sonra Son Kullanıcı Lisans sözleşmesini onaylayıp kaydetmeniz gerekiyor. Lisanslama işlemi için BG-TEK ile görüşmeniz gerekmektedir.

Coslat 2FA IP Adresi Ayarı

Lisanslama işleminden sonra ip adresi değişikliği için
Interfaces -> WAN
içerisinden yapabilirsiniz. Burada dikkat edilmesi gereken nokta Static ip adresi verirken gateway tanımlamasını atlamamak ve bu ip adresi ile VPN sunucusu arasında iletişimin olmasına dikkat etmek gerekmektedir.

IP adresi bilgilerini,
IPv4 Address: ip adresi (192.168.19.155/24) (alt ağ maskesini ayarlamayı unutmayın)
IPv4 Upstream gateway: Ağ geçidi (192.168.19.254)
şeklinde giriniz.

SSH Aktif edilmesi

Lisanslama ve ip adresi tanımlamadan sonra Mysql ayarlarını yapabilmek için ssh bağlantısının aktif edilmesi gerekmektedir.
Bunun için;
System -> Advanced menüsüne gelip
Secure Shell bölümünde
Enable Secure Shell: işaretli
ayarı ile ssh bağlantısını aktif ediyoruz.  Varsayılan port numarası 22’dir. İsterseniz buradan port numarasını değiştirebilirsiniz.



Ssh bağlantısı aktif edildikten sonra bir ssh client ile (örneğin Putty) sisteme root kullanıcısı ile bağlanıyoruz. (Sistemden var olan admin kullanıcısı  ile aynı şifreye sahiptir.)

Ssh ile bağlandıktan sonra ilk olarak shell parametresi ile komut satırına düşmeniz gerekmektedir.

MySQL Kurulumu

Daha sonra Mysql’in aktif edilmesi için aşağıdaki dosya çalıştırılmalıdır.
Dikkat! Burada veritabanın şifresini belirlemek için komutu çalıştırmadan önce ee ile dosya içerisine girip pasword alını değiştirilmelidir.  Varsayılan veri tabanı şifresi coslat’tır.
# ee /var/coslat/smsotp/setup_mysql.sh
editörden ESC ile çıkabilirsiniz. (şifre değişiminden sonra kaydetmeyi unutmayınız)
Veritabanı şifresini de belirledikten sonra aşağıdaki komut ile veritabanını aktif edebilirsiniz.
# /var/coslat/smsotp/setup_mysql.sh
komutun çıktısı aşağıdaki gibi olacaktır.

COSLAT 2FA YAPILANDIRMASI

Veritabanın Ayarlanması

Mysql kurulumundan sonra, servislerden Freeradius’un bu veritabanını kullanabilmesi için ayarların yapılması gerekmektedir.
Bunun için;
Services -> FreeRadius açıyoruz.

SQL sekmesine geçiyoruz.


SQL’i aktif etmek ve Kimlik doğrulama, yetkilendirme ve kimlik doğrulama sonrası kayıt için aşağıdaki ayarları yapıyoruz.
Enable SQL Support: işaretli
Authorization: Enable
Accounting: Enable
Post-Auth: Enable
Daha sonra kurulum sonrası yapılandırma aşamasında, komut satırından ayarlarını yaptığımız ( /var/coslat/smsotp/setup_mysql.sh betiği ile ) Mysql bilgilerini diğer bilgiler sabit kalarak aşağıdaki gibi giriyoruz.
Database Type:  MySQL
Database Username: root
Database Password : coslat ( eğer mysql kurulumunda değiştirdiyseniz değiştirmiş olduğunuz şifreyi giriniz.)
Bu bilgileri girdikten sonra sayfa altına inip kaydet diyoruz. Bu sayede MySql Veritabanını kullanmış oluyoruz.

Interfaces Seçimi

MySql işlemlerinden sonra Sistemin gelen isteklere cevap vereceği interfaces oluşturmamız gerekiyor. Bu noktada Authentication ve Accounting  için 2 ekleme yapmamız gerekiyor.1812 portunu Authentication ve Accounting için ise 1813 portunu kullanıyoruz.
Bunun için;
Interfaces ->  +Add butonunu tıklıyoruz.
Interface IP Address : *  (veya istekleirn kabul edileceği ip adesini belirtiyoruz.  tüm interfaceler için tercih edilecekse * dememiz yeterli olacaktır.)
Port: 1812
Interface Type:  Authentication
Interfaces ->  +Add butonunu tıklıyoruz.
Interface IP Address : *  (veya istekleirn kabul edileceği ip adesini belirtiyoruz.  tüm interfaceler için tercih edilecekse * dememiz yeterli olacaktır.)
Port: 1813
Interface Type:   Accounting
Bu eklemelerden sonra interfaces sekmesi aşağıdaki gibi görünecektir.

NAS/Client Eklenmesi

Interfacaces eklemesinden sonra VPN isteklerini karşılayacak ve Coslat 2FA ‘a kimlik doğrulaması için istekte bulunacak olan VPN sunucusunu (Firewall,NAS, VPN Server gibi) NAS/Client  olarak eklememiz gerekmektedir.
Bunun için;
NAS/Client -> +Add butonunu tıklıyoruz.
Client IP Address:  VPN sunucu ip adresi (192.168.19.254)
Client Shortname: VPN sunucusu için tanımlayıcı bir isim
Client Shared Secret: VPN sunucu ile Coslat 2FA arasında iletişimin sağlanması için gerekli password alanıdır.(coslat) (Bu Secret aynı zamanda VPN server tarafında da tanımlanacaktır. )

İkincil Doğrulama Yöntemi Seçimi (SMS / Google Authenticator)

İkincil doğrulama yöntemi seçimi için;
Auth Type sekmesine geliyoruz.
Radius Auth Type: İkincil kimlik doğrulama yöntemi seçimini yapıyoruz.

SMS Ayarları

Kullanıcılara SMS gönderebilmek için sağlayıcı ayarlarının yapılması gerekmektedir.
Bunun için;
SMS Setting sekmesine geçiyoruz.
SMS Provider Name: Bizim için açıklayıcı isimdir.
Select SMS Provider: Kullandığınız SMS sağlayıcı sistemde var ise buradan seçip Import SMS Service butonu ile ekleyebilirsiniz.

SMS Request: Kullandığınız servis sağlayıcı listede yoksa, servis sağlayıcı API bilgisini eklenir.
(Bu konuda BG-TEK destek ekibi ile iletişime geçip API konusunda yardım alabilirsiniz.)
SMS Username: SMS sağlayıcı kullanıcı adı (sağlayıcı tarafından verilir)
SMS Password: SMS sağlayıcı parolası(sağlayıcı tarafından verilir)
Diğer bilgiler SMS sağlayıcıya göre değişkenlik göstermektedir.

Yerel Kullanıcı Tanımlaması

Veritabanı, interface ayarları ve doğrulama yöntemi ayarlarımız yaptıktan sonra Coslat 2FA yerel kullanıcılar ile kullanıma hazırdır.  (Google Authenticator aşağıda anlatılmıştır.)
Kullanıcı tanımlaması için;
Users ->  +Add  butonuna tıklıyoruz.

Username : Kullanıcı adı
Password: Parola
bilgilerini giriyoruz.

SMS ile Doğrulama

SMS ile doğrulama için Auth Type -> SMS seçeneğini seçiyoruz.
Eklediğimiz kullanıcılara cep telefonu tanımlamasını yapabilmek için;
User Phones -> +Add butonunu tıklıyoruz.
Username: Daha önce açılmış kullanıcı adı
User GSM No: Kullanıcının cep telefonu

Google Authenticator ile doğrulama

Google Authenticator ile doğrulama yapabilmek için Auth Type kısmından Google Authenticator seçeneğini seçiyoruz.
Daha sonra kullanıcılar kullandıkları Authenticator uygulamasına kod eklemek için kullanıcıların aşağıdaki linkten giriş yaparak QR kodu tanıtmaları gerekmektedir.
Dikkat: Bu linke kullanıcıların erişimi için gerekli erişim ayarlarını kendi yapınızda yapınız.
https://….ipadresi/api/radius_get_qrcode.php

Kullanıcı adı ve parolasını girdikten sonra kendilerine özel oluşturulan QR kod ekranı gelecektir.
QR kod eklenmesinden sonra uygulamada Coslat 2FA olarak gözükecektir.
Dikkat: Kullanıcı bir defa kodu aldıktan sonra tekrar alamamasıdır. Bunun için kullanıcının silinip tekrar oluşturulması gerekmektedir.

QR kod almış kullanıcılar listesi Google Auth Users sekmesinde gözükmektedir.

LDAP Yapılandırması

Ldap’tan kimlik doğrulaması aktif etmek için LDAP sekmesine geliyoruz.
LDAP Authorization Support: İşaretli
LDAP Authentication Support: İşsaretli

General Configuration Server 1 kısmında;
Server Address: Ldap sunucu ip adresi (192.168.19.200)
Server Port: 389 Ldap sunucu portu
Identity:Ldap bağlanmak için kullanıcı adı (administrator@coslat.local)
Password:Ldap’a bağlanmak için kullanıcı parolası
Base DN: Kullanıcıların aranacağı dizindir ( dc=coslat,dc=local)
NOT: Sadece belirli OU içerisinden grup veya kullanıcılar alınacaksa buraya yazılabilir. Ama gruplara göre izin verilecekse Users Groups’lar kullanılmalıdır.
Filter: Ldap’ta kullanıcıları aramak için belirtilir. (samaccountname=%{%{Stripped-User-Name}:-%{User-Name}})
NOT: Belirli bir gruba üye kullanıcıların bağlanması isteniyorsa burada belirtilmelidir.

Base Filter:  (objectclass=radiusprofile)
Get Phone Filter: Cep telefonları AD ‘de ise telefonları buradan çekmek için kullanılır. (&(objectcategory=person)(objectclass=user))

Son olarak Miscellaneous Configuration - Server 1 kısmında
Active Directory Compatibility: Enable

Ayarları yaptıktan sonra Save butonunu tıklıyoruz.

LDAP  SMS ile doğrulama

Ldap ile doğrulamadan sonra kullanıcılara telefon tanımlaması yapmak gerekmektedir. Kullanıcıların telefonları AD de tanımlı değilse el ile eklemek gerekmektedir.

Kullanıcı telefonlarını el ile eklemek için;

Users Phone -> +Add tıklanır.
Username: Kullanıcının AD de kullanıcı adı girilir.
User Phone: Kullanıcının cep telefonu girilir.

Kullanıcı Telefonlarının Ldap’tan çekilmesi için;

Kullanıcı telefonlarının çekilmesi için grup seçimi ayrına Users Groups sekmesinden geliyoruz.
Burada hangi gruba üye kullanıcıları çekmek istiyorsak,
Base DN: Ldap’tan hangi OU içerisindeki grupların alınacağı belirtilir. ( dc=coslat,dc=local)
Sync Ldap Group butonu tıklanarak Ldap ta Base Dn içerisinde olan grup listesi çekilir.
LDAP Groups : Hangi gruba üye kullanıcıların telefonunun çekileceği belirtilir.
Not allowed groups ta seçip
>>Move to “Allows 2fa group” list butonu ile taşıyoruz.
Get Fortigate Groups: Fortigate ile entegrasyon var ve bu gruplara göre firewall kuralları yapılandırılacak ise işaretlenmelidir.

User Phones -> Sync Ldap ile seçilen grupların telefonları çekilir.

LDAP  Google Authenticator ile doğrulama

Google Authenticator ile doğrulama adımları aynen yapılır.


ÖRNEK VPN SUNUCU YAPILANDIRMASI

Coslat 2FA ile Fortigate SSL VPN Entegrasyonu


Radius Server eklenmesi

Fortigate SSL VPN de two factor authentication (2FA) aktif etmek için Coslat’ı RADIUS Sunucu olarak ekliyoruz.
Bunun için;
User&Device -> RADIUS Servers -> Create New butonuna tıklıyoruz.

Name: Açıklayıcı isim (Coslat)
Primary Server IP/Name: Coslat 2FA ip adresi
Primary Server Secret: coslat  ( Coslat 2FA da NAS/Client eklerken tanımlamış olduğunuz Client Shared Secret ‘ı giriyoruz.)
Ayarları kontrol etmek için Test Connectivity tıklıyoruz.
User : Coslat 2FA üzerinde açmış olduğumuz kullanıcı adı
Password: Coslat 2FA daki kullanıcının parolası
Test butonuna tıklıyoruz.


Aşağıdaki sonucu aldıysak ayarlarımız doğru ve iletişim sağlanmış demektir.

User Grup Eklenmesi

Gerekli izinleri tanımlamak için SSL VPN kullanıcı grubu ekliyoruz.
User&Device -> User Groups -> Create New tıklıyoruz.
Name: Tanımlayıcı isim (Coslat_SSL_Group)
Type: Firewall
Remote Groups:  Burada Create New  tıklıyoruz
Add Group Match kısmında bu gruba dahil kullanıcıların hangi doğrulama sunucusundan geleceğinin seçimini yapıyoruz.
(NOT : Uzak sunucu ile birlikte sunucudan bir grup bilgisi gelecek ise burada seçebiliriz. Coslat’ ta Users sekmesinde + Users Attribute ile kullanıcılara özel gruplar atayabilir ve bu grupları burada eşleştirip fortigate üzerinde farklı kurallar uygulayabilirsiniz. )

Remote Server:  COSLAT 2FA yı seçip OK tıklıyoruz.

En son OK tıklıyoruz ve grubu ekliyoruz.

VPN de Grubun ayarlanması

Oluşturduğumuz grubu SSL-VPN ayarlarına ekliyoruz.

VPN -> SSL-VPN Settings tıklıyoruz.
Authentication/Portal Mapping -> Create New tıklıyoruz.

Users/Groups: Daha önce oluşturduğumuz Coslat_SSL_Group seçiyoruz.
Portal : Kullanmak istediğimiz portalı seçiyoruz.


Apply tıklayıp ayarları kaydediyoruz.

Firewall Policy Ayarları

VPN kullanıcılarının iç ağa ve internete erişimleri için firewall kuralları tanımlanması gerekmektedir.
Yerel Ağa Erişim için;
Policy&Objects -> IPv4 Policy -> Create New tıklıyoruz.
Name : Açıklayıcı isim (SSL_VPN_Users)
Incoming Interface: SSL-VPN Tunnel İnterface(ssl.root)
Outgoing Interface: LAN
Source: SSLVPN_TUNNEL_ADDR1 ve daha önce oluşturduğumuz grubu ekliyoruz. (Coslat_SSL_Group)
(NOT: Burada grup eklerken Add Group Match ile eşleştirdiğimiz farklı gruplar varsa farklı kurallar uygulayabiliriz.)
Destination Address: İç ağda ulaşılması istenen hedefi belirtiyoruz (all)
Service: Hangi portlardan erişim olacağını seçiyoruz. (ALL)


VPN kullanıcılarının İnternet Erişim için;
Policy&Objects -> IPv4 Policy -> Create New tıklıyoruz.
Name : Açıklayıcı isim (SSL_VPN_Users)
Incoming Interface: SSL-VPN Tunnel İnterface(ssl.root)
Outgoing Interface: WAN
Source: SSLVPN_TUNNEL_ADDR1 ve daha önce oluşturduğumuz grubu ekliyoruz. (Coslat_SSL_Group)
(NOT: Burada grup eklerken Add Group Match ile eşleştirdiğimiz farklı gruplar varsa farklı kurallar uygulayabiliriz.)
Destination Address: all
Service: Hangi portlardan erişim olacağını seçiyoruz. (ALL)