Juniper SRX Firewall larda Junos 12.1X47D-10 sürümü ile birlikte Active Directory Authentication özelliği geldi. Juniper terminolojisinde bu özelliğe Integrated User Firewall deniyor. Bir Next Generation Firewall özelliği olan bu işlem sayesinde Source IP veya Source ComputerName yerine direkt Active Directory kullanıcı veya grup adı ile firewall kuralları oluşturabiliyoruz. Loglarda da direkt ilgili kullanıcı veya grup bilgisini görebiliyoruz.
Entegrasyonu gerçekleştirebilmek için yukarıda da belirtildiği gibi işletim sisteminin minimum 12.1X47D-10 versiyonuna sahip olması gerekiyor. Bu versiyonu cihaza kurabilmek için ise SRX cihazınızın “SRX…H2” veya “SRX…HE2” gibi bir SRX modelinde olması gerekiyor. Ürün adının sonunda geçen H ifadesi high memory anlamına geliyor ki serinin yüksek memory li modeli olduğunu gösteriyor. NextGeneration feature ları yüksek memory tüketiyor olduğu için modellerde memory upgrade i yapıldı. Benim kurulumunu yaptığım cihaz aşağıdaki SRX240 modelidir.
root@SRX240> show chassis hardware
Hardware inventory:
Item Version Part number Serial number Description
Chassis SRX240H2
Routing Engine RE-SRX240H2
FPC 0 FPC
PIC 0 16x GE Base PIC
Kullandığım işletim sistemi sürümü ise aşağıdaki gibidir.
root@SRX240# run show version
Hostname: SRX240
Model: srx240h2
JUNOS Software Release [12.1X47-D25.4]
Juniper, Domain Controller olarak Windows Server 2003 ve kullanıcı işletim sistemi olarak ta XP den öncesini desteklemiyor.
Active Directory im Windows Server 2008R2 üzerinde kurulu. SRX in internal zone unda hizmet veriyor. Yani Domain Controller ımın gatewayi SRX cihazımın internal zone ip si. Gayet basit bir topoloji yani.
SRX Internal Zone IP : 10.10.21.3
Domain Controller IP : 10.10.21.10
FQDN : testdc.emre.local
Kurulum İçin Active Directory de Yapılacak İşlemler:
Active Directory de juniper isimli bir kullanıcı oluşturuyorum. Bu kullanıcı Active Directory Security Eventlerini okuyup buradaki logon eventlerinden kullanıcı-ip eşleştirmesini yapacak. Bu kullanıcıya domain admin yetkisi vermek istemediğim için aşağıdaki yetkilendirmeyi yapıyorum. (Testlerde yetkilerle ilgili problemle karşılaştım sonra uğraşmayıp direkt domain admin yetkili bir kullanıcı ile entegrasyonu tamamladım)
wmimgmt.msc üzerinden CIMV2 / Security kısmından aşağıdaki işlemi yapıyorum.
Active Direcroty Users and Computers bölümü içerisinden ise oluşturduğum kullanıcıyı sağ tık / özellikler adımı ile Distributed COM Users üyesi yapıyorum.
Active Directory de yapılacaklar bu kadar aslında. (Eğer logon logları üremiyorsa group policy ile auditing ayarlarından logon/logoff eventleri ürettirilebilir)
Juniper SRX Firewall Üzerinde Yapılacak İşlemler:
Domain Controller üzerinden Active Directory loglarının SRX tarafından okunabilmesi için AD tanımı yapıyorum ve access profil oluşturuyorum.
set services user-identification active-directory-access domain emre.local user-group-mapping ldap base DC=emre,DC=local
set services user-identification active-directory-access domain emre.local user juniper password sifregiriniz
set services user-identification active-directory-access domain emre.local domain-controller testdc address 10.10.21.10
set access profile profile1 authentication-order ldap
set access profile profile1 authentication-order password
set access profile profile1 ldap-options base-distinguished-name DC=emre,DC=local
set access profile profile1 ldap-options search search-filter cn=
set access profile profile1 ldap-options search admin-search distinguished-name juniper
set access profile profile1 ldap-options search admin-search password sifregiriniz
set access profile profile1 ldap-server 10.10.21.10
İşlemlerden sonra DC statüsü:
root@SRX240> show services user-identification active-directory-access domain-controller status
Domain: emre.local
Domain controller Address Status
testdc 10.10.21.10 Connected
Active Directory Logon Loglarından 2 adet kullanıcı/ip eşleştirmesi yapıldı. (Eğer DC Statüsü connected olarak görünmesine rağmen aşağıdaki tablo gelmiyorsa AD loglarını okuyan kullanıcının yetkileriyle ilgili bir problem vardır demektir. Traceoptions tan debugging yaparak detayları inceleyebilir veya direkt kullanıcının yetkilerini artırabilirsiniz.)
root@SRX240> show services user-identification active-directory-access active-directory-authentication-table all
Domain: emre.local
Total entries: 2
Source IP Username groups state
10.10.21.10 administrator Valid
10.10.21.18 emre Valid
Test ortamımda maalesef birden fazla kullanıcı ve bilgisayar olmadığı için kayıtlar oldukça az.
root@SRX240>show services user-identification active-directory-access statistics ip-user-mapping
Domain: emre.local
Host: 10.10.21.10
Initial event log timespan(hour) : 1
Event log scan interval(sec) : 10
Total log query times : 543
Failed log query times : 105
Number of records fetched : 0
Latest timestamp :2015-10-25 20:50:26
Artık Firewall kuralı yazarken Source-Identitiy olarak örneğin emre.local\kullanici veya emre.local\grup şeklinde user ve group bazlı firewall kuralları oluşturabiliriz. (Kullanıcı ve grup adlarını maalesef manuel olarak yazmamız gerekiyor.)
Örneğin Emre.local domaininde bulunan emre ve ahmet kullanıcılarının www.emrebastug.net e ftp yapmasına engel olacak bir kural yazıyorum (saçma sapan bir policy ismi ile 🙂 ).
Loglarda ftp üzerinden www.emrebastug.net adresine erişilmek istendiğinde aşağıdaki gibi engellendiğini görebiliriz.
SRX Firewall Üzerinde Active Directory Group Bazında Kural Yazmak
Aşağıdaki komut ile emre.local domaini içerisindeki emre kullanıcısının hangi gruplara üye olduğunu öğrenebiliriz.
Bir grup içerisinde hangi kullanıcılar var bunu ise aşağıdaki şekilde görebiliriz.
Örneğin GUI de policy yazarken şu şekilde bir syntax kullanıyorum