Network Policy Server NPS – RADIUS Server VPN Uygulaması
Makalemin ilk bölümünde Windows Server işletim sistemi ile beraber gelen Network Policy and Access Services NPAS rolü içerisindeki Network Policy Server NPS, Network Access Protection NAP gibi özellikler ve bu özelliklerin bileşenlerinin tanımlarını yapmıştım. Yani bir hayli tanım ağırlıklı bir makale oldu. Ancak makalemin devamındaki konuların iyi anlaşılabilmesi için ilk makalemin okunmasını tavsiye ederim.
Makalemim bu bölümünde ise NPS rolü için 3 temel kullanımdan birisi olan RADIUS server kurulum ve konfigürasyonunu anlatacağım.
İlk olarak NPS kurulumunu gerçekleştirelim. Benim senaryomda sınırlı sayıda sanal makine açmak için Domain Controller üzerinde NPS rolünü aktif edeceğim, daha sonra bir Server üzerine VPN – RRAS rolünü kurup en son olarak ta bir istemci makineden RADIUS kimlik doğrulama ile VPN yapacağım. Özetle 3 sanal makine ile bu işi tamamlayacağım.
Gerçek hayat senaryolarında lütfen domain controller, CA, Exchange Server ve benzeri alt yapı sunucularına NPS ve benzeri ek rolleri yüklemeyin.
Windows Server Manager üzerinden aşağıdaki role yüklemesini yapıyoruz.
Daha sonra aşağıdaki ekrana kadar ileri tuşuna basabiliriz
Makalemin bu bölümünde NPS üzerinde anlatımlar olacağı için sadece NPS kurulumu ile devam ediyorum. Ancak ilerleyen bölümlerde diğer özellikleri de anlatıyor olacağım.
Yükleme adımı son derece basit. Yükleme bittikten sonra NPS sunucusunu aşağıdaki gibi 3 değişik sunucu rolü için konfigüre edebiliriz.
RADIUS server
NAP policy
RADIUS Proxy
NPS tarafında standart ve gelişmiş olmak üzere iki temel yapılandırma yöntemi vardır. RADIUS ve NAP Policy özelliği için standart veya gelişmiş yapılandırma kullanabilirsiniz ( NPS veya Server Manager konsolu üzerinden). Ancak RADIUS Proxy özelliği için gelişmiş yapılandırmayı kullanmanız gereklidir.
Standart yapılandırma, sihirbaz yardımı ile yapılmaktadır. Gelişmiş yapılandırma ise elle gerçekleştirilen yapılandırma ayarlardır. Standart yapılandırma ile aşağıdaki 3 başlığı sihirbaz yardımı ile yapabilirsiniz
· NAP policy server
· RADIUS server for dial-up or VPN connections
· RADIUS server for 802.1X wireless or wired connections
Gelişmiş yapılandırma seçenekleri ise aşağıdaki gibidir
Şimdi bunları daha detaylı olarak inceleyelim.
Öncelikle kurduğumuz NPS rolü için server manager üzerinden araçlar bölümünden yönetim konsolunu açalım
Karşımıza aşağıdaki gibi bir ekran çıkacaktır.
İlk olarak NPS sunucumuzu bir RADIUS Server olarak nasıl yapılandıracağız bu adımları görelim.
Remote Authentication Dial-In User Service (RADIUS) Server, temel olarak RADIUS Client olarak isimlendirdiğimiz Wireless Access Point, Akıllı Switchler, dial-up vpn server ve benzeri istemcilerden gelen kimlik doğrulama ve kimlik yetkilendirme isteklerine cevap vermektedir. NPS sunucusunu da bir RADIUS Server olarak yapılandırabiliriz. Bu bize temel olarak aşağıdaki gibi bir senaryo sağlar.
İstemci makineler Dial-in Server, VPN Server, Wireless Access Point veya 802.1x switch lere kimlik doğrulamak ve yetkilendirme için istekte bulunuyorlar, Access Server olarak ifade ettiğimiz bu sunucular ise RADIUS Server için RADIUS Client rolündedir ve RADIUS Client’ lar kimlik doğrulamak için RADIUS Server’ a yönlendirilmiş durumdadır. Bu senaryoda gelen istekleri NPS yani RADIUS server karşılar ve AD ile eşleştirdikten sonra yetkilendirmeyi gerçekleştirir. Ek olarak gelen tüm hesap bilgileri de veri tabanına kayıt edilmiş olur.
Bu senaryoda NPS Server aşağıdaki iki temel görevi üstlenir
RADIUS istemcilerinden gönderilen tüm kimlik doğrulama ve yetkilendirme hizmetlerini merkezi olarak sunar.
Merkezi olarak tüm bu kimlik doğrulama ve yetkilendirmelerde kullanılan kullanıcı istek bilgilerini kayıt eder.
Mimari tarafı tamamladıktan sonra yapılandırma tarafına geçelim.
NPS Server kurulum adımlarını makalemin başında sizler ile paylaşmıştım. Şimdi kurulu olan bu NPS için yetkilendirme işlemlerini yapalım.
Bunun için NPS sunucusu üzerine sağ tıklıyor ve “Register server in Active Directory” linkine tıklıyoruz.
Yukarıda da gördüğünüz gibi NPS’ in AD kullanıcılarının dial-in özelliğini okuyabilmeleri için yeki vermiş olduk.
Şimdi ise bu RADIUS sunucusu ile konuşacak RADIUS istemcileri ile güvenli bir iletişim kurmak için kullanacağımız ortak anahtarı belirleyelim.
Templates Management altında yer alan Shared Secrets üzerine sağ tıklayarak yeni bir tane shared secret oluşturuyoruz.
Hangi amaç veya cihazlar için kullanacağımıza dair bir isim veriyoruz ve sonrasında elle veya otomatik bir şifre tanımlanmasını sağlıyoruz. Ben kendi şifremi kendim tanımladım.
Şimdi ise VPN Sunucusunu RADIUS client olarak tanımlamak için bir şablon hazırlayalım. Siz isterseniz direkt olarak RADIUS client ekleyebilirsiniz. Ben önce bir şablon oluşturup daha sonra bunu VPN client olarak ekleyeceğim.
VPN sunucunuzu henüz hazırlamış olmanız gerekli değildir, ancak VPN sunucusu ip adresini biliyor olmanız bu aşamada yeterlidir.
Aynı bölümde bir alt seçenek olan RADIUS client bölümünde yeni bir istemci ekliyoruz.
VPN Server ip adresi, tanımlayıcı bir isim ve önceden tanımladığımız ortak anahtarı seçiyorum.
Şimdi ise sıra RADIUS sunucusuna gelen kimlik doğrulama ve yetkilendirme isteklerinin nasıl kayıt altına alınacağının ayarlanmasın geldi. Bunun için NPS ekranında Accounting bölümüne geliyoruz.
Configure Accounting linkine tıklıyoruz.
Eğer bir SQL sunucunuz var ise logları bunun üzerinde saklayabilirsiniz. Bende hazır bir sunucu olmadığı için local makine üzerinde text dosyası olarak saklayacağım.
Hangi tür isteklerin loglarının alacağımı, hangi dizine alacağımı seçiyorum. Ek olarak loglama yapılamazsa ise bu bağlantı isteğini kabul etmemek için varsayılan olarak gelen ayarı da aynen bırakıyorum. Ortamınız için eğer kararlı bir disk yazma durumu yok ise bu en alt bölümdeki kutucuğu kaldırabilirsiniz. Veya loglama için sql kullandığınız senaryolarda bazen sql server erişimi yapılamaz ve bu durumda aslında vpn de çalışmaz duruma düşer.
Şimdi ise sıra NPS sunucu için gerçekten bir RADIUS client tanımlamaya geldi. Ben önceden bir şablon hazırladığım için aşağıdaki menüden kolaylıkla bu işlemi tamamlayacağım.
NPS tarafı şimdilik hazır. Sıra VPN Server kurulumnda.
VPN Server kurulumu için Server Manager üzerinden aşağıdaki sunucu rolünü yüklüyoruz
Bu kutucuğu işaretledikten birkaç adım sonra aşağıdaki gibi Remote Access sunucu rolü için alt bileşenler çıkıyor.
Ben bu senaryomda sadece VPN kullanacağım için ilk kutucuğu işaretleyerek ilerliyorum.
Bu kutucuğu işaretlediğim zaman çıkan ek ekrandaki bileşenlerinde yüklenmesini kabul ediyor ve yükleme işlemini tamamlıyorum
Yükleme işlemi tamamlandıktan sonra ilgili sunucu rolü için yapılandırma sihirbazını açarak ilerlememiz gerekiyor. Server Manager ana ekranında da bu konuda bir uyarı görebilirsiniz.
Open the Getting Started Wizard diyerek sihirbazı çalıştırıyoruz.
Ben en alttaki seçeneği yani “Deploy VPN only” bölümüne tıklıyorum.
Tıkladıktan sonra Routing and Remote Access konsolu açılıyor, konsol içerisinde sunucu ismimin üzerine sağ tıklıyorum ve “Configure and Enable Routing and Remote Access” bölümüne tıklıyorum.
VPN bölümünü seçiyorum
Tekrar VPN özelliğini seçiyorum
VPN Server olacak makine de iki interface olması gereklidir. Benim VPN sunucumda da iki interface yer almaktadır. Bu bölümde internete bakan bacağı seçiyorum, ek olarak alttaki kutucuğu kaldırıyorum ki port bazlı izinler vermek için ilerleyen bölümlerde ek işlemler yapmak istemiyorum. Zaten bu interface için bu sunucu önünde bir firewall olduğundan ek bir güvenlik önlemi istemiyorum.
İçeride bir DHCP server olduğu için IP adreslerini VPN istemcilerinin otomatik almasını istiyorum.
Bu bölüme yes diyerek RADIUS server tanımı yapacağımı belirtiriyorum.
RADIUS server ip adresi ve VPN şablonunda kullandığım şifreyi yazıyorum.
VPN istemcilerinin bu dış bacak üzerinden yapacakları IP isteklerine cevap vermesi için DHCP üzerinde Relay Agent ayarı yapmam gerektiğini hatırlatıyor.
Son durumda aşağıdaki gibi yeşil bir ok görmeliyiz
Şimdi ise tekrar NPS sunucusuna dönerek Network Policy tanımlamamız gereklidir.
Öncelikle Network Policies kısmında mevcut policylerin üzerine sağ tıklarak Disable konumuna getiriyoruz. Daha sonra yeni bir policy oluşturuyoruz.
Policy için bir isim ve hangi network erişim yöntemini – sunucusu için kuralı yazacağımızı seçiyoruz.
Bağlantı isteği için durum tanımlayacağız. Add diyoruz.
Açılan menüden pek çok seçenekten size en uygununu seçebilirsiniz. Ben NAS Port Type durumunu seçiyorum.
Add dediğimde açılan menüde ise VPN’ i seçiyorum ve son durum aşağıdaki gibi oluyor
İlerliyorum.
Bu şartın sağlanması durumunda network policy olarak hangi aksiyonu uygulayacağımı belirliyorum. Ben VPN istekleri gelir ise bu isteklerin network e erişmesini istiyorum.
Bu bölümde ise bağlantı istekleri için kimlik doğrulama yöntemlerini şart koşabilirsiniz. Yani eğer VPN, 802.1x veya benzeri access sunucularından gelen isteklerin karşılıklı olarak hem NPS sunucusu hem de istemci için doğrulanmasını istiyorsanız (mutual Authentication) bu durumda sertifika destekli kimlik doğrulama protokollerinden birini seçebilirsiniz. Eğer bu seçimi yapacaksanız bir CA sunucunuz, NPS için Server Authentication amacı ile üretilmiş ( şablonu ) bir server sertifikası, network access sunucusuna istek gönderek istemciler için de yine Client Authentication amacı ile üretilmiş istemci sertifikası dağıtmanız gereklidir. Ben bu sertifika süreçlerini atlamak adına olduğu gibi yani mevcut kimlik doğrulama protokolleri ile ilerliyorum.
Bu bölümde mevcut policy için ek şartlar tanımlayabilirsiniz. Örneğin bu policy sadece günün veya haftanın şu saatlerinde aktif olsun gibi. Bu bölümü de olduğu gibi bırakıp geçiyorum.
Bu bölümde ise yine ilgili bağlantı için yapabileceğimiz ek ayarları görüyoruz. Örneğin bu şartlar sağlnır ise direkt olarak network erişimi yerine sınırlı bir erişim ve bu sınırlı erişim durumunu düzeltmek için erişmesi gereken Remedation server dediğimiz yama sunucusu, av update sunucusu yada Domain Controller, DNS sunucu larını tanımlayabiliriz. Ben bu tür tanımlamaları da yapmıyorum, çünkü bu şartları sağlayan bağlantıların network e tam erişimini istiyorum.
Son olarak yaptığımız Policy için özet bir ekran görüntüsü alıyoruz.
Son adım ise artık istemci bilgisayar üzerinden VPN yapmak.
İstemci bilgisayarında yeni bir VPN bağlantısı oluşturuyoruz.
Bu bölümdeki ip adresi VPN server dış bacak ip adresi olmalıdır, bu muhtemel bir modem veya firewall olup VPN portları VPN server için yönlendirilmiş olmalıdır.
Daha sonra oluşturduğumuz VPN bağlantısının özelliklerine giriyoruz
Tunel tipini PPTP ve kimlik doğrulamak için de MS-CHAP-v2 yi seçiyoruz.
Daha sonra bu bağlantı üzerine sağ tıklayarak connect diyoruz, yukarıdaki gibi açılan ekrandan kullanıcı kimlik bilgimizi giriyoruz.
Gördüğünüz gibi sorunsuz bir şekilde bağlantı gerçekleşiyor.
DHCP üzerinde ek bir ayar yapmadan ip aldığını da görüyorum
Şimdi mevcut durumdaki policy üzerinde birkaç oynama yapalım.
Öncelikle herhangi bir kullanıcı ile VPN yapabildiğinizi kontrol ediniz
Daha sonra ise policy üzerinde sadece VPN grubu üyeleri için izin verip serkan’ ı üye yapalım ama hakan kullanıcısını yapmayalım ve bir daha deneyelim.
Mevcut policy özelliklerinden duruma gelelim
Mevcut duruma add diyerek vpn grubunu seçelim
Şimdi serkan ve hakan ile yine bağlanmayı deneyin.
Serkan başarılı bir şekilde bağlanırken hakan için aşağıdaki gibi bir hata alırsınız
Bu şekilde policy tarafında farklı şartların ve durumların sağlanması koşulu ile network erişimi izni veren policy örnekleri çoğaltmak sizin elinizde.
Makalemin bu bölümünün de sonuna geldim, umarım faydalı olmuştur.