Selamlar arkadaşlar bir önceki yazımda nasıl LDAP bağlantısı yaptığımızı görmüştük. O yazıya gitmek isterseniz buraya tıklayabilirsiniz. Bu yazımda ise bu bağlantı işlemini yaptıktan sonra MSChapv2 aktifleştirerek, daha güvenli bir şifre doğrulaması, AD ile uyumluluk elde etmiş olacağız.
Ubuntu FreeRADIUS : 192.168.1.10
Windows AD 2022 : 192.168.1.20
PFSense : 192.168.1.30
İlk olarak tüm ldap bağlantılarını sağladınız sisteminizde aşağıdaki bileşenleri yükleyerek desteğimizi açıyoruz. Bu yüklemelerde samba ile AD entegrasyonu sağlanır, winbind ile MS-CHAPv2 için kimlik doğrulaması sağlar ve Windows kullanıcılarını linux sistemlerine bağlamak için kullanılır.
> sudo apt update
> sudo apt install freeradius-utils samba winbind libnss-winbind libpam-winbind -y
İlk olarak cihazımızı domain‘e dahil etmemiz gerektiği için aşağıdaki gibi bir kaç ayar yapacağız. Bunlardan ilk olanı DNS ayarı;
– Cihazı domaine’e alabilmek için DNS ayarı yapmalısın :
> sudo nano /etc/systemd/resolved.conf
[Resolve]
DNS=192.168.1.20
FallbackDNS=8.8.8.8
Domains=sistemdostu.local
Ayar yapıldıktan sonra kaydedip çıkmanız gerekmektedir.
– Cihazın hostname ayarlamalarında dikkat edilmesi gerekenler :
> hostnamectl
Komutumuz ile ayrıntılı hostname kontrolü sağlayabilirsiniz.
Aşağıdaki komutu kullanarak cihazımıza FQDN ad atamamız gerek.
> sudo hostnamectl set-hostname freeRadius.sistemdostu.local
> nano /etc/hosts
127.0.0.1 localhost
127.0.1.1 freeRadius.sistemdostu.local freeRadius
192.168.1.10 freeRadius.sistemdostu.local freeRadius
Ayarlamaları sağladıktan sonra Ubuntu cihazınızı yeniden başlatın.
> nslookup sistemdostu.local
Komutu yardımıyla hangi ip adresini çözdüğünü bulabilirsiniz.
– Samba’yı domaine dahil edebilmek için yapılan ayarlamalar :
Yapacağımız bu ayar ile Ubuntu cihazımız, Windows AD ortamımıza katılmış olacak. Aşağıdaki conf. dosyalarını düzenleyerek başlıyoruz.
[global] alanının altında workgroup yazıyor arkadaşlar orayı değiştirdikten sonra diğer kısımları elle ekleyeceksiniz. idmap alanına geçtiğinizde önlerinde olan ; (noktalı virgül) sildikten sonra değişiklikleri yazacaksınız. winbind alanları elle ekleyeceksiniz.
> nano /etc/samba/smb.conf
# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = sistemdostu
security = ads
realm = sistemdostu.local
encrypt passwords = yes
ntlm auth = yes
Some defaults for winbind (make sure you're not using the ranges
# for something else.)
idmap config * : backend = tdb
idmap config * : range = 10000-20000
winbind use default domain = yes
winbind offline logon = false
; idmap config YOURDOMAINHERE : backend = tdb
; idmap config YOURDOMAINHERE : range = 100000-999999
template shell = /bin/bash
Ayarları yaptıktan sonra kaydedip çıkın ve sonrasında join bağlantısını çalıştırarak domaine dahil edin. leave komutunuda koydum kullanmanız gerekir diye.
> sudo net ads join -U Administrator
> sudo net ads leave -U Administrator
Daha sonra restart atın bakalım hatasız bir şekilde yapıyor mu bunu. Join işleminden önce restart atarsanız winbind hata veriyor bilginize.
> systemctl daemon-reload
> sudo systemctl restart smbd nmbd winbind
– Şimdi Radius içerisinde mschap aktifleştirme yapabiliriz :
> nano /etc/freeradius/3.0/mods-enabled/mschap
mschap {
#
# If you are using /etc/smbpasswd, see the 'passwd'
# module for an example of how to use /etc/smbpasswd
#
#
# If use_mppe is not set to no mschap, will
# add MS-CHAP-MPPE-Keys for MS-CHAPv1 and
# MS-MPPE-Recv-Key/MS-MPPE-Send-Key for MS-CHAPv2
#
use_mppe = yes
#
# If MPPE is enabled, require_encryption makes
# encryption moderate
#
require_encryption = yes
#
# require_strong always requires 128 bit key
# encryption
#
require_strong = yes
# --allow-mschapv2
#
# to the command-line parameters.
#
with_ntdomain_hack = yes
ntlm_auth = "/usr/bin/ntlm_auth --domain=sistemdostu --request-nt-key --allow-mschapv2 --username=%{%{Stripped-User-Name}:-%{%{User-Name}:-None}} --challenge=%{%{mschap:Challenge}:-00} --nt-respon>
Yukarıdaki ayarları yaparken dikkat etmeniz gereken yerler. “ntlm_auth = “/usr/bin/ntlm_auth” alanında ilk başta başka bir şey yazıyor bunu düzeltmeniz gerek. ve üstündeki satırı elle eklemelisiniz. Diğer alanları ise sadece yorum satırından çıkartacaksınız.
> sudo nano /etc/freeradius/3.0/sites-enabled/default
> sudo nano /etc/freeradius/3.0/sites-enabled/inner-tunnel
dosyalarında mschap açık mı kontrol et.
Kontroller düzenlemeler bittikten sonra FreeRADIUS‘a aşağıdaki komutları kullanarak restart atabilirsiniz.
> sudo systemctl restart freeradius
> freeradius -X
– PFSense’de önceden yaptığınız bağlantı türünü PAP’dan MSChapv2’ye çevirebilirsiniz ;
Bunu yapmadan önce nano /etc/freeradius/3.0/clients.conf dosyasına gitmeli ve gerekli kontrolleri yapmalısınız. Buraya PFSense‘in bağlanabilmesi için ayarları yapmalısınız ve FreeRADIUS‘a restart atmalısınız.
> nano /etc/freeradius/3.0/clients.conf
client pfsense {
ipaddr = 192.168.1.30
secret = pfsis123
require_message_authenticator = no
}
– FreeRADIUS kullanıcısının grup izinlerinide ayarlayın :
> usermod -a -G winbindd_priv freerad
> chown root:winbindd_priv /var/lib/samba/winbindd_privileged/ (//bu alanı uygulamadan önce usermod yapın ve res atın radius'a ve deneyin pfsense üzerinden authentication)
> sudo systemctl restart freeradius
> freeradius -X
NOT : Herhangi bir ayarlarda değişiklik yaparsanızda FreeRADIUS‘a restart atmak zorundasınız arkadaşlar. Unutmayın bunu 😛 ben çok unutup dene yaptım çünkü. 😀
– Bazı Kontroller :
Winbind‘ın çalışıp çalışmadığını aşağıdaki komut örnekleriyle kontrol edebilirsiniz.
> wbinfo -t //AD'ye bağlı olup olmadığını gösterir.
> wbinfo -u //AD'deki kullanıcıları listeler.
> wbinfo -g //AD'deki grupları listeler.
> wbinfo -a sistemdostu%sis123., //Kullanıcının ad'de var olduğunu ve winbind'a doğruladığını test ediyor.
Kerberos’un AD erişimini kontrol etmek isterseniz;
> sudo apt install krb5-user
> kinit Administrator
> klist
NTLM komutları ile de test edebilirsiniz :
> ntlm_auth --username=AD_KULLANICI --domain=AD.DOMAINİNİZ --password=ŞİFRE
ÖR : ntlm_auth --username=sistemdostu --domain=sistemdostu.local --password=sis123.,
> ntlm_auth --request-nt-key --domain=sistemdostu --username=semih --password=sis123., --debuglevel=10
hata alman durumunda bu şekilde de çalıştırabilirsin. bu komut ile debug modunda test yapacaksınız.
> echo $?
bu komut en son çalıştırılan komudun başarı durumunu göstermektedir. 0 ise başarılı 1 ise başarısızdır.
> radtest -t mschap semih sis123., localhost 18122 testing123
Bu yazımda bu kadar arkadaşlar. MSChapv2 ile artık kontrollerinizi sağlayabilirsiniz. Umarım yararlı bir yazı olmuştur sizin için.
Bana destek vermek isterseniz Youtube, Instagram ve TikTok üzerinden SistemDostu kanalıma abone olabilir ve videolarımı beğenebilirsiniz. Ayrıca soru ve görüşlerinizi yorumlar alanından iletin lütfen. Kolay gelsin