Azure Point-to-Site Yapılandırması

Microsoft Azure ile kullanabildiğimiz VPN yöntemlerinden biri olan Point-to-Site VPN yönteminin kullanım senaryosunu inceleyeceğimiz bu yazıda içeriğe birazda Azure Active Directory authentication ve MFA (Multi Factor Authentication) özelliklerini aktif etmeyi ekleyerek daha faydalı bir senaryo olmasını hedefledim.

Point-to-Site (P2S) VPN yöntemini kullanıcıların bilgisayarlarından Azure ortamına doğru güvenli bir tünel oluşturarak, bu tünel aracılığı ile Azure veri merkezinde çalışan servislerine bağlanması senaryosunda kullanıyoruz. İstemciden, Azure veri merkezine doğru yapılan bu bağlantı sayesinde Azure ortamınız internete kapalı bir durumda çalışıyor olacaktır ve bu da zaten bizim bu yöntemi kullanmamızdaki asıl motivasyonumuz.

Tüm örnekleri hala gündemimizde olan pandemi dönemine göre vermeye alıştık ve ben de bu furyayı devam ettirenler kervanındayım.  Bu dönemde en çok evden güvenli bağlantı ve her yerden erişim konuları konuşuluyor. Buda aklımıza masaüstü sanallaştırma veya VPN konularını getiriyor. Bu konuya şu yüzden giriyoruz aslında. Point-to-Site VPN yöntemini yalnızca Azure üzerinde oluşturduğunuz size özel network alanına erişecekmişsiniz gibi düşünmek zorunda değiliz. Bu yöntemi MFA, loglama, kurum şifresi ile erişim, mevcut güvenlik duvarındaki performanslar gibi birçok nedenden dolayı kurum kendi veri merkezine erişim için de kullanabilir. Yani kullanıcı Azure veri merkezine güvenli bir şekilde bağlanır ve bu bağlantı üzerinden kendi veri merkezine de erişim sağlar. Böylelikle kurumun veri merkezine yalnızca Azure veri merkezinden istekler gelmiş olur.

Peki ne kazandırır bu yöntem?

Aşağıdaki görsel, yukarıda bahsettiğimiz senaryomuzu uçtan uca gösteriyor.

Yapılandırma Adımları

Yapılandırma adımlarına geçerken önce ortamımızdan bahsedelim. Azure üzerinde kullandığım bir ortamım var. Bu ortamdaki objelerin hepsi aynı resource group içerisinde.

Resource Group Name: RG-Personel-Usage

VNET Name: RG-Personel-Usage-vnet

Subnet: 10.0.0.0/24 (default) – 10.0.1.0/24 (GatewaySubnet)

Sanal Sunucu: 10.0.0.4 (Internal) – 51.x.x.229 (External)

İlk olarak bir Azure VPN Gateway  ‘e ihtiyacımız var. Bildiğiniz gibi Site-to-Site veya Point-to-Site hangisi olursa olsun VPN yapılandırması için öncelikle bir Azure VPN Gateway objesine ihtiyaç duyarsınız ve bu obje oluşturulurken VPN bağlantısının yapılacağı Virtual Network’ü ve bu VNET içerisindeki GatewaySubnetini sorar. Aşağıdaki görselden VPN Gateway oluştururken verdiğimiz bilgileri görebilirsiniz.

Oluşturulma süresi ortalama 30dk yı bulacaktır. Gateway objesinin genel bakış ekranında “Güncelleniyor” mesajının gittiğini görene kadar beklememiz gerekiyor. Zaten bu süreçte herhangi birşeye “Kaydet” dediğiniz anda “başka bir operasyon var” hatasını alacaksınız.

VPN Gateway tamamen oluştuktan sonra, Gateway objesinin içerisinde bulunan Point-to-Site konfigürasyon adımına geçebilirsiniz.

Gateway ‘i oluştururken hangi VNET ‘e bağlanacağını ve bu VNET’e hangi subnet üzerinden (GatewaySubnet) erişeceğini söyledik. Şimdide Point-to-Site konfigürasyon adımından, kullanıcıların nasıl bu Gateway ‘e geleceğini belirlememiz lazım.

Aşağıdaki görseldeki her bir satırı maddeler halinde yazmak istiyorum. Ancak burada önemli bir nokta var. Bu konfigürasyonu tamamlarken bir ID ‘ye ihtiyacınız olacak ve bunu alabilmek için bir linki ziyaret edeceğiz. Bunu nasıl aşacağımızı Point-to-Site konfigürasyonuna takip eden başlığa ekledim.

Address Pool: VNET içerisinde kullanılmayan ve kapsanmayan bir aralık olmalı. Bu IP adresini istemcilere dağıtacak VPN Gateway. İstemci bu ip aralığından bir IP alıp Gatewway ‘e gelecek.

Tunnel type

Tunnel Type: OpenVPN (SSL)

Authentication type

Azure Active Directory

Tenant: https://login.microsoftonline.com/{TENANT ID}/ formatında URL ‘inizi oluşturmanız gerekiyor. Sonraki sağa yatık slash önemli. Ona dikkat etmenizde fayda var. Tenant ID ‘nizi de Azure Active Directory portalından bulabilirsiniz.

Audience: burası Application AD kısmı. Yukarıda bahsettiğim; bir URL ziyaret edeceğiz ve oraya erişim yetkisi vereceğiz dediğim kısım buydu. Application Register başlığından bakabilirsiniz.

Issuer: Application Register kısmında anlatılan uygulamanın Login URL ‘i. Bunun da sonundaki slash önem arz ediyor. Yine formatımız https://sts.windows.net/{TENANT ID} şeklinde.

Issuer altındaki “Grant administrator consent for Azure VPN client application” linki, Application Register başlığında anlattığımız konu aslında. Oraya tıklayarak login olur ve yetki veriyorum bu bu uygulamaya derseniz aslında uygulamanız oluşacak. Ben daha önce yapmayan kişiler için açıklamayı tercih ettim.

Application Register

Hemen hemen her eğitim veya yazımda değindiğim gibi yine aynı anlatımla başlayacağım. Her bir kurum, bir Microsoft online aboneliği aldığında kendisine ait izole bir ortamı olur. Bu ortama bir isim verilir ve bu isim aslında size ait olan, Azure veri merkezinde oluşturulan bir Active Directory ‘nin adıdır, FQDN ‘idir ve adına Azure Active Directory deriz. https://aad.portal.azure.com sayfasından yönetiriz. Dilerseniz Azure portlından da erişilebilir tabi ki.

Buraya kadar her şey yolunda. Ancak benim kendi verimerkezimde SAP kurup AD ile otantike etmem, 3rd Party bir uygulama kurup AD ile entegre etmem gibi ihtiyaçlarım var. Bunu nasıl sağlayacağız? İşte bunun adı Application Register. Azure Active Directory yönetim portalına gidip, benim uygulamamı tarif etmem lazım. Tabi ki uygulamanın da bunu biliyor olması lazım. Destekliyor olması lazım.

Çalışma mantığı olarak;

  1. Azure Active Directory ‘ye gidip kataloğundan ilgili uygulamayı seçiyorum ve diyorum ki; sana bu uygulama gelirse, onu önce bi doğrula, şifresini doğru girer ise şu sayfaya gönder (yukarıda yazdığımız sts.windows.net.). Çıktı: Azure Active Directory bu işleminizin sonunda size bir ID üretir (uygulama buradan tanıyacak sizi). Bir de Key veriyor. Not: Başka güvenlik ve bağlantı yöntemleri de var bu kadar basit değil aslında ama şimdilik bu bize yeterli.
  2. Birde uygulamaya gidip; Application ID bu, sana erişmek isteyen olursa şu URL ‘e git diyoruz.

Yukarıdaki anlaşma neticesinde uygulama Azure AD ‘ye gönderir, Azure AD otantike eder ve Redirect URL neyse oraya gönderir.

Azure VPN App Register

Yukarıdaki başlıkta Azure AD App Register nedir, neden var ve nasıl çalışır konusunu en kısa şeklinde özetlemeye çalıştım. Bunu birazda ezbere yapmayalım diye ekledim aslında. Şimdi konuya geri dönelim. Point-to-Site konfigürasyonunu yukarıda anlattık. O anlatımda bahsedilen Audience kısmına yazacağınız Application ID ‘nin oluşması için aşağıdaki linke gitmeniz gerekiyor. Bu link takip eden görsellerdeki gibi sizden oturum açmanızı ve Azure AD ‘nize ekleyeceği Azure VPN uygulamasının sign-in olma ve kullanıcıları okuma yetkilerini vermenizi isteyecek. (Uygulama kayıt işlemi yapmak, o uygulamanın AD ‘nize tam erişimi olduğu anlamına gelmez. Yetkiler verirsiniz. Kullanıcıları okusun, grup açabilsin vs gibi)

https://login.microsoftonline.com/common/oauth2/authorize?client_id=41b23e61-6c1e-4545-b367-cd054e0ed4b4&response_type=code&redirect_uri=https://portal.azure.com&nonce=1234&prompt=admin_consent

Bu iki adımı yaptıktan sonra aşağıdaki şekilde Azure AD portalınız üzerinden Kurumsal Uygulamalar adımına geçtiğinizde uygulamanızı göreceksiniz. Uygulamanın genel bakış ekranından artık ID nizi alabilirsiniz.

İstemci Yapılandırması

Azure ortamındaki Point-to-Site yapılandırma işlemimiz bitti. Şimdi artık istemciyi bağlayabilirim. Bunu yapmak için öncelikle portal üzerinden konfigürasyon dosyasını indirmeniz gerekiyor. Bu size özel, sizin yaptığınız ayarlardan yola çıkarak oluşturulmuş bir xml dosyası. Point-to-Site konfigürasyon ekranından aşağıdaki şekilde indirebilirsiniz. İnen zip’li dosyayı açın ve içerisindeki AzureVPN klasöründe bulunan xml dosyasını çıkarın. Bu dosyayı birazdan kuracağımız uygulamaya import edeceğiz.

Şimdi istemcinin bağlanmasını sağlayacak olan, bizim Azure AD ‘ye kaydettiğimiz uygulamayı kuracağız. Microsoft store ‘u açın ve “Azure VPN” anahtar kelimesi ile bir arama yapın. Aşağıdaki uygulamayı bulun ve yükleyin. Bunu her bir istemcide yapmak durumundayız.

Bunu tüm kullanıcılarda yapmak için;

  1. Intune veya alternatif bir Patch Management çözümü kullanılabilir.
  2. Resimli bir guide hazırlanarak kullanıcıların yapması sağlanabilir.
  3. Son olarak bir script hazırlanabilir.

Kurulum bittikten sonra uygulamayı çalıştırdığımızda aşağıdaki şekilde boş gelecektir. Sol alt köşeden Import diyerek xml dosyamızı import edelim.

İmport işleminden sonra aşağıdaki şekilde config dosyamızdan aldığı bilgiler ile doldurulmuş profil ayarlarını göreceksiniz. Bunu kayıt edebilirsiniz. Herhangi bir şey değiştirmemiz gerekmiyor şu aşamada.

Eklendikten sonra sol tarafa VNET isminizle bir bağlantı profili geldiğini göreceğiz. Artık bunu kullanarak bağlantınızı sağlayabilirsiniz. Takip eden 3 görselde bağlantıyı ve Azure ortamındaki sunucumuza iç IP adresi ile eriştiğimizi görebiliriz.

Her Bağlantıda Şifre Sorulmasını Sağlamak

Azure VPN, klasik MS çözümlerinde olduğu gibi kullanıcı adı ve şifreniz ile bağlantı sağlandığınızda bir token oluşturur ve bu token ‘ı kullanarak diğer bağlantı isteklerinizde tekrar kullanıcı adı ve şifre sormaz. Cache ‘ler yani.

En başta bahsettiğimiz senaryoyu hatırlarsanız eğer, herkes evden çalışacaktı. Hal böyle olunca kurumlar “bilgisayar çalınırsa, başında değilse, evden başka biri bağlanırsa” gibi akla gelmeyecek olasılıkları düşünmeye ve buna çözüm aramaya başlıyor. Ben de benzer bir şey yaşadım ve makaleye detay olarak eklemek istedim.

Normal şartlarda yukarıdaki adımları takip ederek bu VPN ‘i kurarsanız uygulama size tekrar şifre sormaz. Eğer MFA aktif ise, yine ilk oturumda MFA devreye girer ve tekrar sormaz. Çünkü modern authentication, çünkü app register vs. ?

Her VPN Bağlantısında Şifre Sorsun veya Her VPN Bağlantısında MFA Devreye Girsin.

Bunun için indirdiğin xml dosyasının içerisinde küçük bir değişiklik yapacağız. Import ettiğiniz profili silin. Azure VPN uygulamasını tekrar boş gördüğünüzden emin olun. Daha sonra xml dosyanızı text editörü ile açın ve aşağıdaki seçili olan satırdaki gibi türe yazan yeri false yapın.

Olması gereken değer

<cachesigninuser>false</cachesigninuser>

Bu işlemi yaptıktan ve kaydettikten sonra tekrar bu xml dosyasını import edin. Sonuç olarak aşağıdaki iki görseldeki gibi her bağlantı başlatıldığında kullanıcı oturum açmak zorunda kalacaktır. Böylelikle biraz daha güvenli ve kontrol edilebilir bir P2S VPN çözümüne kurumunuz kavuşmuş olacaktır.

Umarım yeterince detaylı ve net bir senaryo ortaya koyabilmiş, çözümpark ailesi olarak meslektaşlarımıza faydalı bir içerik oluşturabilmişizdir.

Exit mobile version