Kontakt in pripombe
domov

Integracija sistema - primer

Za primer sem izbral vzrorčno podjetje kjer je izbran Microsoft Active directory kot centralni sistem administriranja omrežja in W2k kot osnovna strežniška platforma. Podjetje, ki se ukvarja z razvojem programske opreme z Java razvojnimi orodji se je odločilo, razvoj delno prenesti na Linux delovne postaje, ki funkcionalno ustrezajo potrebam razvijalcev. Hkrati bi želeli ohraniti centralni sistem administriranja preko AD. Ideja se kar se tiče podobnih implementacij razlikuje od meni znanih objavljenih v nekaj malenkostih, ki jih je možno takoj opaziti, slike in datoteke so zaradi varnosti iz drugega okolja, vse skupaj pa je le odlomek ideje. Pravno je potrebno urediti še licenčna razmerja, kar pa ni tehnična problematika in ga tu ne bom razdelal.

Model je možno implementirati tudi v Windows 2003 AD in sicer so tu kratka navodila in datoteka, ki naredi potrebne spremembe v shemi (popravite objekte za svojo domeno), in se lahko pristopi k Windows 2003 AD nadgradnji iz Windows 2000 AD. Za uskladitev z RFC 2307 je potrebno narediti še nekaj dodatnih posegov za kar vam bom z veseljem odgovoril, če bo potrebno. Če je kdo opazil podobno implementacijo z w2k3 AD bom zelo vesel če me obvesti kje se nahaja.

Praktični način integracije RH 7.3 linux-a v Active directory

Uporabljen je MS Active directory LDAP strežnik kot vir informacij oziroma atributov objektov uporabnikov ki jih potrebujemo za dostop in kerberos server kot autentifikacijski mehanizem. Lahko bi uporabili tudi LDAP autentifikacijo vendar bi bilo potem potrebno konfigurirati varen dostop, do strežnika preko SSL povezave, ker se uporabniška gesla v nasprotnem primeru prenašajo kot plain text. Na linux strani so uporabljeni nss_ldap pam_ldap in pam_krb5 instalacijski moduli katere vsebujejo vse pomembnejše distribucije. 

Osnovna shema aktivnega direktorija še ne vsebuje vseh potrebnih atributov za objekte zato jo bo potrebno dopolniti, da bo ustrezala RFC2307.

1. Nadgradnja sheme aktivnega direktorija 

Navodila za nadgradnjo sheme s potrebnimi objekti se nahajajo na http://jaxen.ratisle.net/~jj/nss_ldap-AD_Integration_how-to.php , najbolj praktično pa je, da uporabite orodja, katera je napisal Maxime Batourine in ki vam hkrati omogočajo dodajanje atributov uporabnikom kar iz Active directory users and computers - http://www.css-solutions.ca/ad4unix/ . Nadgradnja sheme je podobna nadgradnji Microsoft Services for UNIX.

2. Preverimo, če imamo instalirane potrebne module 

RPM moduli, ki morajo biti instalirani: 

pam_krb5-1.55-1 
krb5-libs-1.2.4-1 
krb5-workstation-1.2.4-1 
nss_ldap-185-1 openldap-2.0.23-4 
openldap-clients-2.0.23-4

3. Priredimo konfiguracijske datoteke, nss_ldap, pam_krb5 

/etc/ldap.conf izgleda takole:

#
# This is the configuration file for the LDAP nameservice
# switch library and the LDAP PAM module.
#
# PADL Software
# http://www.padl.com
#
host svarun.marcina.net
base dc=marcina,dc=net
ldap_version 3
binddn ldapuser
bindpw secret
port 389
scope sub
timelimit 30
bind_timelimit 30
idle_timelimit 3600

nss_base_passwd cn=Users,dc=marcina,dc=net
nss_base_shadow cn=Users,dc=marcina,dc=net
nss_base_group cn=Group,dc=marcina,dc=net

nss_map_objectclass posixAccount User
nss_map_attribute uid msSFUName
nss_map_attribute uniqueMember posixMember
nss_map_attribute userPassword msSFUPassword
nss_map_attribute cn msSFUName
nss_map_attribute homeDirectory msSFUHomeDirectory
nss_map_objectclass posixGroup Group
pam_login_attribute sAMAccountName
pam_filter objectclass=User
pam_password ad

ssl no

Pozor: vsakdo, ki se logira v shell ima možnost brati to datoteko in lahko vidi geslo - bindpw, zato je potrebno ali onemogočiti dostop do shell-a ali pa kreirati domenskega uporabnika, ki nima nobenih drugih pravic razen branje sheme Aktivnega direktorija.

Datoteko je seveda potrebno prirediti vaši domeni in LDAP strežniku.

/etc/krb5.conf 

Priredite jo na svojo domeno paziti pa je treba na velike in male črke.

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
ticket_lifetime = 24000
default_realm = MARCINA.NET
dns_lookup_realm = false
dns_lookup_kdc = false

[realms]
MARCINA.NET = {
kdc = svarun.marcina.net:88
admin_server = svarun.marcina.net:749
default_domain = marcina.net
}

[domain_realm]
.marcina.net = MARCINA.NET
marcina.net = MARCINA.NET

[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf

[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}

/etc/nsswitch.conf 

Uredite jo lahko z orodjem authconfig kakor kasneje opisane pam konfiguracijske datoteke, vsebovati pa mora najmanj to:

passwd: files ldap
shadow: files ldap
group: files ldap

PAM se lahko konfigurira na dva različna načina:

  • v eni datoteki /etc/pam.conf 

  • v več datotekah v mapi /etc/pam.d za vsako aplikacijo posebej

Uporabili bomo drugo varijanto v kateri bom opisal autentifikacijo logiranja na konzolo ali telnet.

Poženemo program authconfig in označimo LDAP ter pritisnemo Next.

Na naslednjem ekranu označimo shadow, lahko tudi md5 ter ldap in nato še kerberos

Potrebno je še urediti datoteko /etc/pam.d/login in /etc/pam.d/system-auth, da izločimo pam_ldap za geslo in omogočimo uporabnikom, ki se še niso logirali kriranje njihovega domačega direktorija. Za ostale module je odsvisno os potreb potrebno narediti enako spremembo potrebnih datotek.

/etc/pam.d/login

#%PAM-1.0
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_stack.so service=system-auth
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_stack.so service=system-auth
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_mkhomedir.so skel=/etc/skel/ 
umask=0022
session required /lib/security/pam_stack.so service=system-auth
session optional /lib/security/pam_console.so

/etc/pam.d/system-auth

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required /lib/security/pam_env.so
auth sufficient /lib/security/pam_unix.so likeauth nullok
auth sufficient /lib/security/pam_krb5.so use_first_pass
auth sufficient /lib/security/pam_ldap.so use_first_pass
auth required /lib/security/pam_deny.so

account required /lib/security/pam_unix.so
account [default=bad success=ok user_unknown=ignore service_err=ignore 
system_err=ignore] /lib/security/pam_ldap.so
account [default=bad success=ok user_unknown=ignore service_err=ignore 
system_err=ignore] /lib/security/pam_krb5.so

password required /lib/security/pam_cracklib.so retry=3 type=
password sufficient /lib/security/pam_unix.so nullok use_authtok md5 
shadow
password sufficient /lib/security/pam_krb5.so use_authtok
#password sufficient /lib/security/pam_ldap.so use_authtok
password required /lib/security/pam_deny.so

session required /lib/security/pam_limits.so
session required /lib/security/pam_unix.so
session optional /lib/security/pam_krb5.so
session optional /lib/security/pam_ldap.so

4. Uporabniki

Preostane nam le še, da že obstoječim uporabnikom dodamo unix atribute. Lahko uporabimo plugin, ad4unix kar iz Active directory users and computers ali z orodjem ldp.exe, ki se nahaja na W2k server instalacijskem cd-ju.

Osnovni primer integracije je tako končan, implementirati se da še marsikaj, med drugim login v X-e in nekaj drugih aplikacij.


Pripombe in pojasnila: tu

 

 

Avtor strani: Matjaž Marcina 2003-2005, vse pravice pridržane