FortiGate SSL VPN Kurulumu – v5.2

Merhabalar,

Bu yazımızda FortiGate ile SSL Vpn yapılandırmasından bahsediyor olacağız. Çalışmamızı, yazımızı hazırladığımız tarihte en güncel sürüm olan v5.2.7 ile gerçekleştireceğiz. Konuyu detaylı bir şekilde ele alacağımız için biraz uzun bir yazı olacak ama umarım anlaşılır bir makale olur. Anlatımımız aşağıdaki başlıklardan oluşacak;

  • Cihaz arayüzü ve vpn ile ilgili bilgilendirmeler
  • Adres oluşturma mantığı ve dikkat edilmesi gereken noktalar
  • Kullanıcı hesabı oluşturma ve bir gruba ekleme
  • SSL Vpn içerisinde kullanılan terimlerin açıklanması
  • Portal ekranı içeriği ve yapılandırılması
  • VPN Settings ekranı ayarları
  • VPN Policy oluşturma
  • Route tanımlamaları
  • Test işlemleri

Ön Gereksinimler;

FortiGate Firewall Cihazı
FortiClient Yazılımı (SSL Bağlantısı İçin)

Önce tanım ile başlayalım;

SSL Vpn, gönderilen ve alınan verilerin şifrelenmesini sağlayarak yetkisiz kişiler tarafından ele geçirilmesini engelleyen ve layer 7 seviyesinde çalışan güvenli bir bağlantı protokolüdür. Bu bağlantı yöntemi ile internet olan her yerden istediğiniz bir ağa bağlanmanız ve bizzat oradaymış gibi çalışmanız mümkündür. Lisans maliyeti gerektirmemesi, kullanım kolaylığı ve güvenlik seçenekleri sebebiyle çok tercih edilen bir yöntemdir.

Üzerinde çalışma yapacağımız cihazın arayüzü ve versiyon bilgileri aşağıdaki ekran görüntüsünde yer almaktadır.

Cihazımızda hali hazırda kullanılan iki adet wan interface ve bir adet local interface var. Bizim vpn ile ulaşmak istediğimiz network 10.1.179.0/24 network’ü olacak.

Benim bir sunucum var ve sunucuma dışarıdan port yönlendirmesi ile erişim vermek istemiyorum. Bu sebeple erişimimi vpn bağlantısı ile gerçekleştireceğim. Sunucumun ip adresi 10.1.179.100 olarak tanımlandı. Bu ip adresine ekran görüntüsünde görülebileceği üzere firewall üzerinden ping ile erişim sağlayabiliyorum.

Ancak arada henüz bir bağlantı bulunmadığından, kendi bilgisayarımdan bu ip adresine ulaşamıyorum.

Yine kendi bilgisayarım üzerinden aynı adrese doğru traceroute ile kontrol gerçekleştirdiğimde, sistemim ip’nin nerede olduğunu bilmediğinden dolayı adresi internette arıyor ve bir süre sonra ise adres bulunamadığından dolayı istek zaman aşımına uğruyor.

Yapılandıracağımız cihaza dönecek olursak, cihazımızın ssl vpn ile ilgili bölümlerinden portal kısmının daha önce hiç yapılandırılmadığı için referans değerlerinin sıfır olduğunu görüyoruz.

Aynı şekilde “settings” ekranı da yine yapılandırılmamış olarak geliyor.

Cihazın ilgili kısımlarının henüz yapılandırılmadığını gördükten sonra artık çalışmamıza başlayabiliriz. Öncelikle addresses ekranından “ssl vpn” ve “local network” adres bilgilerini girmemiz gerekiyor. Burada dikkat etmemiz gereken nokta, ssl vpn için tanımlayacağımız adres bir aralık (range) olmalıdır. Dışarıdan bağlantı sağlayacak olan kullanıcıları, connect olduklarında istediğimiz network’e yönlendirebilmemiz için bu aralıktan (range) bir ip aldırmamız gerekir. SSL Vpn adres aralığı cihaz üzerinde varsayılan olarak geliyor. Ama eğer istersek ilgili ip aralığını değiştirebilir veya yenisini ekleyebiliriz. Biz örneğimizde varsayılan değerler ile devam ediyoruz. Local network ise manuel olarak tanımlamamız gereken bir alandır. Tanımı yaparken kullanıcıları bir ip ye mi yoksa bloğa mı yönlendireceğimiz konusunda önceden kararımızı vermiş olmamız gerekir. Örneğimizde bir blok tanımı ile devam ediyoruz.

Şimdi SSL Vpn ile bağlantı sağlarken kullanmak için hesap oluşturmamız gerekiyor. İlgili bilgileri bu ekranda giriyoruz. User Definition menüsünden üstte yer alan Create New butonuna basıyoruz.

Kullanıcı tipi olarak Local User seçeneği ile devam ediyoruz.

Bir kullanıcı ismi ve şifre belirliyoruz.

Email Address kısmı opsiyonel olduğundan doldurulmadan geçilebilir.

Son aşamada Enable kutucuğu işaretli kalacak şekilde Create butonuna basıyoruz ve bu adımı tamamlıyoruz.

Şimdi bir gup oluşturup “HakanS” kullanıcısını bu gruba dahil edeceğiz. Aslında v5.0 dan itibaren grup oluşturma zorunluluğu kaldırıldı. Ancak birden fazla kullanıcı ile yapılandırılan vpn tanımlamalarında kolaylık sağlaması açısından grup ile devam etmek daha sağlıklı olacaktır. User Group menüsüne giriyoruz. Daha önceden oluşturmuş olduğumuz kullanıcıyı bu gruba ekleyeceğiz. Üstte yer alan Create New butonu ile ilerliyoruz.

Oluşturacağımız gruba “SSL_Group” ismini veriyoruz. Type kısmı “Firewall” kalıyor. Daha sonra Members ekranından “HakanS” kullanıcısını seçiyoruz ve OK butonuna basıp kaydediyoruz.

Grubumuzun oluştuğunu ve henüz bir policy içerisinde kullanmadığımızdan referans değerinin sıfır olduğunu görüyoruz. Artık bir sonraki aşamaya geçebiliriz.

VPNSSLPortals altından full-access bölümünü editliyoruz.

Açılan sayfa içerisinde yer alan maddelere biraz değinelim;

Enable Tunnel Mode, işaretlenmesi durumunda bağlantı sağlayacak kullanıcılara IPv4 adresleri tahsis edilir. Böylece client’ları istediğimiz network’e yönlendirebiliriz. Kısaca vpn yapmaktaki temel amaç olması sebebiyle açık olması gerekmektedir.

Enable Split Tunneling, varsayılan olarak işaretli gelmektedir. Kullanıcıların ssl vpn trafiği ile internet trafiğini ayırt etmek için kullanılır. Bağlantı yapan kullanıcıların bağlantıyı sağladıklarında, kendi üzerlerinden internete çıkmaya devam etmelerini sağlar. Eğer bu kutucuktaki işaret kaldırılırsa vpn ile bağlanan kullanıcılar, bağlandıkları yer üzerinden internete çıkmaya çalışacaklardır. Bu durumda ayrıca policy tanımlaması yapılması gerekmektedir.

Routing Address, vpn ile bağlanan kullanıcıların erişmesini istediğimiz network’tür. Local bir blok seçilebileceği gibi tek bir ip adresi de seçilebilir.

Client Options, burası forticlient uygulamasının nasıl bir davranış sergileyeceğini belirlediğimiz bölümdür. Default olarak kapalı gelmektedir. Eğer bu bölümde yer alan kutucuklar işaretlenir ise client yazılımı içerisinde aktif olarak görünmeye başlayacaklardır. Burada yanlış bir tercih ile güvenlik açığına sebebiyet verilmemesine dikkat edilmesi gerekmektedir.

  • Save Password: Bu seçeneğin aktifleştirilmesi durumunda client yazılım kullanıcı şifresini kaydededecek ve bir sonraki oturum açılışında şifreyi otomatik olarak getirecektir.
  • Auto Connect: Bu seçenek, işletim sisteminin bir sonraki açılışında forticlient yazılımı eğer otomatik başlayacak şekilde ayarlanmışsa vpn bağlantısını kendiliğinden gerçekleştirmeye çalışacağı anlamına gelir.
  • Always Up (Keep Alive): Bu seçenek aktifleştirildiğinde forticlient yazılımının bağlantı ekranı altında bir kutucuk belirir ve işaretlenmesi durumunda oturum belirli bir süre boşta dahi kalsa bağlantıyı düşürmez.

Enable Web Mode, vpn bağlantısının web mode erişim ekranının seçeneklerini belirlediğimiz bölümdür. Varsayılan olarak tüm seçenekler aktif halde gelmektedir. Arayüze göre değişiklikler gerçekleştirilebilir

Burada “Routing Address” içerisinden daha önceden belirlemiş olduğumuz adres bloğumuzu seçelim ve OK butonuna basarak kaydedelim.

VPNSSLSettings bölümüne geliyoruz. Sağ tarafta henüz tüm ayarların yapılandırılmadığını belirten SSL-VPN settings are not fully configured yazısına tıklıyoruz. Bu yazıya tıkladığımızda alt kısımda bazı bölümlerin sarı renk olduğunu görebilirsiniz. Bu bölümler bizim yapılandırmamız gereken bölümler.

Listen on Interface(s): Kullanıcıların hangi internet bacağımızdan bağlanacaklarını belirttiğimiz bölüm. Wan1 seçiyoruz.

Listen on Port: Varsayılan olarak “443” geliyor ve eğer cihazın https portunu daha önceden değiştirmediyseniz şekilde görüldüğü üzere bir çakışma olduğu uyarısı geliyor. Biz eski alışkanlıklarımızdan vazgeçmiyoruz ve her ihtimale karşı “443” portu yerine “10443” portunu kullanıyoruz. Burada güvenlik gerekçesi ile farklı portlar da kullanabilirsiniz.

Restrict Access: Vpn ile bağlanacak olan kullanıcıların hangi ağlardan bağlanabileceklerini kısıtlayabiliriz. Biz varsayılan seçenek olan “any host” ile devam ediyoruz.

Idle Logout: Kullanıcıların belirli bir süre boşta kalmaları durumunda otomatik olarak logout olmalarını sağladığımız kısım. Bu süre varsayılan olarak 5dk dır.

Server Certificate: Vpn bağlantıları sırasında kullandıracağımız sertifikayı seçtiğimi bölüm. Varsayılan olarak fortinet sertifikası gelmektedir.

Require Client Certificate: Güvenliği daha fazla artırmak ve kimlik doğrulaması sırasında sertifikanın client tarafında da yüklü olmasını zorunlu hale getirilmesini istiyorsanız bu kutucuğu işaretleyebilirsiniz. Bu kutucuğu işaretlemeniz durumunda ilgili sertifikanın ya public ca sertifikası olması lazım ya da kullanıcıların trusted root alanında sertifikanın yüklü olması lazım. Aksi takdirde bağlantı sağlayamazsınız.

Address Range: Kullanıcıların ssl vpn ile bağlandıklarında otomatik ip alabilmeleri için seçilmesi gereken aralık (range).

Dns Server: Zorunlu bir seçenek değildir. İstersek bağlantı sağlayan kullanıcılara sistem dns’leri haricinde farklı dns ip leri kullandırabiliriz.

Specify WINS Server: Sistemimizde bir wins server var ise buradan seçebiliriz.

Allow Endpoint Registration: Forticlient yazılımının bu cihaza register edilmesine izin veren seçenektir.

Sayfanın en altında yer alan Authentication/Portal Mapping alanında daha önceden oluşturmuş olduğumuz grupları ve buna karşılık portal bilgilerini gireceğiz.

Bunun için “Create New” butonuna basıyoruz ve grup bilgisi ile portal bilgisini seçiyoruz.

Aynı işlemi bundan sonra oluşturulacak olan grupların varsayılan olarak hangi portala dahil olacağını belirlemek için bir kez daha yapıyoruz. All Other Users/Groups seçeneğini editliyoruz. Güvenlik gerekçesi ile yalnızca web-access erişimi veriyoruz.

Apply butonuna basıyoruz ve “default sertifika” kullandığımız ile ilgili çıkan ekran uyarısını Yes ile geçiyoruz.

Şimdi bazı ayarlarımızı tamamladık. Artık sayfanın üstünde yer alan uyarı mesajı değişti. Mesajda henüz işlemlerimizin tamamlanmadığı ve policy oluşturmamız gerektiği belirtiliyor. Uyarı mesajına tıklayarak devam edelim.

Mesaja tıkladığımızda bizi direk olarak policy ekranına yönlendiriyor.

Önceden versiyon v4 ile bu ekranda hem “Wan1 to Internal” hem de “SSL to Internal” şeklinde iki ayrı policy tanımlamamız gerekiyordu. Artık yalnızca “SSL to Internal” ile tanımlamamızı yapabileceğiz. Incoming Interface alanından “ssl.root (SSL VPN interface)” seçeneğini seçiyoruz. Source Address alanından, daha önceden tanımlı gelen SSL Adres aralığımızı seçiyoruz. Source User(s) alanından ise oluşturduğumuz grubu seçeceğiz. Burada daha önce de değindiğimiz gibi istersek sadece tek bir kullanıcıyı veya çoklu kullanıcılarımızı seçebiliriz. Kolaylık olması açısından oluşturduğumuz grubu seçerek devam ediyoruz. Outgoing Interface ve Destination Address alanlarından ilgili local seçeneklerimi belirledikten sonra zaman ve servis kısıtı yapmadan policy’yi tamamlıyorum.

OK butonuna basıp kaydet dediğimizde karşımıza yine bir uyarı mesajı çıkıyor. Mesaj, sertifikanın dahili bir sertifika olduğunu ve kullanıcıların bağlantı sırasında karşılarına bir uyarı ekranı çıkacağını belirtiyor. İstersek public bir sertifika satın alarak kullanabiliriz. Yes seçeneği ile ilerliyoruz.

Şimdi yine otomatik olarak bir önceki ekrana geri döndük. Artık sayfanın üstünde bir uyarı yazısı kalmadığını görüyoruz. Ama işlemlerimiz henüz bitmedi. Önce oluşturmuş olduğumuz policy’nin görünümüne bir bakalım.

Artık policy içerisine girmeye gerek kalmadan tüm detayları görebilmekteyiz.

Henüz işlemlerimizin bitmediğini söylemiştik. Artık son aşamaya geldik. SSL Network’ten Internal Network’e bir policy tanımı gerçekleştirdik ve bu policy’i bir route ile desteklememiz gerekiyor. RouterStaticStatic Routes ekranına geliyoruz. Bende burada daha önceden oluşturduğum tanımlamalar olduğundan ekran dolu geliyor. Sizde yapılandırmanıza göre bu ekran boş gelebilir. Sayfanın sol üstünde yer alan “Create New” seçeneği ile devam edelim.

Route oluşturmakta ki temel maksadımız, SSL Vpn ile bağlanan client isteklerine cevap verebilmektir. Cevap verebilmek için ise bu network’ün hangi interface üzerinde olduğunu belirtmemiz gerekiyor. Bu sebeple Destination IP/Mask alanına SSL Vpn nework’ünü yazıyoruz. Device olarak ise “ssl.root” interface’ini seçip kaydediyoruz. Artık buradaki sunucularımız “10.212.134” network’ünün kime ait olduğunu biliyorlar.

Yapılandırmamızı tamamladık. Şimdi test işlemlerine geçebiliriz. Bunun için bilgisayarımıza daha önceden yüklemiş olduğumuz “FortiClient” yazılımını çalıştıralım. Ben yazılımımda bağlantıya “SSL VPN TEST” ismini verdim.

Connect butonuna basarak bağlantımızı gerçekleştirelim.

Bağlantımız gerçekleşti ve otomatik olarak “10.212.134.200” ip’sini aldım.

Şimdi ulaşmak istediğim “10.1.179.100” ip adresine tekrardan ping atmayı deniyorum ve bu sefer denemem başarılı oluyor.

Şimdi de tracert komutu ile “10.1.179.100” ip’sine nasıl ulaştığımıza bakalım. Gördüğünüz gibi önceden adresi tanımadığım için gateway’im olan “10.10.18.1” e doğru giden istekler şimdi öncelikle “10.212.134.200” e oradan da ulaşmak istediğim ip’ye gidiyor.

Yazının başında da belirttiğim gibi biraz uzun bir makale oldu ama ihtiyaçlarınızı karşılayacağını ümit ediyorum. Makalemizin sonuna geldik. Bir başka makalede görüşmek dileğiyle…

24 cevaplar
  1. murat
    murat says:

    merhaba

    bir sorunum var yardımcı olabilir misiniz
    fortinet client vpn ile bağlantı yapıyorum ancak internete çıkmıyor w7 x64 makine üzerinde çalıştırıyorum.

    saygılar

    Cevapla
    • Hakan Soylemez
      Hakan Soylemez says:

      Merhaba,

      Enable Split Tunneling işaretli değilse ve ssl root üzerinden wan interface’sine kural tanımı yapmadıysanız sorununuz bundan kaynaklanıyor olabilir. Kontrollerinizi bu şekilde gerçekleştirebilirsiniz. Çözüm olarak split tunneling’i aktif edebilir veya ssl root’tan wan’a policy tanımlayabilirsiniz.

      Cevapla
  2. murat
    murat says:

    merhaba
    cevap için teşekkürler. sistem çalışıyor bu seferde server ismini yazıyorum kabul etmiyor bağlanamıyorum ama server ip sini yazınca bağlanıyorum. bunu nasıl çözebilirim.
    saygılarımla…

    Cevapla
    • Hakan Soylemez
      Hakan Soylemez says:

      Murat Bey, eğer server ismini kabul etmemekten kastınız ssl vpn ile bağlandıktan sonra sunucularınıza isim ile erişememek ise bu gayet normal bir durumdur. Her ne kadar ssl vpn bağlantısını kullanarak sunucularınız ile aynı ortamdaymış gibi çalışsanız da aslında farklı bir local ip bloğundasınız. Dolayısıyla local ortamınızda bulunan dns sunucu ile aynı blokta bulunmadığınızdan sunucu isimlerini çözemiyorsunuz. Bu duruma çözüm üretmek için uygulayabileceğiniz iki farklı seçenek var. Birincisi bilgisayarınızın “fortissl” ethernet bağdaştırıcısı içerisinde local dns sunucu (varsa active directory sunucunuz olabilir) ip adresinizi tanımlamak. İkinci seçenek ise yine kişisel bilgisayarınızın hosts dosyası içerisinde sunucu isimlerini ve karşılık ip adreslerini tanımlamak olabilir. Ben birinci seçeneği öneririm.

      Cevapla
  3. murat
    murat says:

    tekrar merhaba,

    sorunum belirttiğiniz gibi ikinci seçeneği uygulamak sureti ile çözülmüştür.

    saygılarımla…

    Cevapla
      • İrfan
        İrfan says:

        Hakan Bey öncelikle İlginiz için Teşekkür ederim,
        sunucularım 192.168.1.15 den 1.20 kadar 255.255.0.0 kullanıyorum internal bacağı lan1(yani varsayılan ağ geçidi 192.168.0.2/255.255.0.0
        dhcp de 192.168.1.1 den 1.200 kadar ,ip dağıtıyor ama sunucu ve bir cok cihaz elle ip verilmiş durumda

        Cevapla
    • Hakan Soylemez
      Hakan Soylemez says:

      İrfan Bey,

      Anladığım kadarıyla SSL VPN ile bağlantınızda sunucularınız ile aynı ip bloğunu kullanmışsınız. Bu önerilen bir yapı değildir. Üstelik sizin yaşadığınız gibi sorunlar yaşamanız gayet normaldir. Bu durumda, ssl vpn için farklı bir ip bloğu kullanıp route ve policy ler ile sunucu network’ünüze eriştirmeniz gerekir. Yazıda bu adımları paylaştım. Birebir ilerlemeye çalışırsanız bir sıkıntı ile karşılaşmayacağınızı düşünüyorum. Yine de yardıma ihtiyaç duyarsanız elimden geldiğince yardımcı olamaya çalışırım.

      Cevapla
    • Hakan Soylemez
      Hakan Soylemez says:

      Merhaba Alper Bey,

      Tunnel Mode altında yer alan routing address alanına da local adres grubunuzu girer misiniz? Bir de ssl vpn ile bağlantı sağladıktan sonra local networke doğru olan trace çıktınızı gönderebilir misiniz?

      Cevapla
  4. Ahmet
    Ahmet says:

    Merhaba Hakan Bey;

    Ben son ayarlarda yaptığınız 10.21.134.0 adresini neye göre verdiğinizi anlayamadım.
    Sizin local ip adresiniz mi yoksa server tarafındaki ip adresiniz mi?

    İlginiz için teşekkürler.

    Cevapla
    • Hakan Soylemez
      Hakan Soylemez says:

      Merhaba Ahmet Bey,

      10.212.134 ip bloğu ssl vpn ile bağlanan kullanıcılara dağıtmak için ayırdığım blok oluyor. Kullanıcılar bağlantı sağladıklarında bu bloktan ip alıyorlar ve ardından yazmış olduğum kurallar doğrultusunda sunucularıma bağlanıyorlar.

      Cevapla
  5. Hızır PENSE
    Hızır PENSE says:

    Hakan bey merhaba,

    Herşey ok, ssl vpn ile bağlanıyorum istediklerimi de yapıyorum, ancak şöyle birşey istiyorum yapamadım. SSL VPN ile bağlandıktan sonra local networkten aldığım ip numarası statik değil, statik bir ip nasıl alabilirim?

    Cevapla
    • Hakan Soylemez
      Hakan Soylemez says:

      Merhaba,

      Eğer böyle bir ihtiyacınız varsa, kendinize özel tek bir ip tanımı yapmalısınız. Örneğin, “create new address” diyerek “SSLVPN_TUNNEL_ADDR2” isimli “10.212.135.200” ip adresini oluşturabilirsiniz. Dikkat ederseniz burada range tanımı yapmadık. Tek bir ip oluşturduk. Daha sonra policy’lerden kendinizi bu ip’yi alacak şekilde yapılandırırsanız her seferinde bu ip adresini alabilirsiniz.

      Cevapla

Cevapla

Want to join the discussion?
Feel free to contribute!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir